All articles

An organization ontology : Final steps

The next steps in developing our ontology involve one more set of changes (linking to OPMV) and, most importantly, publishing the ontology somewhere.

These aren’t the “final” steps as far as the ontology is concerned, it will need to evolve as people gain experiences applying it and give feedback on design and naming issues. However, it does bring this series of blog postings to a good stopping point.

Linking to OPMV

Jeni Tennison pointed out that the ChangeEvent mechanism, which provides for historical traceback of organization changes, is better seen as a customization of the OPMV provenance ontology.

OPMV is a nice, lean, upper ontology for provenance. It provides a general notion of a Process that uses some set of Artifacts and generates some more Artifacts, under the control of some Agent. The idea being, as for org, that applications of the ontology should provide specialized vocabularies for their situation.

It is very easy to link the two together by modifying the ChangeEvent design to:

Class: org:ChangeEvent (subClassOf opmv:Process)
Represents an event which resulted in a major change to an organization such as a merger or complete restructuring. It is intended for situations where the resulting organization is sufficient distinct from the original organizations that it has a distinct identity and distinct URI. Extension vocabularies should define sub-classes of this to denote particular categories of event. The instant or interval at which the event occurred should be given by opmv:wasGeneratedAt, a description should be given by dct:description.
Property: org:originalOrganization (org:ChangeEvent -> org:Organization) subPropertyOf opmv:used
Indicates one or more organizations that existed before the change event. Depending on the event they may or may not have continued to exist after the event. Note that in specializing the OPMV vocabulary we are treating an org:Organization as an opmv:Artifact, which is consistent with the OPM model.
Property: org:resultingOrganization (org:ChangeEvent -> org:Organization) subPropetyOf opmv:wasGeneratedBy
Indicates the organization that resulted from the event. Note that in specializing the OPMV vocabulary we are treating an org:Organization as an opmv:Artifact, which is consistent with the OPM model.

One thing to note is that an Organization is also an opmv:Agent (since opmv:Agent is equivalent to foaf:Agent). This is very reasonable since we commonly think of Organizations controlling change processes which affect other artifacts. The usage here, where the Organization is itself subject to change, and thus an opmv:Artifact is allowed for by OPMV. Initially OPMV had Agent and Artifact as disjoint but Jun kindly updated OPMV to remove that constraint in order to support use cases like ours.

Publication

An ontology is no use until it is accessible by the people who might exploit it. For this we need:

  • a stable namespace
  • publish the ontology at the namespace
  • documentation
  • a link between the documentation the namspace

For the first two steps then Tim Berners-Lee was kind enough to offer to host the ontology within the W3C namespace. This does not imply that W3C as an organization endorses the ontology, nor that it is part of any standards process at this stage. They are simply providing a stable place for posterity.

So we have a namespace of https://www.w3.org/ns/org#

For documentation we need a standalone human readable document. I hope this series of blog postings on the evolving design has been useful but for someone using it they don’t necessarily want the historical justification just the details. That was easy to extract from these blogged design notes:

https://www.epimorphics.com/public/vocabulary/org.html

Finally, we need to make sure you can find your way between the two documents. One way to do that might be to embed the ontology into the documentation using RDFa then we could publish both human readable and machine processable representations at the same URI. That is a possible future refinement. In the meantime the simple solution is to include a reference to the documentation in the owl:Ontology resource of the ontology:

<https://www.w3.org/ns/org#>
    a owl:Ontology;
    owl:versionInfo "0.1";
    rdfs:label "Core organization ontology"@en;
    rdfs:comment "Vocabulary for describing organizational structures."@en;
    dct:created "2010-05-28"^^xsd:date;
    dct:title "Core organization ontology@en";
    dct:contributor [foaf:mbox "dave@epimorphics.com"; foaf:name "Dave Reynolds"];
    rdfs:seeAlso <https://www.epimorphics.com/public/vocabulary/org.html>;
.

The use rdfs:seeAlso for this is possibly arguable. I had thought that there was an OWL annotation property specifically for linking an Ontology resource to corresponding documentation but I can’t find it. If someone has a better suggestion of link term to use then please let me know.