0 © fujitsu limited 2014 linked open vocabularies – the vision and the reality pierre-yves...
TRANSCRIPT
1 © FUJITSU LIMITED 2014
Linked Open Vocabularies – the vision and the reality
Pierre-Yves VandenbusscheLead ResearcherFujitsu Ireland
3 © FUJITSU LIMITED 2014
Focus is on linking instances Direct benefit for end applications
(data mashup, knowledge graph, etc.)
Link type owl:sameAs (23.000k) skos:closeMatch (380k) skos:exactMatch (150k) skos:relatedMatch (125k) skos:broadMatch (7k) skos:narrowMatch (1k)
Linked Open Data
Source: http://stats.lod2.eu/
Source: http://lod-cloud.net
4 © FUJITSU LIMITED 2014
Focus is on linking schema elements Facilitates data linkage Enables multi vocabularies
ontology design
Link type (% of vocabularies in LOV with this relationship) voaf:metadataVoc (87%) voaf:specializes (55%) voaf:extends (51%) voaf:hasEquivalences With (15%) voaf:generalizes (6%) voaf:hasDisjunctionsWith (3%)
Linked Open Vocabularies
6 © FUJITSU LIMITED 2014
Towards a Linked Open Vocabularies ecosystem
History Started 2011-Q1 (Initially a deliverable of Datalift project :
http://datalift.org) 2012 : Growing interest beyond the initial scope
Migration to OKFN since July 2012 : http://lov.okfn.org
Status as of June 2014 440 vocabularies and counting 429 agents involved (342 foaf:Person and 87 foaf:Organization) Continuous feedback from the community (subscribe to the
Google+ community)
7 © FUJITSU LIMITED 2014
Towards a Linked Open Vocabularies ecosystem
LOV Home : http://lov.okfn.org LOV-Search : http://lov.okfn.org/dataset/lov/search/ LOV-Suggest : http://lov.okfn.org/dataset/lov/suggest/ LOV-Stats : http://lov.okfn.org/dataset/lov/stats/ LOV-API : http://lov.okfn.org/dataset/lov/apidoc/ LOV-Bot : Daily or on-demand scan of vocabularies LOV-Edit : Administration and curation back-office SPARQL endpoint(s) / Dump
Endpoint: http://lov.okfn.org/endpoint/lov_aggregator Nquads: http://lov.okfn.org/dataset/lov/agg/lov_aggregator.nq.zip
8 © FUJITSU LIMITED 2014
Towards a Linked Open Vocabularies ecosystem
Rich metadata
Relations with other
vocabularies
Versions and timeline
Source: http://lov.okfn.org/dataset/lov/details/vocabulary_org.html
Usage in linked data
10 © FUJITSU LIMITED 2014
Before linking your vocabularies
Pros Maximising the probability that data can be consumed by applications
without requiring further pre-processing of the data or modification of the application
Facilitating the creation of links between different datasets entities using same or related types/properties.
Easing data understanding by linking to already well known vocabularies
Cons Meaning Dependency to external specifications beyond our control and
with unknown futures. Meaningfulness of linkage between two models with different intentions
11 © FUJITSU LIMITED 2014
Vocabulary linkage
Source: http://lov.okfn.org/vocab/voaf/
<http://purl.org/vocommons/voaf> dc:modified “2013-05-24”^^xsd:Date
voaf:metadataVocmetadata vocabulary - Indicates that the subject vocabulary uses the object vocabulary in metadata at vocabulary or element level
CONSTRUCT{ ?vocab1 voaf:metadataVoc ?vocab2}WHERE{ ?elem1 ?elem2 ?o. ?elem1 rdfs:isDefinedBy ?vocab1. ?vocab1 a voaf:Vocabulary. ?elem2 rdfs:isDefinedBy ?vocab2. ?vocab2 a voaf:Vocabulary. FILTER(?vocab1!=?vocab2)}
12 © FUJITSU LIMITED 2014
Vocabulary linkage
voaf:extendsextends - Indicates that the subject vocabulary extends the expressivity of the object vocabulary by declaring subsumption relationships, using object vocabulary class as domain or range of a subject vocabulary property, defining local restrictions etc ...
CONSTRUCT{ ?vocab1 voaf:extends ?vocab2}WHERE{{?elem1 owl:inverseOf ?elem2. FILTER(!isBlank(?elem2))} UNION{?elem1 rdfs:domain ?elem2. FILTER(!isBlank(?elem2))} UNION{?elem1 rdfs:range ?elem2. FILTER(!isBlank(?elem2))} ?elem1 rdfs:isDefinedBy ?vocab1. ?vocab1 a voaf:Vocabulary. ?elem2 rdfs:isDefinedBy ?vocab2. ?vocab2 a voaf:Vocabulary. FILTER(?vocab1!=?vocab2)}
mo:biography rdfs:range foaf:Document
13 © FUJITSU LIMITED 2014
Vocabulary linkage
voaf:specializesspecializes - Indicates that the subject vocabulary defines some subclasses or subproperties of the object vocabulary, or local restrictions on those.
CONSTRUCT{ ?vocab1 voaf:specializes ?vocab2}WHERE{ {?elem1 rdfs:subPropertyOf ?elem2. FILTER(!isBlank(?elem2))} UNION{?elem1 rdfs:subClassOf ?elem2. FILTER(!isBlank(?elem2))} UNION{?elem1 skos:broadMatch ?elem2. FILTER(!isBlank(?elem2))} ?elem1 rdfs:isDefinedBy ?vocab1. ?vocab1 a voaf:Vocabulary. ?elem2 rdfs:isDefinedBy ?vocab2. ?vocab2 a voaf:Vocabulary. FILTER(?vocab1!=?vocab2)}
cgov:fullTimeEquivalentSalary rdfs:subPropertyOf org:remuneration
14 © FUJITSU LIMITED 2014
Vocabulary linkage
voaf:generalizesgeneralizes - Indicates that the subject vocabulary generalizes by some superclasses or superproperties the object vocabulary.
CONSTRUCT{ ?vocab1 voaf:generalizes ?vocab2}WHERE{ {?elem1 skos:narrowMatch ?elem2. FILTER(!isBlank(?elem2))} UNION{?elem2 rdfs:subPropertyOf ?elem1.} UNION{?elem1 a owl:Class. ?elem1 owl:unionOf ?union. ?union rdf:first ?elem2.} UNION{ […]} FILTER(!isBlank(?elem2)) ?elem1 rdfs:isDefinedBy ?vocab1. ?vocab1 a voaf:Vocabulary. ?elem2 rdfs:isDefinedBy ?vocab2. ?vocab2 a voaf:Vocabulary. FILTER(?vocab1!=?vocab2)}
ldr:RightsExpression skos:narrowMatch cc:License
15 © FUJITSU LIMITED 2014
How to link two vocabularies
voaf:hasEquivalencesWithhas equivalences with - Indicates that the subject vocabulary declares some equivalent classes or properties with the object vocabulary.
CONSTRUCT{ ?vocab1 voaf:hasEquivalencesWith ?vocab2}WHERE{ {?elem1 owl:equivalentProperty ?elem2.} UNION{?elem1 owl:sameAs ?elem2.} UNION{?elem1 owl:equivalentClass ?elem2.} UNION{?elem2 owl:equivalentProperty ?elem1.} UNION{?elem2 owl:equivalentClass ?elem1.} UNION{?elem1 skos:exactMatch ?elem2.} UNION{?elem2 skos:exactMatch ?elem1.} FILTER(!isBlank(?elem2)) ?elem1 rdfs:isDefinedBy ?vocab1. ?vocab1 a voaf:Vocabulary. ?elem2 rdfs:isDefinedBy ?vocab2. ?vocab2 a voaf:Vocabulary. FILTER(?vocab1!=?vocab2)}
bio:child owl:equivalentProperty rel:parentOf
16 © FUJITSU LIMITED 2014
Vocabulary linkage
voaf:hasDisjunctionsWithhas disjunctions with - Indicates that the subject vocabulary declares some disjoint classes with the object vocabulary.
CONSTRUCT{ ?vocab1 voaf:hasDisjunctionsWith ?vocab2}WHERE{ ?elem1 owl:disjointWith ?elem2. FILTER(!isBlank(?elem2)) ?elem1 rdfs:isDefinedBy ?vocab1. ?vocab1 a voaf:Vocabulary. ?elem2 rdfs:isDefinedBy ?vocab2. ?vocab2 a voaf:Vocabulary. FILTER(?vocab1!=?vocab2)}
skosxl:Label owl:disjointWith skos:Concept
17 © FUJITSU LIMITED 2014
Maintenance cost of links in a distributed system Sync with new version in external vocabularies
Find existing vocabularies / concept schemes
Map vocabularies Handle language heterogeneity
Discussion