External classes and SWO classes both have natural language definitions, but are handled slightly differently. Examples of usage of any class, whether internal or external, should not go in the definition itself, but placed in an example of usage annotation (IAO_0000112).
Defining External Classes
Generally, external classes already have definitions. In these cases, we should retain the original definitions to show SWO users the imported ontology’s intended meaning. These definitions are marked, as would be expected, with the IAO definition annotation and the source of these definitions is labelled using the IAO definition source annotation. If the imported term is high level and used by more than one section of SWO, the imported definition is stored within swo_core.owl. An example of an imported definition can be seen for IAO_0000030, information content entity within swo_core.owl:
<obo:IAO_0000115>An information content entity is an entity that is generically dependent on some artifact and stands in relation of aboutness to some entity.</obo:IAO_0000115>
SWO editors often wish to provide their own definition for external terms which provides more context for how the term is used within this ontology. In such cases an annotation property, SWO definition (SWO_0000144), is added to a second definition annotation. The SWO-specific definition is stored in the SWO file where the concept is modelled most fully. For example, the official definition for IAO algorithm (IAO_0000064) is stored within swo_core.owl, while the SWO-specific annotation is within swo_algorithm.owl:
<!-- http://purl.obolibrary.org/obo/IAO_0000064 --> <owl:Class rdf:about="&obo;IAO_0000064"> <rdfs:label>algorithm</rdfs:label> <rdfs:subClassOf rdf:resource="&obo;IAO_0000030"/> <obo:IAO_0000115>An algorithm is a set of instructions for performing a paticular calculation.</obo:IAO_0000115> </owl:Class> <owl:Axiom> <owl:annotatedTarget>An algorithm is a set of instructions for performing a paticular calculation.</owl:annotatedTarget> <swo2:SWO_0000144></swo2:SWO_0000144> <owl:annotatedSource rdf:resource="&obo;IAO_0000064"/> <owl:annotatedProperty rdf:resource="&obo;IAO_0000115"/> </owl:Axiom>
Below is a list of external terms that have been modified recently according to the scheme above. Existing definitions (and sometimes examples of usage via the EFO example_of_usage annotation) were copied from the external ontologies. Where no definition source was present, the appropriate value was added (e.g. definition source “IAO”):
- IAO: Information content entity IAO_0000030 (definition, definition source, example of usage), data format specification IAO_0000098 (definition, example of usage, definition source), programming language IAO_0000025 (definition source),
- BFO: Material Entity (definition source, example of usage), process (example of usage, definition source), Role (definition source, example of usage)
Some external ontology terms had their definitions within a comment rather than within a definition. The problem was fixed for the following terms:
Defining Internal Classes
Each SWO term should have a suitable natural language definition. The SWO definition annotation on the main definition annotation is not necessary in these cases, as the term originates from this ontology. Below is an example of a natural language definition in SWO:
- Knowledge representation role: A knowledge representation role is a role borne by a data format which utilizes formalisms to make complex systems easier to design and build. Knowledge representation is the field of artificial intelligence devoted to representing information about the world in a form that a computer system can utilize to solve complex tasks. (Definition source: modified from http://en.wikipedia.org/wiki/Knowledge_representation, accessed 10 February 2014)
Also this week…
- example_of_usage (http://www.ebi.ac.uk/efo/example_of_usage) was refactored to use the IAO annotation property of the same name (“example of usage”, IAO_0000112) to increase the coverage of IAO terms used for such housekeeping annotation.
- references to the namespace “swo2” were removed, as they were unnecessary and cluttering up the ontology. Reasoner ran fine after changes.