SkosCoreGuideToc/SectionFacets

From W3C Wiki

Modelling Fundamental Facets

@@TODO what are fundamental facets (a.k.a. fundamental categories)?

@@TODO example of fundamental facets in a thesaurus (AAT).

@@TODO how to model this example in RDF using RDFS, OWL and SKOS ...

This is a description of how to model 'fundamental facets' (a.k.a. 'fundamental categories') within a thesaurus.

I'll take some facets from the AAT as an example.

For each fundamental facet in the concept scheme, define a sub-class of the skos:Concept class e.g. ...


<rdf:RDF>

   <rdfs:Class rdf:about="ObjectConcept">
      <rdfs:subClassOf rdf:about="&skos;Concept"/>
   </rdfs:Class>

   <rdfs:Class rdf:about="ProcessConcept">
      <rdfs:subClassOf rdf:about="&skos;Concept"/>
   </rdfs:Class>

   <rdfs:Class rdf:about="TimeConcept">
      <rdfs:subClassOf rdf:about="&skos;Concept"/>
   </rdfs:Class>

   <rdfs:Class rdf:about="MaterialConcept">
      <rdfs:subClassOf rdf:about="&skos;Concept"/>
   </rdfs:Class>

</rdf:RDF>


... then for each fundamental facet, define the root concept for that facet e.g. ...


<rdf:RDF>

   <aat:ObjectConcept rdf:about="RootObjectConcept">
      <skos:prefLabel>Objects</skos:prefLabel>
   </aat:ObjectConcept>

   <aat:ProcessConcept rdf:about="RootProcessConcept">
      <skos:prefLabel>Processes</skos:prefLabel>
   </aat:ProcessConcept>

   <aat:MaterialConcept rdf:about="RootMaterialConcept">
      <skos:prefLabel>Materials</skos:prefLabel>
   </aat:MaterialConcept>

   <aat:TimeConcept rdf:about="RootTimeConcept">
      <skos:prefLabel>Times</skos:prefLabel>
   </aat:TimeConcept>

</rdf:RDF>


... then define these root concepts as the top concepts for your scheme, e.g. ...


<rdf:RDF>

   <skos:ConceptScheme rdf:about="theAAT">
      <dc:title>The Art and Architecture Thesaurus</dc:title>
      <skos:hasTopConcept rdf:resource="RootObjectConcept"/> 
      <skos:hasTopConcept rdf:resource="RootProcessConcept"/> 
      <skos:hasTopConcept rdf:resource="RootMaterialConcept"/> 
      <skos:hasTopConcept rdf:resource="RootTimeConcept"/> 
   </skos:ConceptScheme>

</rdf:RDF>


Use these facet classes when describing other concepts in the scheme, e.g. ...


<rdf:RDF>

   <aat:ObjectConcept rdf:about="001">
      <skos:prefLabel>brocade</skos:prefLabel>
      <skos:related rdf:resource="007"/>
      <skos:broader rdf:resource="003"/>
   </aat:ObjectConcept>

   <aat:ObjectConcept rdf:about="003">
      <skos:prefLabel>???</skos:prefLabel>
      <skos:narrower rdf:resource="001"/>
   </aat:ObjectConcept>

   <aat:ProcessConcept rdf:about="007">
      <skos:prefLabel>brocading</skos:prefLabel>
      <skos:related rdf:resource="001"/>
   </aat:ProcessConcept>

</rdf:RDF>


Now, if you want to express the fact that no concept may be a member of more than one facet (i.e. all facets are mutually disjoint classes of concept) you can use owl, e.g. ...


<rdf:RDF>

   <rdf:Description rdf:about="ObjectConcept">
      <owl:disjointWith rdf:resource="ProcessConcept"/>
      <owl:disjointWith rdf:resource="MaterialConcept"/>
      <owl:disjointWith rdf:resource="TimeConcept"/>
   </rdf:Description>

   <rdf:Description rdf:about="ProcessConcept">
      <owl:disjointWith rdf:resource="MaterialConcept"/>
      <owl:disjointWith rdf:resource="TimeConcept"/>
   </rdf:Description>

   <rdf:Description rdf:about="MaterialConcept">
      <owl:disjointWith rdf:resource="TimeConcept"/>
   </rdf:Description>

</rdf:RDF>


The End.