IOF Annotation Property Guide V2.3
Version History
Version | Date | Comment | Lead Editor | Contributors |
|---|---|---|---|---|
1 |
| First version | @William Sobel | @Evan Wallace @tschneider @Farhad Ameri (Unlicensed) @Chris Will (Unlicensed) @Elisa Kendall @Ana Correia @Serm Kulvatunyou |
2 | 2022-10 | This version addressed a lot of experiences gained from the IOF Core V1 Beta development. | @William Sobel | @Evan Wallace @tschneider @Jim Logan @Barry Smith (Unlicensed) @Arkopaul Sarkar @Farhad Ameri (Unlicensed) @Chris Will (Unlicensed) @Stephen Kahmann @Elisa Kendall @Ana Correia @Serm Kulvatunyou @Milos Drobnjakovic (Unlicensed) @Pawel Garbacz @Melissa Weller |
2.1 | 2022-11 | Changed grouping of FOL and semi-formal axioms to use prefix. Added | @William Sobel | @Evan Wallace @tschneider @Jim Logan @Barry Smith (Unlicensed) @Arkopaul Sarkar @Farhad Ameri (Unlicensed) @Chris Will (Unlicensed) @Stephen Kahmann @Elisa Kendall @Ana Correia @Serm Kulvatunyou @Milos Drobnjakovic (Unlicensed) @Pawel Garbacz @Melissa Weller |
2.2 | 2023-02 | Fixed references to purl | @William Sobel |
|
2.3 | 2023-05 |
| @William Sobel |
|
Contents
- 1.1 Version History
- 2 Contents
- 3 Terms from Standards Used in this Document
- 4 Overview
- 4.1 Summary of Annotation Requirements
- 4.2 Ontology Annotations
- 4.3 Label
- 4.4 Natural Language
- 4.5 Primitive Term Annotations
- 4.6 Logical Annotations
- 4.7 Example Annotations
- 4.8 Source Annotations
- 4.8.1 Addressing Citations
- 4.9 Removed, Renamed, or Relocated Constructs Represented as IRI Changes
- 4.10 Notes
- 4.11 Synonyms and Abbreviations
- 5 Maturity
- 6 Prefixes and Namespaces
- 7 Appendix
Terms from Standards Used in this Document
construct: refers to an OWL class, object property, or data property
OWL Referenceentity (object): item that is perceivable or conceivable
Note 1 to entry: The terms ‘entity’ and ‘object’ are catch-all terms analogous to ‘something’. In terminology circles
[ISO/IEC 21838-1:2021(E)]particular: individual entity
Note 1 to entry: In contrast to classes or types, particulars are not exemplified or instantiated by further entities
Note 2 to entry: only relevant to first-order logic
[ISO/IEC 21838-1:2021(E)]instance: particular that instantiates some universal
Note 1 to entry: two types of particular, one XX is an instance of a universal and the other is not
Note 2 to entry: only relevant to first-order logic
[ISO/IEC 21838-1:2021(E)]individual: instance of an OWL class
OWL Referenceprimitive: expression for which no non-circular definition can be provided
Note 1 to entry: construct lacking necessary or sufficient conditions
[ISO 21838-2:2021 (E)]
Note 2 to entry: definition refers to a first-order logic definition or OWL definitionuniversal: item that is perceivable or conceivable that has indefinitely many instances
Note 1 to entry: only relevant to first-order logic
[ISO 21838-2:2021 (E)]axiom: statement that is asserted as true but which is not derivable from other statements
Note 1 to entry: Axioms may be formulated as natural language sentences or as formulae in a formal language. In the OWL community, ‘Axiom’ is used to refer to statements that say what is true in the domain that are ‘basic’ in the sense that they are not inferred from other statements.[ISO/IEC 21838-1:2021(E)]
Note 2 to entry: A statement may be a formula of first-order logic or a sentence of natural language or of the semi-formal counterpart
Overview
The IOF AnnotationVocabulary (AV) OWL file (AnnotationVocabulary) is the normative source for IOF annotation properties. It includes a superset of the annotation properties discussed in this document along with the metadata about them. This document’s purpose is to provide the requirements and instructions for authors of IOF ontologies. The AV should be imported into IOF ontologies under development to make these annotation properties available; however, since the IOF Core imports IOF AV, using AV requires no explicit owl:imports statement.
All approved ontologies MUST adhere to the following annotation requirements for all constructs.
The following rules MUST be followed when using this document; these are taken from IETF RFC 2119 (simplified):
MUST: This word means that the definition is an absolute requirement of the specification.
MUST NOT: This phrase means that the definition is an absolute prohibition of the specification.
SHOULD: This word means that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications MUST be understood and carefully weighed before choosing a different course.
SHOULD NOT: This phrase means that there may exist valid reasons in particular circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood and the case carefully weighed before implementing any behavior described with this label.
MAY: This word means that an item is truly optional. One user may choose to include the item because a particular marketplace requires it or because the vendor feels that it enhances the product, while another vendor may omit the same item.
Summary of Annotation Requirements
The following MUST be provided for all IOF ontologies for every ontology file:
MUST provide non-versioned ontology IRI (See: https://oagi.atlassian.net/wiki/spaces/IOF/pages/4532142135 )
When released, MUST provide version IRI (
owl:VersionIRI)(See: https://oagi.atlassian.net/wiki/spaces/IOF/pages/4532142135 )MUST provide label
MUST provide title
MUST provide abstract
MUST provide copyright
MUST provide license
MUST provide maturity
MUST provide a versionInfo
MUST provide changeNotes for each release.
For all constructs:
MUST provide label
MUST provide natural language definition
For classes:
If the is primitive annotation is set to
true:MUST provide a primitiveRationale
MAY provide first-order language axioms and semi-formal natural language axioms
If the is primitive annotation is set to
falseor not specified:MUST provide first-order logic definition
MUST provide semi-formal natural language definition
For properties:
MAY provide first-order language axioms and semi-formal natural language axioms
SHOULD provide example
In cases where a text annotation is needed, an American English language version of that annotation is required and MUST use the American English language tag ( xml:lang="en-US"). Spelling in American English annotations MUST conform to an American dictionary, such as Merriam-Webster. Additional annotations covering the same material but expressed in a different natural language are allowed as long as they incorporate the proper language tag. Text annotations that include a language tag have a default datatype of rdf:langString. By definition from the RDFS 1.1 specification, one MUST NOT include an explicit datatype when adding an annotation.
Ontology Annotations
The following is an example of the Ontology annotations from Core. Annotations in the “Active Ontology” tab in Protégé.
<owl:Ontology rdf:about="https://spec.industrialontologies.org/ontology/core/Core/">
<rdfs:label xml:lang="en">Core Ontology</rdfs:label>
<dcterms:abstract>The IOF Core Ontology contains terms and concepts found to be common across multiple domains of industry
and represents an OWL implementation of them. The ontology itself utilizes the Basic Formal Ontology or BFO as a
philosophical foundation but also imports terms from various domain-independent or "mid-level" ontologies.
The purpose of the ontology is to serve or is intended to serve as a core for IOF's domain-specific ontologies,
with a goal being to ensure consistency and interoperability across the suite of ontologies the IOF publishes.</dcterms:abstract>
<dcterms:creator xml:lang="en">IOF Core Working Group</dcterms:creator>
<dcterms:license rdf:datatype="&xsd;anyURI">http://opensource.org/licenses/MIT</dcterms:license>
<dcterms:publisher xml:lang="en">Industrial Ontology Foundry</dcterms:publisher>
<dcterms:references rdf:resource="http://spec.org/dc/terms/"/>
<dcterms:references rdf:resource="http://www.w3.org/2004/02/skos/core#"/>
<dcterms:title>Industrial Ontology Foundry (IOF) Core Ontology</dcterms:title>
<!-- ... -->
</owl:Ontology>Label
label -
rdfs:labelEach construct MUST have at least one natural language label, as follows:
Exactly one American English language label MUST be provided and language tagged
Labels MUST be unique across all IOF ontologies and SHOULD be unique across all imported non-IOF ontologies in a given natural language
Labels for other natural languages MAY be provided, but if so they must be language tagged
Data property MUST be a verb phrase starting with
isfor boolean (true/false) orhasfor any other data type.Example:
is transferable
Data property SHOULD end with
valueExample:
has numeric value
label text MUST be given in lowercase with spaces between words
Exception: proper names MUST use initial upper-case
Exception: Words like DNA that are capitalized in the Oxford English Dictionary (Home: OED ) MUST remain in uppercase
Acronyms MUST NOT be used for label values
Exception: Words like RADAR and DNA with dictionary definitions MAY be used and will be considered by the architecture TG
Acronyms are shortened alternative labels that are composed of a letter from each word of a longer signifier for the notion
Acronyms that are not found in dictionaries may be provided as an alternative label for a resource using the
acronymannotation property described below
Note - The IOF annotation vocabulary does not include an annotation property for preferred label. Instead, an annotation directly asserted as an
rdfs:labelin IOF OWL content is treated as the preferred label.Alternative (non-preferred) labels MAY also be provided for a construct using the following annotations
iof-av:synonymannotation MUST be used for alternative labels that are not abbreviationsiof-av:abbreviationannotation MUST be used for shortened alternative labels other than acronymsiof-av:acronymannotation MUST be used for shortened alternative labels that are composed of a letter from each word of the preferred label (aka acronyms) and that are not found in a dictionaryAcronyms that are found in the dictionary MAY be used as the rdfs:label (preferred label) for the notion (as noted in the exception above)
Natural Language
natural language definition –
iof-av:naturalLanguageDefinitionDefinition: plain text for industry practitioner understanding
Exactly one natural language definition MUST be given for any construct
Note: this definition MUST be present for both primitive and non-primitive constructs
State the source as a class, property, or other. Check if the serializer removes annotations on annotations. Open Issue regarding how the serializer does this.
No nested annotations in the serializer and moved to the bottom of the file. Should fix the serializer. See: ARCH-86
The definition MUST adhere to ISO 704 rules and requirements for terminology
For non-primitive constructs, the natural language definition MUST NOT be circular
For primitive constructs, the natural language definition SHOULD NOT be circular
The definition MUST be substitutable in a sentence where the term appears
We MAY reconsider this as a requirement if there is no way to express it as a formal substitutable definition. There MUST be a rationale, expressed as an
explanatory note, for why this is the case and the rationale MUST be agreed to by the Architecture TG.
The definition MUST NOT begin with an article (The, A or An).
One SHOULD avoid jargon and domain-specific terminology
It MUST be understandable by a practitioner in the industrial domain
It MUST NOT use specialized ontological terminology
Examples: perdurant, endurant, continuant, etc.
Ontological construct label MUST be provided in parenthesis
Example: role held by (bearer of) a material entity when it is a proper part of another material entity or is planned to be a proper part of another material entity
It MUST NOT use special formatting for properties or classes referenced in the definition
MUST NOT use upper camel case capitalization
MUST NOT use apostrophes to contain terms as a parenthetical
Examples: must not be as follows: ‘part-of’, ‘Information Content Entity', InformationContentEntity
It MUST NOT contain acronyms or abbreviations
Acronyms MAY be accepted if they appear in the dictionary and are widely used in conversation. Use of such an acronym use MUST be approved by the Architecture TG.
If the definition is taken from another source,
dcterms:sourceor one of its sub-properties MUST cite the original reference. Seedcterms:sourcein the Source Annotations section below.Examples:
shipment preparation process: planned process in which some material entities are prepared to be transported together to a receiver’s location
postal address: designation of a location (site) to which mail is delivered
Primitive Term Annotations
elucidation -- iof-av:elucidation
elucidation MUST NOT be used and is deprecated.
is primitive –
iof-av:isPrimitiveDefinition: boolean flag indicating that necessary and sufficient conditions are not provided at this time
is primitive MUST be present if the term does not have necessary and sufficient conditions and the value of the annotation MUST be set to
true(w3c boolean)MUST only apply to classes
Otherwise, if necessary and sufficient conditions are present, then the annotation MAY be provided and the value MUST be set to
falseis primitive MUST default to set to
falseIf possible, terms SHOULD have necessary and sufficient conditions
Note: the term may not always remain primitive if necessary and sufficient conditions can be defined in a later version
Example:
person: true
shipment preparation process: true
primitive rationale –
iof-av:primitiveRationaleDefinition: reason why the necessary and sufficient conditions were not or could not be provided at this time
MUST only apply to classes
When is primitive is set to
true, the primitive rationale MUST be providedThe primitive rationale MUST explain why necessary and sufficient conditions are not possible
The rationale SHOULD indicate what is missing if additional work is required to define necessary and sufficient conditions
Example:
person: insufficient constructs to create necessary and sufficient conditions
shipment preparation process: shipment preparation process often includes at least one picking, internal movement, packaging, marking, weighing, or loading process, but since those processes are not added to the ontology yet, it is not possible to generate necessary and sufficient conditions at this time for this entity
Logical Annotations
The following rules MUST be followed when using variables in a first-order logic axiom (formalization) or definition and semi-formal natural language axiom or definition
MUST NOT nest variables in single quotes
Examples: 'instance i' ‘, 'continuant c’
MUST use lower case variable for particular (individual or instance) of a universal
Multiple first-order logic axioms MUST be considered as a combined set using the
∧(conjunction operator).The axioms can be rewritten using the conjunction operator and remain logically consistent
Variable SHOULD use the first letter of a construct’s label when possible
Variable MUST only be one letter
MUST append numeric suffixes (
x1,x2, etc.) OR one or more primes (x',x'', etc.) for multiple instances of the same constructMUST reserve the use of
t,t', etc., for temporal regions; expressions such as 'for all times' SHOULD be interpreted as meaning ‘for all temporal regions’MUST only use
r,r',s,s', etc., for spatial and spatiotemporal regionsMUST only the use of
R,R', etc. for relationsMUST NOT use the character
aorA
The following rules MUST be followed in a first-order logic axiom (formalization) or definition
References to classes and properties MUST use the
label. The label MUST be transformed where the spaces are removed and classes labels MUST use UpperCamelCase and properties MUST use lowerCamelCase.