180 likes | 367 Views
Linked Open Vocabularies – the vision and the reality. Pierre-Yves Vandenbussche Lead Researcher Fujitsu Ireland. Linked Open Data / Linked Open Vocabularies. Linked Open Data. Focus is on linking instances Direct benefit for end applications (data mashup , knowledge graph, etc.)
E N D
Linked Open Vocabularies – the vision and the reality Pierre-Yves Vandenbussche Lead Researcher Fujitsu Ireland
Linked Open Data • 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) Source: http://stats.lod2.eu/ Source: http://lod-cloud.net
Linked Open Vocabularies • 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%)
Towards a Linked Open Vocabularies ecosystem • History • Started 2011-Q1 (Initially a deliverable of Dataliftproject : http://datalift.org) • 2012 : Growinginterestbeyond 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)
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
Towards a Linked Open Vocabularies ecosystem Richmetadata Usage in linked data Relations withothervocabularies Versions and timeline Source: http://lov.okfn.org/dataset/lov/details/vocabulary_org.html
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
Vocabulary linkage 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)} <http://purl.org/vocommons/voaf> dc:modified “2013-05-24”^^xsd:Date Source: http://lov.okfn.org/vocab/voaf/
Vocabulary linkage 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:biographyrdfs:rangefoaf:Document
Vocabulary linkage 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:fullTimeEquivalentSalaryrdfs:subPropertyOforg:remuneration
Vocabulary linkage 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:RightsExpressionskos:narrowMatchcc:License
How to link two vocabularies 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:childowl:equivalentPropertyrel:parentOf
Vocabulary linkage 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:Labelowl:disjointWithskos:Concept
Discussion • 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