This example shows how an ordinary Org outline of individuals becomes a SKOS taxonomy on export. The concept hierarchy is expressed purely by nesting subheadings under the Individuals section, and a single drawer property — set with
:ELOT-subheading-relation: skos:broader
— instructs ELOT to assert skos:broader from every nested concept to its immediate parent, at any depth. You therefore never write the skos:broader links by hand: the outline is their single source of truth. See the Individuals section for the details.
The ontology document in OWL employs the namespace prefixes of table prefix-table.elot-skos-example ontology (http://example.org/ontology/elot-skos-example)
- Import
- http://www.w3.org/2004/02/skos/core
- rdfs:label
- Example: ELOT individuals outline into SKOS taxonomy
The individuals below form a small SKOS concept scheme. Two mechanisms build its taxonomy:
- Outline nesting. Concepts are nested as subheadings, so
Dogsits underMammal, which sits underAnimal. - The =:ELOT-subheading-relation:= property. Setting
:ELOT-subheading-relation: skos:broaderon the
Conceptwrapper heading makes ELOT emit, on export, a description-list axiomFacts: skos:broader <immediate-parent>for every concept nested beneath it. The relation is inherited to any depth, and each concept always points at its immediate parent — so
Mammalgets skos:broader ex:Animal,Doggets skos:broader ex:Mammal (not ex:Animal), andPetgets skos:broader ex:Animal. The containerConceptheading is tagged:nodeclare:(it only groups its children) and gets noskos:broaderof its own; likewiseAnimal, as the top concept, has no parent to point at.
Because the outline is the single source of truth for skos:broader,
those links are not written out below — only facts that cannot be
derived from the nesting appear explicitly: labels, definitions,
skos:inScheme, the scheme’s skos:hasTopConcept, and one hand-authored
skos:related on Pet (which coexists with Pet’s automatically
generated skos:broader ex:Animal). To use a different relation for a
given subtree — say skos:narrower or skos:related — set that
value in the subtree’s own :ELOT-subheading-relation: drawer; it
overrides the inherited relation from that point downward.
The “Concept Scheme” wrapper below carries no relation property, so its member individual (ex:AnimalsScheme) is deliberately kept out of the skos:broader hierarchy.
- skos:definition
- “A controlled vocabulary for animal concepts.”@en
- skos:prefLabel
- “Animal Taxonomy Concept Scheme”@en
- Types
- skos:ConceptScheme
- Facts
- skos:hasTopConcept ex:Animal
- skos:altLabel
- “Creature”@en
- skos:definition
- “A living organism that feeds on organic matter.”@en
- skos:prefLabel
- “Animal”@en
- Types
- skos:Concept
- Facts
- skos:inScheme ex:AnimalsScheme
- skos:definition
- “Warm-blooded vertebrate animals.”@en
- skos:prefLabel
- “Mammal”@en
- Types
- skos:Concept
- Facts
- skos:inScheme ex:AnimalsScheme
- skos:altLabel
- “Canine”@en
- skos:prefLabel
- “Dog”@en
- Types
- skos:Concept
- Facts
- skos:inScheme ex:AnimalsScheme
- Facts
- skos:notation “CAN-001”
- skos:prefLabel
- “Pet”@en
- Types
- skos:Concept
- Facts
- skos:inScheme ex:AnimalsScheme
- Facts
- skos:related ex:Dog