-
Notifications
You must be signed in to change notification settings - Fork 3
MultiLanguage Property
A MultiLanguageProperty is a SubmodelElement used to represent language-dependent textual values.A single semantic ID represents the same concept expressed in multiple languages.According to the IDTA AAS specification, a MultiLanguageProperty contains an array of language–text pairs (LangString).This introduces ambiguity during value resolution because one semanticId maps to multiple values.
DataEngine supports MultiLanguageProperty elements by applying a deterministic language-based semanticId expansion strategy.
- A MultiLanguageProperty represents one semantic concept expressed in multiple languages.
- Each language variant is identified by a language code (for example,
en,de). - The structure of supported languages is defined in the template.
- Because one semanticId represents multiple textual values, special handling is required during runtime resolution.
DataEngine applies the following handling rules for MultiLanguageProperty elements:
- A single semanticId is extracted from the template during submodel or submodel element requests.
- The set of supported languages is derived from the template's value array.
- For each language entry, DataEngine derives a language-specific semantic ID using a configurable separator:
-
<semanticId>_<languageCode>(for example,_de,_en)
-
- DataEngine requests values for all derived semantic IDs from the Plugin.
- The Plugin returns one value per language-specific semantic ID.
- DataEngine reassembles the returned values into the value array as LangString objects.
- DataEngine does not infer additional languages or modify the language set defined in the template.
{
"modelType": "MultiLanguageProperty",
"idShort": "Department",
"semanticId": {
"type": "ExternalReference",
"keys": [{ "type": "GlobalReference", "value": "0173-1#02-AAO127#003" }]
},
"value": [
{ "language": "de", "text": "" },
{ "language": "en", "text": "" }
]
}The Plugin returns values for the language-specific semantic IDs.
{
"0173-1#02-AAO127#003": {
"0173-1#02-AAO127#003_de": "Vertrieb",
"0173-1#02-AAO127#003_en": "Distribution"
}
}DataEngine maps the resolved values back into the language-specific structure defined in the template.
{
"modelType": "MultiLanguageProperty",
"idShort": "Department",
"semanticId": {
"type": "ExternalReference",
"keys": [{ "type": "GlobalReference", "value": "0173-1#02-AAO127#003" }]
},
"value": [
{ "language": "de", "text": "Vertrieb" },
{ "language": "en", "text": "Distribution" }
]
}
- Each language entry must resolve to at most one value.
- Plugins must follow the agreed language suffix convention.
- If a value for a specific language is missing, the corresponding text may remain empty depending on configuration.
- DataEngine does not translate values or infer missing languages.
M&M Software
- Architecture
- Submodel Repository
- Submodel Registry
- Aas Registry
- Aas Repository
- Plugin
- Multi-Plugin
- Supported SubmodelElement
-
Bug Reports: Template Bug Item
-
Feature Requests : Feature Request