Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
BaSyx / Documentation / API / Submodel
"A Submodel defines a specific aspect of the asset represented by the Asset Administration Shell. A Submodel is used to structure the virtual representation and technical functionality of an Administration Shell into distinguishable parts. Each Submodel refers to a well-defined domain or subject matter. Submodels can become standardized and thus become submodels types. Submodels can have different life-cycles." (Details of the Asset Administration Shell, 2018, p. 46, [1])
Amongst the official attributes of Submodels, BaSyx defines aggregates called data elements, operations and events. These aggregates are used to structure official SubmodelElements (Property, ReferenceElement, Event, Operation, etc.) into groups of same functionality, i.e. - DataElements as value-based properties - Operations as callable methods - Events as collection for events' information model.
Additionally, BaSyx follows a distributed approach, i.e. Submodels may be deployed in distributed infrastructure. Asset Administration Shells only refer to their Submodels by terms of a reference. They do not know about their Submodels' content but they know the way to it. On the other side, Submodels may reference their Asset Administration Shells as well via a parent attribute.
But may be deployed on different physical locations. Sub models and Asset Administration Shells are bidirectionally linked; Asset Administration Shells refer to "their" sub models, and sub models refer to their Asset Administration Shell. BaSyx submodel providers enable access to sub models. A sub model provider needs to implement the submodel provider API that is described on this wiki page. The sub model provider API enables access to properties and operations of BaSyx submodel providers. The BaSys sub model proider API provides a facade to numerous data sources. The BaSyx common components package implements sub model providers that read properties from SQL data bases, via XQuery, and from configuration files. Furthermore, the BaSyx SDK enables creation of additional sub model provider types that provide e.g. live data from devices or integrate new data sources into a production environment.
The BaSyx sub model provider API is defined as following:
GET | /aas | Description
|
GET | /aas/submodels | Description
|
POST | /aas/submodels | Description
|
GET | /aas/submodels/{subModelId} | Description
|
DELETE | /aas/submodels/{subModelId} | Description
|
GET | /aas/submodels/{subModelId}/properties | Description
|
POST | /aas/submodels/{subModelId}/properties | Description
Response codes
|
GET | /aas/submodels/{subModelId}/operations | Description
|
POST | /aas/submodels/{subModelId}/properties | Description
|
GET | /aas/submodels/{subModelId}/properties/{propertyId} | Description
|
PUT | /aas/submodels/{subModelId}/properties/{propertyId} | Description
|
DELETE | /aas/submodels/{subModelId}/properties/{propertyId} | Description
Parameter
|
GET | /aas/submodels/{subModelId}/properties/{operationId} | Description
|
POST | /aas/submodels/{subModelId}/properties/{operationId} | Description
|
DELETE | /aas/submodels/{subModelId}/properties/{propertyId} | Description
|
BaSyx project links: Project BaSyx main wiki page | What is BaSyx? | BaSyx Developer Documentation |