Semantic Metadata
Semantic Metadata
This diagram shows the metamodel elements that support the use of business vocabularies.
The key element is SemanticMetadataTag, which represents a tag that can either be embedded in a TaggableElement (as is the case for an EmbeddedTag) or can standalone by pointing to the tagged element via a URI (as is the case for a StandaloneTag).
A SemanticMetadataTag declares that, for the taggedElement, a semantic concept defined in a controlled vocabulary plays a specific SemanticRole.
Class BusinessContextType
package SemanticMetadata
A BusinessContextType is a SemanticRole that catagorizes the kinds business context values with which elements can be tagged.
For example, UN/CEFACT's Core Components standard (CCTS) has defined the following types of business context values, each of which we can define as an instance of BusinessContextType:
- Business process: The business process(es) with which the element is associated
- Business process role: The role(s) directly involved in the business process(es) that are relevant to the element, e.g. shipper
- Supporting role: The role(s) indirectly involved in the business process; e.g., a data element in an order response from seller to buyer could be required by a third-party shipper
- Geopolitical scope: The continent, economic region, country, or region for which the element is relevant
- Industry classification: The industry or industries for which the element is relevant
- Product classification: The product class(es) for which the element is relevant
- Official constraint: A legal requirement(s) associated with the element; e.g., an element could be required by Sarbanes-Oxley
- System capability: Indicates that the element is there in order to address the limitations of a computing system(s)
Direct Superclasses
Associations
Attributes
Constraints
Class EmbeddedTag
package SemanticMetadata
A SemanticMetadataTag that is embedded in an element of a BIAN service definition.
Elements of service definitions in which SemanticMetadataTags can be embedded include BusinessAreas, BusinessDomains, ServiceDomains, ServiceOperations, Messages, BusinessObjects, and so on.
Direct Superclasses
Associations
taggedElement : TaggableElement [1]
The element in which the EmbeddedTag is embedded. The association is a composition in which TaggableElement plays the role of composite and EmbeddedTag plays the role of component.
Attributes
Constraints
Class SemanticGrammarRole
package SemanticMetadata
A SemanticRole that is part of a semantic grammar.
For example, the semantic grammar defined by BIAN for Service Operations is:
<action>
In a ServiceOperation named Update_Portfolio_NetPresentValue, the action is Update, the object class is Portfolio, and the property is NetPresentValue; action, object, and property are SemanticRoles that are composed to form the semantic grammar for a ServiceOperation.
A semantic grammar can be used to drive a naming convention, but that is a secondary purpose for such a grammar. The primary purpose is to be able to define metadata tags that declare the SemanticRoles that elements of a controlled vocabulary or ontology play in the element being tagged. In the example, we could construct three SemanticMetadataTags based on these three roles, one that declares that Update plays the action role, another that declares that Portfolio plays the object class role, and another that declares that Net Present Value plays the property role.
For comparison sake, the semantic grammar that BIAN uses for an element of a business object is:
This particular semantic grammar is actually defined in ISO 11179. Here we see that the object class SemanticRole is used in more than one semantic grammar.
See the SemanticMetadata::Examples package for detailed examples of the use of SemanticGrammarRoles.
Direct Superclasses
Associations
Attributes
Constraints
Class SemanticMetadataTag
package SemanticMetadata
A SemanticMetadataTag declares that a specific semantic element, which lives in some controlled vocabulary, plays a specific SemanticRole in the element being tagged.
In the typical case, the tag points to the semantic element in the controlled vocabulary via the tag's relevantSemanticElement property, whose value is a URI. Sometimes, however, the tag merely references a tag that is defined elsewhere, via the SemanticMetadataTag's externallyDefinedTag property, whose values are also URIs. As background to the latter case, consider that UN/CEFACT is in the process of defining a means to construct business context tags that are quite complex directed acyclic graphs; however, the complex tags always have URIs as identifiers, so, rather than reproduce a metamodel of corresponding complexity, we have a means to point to tags of arbitrary complexity via URIs.
Direct Superclasses
Associations
semanticRole : SemanticRole [1]
The SemanticRole that the relevantSemanticElement (or the semantic element referenced by the externallyDefinedTag) plays in the element being tagged.
Attributes
URI : anyURI [1]
The URI that identifies the tag.
relevantSemanticElement : anyURI [0..1]
The URI of the semantic element that is relevant to the element being tagged. Typically the relevant semantic element lives in a controlled vocabulary or ontology.
externallyDefinedTag : anyURI [0..1]
The URI of a tag that lives in some external location. When a value is assigned to this property, it means that, rather than point to the relevant semantic element directly, the tag references another tag that points to the relevant semantic element.
Constraints
Exactly one of the following two properties of SemanticMetadataTag must be non-empty: relevantSemanticElement and externallyDefinedTag.
In other words: The tag either points to a relevant semantic element, such as an entry in a controlled vocabulary or a provision in a government regulation, or it points to an externally defined tag that points to the relevant elements.
[relevantSemanticElement->isEmpty() xor externallyDefinedTag->isEmpty()]
Class SemanticRole
package SemanticMetadata
A SemanticRole is a role that an element of a controlled vocabulary or ontology can play in an element of a service definition.
Elements of service definitions include BusinessAreas, BusinessDomains, ServiceDomains, ServiceOperations, Messages, BusinessObjects, and so on.
Direct Superclasses
Associations
semanticMetadataTag : SemanticMetadataTag [0..*]
The SemanticMetadataTags for which this is the SemanticRole.
Attributes
URI : anyURI [1]
The URI that identifies the SemanticRole.
source : string [0..1]
Documentation of the source of the SemanticRole, i.e. where the role is defined.
For example, the source of the object class Semantic Role is ISO 11179.
Constraints
Class StandaloneTag
package SemanticMetadata
A SemanticMetadataTag that points to the tagged element via a URI rather than being embedded in the tagged element.
It is unlikely that BIAN will define StandaloneTags in the near to medium term, because the BIAN Metamodel provides slots for embedding tags in elements of service definitions. We define this element nonetheless, because we wish to promote the use of semantic metadata in other venues where standalone tags may be essential. Standalone tags are necessary when there is no physical slot to hold the tag in the element being tagged, which is the case when elements of legacy systems need to be tagged.
Direct Superclasses
Associations
Attributes
taggedElement : anyURI [1]
The URI of the element being tagged.