Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

OWL Guidelines

The following guidelines include basic naming guidance unless there are known/expected names that practitioners in the domain would expect to see.

Ontologies

Namespaces

The following are the minimum set of namespaces required in the ontologies defined in this book.

NameprefixURL
RDFrdf<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
RDF Schemardfs<http://www.w3.org/2000/01/rdf-schema#>
XML Schema.xsd<http://www.w3.org/2000/01/rdf-schema#>
OWLowl<http://www.w3.org/2002/07/owl#>
SKOSskos<http://www.w3.org/2004/02/skos/core#>
Dublin Coredcterms<http://purl.org/dc/terms/>

Minimum Required Namespaces

Ontology Predicates

The following are the expected predicates expected on all owl:Ontology resources.

NameRequiredValue / Purpose
rdf:type / ayesAt least owl:Ontology , maybe skos:ConceptScheme
owl:versionIRIyesA version-specific IRI representing the version-distinct resource.
owl:versionInfoyesUsed to attach the version identifier to this version-distinct resource.
owl:backwardCompatibleWithnoTBD
owl:importsnoShould import SKOS.
skos:prefLabelyesPrimary label/name for this class.
skos:altLabelnoAlternate label/names for this class.
dct:creatornoTBD (also, editor, contributor)
dct:titlenoTBD
dct:descriptionnoInformal description of this class.

Expected Ontology Predicates

Notes:

  1. The version IRI path is constructed with the template v/{year}/{month}/{day}/{domain}/, where the date is the release date for the ontology.
  2. The version info string is constructed with the template v{year}-{month}-{day}, which matches the date in the version IRI.
  3. Validation must ensure that any concept referenced by skos:hasTopConcept is a member of this ontology (our own constraint) and has the predicate skos:inScheme referencing this ontology.

Ontology Naming

  1. Class Names: UpperCamelCase
  2. Labels: Upper Camel Case
ex:FoundationalThings a owl:Ontology ;
  skos:prefLabel "Foundational Things" .

Example Ontology

##### Dependency Namespace Mapping ........................................##### 
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:     <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix skos:    <http://www.w3.org/2004/02/skos/core#> .
@prefix dcterms: <http://purl.org/dc/terms/> .

##### Setup self, namespace and base .....................................##### 
@prefix :        <https://ceco.one/v/2026/06/01/foundation/> .
@base            <https://ceco.one/v/2026/06/01/foundation/> .

:
  ##### OWL Ontology Type and Version ....................................##### 
  a owl:Ontology ;
  owl:versionIRI <https://ceco.one/v/2026/06/01/foundation/> ;
  owl:versionInfo "v2026-06-01" ;
  
  ##### Labels ...........................................................#####
  skos:prefLabel  "CeCO Foundation" ;
  dcterms:creator "Simon Johnston <johnstonskj@gmail.com>" ;
  dcterms:title   "Common eCommerce Ontology (CeCO) Foundation Layer"@en ;
  rdfs:seeAlso    <https://simonkjohnston.life/CeCO/foundation/index.html> ;
 
  ##### Import any necessary Ontologies here .............................#####
  owl:imports     <http://www.w3.org/2004/02/skos/core> ;
  owl:imports     <http://purl.org/dc/terms/> .

Classes

Class Predicates

The following are the expected predicates expected on all rdfs:Class resources.

NameRequiredValue / Purpose
rdf:type / ayesAt least owl:Class.
rdfs:subClassOfnoRequired if this has one or more parent classes.
owl:disjointWithnoDenotes one or more classes this class is disjoint with.
skos:prefLabelyesPrimary label/name for this class.
skos:altLabelnoAlternate label/names for this class.
skos:definitionyesDefinition of this class (precise/concise as possible).
dcterms:descriptionnoInformal description of this class.
skos:examplenoOne or more illustrative examples.

Expected Class Predicates

Class Naming

  1. Class Names: UpperCamelCase
  2. Labels: Sentence cased
:FoundationalThing a owl:Class ;
  skos:prefLabel "Foundational thing" .

Example Class

:Reference
  ##### Class Definition .................................................#####
  a owl:Class ;
  rdfs:subClassOf fnd:Thing ;
  owl:disjointWith fnd:Referent ;
  
  ##### Labels and Definition ............................................#####
  skos:prefLabel "Reference"@en ;
  skos:definition 
    "A label used to *refer to a thing*, distinct from a *thing* itself."@en .

Properties

Property Predicates

The following are the expected predicates expected on all owl:ObjectProperty resources.

NameRequiredValue / Purpose
rdf:type / ayesAt least owl:ObjectProperty.
rdfs:subPropertyOfnoRequired if this has one or more parent properties.
owl:inverseOfnoDenotes another property this property is the inverse of.
skos:prefLabelyesPrimary label/name for this property.
skos:altLabelnoAlternate label/names for this property.
skos:definitionyesDefinition of this property (precise/concise as possible).
dcterms:descriptionnoInformal description of this property.
skos:examplenoOne or more illustrative examples.

Expected Property Predicates

Property Naming

  1. Property Names: lowerCamelCase
  2. Labels: all lower case
:foundationalRelation a owl:ObjectProperty ;
  skos:prefLabel "foundational relation" .

Example Property

:aPartyTo 
  ##### Class Definition .................................................#####
  a owl:ObjectProperty ;
  owl:inverseOf :includesParty ;
  rdfs:domain fnd:Party ;
  rdfs:range fnd:Agreement ;
  
  ##### Labels and Definition ............................................#####
  skos:prefLabel "a party to"@en ;
  skos:definition 
    "Denotes that this party plays a *rôle* within the related agreement."@en .