SkosCoreGuideToc/SectionExtending/ConceptTypes
Extended Concept Types
This section describes how to extend the skos:Concept class to create more specific classes of concept.
An example of an extension of skos:Concept is below:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdfs:Class rdf:about="http://my.example.org/knowledgebase/schema#BiologicalConcept">
<rdfs:comment>A concept from the domain of biology.</rdfs:comment>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
</rdfs:Class>
</rdf:RDF>
Once this new class has been declared, it can be used as in:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:my="http://my.example.org/knowledgebase/schema#">
<my:BiologicalConcept rdf:about="http://my.example.org/knowledgebase/biology#evolution">
<skos:prefLabel>Evolution</skos:prefLabel>
<skos:scopeNote>Refers to Darwin's theory of evolution by natural selection of inherited characteristics.</skos:scopeNote>
</my:BiologicalConcept>
</rdf:RDF>
I.e. you can use the new class my:[[BiologicalConcept]] exactly as you would normally use skos:Concept.
Representing Fundamental Facets
An important use case for this type of extension is in the representation of fundamental facets within a concept scheme.
In a concept scheme ordered according to fundamental facets, each fundamental facet contains a homogeneous class of concepts, the members of which share characteristics that distinguish them from members of other classes [ref AAT].
So, for example, the Art & Architecture Thesaurus [ref] declares the following fundamental facets:
ASSOCIATED CONCEPTS PHYSICAL ATTRIBUTES STYLES AND PERIODS AGENTS ACTIVITIES MATERIALS OBJECTS
To represent fundamental facets in RDF, declare an extension of skos:Concept for each facet, for example:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdfs:Class rdf:about="http://my.example.org/knowledgebase/schema#AssociatedConcept">
<rdfs:comment>???</rdfs:comment>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
</rdfs:Class>
<rdfs:Class rdf:about="http://my.example.org/knowledgebase/schema#PhysicalAttributesConcept">
<rdfs:comment>???</rdfs:comment>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
</rdfs:Class>
<rdfs:Class rdf:about="http://my.example.org/knowledgebase/schema#StylesAndPeriodsConcept">
<rdfs:comment>???</rdfs:comment>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
</rdfs:Class>
<rdfs:Class rdf:about="http://my.example.org/knowledgebase/schema#AgentsConcept">
<rdfs:comment>???</rdfs:comment>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
</rdfs:Class>
<rdfs:Class rdf:about="http://my.example.org/knowledgebase/schema#ActivitiesConcept">
<rdfs:comment>???</rdfs:comment>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
</rdfs:Class>
<rdfs:Class rdf:about="http://my.example.org/knowledgebase/schema#MaterialsConcept">
<rdfs:comment>???</rdfs:comment>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
</rdfs:Class>
<rdfs:Class rdf:about="http://my.example.org/knowledgebase/schema#ObjectsConcept">
<rdfs:comment>???</rdfs:comment>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
</rdfs:Class>
</rdf:RDF>
Each of these new classes can be used to declare concepts, for example:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:my="http://my.example.org/knowledgebase/schema#">
<my:StylesAndPeriodsConcept rdf:about="http://my.example.org/knowledgebase/concept#prehistoric">
<skos:prefLabel>Prehistoric</skos:prefLabel>
<skos:scopeNote>Refers to the period antecedent to the first contemporary written accounts of a people. The time span for this period varies according to specific local habitation patterns and in different scholarly disciplines.</skos:scopeNote>
</my:StylesAndPeriodsConcept>
</rdf:RDF>
To support validation of your faceted concept scheme, you can use OWL to explicitly declare that a concept may not be a member of more than one fundamental facet, for example:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#">
<rdfs:Class rdf:about="http://my.example.org/knowledgebase/schema#AssociatedConcept">
<owl:disjointWith rdf:resource="http://my.example.org/knowledgebase/schema#PhysicalAttributesConcept"/>
<owl:disjointWith rdf:resource="http://my.example.org/knowledgebase/schema#StylesAndPeriodsConcept"/>
<owl:disjointWith rdf:resource="http://my.example.org/knowledgebase/schema#AgentsConcept"/>
<owl:disjointWith rdf:resource="http://my.example.org/knowledgebase/schema#ActivitiesConcept"/>
<owl:disjointWith rdf:resource="http://my.example.org/knowledgebase/schema#MaterialsConcept"/>
<owl:disjointWith rdf:resource="http://my.example.org/knowledgebase/schema#ObjectsConcept"/>
</rdfs:Class>
</rdf:RDF>
Obviously a similar declaration must be made for each of the concept classes you intend to use as a fundamental facet.