Thought it might be interesting for someone. At the moment it is just a proof of concept to test if asset management could be solved based on Azure Digital Twin service using CIM data model.
CIM is Common Information Model used mainly for Electrical Grid data in EU an US
1. Some descriptions are truncated due to 512 char (max seen in CIM is 1900)
2. Enumerations limited to 100 (in some cases CIM needs up to 135)
3. Inheritance/Extensions work, but no way to define if Interface is public/concrete
4. No support for SPARQL (both in schema nor for query)
5. Enumerations seem to have a bug currently - https://github.com/Azure-Samples/digital-twins-explorer/issues/91
6. Attribute and Realtion names can not contain "." meaning they have to be replaced with "_"
7. Can't use url in the namespace of Classes/Interfaces, thus you have to convert to some urn format CIM namespace
8. Upload is slow, there is no batch upload, thus upload of relatively small model ca 15 000 nodes and ca 24 000 edges takes around 12-15 min
RDFS -> DTLD;2
Generated definitions - https://github.com/Haigutus/USVDM/tree/master/Tools/RDF_PARSER/entsoe_v2.4.15_2014-08-07_DTDL_V2
Code - https://github.com/Haigutus/USVDM/blob/master/Tools/RDF_PARSER/RDFS_to_AzureDTDL_V2.py
RDFS CGMES 2.4.15 - https://www.entsoe.eu/digital/cim/cim-for-grid-models-exchange/
Azure DT LD - https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/dtdlv2.md
Azure DT sample explorer - https://github.com/Azure-Samples/digital-twins-explorer