The OWL Functional Syntax-Style is the recommended default syntax. The generated OWL ontologies of SNOMED CT may be rendered in any compatible OWL syntax and transformed between syntaxes. The specification of syntax including the BNF grammar published by the W3C can be found at https://www.w3.org/TR/owl-syntax/.
For the benefits of consistent representation and detection of changes to an expression, the style and rules are recommended though they have no semantic significance. The OWL expressions should be rendered in the form specified by the OWL Functional Syntax-Style but a restricted version may be used for creating and updating the OWL refsets. The following rules should be followed.
OWL Functional Syntax-Style defines that whitespace is a nonempty sequence of space (U+20), horizontal tab (U+9), line feed (U+A), or carriage return (U+D) characters.
The whitespace should only be represented as a single space (U+20) in the OWL refsets.
OWL Functional Syntax-Style defines that a comment is a sequence of characters that starts with the # (U+23) character and does not contain the line feed (U+A) or carriage return (U+D) characters.
Comments could improve the readability. However, comments should not be included to minimize the size of the OWL refsets and reduce the need to maintain the alignment between an axiom and its comments.
A standard sort order is very useful to enable fast matching of identical expressions though it has no impact to semantics and is not essential for general purpose use.
Each axiom is a serialization of a tree structure that can be traversed by nodes in the following order:
The Functional-Style Syntax determines the general order of most elements within an OWL axiom. In fact, the order can only be applied to the nodes within EquivalentClasses(), DisjointClasses(), EquivalentDataProperties(), and ObjectIntersectionsOf() for the current SNOMED CT Logic Profile Specification.
The same semantics can be represented by a single axiom or multiple axioms. When axioms are in the same SNOMED CT module,
EquivalentClasses(A C) is recommended. The following two Subclass axioms are not.
SubClassOf(A ObjectIntersectionOf(C D)) is recommended. The following two Subclass axioms are not.