Open VladimirAlexiev opened 7 months ago
I made a diagram of sec 7 Real ECLASS Content Example: I had to make some fixes, see https://gist.github.com/VladimirAlexiev/49f8c240b57eeb71f29641fc99047d29, eg:
changed 8 prefixes from
eclass:
(used for ECLASS "metadata" terms) toeclass13-0:
(used for ECLASS content terms)
"Content" here means the ECLASS product categories, and block/aspect/property definitions.
However, I would also like to see a realistic instance data example (i.e. a bit of content from a product catalog).
There are some fragmented examples scattered through the spec, eg 6.3.4 Application Class Individuum
:
example:UUID_6c15a391-3622-4eef-8eb5-c4080d37fbb4
rdf:type eclass:0173-X-ADVANCED_01-XXX999-001 ;
eclass:0173-X-02-XXX001-001 example:UUID_56d0e29e-54ea-4ccc-8aa5-daf39cabd803 ;
eclass:aspect example:UUID_d91f97d6-a03d-4a03-a2d4-397a0d0b5eec ;
@VladimirAlexiev Thank you very much for pointing out these important issues. My feeling is that we have to accept that ECLASS is in its essence a data model that does not follow ontological realism. ECLASS classes can easily be viewed as object types (where type is seen as a collection of mandatory and optional attributes, possibly grouped together). ECLASS classes and properties can also be seen as part of a well-defined classification modeled as ontology classes. Probably some incosistencies in the classification would be found if ontological rigour was applied to them. Various data structuring constucts form ECLASS do not have a meaningful representation in ontologies, IMO. So I would view ECLASS RDF representation as a data exchange format, rather than something you use in data integration directly. As AAS is also about to provide an RDF exchange format, I believe ECLASS RDF serialization should builid on top of that.
Considering the use of QUDT instead of prorietary ECLASS units in the RDF representation- this makes sense and is about to become possible through the unit harmonization between IEC CDD and ECLASS (led by Gernot Rossi) and a collaboration between IEC CDD and QUDT in which harmonization between QUDT and IEC CDD is under progress.
hi @mbmaja ! Can you give some links about these harmonization initiatives?
Unfortunately I could not find an official link about IEC CDD- ECLASS unit harmonization - I have the information from the working group leader G. Rossi. The next release of ECLASS (v15) is expected to reflect this harmonization.
QUDT included hunderds of new (IEC CDD referenced) units and quantity kinds, as mentioned in QUDT release https://github.com/qudt/qudt-public-repo/releases/tag/v2.1.36 as a part of harmonization in progress with IEC CDD.
Hi @VladimirAlexiev, great to get into exchange again. Thanks for your mentioned insight years ago. Also thank you @mbmaja for your opinion and statements.
From my point of view we are facing a generic semantic web / ontological issue: There is no right or wrong. There is a good or bad or many steps between. Furthermore, it is a question about the use case. But lets stopp that here, that could get very philosophic.
ECLASS is an existing and industrial used standard, which is based on IEC 61360 model, therefore it is not possible to change things in general. Please see the conceptual model of ECLASS Furthermore, the dictionary exists. Therefore, it is not possible to replace existing content e.g. with QUDT. However, there is a ongoing harmonization, that's right.
The motivation is to make ECLASS available as RDF in general. In the first step as an export like the XML (based on ontoML) representation, the JSON serialization or CSV.
There are also many SHACL rules, which will be documented in the next days as Part 2 and make the application much more convenient.
Regarding to your question about an example, please give me some days to set up playground, where we can define some example products based on ECLASS RDF.
It is always great to get hints, what could be better. However, it would be excellent to get examples for optimization as well. Lets start a discussion how to bring the ECLASS Dictionary in a RDF concept, which fits to your requirements.
BR
@mbmaja @Christian-Block @a5n8 @NicoWilh @arnoweiss @kenwenzel
I think we should take the issues one by one, rather than wholesale, eg:
eclass:Advanced
and props like eclass:nonDependent
should be represented in a different way (eg as rdf:type) instead of using subClass/subProperty.
eclass:Advanced
(because the very same Switch or Lamp will be represented as eclass:Basic
if you have access only to the basic version). <product> :numberOfParts 3
(I've denoted the eclass prop by an English name for clarity only), then you DON'T want to have <product> eclass:nonDependent 3
because that's useless: but subProperty would infer exactly thatiec61360:value
that carries the literal. I'll try to make a presentation to illustrate these issues and propose an improved representation in each case. Cheers!
A spec came out that's important for AAS RDF representation since "semantics' in AAS is often imparted through ECLASS. https://github.com/admin-shell-io/aas-specs/issues/383 consists of two parts:
GLOBAL_REFERENCE
. TheECLASS Serialization as RDF, Part 1, ECLASS Technical Specification 110, 22 April 2024. This is the first part of a series:
These parts are still upcoming, but this older paper can serve as insight into part 3.c: Modelling the Semantics of Data of an Asset Administration Shell with Elements of ECLASS V. 1.0 Date: 2021-06-29
The AAS RDF WG members are listed in the linkedin post, and I think we should connect to them; Andreas Neumann and I think Oliver Drumm are in both groups.
2.5y ago I made an extensive presentation to this WG, criticizing some aspects of the representation. I'll repeat it at the AAS Semantics WG on 16 May. Some of these criticisms are still valid, eg
And there are some new ones, eg:
iec61360:value
subPropertyOf
is used as a mere hierarchical organization device rather than with its proper semantics of inferring new triples, eg<p> rdfs:subPropertyOf eclass:condition
: will derive<x> eclass:condition <y>
for each<x> <p> <y>
, which is pointless. Better make a new classeclass:ConditionalProperty; rdfs:subClassOf owl:ObjectProperty
and then<p> rdf:type eclass:ConditionalProperty
.iec61360:value
sub-props likenumerator, denominator, wholePart, xValue, xRotValue...
. What is the purpose of inferring that each of these is alsovalue
?eclass:hasAlternativeUnit rdfs:subPropertyOf eclass:hasUnit
, so if inference is enabled, you cannot easily tell the alternative unit from the main unitsubClassOf
is also used as an organizational device, and the inferences of this are not taken into account:skos:broader
iec61360:
"datatype", to tag blocks asClassReferenceType
...subClassOf iec61360:ClassReferenceType
, which itself issubClassOf iec61360:DataType
??rdfs:range
but notrdfs:domain
(insteadeclass:isDescribedBy
is used)eclass:multivalent
(boolean) instead of beingowl:FunctionalProperty
(when single-valent)qudt:QuantityKind
but it introduces some strange fundamental quantities egeclass:exponentByte "0"^^xsd:int
(can there beByte ^2
(Byte squared) orByte ^ -1
. Byte is a dimensionless unit!exponentE, exponentDec, exponentSh
?eclass "exponentDec"
finds only this issue and the gist below)