0
SKOS Intro
Jose María Álvarez-Rodríguez
Carlos III University of Madrid
josemaria.alvarez@uc3m.es

1
Table of Contents
• SKOS Step by Step
• Appendix
– A real problem to introduce…
• Semantic Web
• RDF
• Linked Data

2
SKOS…
• Simple
• Knowledge
• Organization
• System

•
•
•
•
•
•

Thesauri
Controlled vocabularies
Classifications
Taxonomi...
Why an organization system?
• Describe:
– Concepts and
– Concept scheme

•
•
•
•

…store
…retrieve
…annotate
…link and mer...
SKOS entities
Classes or Categories
• Concept
• Concept Scheme

Properties
• Lexical Labels
• Notation
• Documentation
• S...
PROBLEM STATEMENT
“Whenever the pedal of the brake is
pressed, the car will decelerate
immediately”

6
1-VOCABULARY
“Whenever the pedal of the brake is
pressed, the car will decelerate
immediately”

7
A “Car” as a system…
Related-to

Sub-system

Automative Industry

Components of the braking system

8
2-Taxonomy
Car

Braking

…

Subsystem

Pedal

…

…

9
Step 1-Modeling Concepts in SKOS
• Create a skos:ConceptScheme
– To collect all skos:Concept in a KOS
• Create a skos:Conc...
Tip 1-URI design scheme
• Objective:
– Define an URI base
• Concept Scheme and Concepts
• <uri_base>/<project>/<system>/<i...
URI Scheme
• URIs for things should be designed to:
–
–
–
–

uniquely name the thing that they name
be in use for a long t...
Step 2-Select URIs
km-demo:car

…

km-demo:car/subsystem/braking
…

km-demo:car/subsystem/braking/pedal

13
FAQ 1-What happened if the ID contains
more than 1 word or punctuation marks?
• Concept “Pedal of the brake”
– km-demo:car...
Step 3-Create skos:Concept
km-demo:car a
skos:Concept .
km-demo:car/subsystem/braking a
skos:Concept .
km-demo:car/subsyst...
Tip 2-Define our own concepts
• Objective:
– Create our own Categories instead of using
skos:Concept

• How to:
– Define a...
New categories…
km-demo:System rdfs:subClassOf skos:Concept.
km-demo:car a

km-demo:System.

km-demo:SubSystem rdfs:subCla...
Step 4-Add Authoring properties to
skos:Concept
jose-foaf: http://www.josemalvarez.es/foaf.rdf#.

km-demo:car a km-demo:Sy...
Tip 3-Link to existing vocabularies
• Objective:
– Reuse existing data and definitions to enrich concepts.

• How to:
– Tr...
Step 5-Add Labeling properties to
skos:Concept
km-demo:car a km-demo:System ;
rdfs:label “Car”@en;
skos:prefLabel “Car”@en...
Tip 4-Use 1 preferred Label
• Objective:
– No two concepts should have the same preferred Label
in a given language.
– Con...
Tip 5-Use a rdfs:label
• Objective:
– Label all RDF resources

• How to:
– Define a rdfs:label per RDF resource
km-demo:ca...
Step 6-Add notation properties to
skos:Concept
km-demo:car a km-demo:System ;
skos:notation "c1"^^xsd:string ;
dcterms:sub...
Tip 6-Create my own notation
property
• Objective:
– I want to specialize some notation property
• E.g. Some property to i...
Step 7-Add documentation properties
to skos:Concept
km-demo:car a km-demo:System ;
skos:changeNote
"An example of change n...
Tip 7-Select hierarchy properties
• Objective:
– I want to define semantic relationships to create an
hierarchy

• How to:...
Step 8-Add semantic properties to
skos:Concept
km-demo:car a km-demo:System ;
skos:narrower
km-demo:car/subsystem/braking....
Tip 8-Create my own related
property
• Objective:
– I want to specialize some related property
• E.g. Some property to lin...
Step 8.1-Using related…
km-demo:Automative a skos:Concept;
…
.
km-demo:car a km-demo:System ;
km-demo:related-to
km-demo:A...
Tip 9-Part-of property
• Objective:
– A broader property can be interpreted as a “part-of” relationship
– The first SKOS d...
Step 8.2-Using part-of…

km-demo:car/subsystem/braking/pedal
a km-demo:Component ;
km-demo:part-of
km-demo:car/subsystem/b...
Step 9-Add mapping properties to
skos:Concept
km-demo2:http://http://thereusecompany/km/demo2/.
dbpedia-res:http://dbpedia...
Step 10-Add skos:Concept to a
Concept Scheme
km-demo:car skos:inScheme
<http://thereusecompany/km/demo/ds> .
km-demo:car/s...
Step 11-Describe the concept scheme
<http://thereusecompany/km/demo/1381307095/ds> a
void:Dataset , skos:ConceptScheme ;
r...
A SKOS-based “Car”
km-demo2:http://http://thereusecompany/km/demo2/.
dbpedia-res:http://dbpedia.org/resource/

<http://the...
A SKOS-based “Braking” system
km-demo:car/subsystem/braking a km-demo:SubSystem ;
…
skos:inScheme <http://thereusecompany/...
SKOS Concept Template
<base_uri>/km/<project>/<timestamp>/<concept_id>
<concept_id> :: c[0-9]+
a skos:Concept ;
#---------...
SKOS Benefits
• A concept-oriented model
• RDF-based
– a common and shared data model

•
•
•
•
•
•
•

Crucial contribution...
SKOS is being used…
• Most of the semantic web-based vocabularies
– E.g. The RDF Data Cube Vocabulary
• Porting the SDMX s...
References
• http://www.w3.org/TR/skos-reference/
• http://www.iskouk.org/presentations/isaac_2107200
8.pdf
• http://www.w...
Upcoming SlideShare
Loading in...5
×

SKOS intro

496

Published on

A SKOS intro

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
496
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "SKOS intro"

  1. 1. SKOS Intro Jose María Álvarez-Rodríguez Carlos III University of Madrid josemaria.alvarez@uc3m.es 1
  2. 2. Table of Contents • SKOS Step by Step • Appendix – A real problem to introduce… • Semantic Web • RDF • Linked Data 2
  3. 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. 4. Why an organization system? • Describe: – Concepts and – Concept scheme • • • • …store …retrieve …annotate …link and merge – …with existing data 4
  5. 5. SKOS entities Classes or Categories • Concept • Concept Scheme Properties • Lexical Labels • Notation • Documentation • Semantic relations • Mapping Extensions • SKOS-XL (eXtended Labels) 5
  6. 6. PROBLEM STATEMENT “Whenever the pedal of the brake is pressed, the car will decelerate immediately” 6
  7. 7. 1-VOCABULARY “Whenever the pedal of the brake is pressed, the car will decelerate immediately” 7
  8. 8. A “Car” as a system… Related-to Sub-system Automative Industry Components of the braking system 8
  9. 9. 2-Taxonomy Car Braking … Subsystem Pedal … … 9
  10. 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. 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. 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. 13. Step 2-Select URIs km-demo:car … km-demo:car/subsystem/braking … km-demo:car/subsystem/braking/pedal 13
  14. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×