Linked Data and Music Encodings
Music Encoding Conference 2019
Overview of today
| 9.00 – 10.00 |
| 10:00 – 11.30 (break ~10:50 –11:05) |
| 11.30 – 13.00 |
Lunch break (13.00 – 14.00) | |
| 14.00 – 15.00 |
| 15.00 – 16.00 |
| change room & break 16.15–18.00 |
Conference opening keynote Georg Vogeler: “Encoding and its Logics – On the relationship between XML Encoding and Others”. Austrian Academy of Sciences, Festsaal, 19.00 | |
Web resources
These slides: https://tinyurl.com/LinkedDataMEC
Further reading (GoogleDoc): https://tinyurl.com/LinkedDataMEC-readings
Exercises (GoogleDoc):
FRBR, MEI, and the Music Ontology
Let’s talk about a piece of music (bibliographically)!
… should be trivial, right?
Missa solemnis!
Kyrie...
...Gloria...
...Credo...
...Sanctus...
...Agnus Dei!
midi
mxl
msczl
kern
MEI
FRBR Model
Functional
Requirements for
Bibliographic
Records
Work
Expression
Manifestation
Item
MEI
realization (of)
embodiment (of)
exemplar (of)
FRBR in the MEI Header
Source: https://dev.hoftheater-detmold.de/index.html#HoftheaterDetmold:werk_H020149
“Linked Data in the Source Description – Requirements of the Detmold Court Theatre Project”
Tomorrow at 13:30am!
Music Ontology: FRBR for music publishing
MusicalWork
Composition
Arrangement
Movement
Sound
Signal
Score
PublishedScore
Record
A printed score
A physical CD
A Spotify stream
Arranger
Engineer
Conductor
Performer
MusicArtist
Publisher
Performance
Recording
compose
produced_work
movement
arrangement
of
product
performance_of
produced
sound
produced_signal
recorded_in
agent
recorded_as
published_as
available_as
published_as
publisher
available_as
conducted
performed
engineer
Event
MusicalWork
MusicalExpression
MusicalManifestation
MusicalItem
Agent
Exercise 1: Describe your favourite work using FRBR and the Music Ontology
Explore music ontology specification: http://purl.org/ontology/mo/
Identify and interrelate:
Works, expressions, manifestations, items, events, agents.
RDF, URIs, Triples and Turtle
Terminology: Internet, Web, Linked Data
Is there a difference between
If yes, what is it?
Source: W3C20 Anniversary Symposium 2014 “The Future of the Web” https://www.w3.org/20/#photo
Internet: Evolution
Sources: http://www.fibel.org/linux/lfo-0.6.0/node457.html (left); https://www.theatlantic.com/technology/archive/2012/07/what-the-internet-actually-looks-like/259815/ (right)
Web: Evolution
Source: Nova Spivack's illustration of the evolution of the WWW. Radar Networks & Nova Spivack, 2007. http://www.radarnetworks.com
Semantic Web: Vision
“The Semantic Web […] is an extension of the current one, in which information is given well-defined meaning, better enabling computers and people to work in cooperation.“
[graphics]
Berners-Lee, Tim; Hendler, James; Lassila, Ora: „The Semantic Web: A New Form of Web Content that is Meaningful to Computers Will Unleash a Revolution of New Possibilities“, in: Scientific American 284/5 (Mai 2001), S. 34–43
Semantic Web
vs.
Linked (Open) Data
= an (abstract) object
→ web of data using the infrastructure of the internet
= a recommended method
→ how data should be made accessible, linked and shared in this web
Linked (Open) Data:
5⭐ check list
Linked (Open) Data: Cloud (2007–2019)
Source: https://lod-cloud.net/versions/2019-03-29/lod-cloud.png
Source: http://lod-cloud.net/versions/2007-05-01/lod-cloud.png
Semantic Web: Technology Stack
Source: https://www.w3.org/2007/Talks/
0130-sb-W3CTechSemWeb/layerCake-4.png
Source: https://smiy.wordpress.com/2011/01/10/The-common-layered-semantic-web-technology-stack/
How to identify things on the web?
“digital fingerprint”
globally unique addresses
→
IRI
(“Internationalized Resource Identifier”)
Source: https://www.pinterest.de/networkfindercc/qr-code-design
URIs and why they are awesome
URN (“Unified Resource Name”)
URI (“Uniform Resource Identifier”)
URL (“Uniform Resource Locator”)
IRI (“Internationalized Resource Identifier”)
Source: http://wiki.selfhtml.org/wiki/Urn-url-uri-iri
Resource Description Framework (RDF)
W3C standard ; https://www.w3.org/TR/rdf11-concepts/
provides fundamental syntax + semantics to describe digital representations of objects (resources)
triple structure: <subject> <predicate> <object> .
can be visualized as a (directed) graph
(set of triples = RDF Graph)
completely based on (globally unique) URI’s:
<http://example.org/semweb#subject> <http://example.org/semweb#predicate> <http://example.org/semweb#object> .
Resource Description Framework (RDF)
namespaces:
qnames (prefixing namespaces):
ex:subject
ex:object
ex:predicate
<http://example.org/semweb#subject>
<http://example.org/semweb#predicate>
<http://example.org/semweb#object> .
@prefix ex: <http://example.org/semweb#>
ex:subject ex:predicate ex:object .
Turtle
N-Triples
Resource Description Framework (RDF): serializations
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://example.org/semweb#Pioneer1">
<foaf:name>Pioneericus</foaf:name>
<rdf:type rdf:resource="http://example.org/semweb#Pioneer"/>
</rdf:Description>
</rdf:RDF>
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix semweb: <http://example.org/semweb#> .
semweb:Pioneer1 a semweb:Pioneer ;
foaf:name "Pioneericus" .
{ "@context": {
"semweb": "http://example.org/semweb#",
"foaf": "http://xmlns.com/foaf/0.1/"
},
"@id": "semweb:Pioneer1",
"@type": "semweb:Pioneer",
"foaf:name": "Pioneericus"
}
RDF/XML
JSON-LD
Turtle
semweb:
Pioneer1
semweb:
Pioneer
rdf:type
“Pioneericus”
foaf:name
Resource Description Framework (RDF):
object alternatives
ex:subject
ex:predicate
<subject> <predicate> [ ] .
ex:WebernOp27 dct:creator [
rdf:type foaf:Person ;
foaf:name “Anton Webern” .
] .
lexical form + datatype IRI (+ language tag) → express simple data values like:
!! Turtle allows untyped / unquoted shortcuts: “String”, 2019, 3.14, true
“beautiful string”^^xsd:string
@prefix ex: <http://example.org/semweb#>
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>
Resource Description Framework (RDF):
Extending triples / syntactic sugar
entity1
predicate1
<entity1> <predicate1> <entity2> ,
<entity3> .
<entity2> <predicate2> <entity4> ;
<predicate3> <entity5> ;
<predicate4> [ <predicate5> <entity6> ] .
entity3
predicate1
entity2
predicate2
entity4
entity5
predicate3
[ <predicate5>
<entity6> ]
predicate4
Resource Description Framework Schema (RDFS)
| RDF | RDF Schema |
properties | type value first rest subject predicate object | subClassOf subPropertyOf domain range member label comment seeAlso isDefinedBy |
classes | langString HTML XMLLiteral Property Statement Bad Seq Alt List | Resource Literal Class Datatype Container ContainerMembershipProperty |
Web Ontology Language (OWL)
https://www.w3.org/TR/owl2-overview/
most important vocabulary for the conception of semantically expressive/rich ontologies
extends RDF/RDFS by complex concepts that enable logical operations of varying degrees
comes in various flavours (Lite, Description Logic DL, Full)
owl:sameAs; owl:disjointWith
Web Ontology Language (OWL)
value and cardinality restrictions/constraints
owl:someValuesFrom ("not zero"), owl:allValuesFrom (ALL), owl:hasValue
owl:minCardinality (MIN), owl:maxCardinality (MAX)
logical operators
owl:intersectionOf (AND), owl:unionOf (OR)
:WindInstrument rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf (
:Instrument [
rdf:type owl:Restriction ;
owl:onProperty :soundsBy ;
owl:allValuesFrom :Air
]
) ;
rdf:type owl:Class .
] .
Translated with www.DeepL.com/Translator
Summary
URIs (globally unique identifiers), RDF (“grammar”), RDFS (basic concepts), OWL (complex logic)
triple structure: <subject> <predicate> <object> .
with extensions (blank nodes, literals, syntactic sugar)
(set of triples = RDF Graph)
completely based on URI’s (that can be shortened by prefixing namespaces)
<http://example.org/semweb#subject>
<http://example.org/semweb#predicate> <http://example.org/semweb#object> .
Exercise 2: Use the SemLab editor to convert your work metadata to RDF
Ontologies, triplestores & SPARQL
To query data, we have to know
how and where our data is stored
Ontologies: definition
„An ontology is a formal, explicit specification of a shared conceptualisation.“
Studer, Rudi; Benjamins, Richard; Fensel, Dieter: „Knowledge Engineering: Principles and Methods“, in: Data & Knowledge Engineering 25/1–2 (1998), pp. 161–197, here p. 184
following:
Gruber, Thomas: „A Translation Approach to Portable Ontology Specifications“, in: Knowledge Acquisition 5/2 (1993), pp. 199–220, here p. 199
Bottom: Earliest attested version of the „Scutum Fidei“ diagram by Petrus of Poitiers, about 1210 (British Library, Cotton Faustina manuscript B. VII, folio 42v)
(Source: PetrusPictaviensis CottonFaustinaBVII-folio42v ScutumFidei early13thc.jpg)
Left: OWL model of the „Scutum fidei“ visualised as graph
(Source: generated with WebVowl 1.1.1: http://visualdataweb.de/webvowl/#file=shieldoftrinity.owl, 2018. CC-BY-SA 4.0)
Ontologies: ways of classification
own graphic following:
Guarino, Nicola: „Formal Ontology and Information Systems“, in: Proceedings of FOIS (1998), pp. 3–15, here p. 9
Ontologies: existing models
LODstats
Linked Open Vocabularies
(http://lov.okfn.org/dataset/lov/) →
Open Metadata Registry
(http://metadataregistry.org/)
Life time saver(!): prefix.cc
Ontologies: existing models
possibly most used, since oldest:
Friend-Of-A-Friend (FOAF)
top-level ontologies:
Ontologies of the Dublin Core Metadata Initiative (DCMI)
http://dublincore.org/specifications/
Simple Knowledge Organisation System (SKOS)
https://www.w3.org/TR/2009/REC-skos-reference-20090818/
Person, Organization, Document
name, knows, homepage
Agent, FileFormat, LicenseDocument
creator, contributor, publisher
description, rights, title, source
Concept, Collection
note, related,
exactMatch, closeMatch, broadMatch
Ontologies: existing models for CHO (CIDOC CRM)
broad community
high expressiveness for cultural heritage objects
standardized as ISO norm
(ISO 21127:2006
resp. 21127:2014)
event-based approach focussing on processes rather than objects
Source: http://www.cidoc-crm.org/sites/default/files/CIDOC-501.PNG
Ontologies: existing models for CHO (CIDOC CRM)
Source: http://www.cidoc-crm.org/collaborations
Ontologies: existing models for CHO (CIDOC CRMinf)
Source: Anton Webern Gesamtausgabe, 2019, following: Stephen Stead: CRMinf: the Argumentation Model, 2015. © CIDOC CRM, 2015. CC-BY 4.0
Video recording: Stephen Stead, CRMinf: the Argumentation Model. Presentation at the OeRC, Oxford, 2015. © CIDOC CRM, 2015. CC-BY 4.0
Ontologies: existing models for CHO (Europeana)
https://pro.europeana.eu/resources/standardization-tools/edm-documentation
<aggregation> concept
fundamental approach for integration of heterogeneous data sources and providers
aggregated over 40.000 objects from MIMO (Musical Instrument Museums Online)
Source: https://pro.europeana.eu/page/mimo-edm
Ontologies: existing models for music (MO)
Music ontology: http://purl.org/ontology/mo → see first session
Ontologies: existing models for music (MusicOWL)
Music Score Ontology: http://linkeddata.uni-muenster.de/ontology/musicscore/
Source: Own graphic, following: Jim Jones, Kleber Tertuliano, Diego de Siqueira Braga & Tomi Kauppinen. 2017. “MusicOWL. The Music Score Ontology”, in: Proceedings of the International Conference on Web Intelligence (WI '17), pp. 1222–1229, here p. 1224
Ontologies: existing models for music (DoReMus)
DoReMus ontology: https://github.com/DOREMUS-ANR/doremus-ontology
Source: https://www.doremus.org/?page_id=30
Ontologies: existing models for music (DoReMus)
Source: https://raw.githubusercontent.com/DOREMUS-ANR/doremus-papers/master/kcap2017/tutorial/figs/schema_2.png
DoReMus
Ontologies: existing models for music (DoReMus)
F14 Individual Work
F15 Complex Work
F22 Self-Contained Expression
F4 Manifestation Singleton
F28 Expression Creation
R10 has member
R9 is realised in
P148 has component of
P148 has component of
R19 created a realisation of
R17 created
R18 created
P128 is carried by
F15 Complex Work
F15 Complex Work
F14 Individual Work
F22 Self-Contained Expression
F28 Expression Creation
R10 has member
R9 is realised in
R19 created a realisation of
R17 created
F14 Individual Work
F22 Self-Contained Expression
F28 Expression Creation
R10 has member
R9 is realised in
R19 created a realisation of
R17 created
Event
MusicalWork
MusicalExpression
MusicalManifestation
Agent
P14 carried out by
P9 consists of
E7 Activity
E21 Person
Triplestores
set of triples = RDF Graph
is stored, managed and processed in specialized graph databases, so-called triplestores
overview of existing triplestores and the approximate amount of processable triples →
SPARQL Protocol and RDF Query Language (SPARQL)
defines a standardized query language, transfer protocol for search queries and results as well as an XML structure for the reproduction of search results
allows complex queries and manipulations of data represented and structured in RDF
based on graph matching
SPARQL endpoints = processable access points to RDF data sets
Overview at: https://www.w3.org/wiki/SparqlEndpoints
Translated with www.DeepL.com/Translator
SPARQL:
Query syntax
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf:<http://xmlns.com/foaf/0.1/>
SELECT DISTINCT * # * shortcut for all bound vars (here: ?who & ?name)
# DISTINCT removes duplicates from results
WHERE {
[] a foaf:Person ; foaf:name “Johann Seb. Bach” ;
owl:sameAs ?id .# “a” = shortcut for rdf:type
}
LIMIT 10
prefixes
query type section with variable(s)
SELECT, CONSTRUCT, ASK, DESCRIBE
query pattern clause with …
triple(s) to match
query modifier(s)
ORDER BY, GROUP BY
LIMIT
foaf:
Person
?who
?name
Exercise 3: Explore different SPARQL Endpoints in groups of 4 or 5
DoReMus [http://data.doremus.org/sparql]
RISM [https://opac.rism.info/index.php?id=14]
SLICKMEM [https://slickmem.linkedmusic.org]
JazzCats [http://cdhr-linkeddata.anu.edu.au/jazzcats-sparql/sparql]
MusicOWL [http://linkeddata.uni-muenster.de:7200/]
4. Interlinking datasets
Identifiers, authority, and alignment
“Josquin des Prez (French: [ʒɔskɛ̃ depʁe]; c. 1450/1455 – 27 August 1521), often referred to simply as Josquin, was a Franco-Flemish composer of the Renaissance …”
1450-1-1
1521-8-27
male
“Desprez is a crater on Mercury. It has a diameter of 50 kilometers. Its name was adopted by the International Astronomical Union in 1979. Desprez is named for the French composer Josquin des Prez, who lived from 1440 to 1521.”
1450
1521
1450p-27.08.1521
Condé-sur-l'Escaut
De ce bocage l'épais feuillage
Musettes
“Josquin des Prez (French: [ʒɔskɛ̃ depʁe]; c. 1450/1455 – 27 August 1521), often referred to simply as Josquin, was a Franco-Flemish composer of the Renaissance …”
dbp:eponym (of)
1450-1-1
1521-8-27
male
“Desprez is a crater on Mercury. It has a diameter of 50 kilometers. Its name was adopted by the International Astronomical Union in 1979. Desprez is named for the French composer Josquin des Prez, who lived from 1440 to 1521.”
How do we match these Josquins?
Name?
De Pres, Deprès, Josquin, Deprez, Josquin, Des Prés, Josquin, Des Près, Josse, Des Prez, Després, Josquin, Desprez, Josquin, Desprez, Josse, Du Pres, Dupré, Josquin, Gossequin des Pres, Ioschinus de Pratis, Ioschinus de Prattis, Iuschino, Jodocus [de Prato], Jodocus [Pratensis], Jodocus a Prato, Jodocus de Pratis, Jöskin, Josquin [Deprez], Josquin [des Pres], Josquin [des Prez], Josquin d'Ascanio, Josquin Dascanio, Josquin des Prés, Josse [des Prés], Josse Desprez, Jossequin des Pres, Jossequin Lebloitte dit Desprez, Judocus de Pratis, Judocus des Pres, Juschino, Praetensis, Jodici, Prés, Josquin D., Pres, Josquin de, Prés, Josquin des, Prez, ...
Contextual cues?
1450
1521
Condé-sur-l'Escaut
...what, no authority?
Source: Linked Open Data at BVMC https://upload.wikimedia.org/wikipedia/commons/f/f6/Linked-Open-Data-BVMC.png (Gustavo.candela [CC BY-SA 4.0]
Authority files
Regional:
e.g. Gemeinsame Normdatei (GND)
Organisational:
e.g. RISM
Crowd-sourced:
e.g. MusicBrainz
International
e.g. Virtual International Authority File (VIAF)
International Standard Name Identifier (ISNI)
Bibliothèque nationale de France
owl:sameAs, skos:exactMatch, and friends…
— good enough?
Error,
ambiguity,
scholarly dispute,
algorithmic imprecision...
Similarity ontology
rism:pe20000367
sim:method
… alignment method...
sim:weight
score
a sim:Similarity
sim:element
sim:element
a sim:Similarity
Oasis
The Beatles
sim:subject
sim:object
owl:sameAs
dbr:Josquin_des_Prez
SALT match chains
Federated query combining 4 data endpoints (DBPEDIA, RISM, DOREMUS, SLICKMEM)
5. Linking into MEI
Addressability, Web Annotations, and the Music Encoding and Linked Data (MELD) framework
Linking out of MEI
Addressable score encodings
Web Annotations
anno1
body
target
oa:hasBody
oa:hasTarget
“This section is particularly tricky, potentially requiring alternative fingering ...”
skos:broader
...related (somehow)...
ex:cueAudio
oa:motivatedBy
oa:motivatedBy
oa:linking
oa:describing
myMEI.mei#beam-L24F2
myAudio.mp3#t=17.024
anno2
FRBR Model
Functional
Requirements for
Bibliographic
Records
Work
Expression
Manifestation
Item
MEI
realization (of)
embodiment (of)
exemplar (of)
Expression
MEI
Manifestation
embodiment (of)
Score
PublishedScore
published_as
MusicalWork
Composition
Arrangement
Movement
Sound
Signal
Record
A printed score
A physical CD
A Spotify stream
Arranger
Engineer
Conductor
Performer
MusicArtist
Publisher
Performance
Recording
compose
produced_work
movement
arrangement
of
product
performance_of
produced
sound
produced_signal
recorded_in
agent
recorded_as
published_as
available_as
publisher
available_as
conducted
performed
engineer
Event
MusicalWork
MusicalExpression
MusicalManifestation
MusicalItem
Agent
Segment Ontology
Score
PublishedScore
published_as
so:onSegmentLine
Event
MusicalWork
MusicalExpression
MusicalManifestation
MusicalItem
Agent
so:Segment
meld:segments
so:SegmentLine
so:onSegmentLine
frbr:embodiment
rdf:Bag
myMEI.mei#note3
myMEI.mei#measure2
myMEI.mei#section1
rdfs:member
frbr:partOf
frbr:embodiment
rdf:Bag
frbr:embodiment
rdf:Bag
so:segmentAfter
so:segmentBefore
so:Segment
so:Segment
so:segmentBefore
so:segmentAfter
Encoding Interactivity
...demo…?
“Towards Richer Online Music Public-domain Archives: Providing enriched access to classical music encodings”
Tomorrow at 10am!
David M. Weigl, London, 5. April 2019
Exercise 5: Create Web Annotations to highlight RISM incipits from SPARQL endpoint
6. Joint Session
Linked Data and Music Encodings
Summary of the Day
FRBR, MEI, and the Music Ontology
RDF, URIs, Triples and Turtle
entity1
predicate1
entity3
predicate1
entity2
predicate2
entity4
entity5
predicate3
[ <predicate5>
<entity6> ]
predicate4
Ontologies, Triplestores & SPARQL
DoReMus [http://data.doremus.org/sparql]
RISM [https://opac.rism.info/index.php?id=14]
SLICKMEM [https://slickmem.linkedmusic.org]
JazzCats [http://cdhr-linkeddata.anu.edu.au/jazzcats-sparql/sparql]
MusicOWL [http://linkeddata.uni-muenster.de:7200/]
Identifiers, authority, and alignment
8''CFE/q8E4D8C8.F6Gq8F8E/q8E8DC
owl:sameAs
Addressability, Web Annotations, and MELD
oa:hasTarget
“This section is particularly tricky, potentially requiring alternative fingering ...”
oa:describing
oa:motivatedBy
myMEI.mei#beam-L24F2
anno2