SKOS intro

  • 355 views
Uploaded on

A SKOS intro

A SKOS intro

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
355
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
5
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. SKOS Intro Jose María Álvarez-Rodríguez Carlos III University of Madrid josemaria.alvarez@uc3m.es 1
  • 2. Table of Contents • SKOS Step by Step • Appendix – A real problem to introduce… • Semantic Web • RDF • Linked Data 2
  • 3. SKOS… • Simple • Knowledge • Organization • System • • • • • • Thesauri Controlled vocabularies Classifications Taxonomies Folksonomies … • It is a domain-specific Semantic Web vocabulary • …an OWL ontologyRDF-based model 3
  • 4. Why an organization system? • Describe: – Concepts and – Concept scheme • • • • …store …retrieve …annotate …link and merge – …with existing data 4
  • 5. SKOS entities Classes or Categories • Concept • Concept Scheme Properties • Lexical Labels • Notation • Documentation • Semantic relations • Mapping Extensions • SKOS-XL (eXtended Labels) 5
  • 6. PROBLEM STATEMENT “Whenever the pedal of the brake is pressed, the car will decelerate immediately” 6
  • 7. 1-VOCABULARY “Whenever the pedal of the brake is pressed, the car will decelerate immediately” 7
  • 8. A “Car” as a system… Related-to Sub-system Automative Industry Components of the braking system 8
  • 9. 2-Taxonomy Car Braking … Subsystem Pedal … … 9
  • 10. Step 1-Modeling Concepts in SKOS • Create a skos:ConceptScheme – To collect all skos:Concept in a KOS • Create a skos:Concept for each entity 10
  • 11. Tip 1-URI design scheme • Objective: – Define an URI base • Concept Scheme and Concepts • <uri_base>/<project>/<system>/<id> • How to: • Slash vs Hash URIS • ID URIs – E.g. http://thereusecompany/km/demo/1 • Named URIs – E.g. http://thereusecompany/km/demo/car • We will use the prefix km-demo to refer to the URI http://thereusecompany/km/demo/ 11
  • 12. URI Scheme • URIs for things should be designed to: – – – – uniquely name the thing that they name be in use for a long time be short and human readable incorporate existing identifiers where available • Human-readable URIs? • Minted URIs? (Am I the owner of the domain?) – Avoid URIs such as: http://example.org/ http://patterns.dataincubator.org/book/identifier-patterns.html http://data.gov.uk/resources/uris 12
  • 13. Step 2-Select URIs km-demo:car … km-demo:car/subsystem/braking … km-demo:car/subsystem/braking/pedal 13
  • 14. FAQ 1-What happened if the ID contains more than 1 word or punctuation marks? • Concept “Pedal of the brake” – km-demo:car/subsystem/braking/pedal_of_the_brake • It could be better to use just an ID – km-demo:car/subsystem/braking/com1 14
  • 15. Step 3-Create skos:Concept km-demo:car a skos:Concept . km-demo:car/subsystem/braking a skos:Concept . km-demo:car/subsystem/braking/pedal a skos:Concept . 15
  • 16. Tip 2-Define our own concepts • Objective: – Create our own Categories instead of using skos:Concept • How to: – Define a new category rdfs:subClassOf skos:Concept 16
  • 17. New categories… km-demo:System rdfs:subClassOf skos:Concept. km-demo:car a km-demo:System. km-demo:SubSystem rdfs:subClassOf skos:Concept ; skos:broader km-demo:System. km-demo:car/subsystem/braking a km-demo:SubSystem. km-demo:Component rdfs:subClassOf skos:Concept ; skos:broader km-demo:SubSystem. km-demo:car/subsystem/braking/pedal a km-demo:Component. 17
  • 18. Step 4-Add Authoring properties to skos:Concept jose-foaf: http://www.josemalvarez.es/foaf.rdf#. km-demo:car a km-demo:System ; dcterms:author jose-foaf:me; dcterms:created “2013-10-10"^^xsd:date ; dcterms:modified "2013-10-10"^^xsd:date ;. 18
  • 19. Tip 3-Link to existing vocabularies • Objective: – Reuse existing data and definitions to enrich concepts. • How to: – Try to use widely-accepted vocabularies • • • • Dublin-Core Terms (metadata) Friend Of A Friend (people) Organizations ontology (organizations) … – Avoid the creation of vocabularies from the scratch 19
  • 20. Step 5-Add Labeling properties to skos:Concept km-demo:car a km-demo:System ; rdfs:label “Car”@en; skos:prefLabel “Car”@en; skos:prefLabel “Voiture”@fr; skos:altLabel “Motor”@en; skos:altLabel “Bus”@en; skos:altLabel “Wagon”@fr; skos:hiddenLabel “Auto-bus”@en; . Multilingual Support! 20
  • 21. Tip 4-Use 1 preferred Label • Objective: – No two concepts should have the same preferred Label in a given language. – Concept descriptor • How to: – Use just one skos:prefLabel per concept – Add more labels through skos:altLabel and skos:hiddenLabel to specify more labels Interoperability enabler 21
  • 22. Tip 5-Use a rdfs:label • Objective: – Label all RDF resources • How to: – Define a rdfs:label per RDF resource km-demo:car rdfs:label “Car”@en. http://patterns.dataincubator.org/book/label-everything.html 22
  • 23. Step 6-Add notation properties to skos:Concept km-demo:car a km-demo:System ; skos:notation "c1"^^xsd:string ; dcterms:subject "1"^^xsd:string ; km-demo:level "1";. 23
  • 24. Tip 6-Create my own notation property • Objective: – I want to specialize some notation property • E.g. Some property to indicate the level in the hierarchy • How to: – Define a new property specifying domain and range km-demo:level a owl:DatatypeProperty; rdfs:subClassOf skos:note; rdfs:label "Level in the hierarchy"@en ; rdfs:domain skos:Concept; rdfs:range xsd:int; . 24
  • 25. Step 7-Add documentation properties to skos:Concept km-demo:car a km-demo:System ; skos:changeNote "An example of change note."@EN; skos:editorialNote "An example of editorial note"@EN; skos:historyNote "An example of history note"@EN; skos:scopeNote "An example of scope note"@EN;. Multilingual Support! 25
  • 26. Tip 7-Select hierarchy properties • Objective: – I want to define semantic relationships to create an hierarchy • How to: – If non-transitive hierarchy properties are required… • skos:broader and skos:narrower – otherwise...use the transitive version… • skos:broaderTransitive and skos:narrowerTransitive – if symmetric properties are required... skos:related 26
  • 27. Step 8-Add semantic properties to skos:Concept km-demo:car a km-demo:System ; skos:narrower km-demo:car/subsystem/braking. km-demo:car/subsystem/braking a km-demo:SubSystem ; skos:narrower km-demo:car/subsystem/braking/pedal. • skos:broader properties can be inferred by a semantic web reasoner (be careful) – broader(x,y)->narrower(y,x) • Is the relation between “Braking System” and “Pedal” a broader/narrower one? maybe part-of… 27
  • 28. Tip 8-Create my own related property • Objective: – I want to specialize some related property • E.g. Some property to link concepts but asymmetric • How to: – Define a new property specifying domain, range and behavior km-demo:related-to rdfs:subClassOf skos:semanticRelation; a owl:AsymmetricObjectProperty; rdfs:label "Related but asymetric property"@en ; rdfs:domain skos:Concept; rdfs:range skos:Concept; 28 .
  • 29. Step 8.1-Using related… km-demo:Automative a skos:Concept; … . km-demo:car a km-demo:System ; km-demo:related-to km-demo:Automative; . 29
  • 30. Tip 9-Part-of property • Objective: – A broader property can be interpreted as a “part-of” relationship – The first SKOS draft spec. included “broaderPartitative” but it was finally excluded • http://www.w3.org/2004/02/skos/extensions/spec/2004-1018.html#broaderPartitive • How to: – Keep the semantics of broader relationships – Define your own property km-demo:part-of rdfs:subClassOf skos:broader; a owl:ObjectProperty; rdfs:label “Part-of relationships"@en ; rdfs:domain skos:Concept; rdfs:range skos:Concept; . 30
  • 31. Step 8.2-Using part-of… km-demo:car/subsystem/braking/pedal a km-demo:Component ; km-demo:part-of km-demo:car/subsystem/braking; . 31
  • 32. Step 9-Add mapping properties to skos:Concept km-demo2:http://http://thereusecompany/km/demo2/. dbpedia-res:http://dbpedia.org/resource/ km-demo:car a km-demo:System ; skos:closeMatch dbpedia-res:Automobile; skos:exactMatch km-demo2:otherCar; skos:broadMatch <URI>; skos:relatedMatch <URI>; . • Transversal links • Improve hierarchy browsing • Be aware of logical implications (in case of reasoning) • Try to give a confidence value • … 32
  • 33. Step 10-Add skos:Concept to a Concept Scheme km-demo:car skos:inScheme <http://thereusecompany/km/demo/ds> . km-demo:car/subsystem/braking skos:inScheme <http://thereusecompany/km/demo/ds> . km-demo:car/subsystem/braking/pedal skos:inScheme <http://thereusecompany/km/demo/ds> . 33
  • 34. Step 11-Describe the concept scheme <http://thereusecompany/km/demo/1381307095/ds> a void:Dataset , skos:ConceptScheme ; rdfs:label "Taxonomy from project Demo"@en ; dcterms:author <http://www.josemalvarez.es/foaf.rdf#me> ; dcterms:contributor km-people:JM, km-people:JuanLlorens; dcterms:description "Demo Vocabulary and Taxonomy" ; dcterms:license <http://opendatacommons.org/licenses/by/1.0/> ; dcterms:modified "2013-10-10"^^xsd:date ; dcterms:publisher km-org:TRC ; dcterms:source <http://thereusecompany/km/demo/demo.xls> ; dcterms:title "Demo Vocabulary" ; void:dataDump <http://http://thereusecompany/km/demo/1381307095/demo-1381307095.ttl> ; void:dataDump <http://http://thereusecompany/km/demo/1381307095/demo-1381307095.rdf> ; void:exampleResource <http://thereusecompany/km/demo/1381307095/car> void:uriRegexPattern "http://thereusecompany/km/demo/.+" ; void:vocabulary skos: , dcterms: , rdfs:, km-demo: ; skos:hasTopConcept <http://http://thereusecompany/km/demo/car>; foaf:homepage <http://thereusecompany.com> . 34
  • 35. A SKOS-based “Car” km-demo2:http://http://thereusecompany/km/demo2/. dbpedia-res:http://dbpedia.org/resource/ <http://thereusecompany/km/demo/1381307095/car> a km-demo:System; dcterms:author jose-foaf:me; dcterms:created “2013-10-10"^^xsd:date ; dcterms:modified "2013-10-10"^^xsd:date ;. rdfs:label “Car”@en; skos:prefLabel “Car”@en; skos:prefLabel “Voiture”@fr; skos:altLabel “Motor”@en; skos:altLabel “Bus”@en; skos:altLabel “Wagon”@fr; skos:hiddenLabel “Auto-bus”@en; skos:notation "c1"^^xsd:string ; dcterms:subject "1"^^xsd:string ; km-demo:level "1"; km-demo:related-to km-demo:Automative; skos:changeNote "An example of change note."@EN; skos:editorialNote "An example of editorial note"@EN; skos:historyNote "An example of history note"@EN; skos:scopeNote "An example of scope note"@EN;. skos:narrower km-demo:car/subsystem/braking. skos:closeMatch dbpedia-res:Automobile; skos:exactMatch km-demo2:otherCar; skos:inScheme <http://thereusecompany/km/demo/1381307095/ds>. 35
  • 36. A SKOS-based “Braking” system km-demo:car/subsystem/braking a km-demo:SubSystem ; … skos:inScheme <http://thereusecompany/km/demo/ds> . km-demo:car/subsystem/braking/pedal a km-demo:Component ; … km-demo:part-of km-demo:car/subsystem/braking; skos:inScheme <http://thereusecompany/km/demo/ds> . 36
  • 37. SKOS Concept Template <base_uri>/km/<project>/<timestamp>/<concept_id> <concept_id> :: c[0-9]+ a skos:Concept ; #----------1-Authoring properties dcterms:*---------------------dcterms:author <URI>; dcterms:created "2013-10-10"^^xsd:date ; dcterms:modified "2013-10-10"^^xsd:date ; #----------2-Lexical labels---------------------rdfs:label "Foo label"@LANG; skos:prefLabel "Foo preferred label"@LANG; skos:altLabel ”Foo alternative label"@LANG; #----------3-Documentation properties skos:changeNote "Change note"@LANG; skos:editorialNote "Editorial note"@LANG; skos:historyNote "History note"@LANG; skos:scopeNote "Scope note"@LANG; #----------4-Notation properties skos:notation "id"^^xsd:string ; dcterms:subject "id, subject,..."^^xsd:string ; km:level "1"; #----------5-Semantic and hierarchy properties # if symmetric properties are required... skos:related <URI>; # otherwise km:related <URI>; # if non-transitive hierarchy properties are required...Moreover we could only serialize one of them, the other can be inferred: skos:narrower <URI>; skos:broader <URI>; # otherwise...use the transitive version...that can also be inferred. skos:narrowerTransitive <URI>; skos:broaderTransitive <URI>; #----------6-Mapping properties skos:closeMatch|exactMatch... <URI>; #----------7-Concept Scheme skos:inScheme <URI> ; . 37
  • 38. SKOS Benefits • A concept-oriented model • RDF-based – a common and shared data model • • • • • • • Crucial contribution to interoperability A way of porting KOS to RDF Align to existing standards (ISO 25964) Lightweight reasoning Simple but powerful Extensible … 38
  • 39. SKOS is being used… • Most of the semantic web-based vocabularies – E.g. The RDF Data Cube Vocabulary • Porting the SDMX standard for statistics to RDF • Most of the semantic web-based vocabularies • To Boost the Linked Data initiative… What’s next… • SKOS-XL (eXtensions for Labels) • W3C Provenance and Trust 39
  • 40. References • http://www.w3.org/TR/skos-reference/ • http://www.iskouk.org/presentations/isaac_2107200 8.pdf • http://www.w3.org/2004/02/skos/references 40