Skip to content

Instantly share code, notes, and snippets.

@VladimirAlexiev
Last active April 26, 2024 12:51
Show Gist options
  • Save VladimirAlexiev/49f8c240b57eeb71f29641fc99047d29 to your computer and use it in GitHub Desktop.
Save VladimirAlexiev/49f8c240b57eeb71f29641fc99047d29 to your computer and use it in GitHub Desktop.

This is a fixed representation of sec 7 Real ECLASS Content Example from ECLASS Serialization as RDF, Part 1, ECLASS Technical Specification 110, 22 April 2024.

I collected all text, added comments into puml:label, and had to make some fixes (marked with FIXED):

  • Fixed 8 prefixes from eclass: (used for ECLASS "metadata" terms) to eclass13-0: (used for ECLASS content terms)
  • Elided (commented out) 4 statements because they don't add clarity
  • Changed or added 10 URLs to make the whole graph connected

Then I used the rdfpuml tool to make a diagram: image

See admin-shell-io/aas-specs#422 for discussion.

eclass13-0:0173-1-01-AAB572-007
puml:label "7.1 Classification Class: level 1";
rdf:type owl:Class ;
rdfs:label "Electric engineering, automation, process control engineering"@en ;
rdfs:subClassOf eclass13-0:0173-1-01-AAA002-001 ; # FIXED prefix
eclass:IRDI "0173-1#01-AAB572#007" ;
eclass:codedName "27000000" ;
eclass:keyword "Electrical-engineering"@en ;
eclass:keyword "Process control-engineering"@en ;
eclass:technicalLabel "27-00-00-00 - Electric engineering, automation, process control engineering" ;
.
eclass13-0:0173-1-01-AAC146-010
puml:label "7.1 Classification Class: level 2";
rdf:type owl:Class ;
rdfs:comment "Controlling is the directed influence..."@en ;
rdfs:label "Control, Process Control System (PCS)"@en ;
rdfs:subClassOf eclass13-0:0173-1-01-AAB572-007 ;
eclass:IRDI "0173-1#01-AAC146#010" ;
eclass:codedName "27240000" ;
eclass:technicalLabel "27-24-00-00 - Control, Process Control System (PCS)" ;
.
eclass13-0:0173-1-01-BAA065-010
puml:label "7.1 Classification Class: level 3";
rdf:type owl:Class ;
rdfs:label "Field bus, decentralized peripheral"@en ;
rdfs:subClassOf eclass13-0:0173-1-01-AAC146-010 ;
eclass:IRDI "0173-1#01-BAA065#010" ;
eclass:codedName "27242600" ;
eclass:keyword "Decentralized peripheral component"@en ;
eclass:keyword "Decentralized peripheral system"@en ;
eclass:keyword "Field bus, decentralised peripheral"@en ;
eclass:technicalLabel "27-24-26-00 - Field bus, decentralized peripheral" ;
.
eclass13-0:0173-1-01-BAA055-019
puml:label "7.1 Classification Class: level 4";
rdf:type owl:Class ;
rdfs:label "Field bus, decentralized peripheral - digital I/O module"@en ;
rdfs:subClassOf eclass13-0:0173-1-01-BAA065-010 ;
eclass:IRDI "0173-1#01-BAA055#019" ;
eclass:codedName "27242604" ;
eclass:keyword "Add-on module"@en ;
eclass:keyword "Decentralized compact digital input/output module"@en ;
eclass:keyword "Decentralized compact similar I/O module"@en ;
eclass:keyword "Digital input"@en ;
eclass:keyword "Digital module"@en ;
eclass:keyword "Digital output"@en ;
eclass:keyword "Input subrack"@en ;
eclass:keyword "Input/output module"@en ;
eclass:technicalLabel "27-24-26-04 - Field bus, decentralized peripheral - digital I/O module" ;
.
eclass13-0:0173-1---ADVANCED_1_1-01-ADN579-012
puml:label "7.2 Application Class";
rdf:type owl:Class ;
rdfs:label "Field bus, decentralized peripheral - digital I/O module"@en ;
rdfs:subClassOf eclass13-0:0173-1-01-BAA055-019 ;
rdfs:subClassOf eclass:Advanced ;
eclass:IRDI "0173-1---ADVANCED_1_1#01-ADN579#012" ;
eclass:hasAspect eclass13-0:0173-1-01-ADN228-011 ;
# eclass:hasAspect eclass13-0:0173-1-01-ADN229-010 ; # FIXED: elided
#shortened: Not all hasAspect & isDescribedBy are shown.
eclass:isDescribedBy eclass13-0:0173-1-02-AAP798-001 ; # FIXED: connectivity, was eclass13-0:0173-1-02-AAB728-007
eclass:isDescribedBy eclass13-0:0173-1-02-BAD046-007 ; # FIXED: connectivity, was eclass13-0:0173-1-02-AAB907-008 ;
eclass:isDescribedBy eclass13-0:0173-1-02-BAC065-008 ; # FIXED: connectivity
eclass:isDescribedBy eclass13-0:0173-1-02-ABH413-001 ; # FIXED: connectivity
eclass:isDescribedBy eclass13-0:0173-1-02-AAR080-012 ; # FIXED: connectivity
eclass:isDescribedBy eclass13-0:0173-1-02-AAQ666-010 ; # FIXED: connectivity
eclass:isDescribedBy eclass13-0:0173-1-02-AAQ667-004 ; # FIXED: connectivity
eclass:isDescribedBy eclass13-0:0173-1-02-AAN483-003 ; # FIXED: connectivity
eclass:isDescribedBy eclass13-0:0173-1-02-AAN520-003 ; # FIXED: connectivity
.
eclass13-0:0173-1-02-AAP798-001
puml:label "7.3 Property";
rdf:type owl:ObjectProperty ;
rdfs:comment "Reference to one or more norms and guidelines"@en ;
rdfs:label "Application standards"@en ;
rdfs:range iec61360:StringType ;
rdfs:subPropertyOf eclass:nonDependent ;
eclass:IRDI "0173-1#02-AAP798#001" ;
eclass:multivalent "true"^^xsd:boolean ;
.
eclass13-0:0173-1-02-BAD046-007
puml:label "7.3.1 Property with Unit";
rdf:type owl:ObjectProperty ;
rdfs:comment "Maximum required time at change of signal"@en ;
rdfs:label "Max. delay time with change of signal"@en ;
rdfs:range iec61360:RealMeasureType ;
rdfs:subPropertyOf eclass:nonDependent ;
eclass:IRDI "0173-1#02-BAD046#007" ;
eclass:hasQuantity eclass13-0:0173-1-Z4-BAJ217-003 ;
eclass:hasUnit eclass13-0:0173-1-05-AAA114-003 ;
eclass:multivalent "true"^^xsd:boolean ;
eclass:synonym "delay time with change of signal, max"@en ;
.
eclass13-0:0173-1-05-AAA114-003
puml:label "unit";
rdf:type eclass:Unit ;
rdfs:comment "0,001-fold of the SI base unit second"@en ;
rdfs:label "millisecond"@en ;
eclass:IRDI "0173-1#05-AAA114#003" ;
eclass:float64Conversion eclass13-0:AAA114-to-AAA203 ;
# eclass:float64Conversion eclass13-0:AAA114-to-AAA452 ; # FIXED: elided
eclass:hasAoC eclass13-0:0173-1-Z2-AAA168-001 ;
eclass:shortName "ms"@en ;
.
eclass13-0:0173-1-Z2-AAA168-001
puml:label "Aspect of conversion";
rdf:type eclass:AoC ;
rdfs:label "s" ;
eclass:IRDI "0173-1#Z2-AAA168#001" ;
eclass:exponent1 "0"^^xsd:int ;
eclass:exponentA "0"^^xsd:int ;
eclass:exponentB "0"^^xsd:int ;
eclass:exponentBd "0"^^xsd:int ;
eclass:exponentBit "0"^^xsd:int ;
eclass:exponentByte "0"^^xsd:int ;
eclass:exponentCd "0"^^xsd:int ;
eclass:exponentDec "0"^^xsd:int ;
eclass:exponentE "0"^^xsd:int ;
eclass:exponentHart "0"^^xsd:int ;
eclass:exponentK "0"^^xsd:int ;
eclass:exponentKg "0"^^xsd:int ;
eclass:exponentM "0"^^xsd:int ;
eclass:exponentMol "0"^^xsd:int ;
eclass:exponentNat "0"^^xsd:int ;
eclass:exponentNp "0"^^xsd:int ;
eclass:exponentOctave "0"^^xsd:int ;
eclass:exponentPhon "0"^^xsd:int ;
eclass:exponentRad "0"^^xsd:int ;
eclass:exponentS "1"^^xsd:int ;
eclass:exponentSh "0"^^xsd:int ;
eclass:exponentSone "0"^^xsd:int ;
eclass:exponentSr "0"^^xsd:int ;
eclass:hasQuantity eclass13-0:0173-1-Z4-BAJ217-003 ;
.
eclass13-0:0173-1-Z4-BAJ217-003
puml:label "Quantity";
rdf:type eclass:Quantity ;
rdfs:comment "difference final-initial instant of interval"@en ;
rdfs:label "time"@en ;
eclass:IRDI "0173-1#Z4-BAJ217#003" ;
eclass:hasAoc eclass13-0:0173-1-Z2-AAA168-001 ; # FIXED prefix
eclass:unit eclass13-0:0173-1-05-AAA114-003; # FIXED connectivity, was eclass13-0:0173-1-05-AAA021-003 ;
eclass:unit eclass13-0:0173-1-05-AAA039-003 ;
# eclass:unit eclass13-0:0173-1-05-AAA095-004 ; # FIXED elided
#shortened
.
eclass13-0:0173-1-02-BAC065-008
puml:label "7.3.1.1 Property with Value List - Implicit";
rdf:type owl:ObjectProperty ;
rdfs:label "Input voltage, type"@en ;
rdfs:range eclass13-0:0173-1-09-AAB500-005 ;
rdfs:subPropertyOf eclass:nonDependent ;
eclass:IRDI "0173-1#02-BAC065#008" ;
eclass:multivalent "false"^^xsd:boolean ;
.
eclass13-0:0173-1-09-AAB500-005
puml:label "value list - implicit";
rdf:type owl:Class ;
rdfs:label "Input voltage, type"@en ;
rdfs:subClassOf eclass:ImplicitValuelist ;
rdfs:subClassOf iec61360:StringType ;
eclass:IRDI "0173-1#09-AAB500#005" ;
.
eclass:0173-1-07-BAA161-001
puml:label "one value";
rdf1:type eclass13-0:0173-1-09-AAB477-004 ;
rdf1:type eclass13-0:0173-1-09-AAB500-005 ;
# rdf1:type eclass13-0:0173-1-09-AAB856-005 ; # FIXED elided
rdfs:label "AC"@en ;
eclass:IRDI "0173-1#07-BAA161#001" ;
iec61360:value "BAA161" ;
.
eclass13-0:0173-1-02-ABH413-001
puml:label "7.3.1.2 Property with Value List – Explicit";
rdf:type owl:ObjectProperty ;
rdfs:comment "e.g. character-by-character or block-by-block"@en ;
rdfs:label "transmission format at telecontrol"@en ;
rdfs:range eclass13-0:0173-1-09-AAO361-001 ;
rdfs:subPropertyOf eclass:nonDependent ;
eclass:IRDI "0173-1#02-ABH413#001" ;
eclass:hasQuantity eclass13-0:0173-1-Z4-BAJ436-002 ;
eclass:hasUnit eclass13-0:0173-1-05-AAA578-003 ;
eclass:multivalent "true"^^xsd:boolean ;
.
eclass13-0:0173-1-09-AAO361-001
puml:label "Value list - explicit (IntMeasure)";
rdf:type owl:Class ;
rdfs:label "transmission format at telecontrol"@en ;
rdfs:subClassOf eclass:ExplicitValuelist ;
rdfs:subClassOf iec61360:IntMeasureType ;
eclass:IRDI "0173-1#09-AAO361#001" ;
.
eclass13-0:0173-1-09-AAO361-001a # FIXED URL
puml:label "Example value";
rdf1:type eclass13-0:0173-1-09-AAO361-001 ; # FIXED prefix
iec61360:uom eclass13-0:0173-1-05-AAA578-003 ; # FIXED prefix
iec61360:value 10 ;
.
eclass13-0:0173-1-02-AAR080-012
puml:label "7.3.2 Property with Reference: Referennce Property";
rdf:type owl:ObjectProperty ;
rdfs:comment "... areas of mechanical and electrical"@en ;
rdfs:label "Mechanical and electrical construction (s)"@en ;
rdfs:range eclass13-0:0173-1-01-ADS444-012 ;
rdfs:subPropertyOf eclass:nonDependent ;
eclass:IRDI "0173-1#02-AAR080#012" ;
eclass:multivalent "true"^^xsd:boolean ;
.
eclass13-0:0173-1-01-ADS444-012
puml:label "Block";
rdf:type owl:Class ;
rdfs:comment "... areas of mechanical and electrical"@en ;
rdfs:label "Mechanical and electrical construction (s)"@en ;
rdfs:subClassOf eclass13-0:0173-1-01-ADR430-012 ;
rdfs:subClassOf iec61360:ClassReferenceType ;
eclass:IRDI "0173-1#01-ADS444#012" ;
.
eclass13-0:0173-1-01-ADR430-012
puml:label "Parent-Block";
rdf:type owl:Class ;
rdfs:comment "constructional details"@en ;
rdfs:label "Mechanical and electrical construction"@en ;
rdfs:subClassOf eclass13-0:0173-1-01-AZI000-002 ;
rdfs:subClassOf iec61360:ClassReferenceType ;
eclass:IRDI "0173-1#01-ADR430#012" ;
eclass:isDescribedBy eclass13-0:0173-1-02-AAQ640-012 ;
.
eclass13-0:0173-1-01-ADN228-011
puml:label "7.5 Aspect";
rdf:type owl:Class ;
rdfs:label "Identification"@en ;
rdfs:subClassOf eclass13-0:0173-1-01-PAA001-001 ; # FIXED prefix
eclass:IRDI "0173-1#01-ADN228#011" ;
eclass:isDescribedBy eclass13-0:0173-1-02-AAQ373-011 ;
eclass:isDescribedBy eclass13-0:0173-1-02-AAQ376-010 ;
.
eclass13-0:0173-1-02-AAN520-003
puml:label "7.6 Cardinality: Counter";
rdf:type owl:ObjectProperty ;
rdfs:comment "cardinality property"@en ;
rdfs:label "number of the executions of the housing parts"@en ;
rdfs:range iec61360:IntType ;
rdfs:subPropertyOf eclass:condition ;
eclass:IRDI "0173-1#02-AAN520#003" ;
eclass:multivalent "true"^^xsd:boolean ;
.
eclass13-0:0173-1-02-AAQ666-010
puml:label "Cardinal Reference Property";
rdf:type owl:ObjectProperty ;
rdfs:comment "Design of the object"@en ;
rdfs:label "Execution of the housing parts"@en ;
rdfs:range eclass13-0:0173-1-01-ADN460-010 ; # FIXED prefix
rdfs:subPropertyOf eclass:dependent ;
eclass:IRDI "0173-1#02-AAQ666#010" ;
eclass:dependsOn eclass13-0:0173-1-02-AAN520-003 ;
eclass:multivalent "true"^^xsd:boolean ;
.
eclass13-0:0173-1-02-AAQ667-004
puml:label "7.7 Polymorphism: Reference Property";
rdf:type owl:ObjectProperty ;
rdfs:comment "Expansion of a body"@en ;
rdfs:label "Size dimension"@en ;
rdfs:range eclass13-0:0173-1-01-ADN458-004 ;
rdfs:subPropertyOf eclass:nonDependent ;
eclass:IRDI "0173-1#02-AAQ667#004" ;
eclass:multivalent "true"^^xsd:boolean ;
.
eclass13-0:0173-1-01-ADN458-004
puml:label "Block";
rdf:type owl:Class ;
rdfs:comment "Expansion of a body"@en ;
rdfs:label "Size dimension"@en ;
rdfs:subClassOf eclass13-0:0173-1-01-AZI000-002 ; # FIXED prefix
rdfs:subClassOf iec61360:ClassReferenceType ;
eclass:IRDI "0173-1#01-ADN458#004" ;
eclass:isDescribedBy eclass13-0:0173-1-02-AAN483-003 ;
.
eclass13-0:0173-1-02-AAN483-003
puml:label "polymorphism controlling Property";
rdf:type owl:ObjectProperty ;
rdfs:comment "selection of the object shape"@en ;
rdfs:label "type of enveloping body"@en ;
rdfs:range eclass13-0:0173-1-09-AAD488-002 ;
rdfs:subPropertyOf eclass:nonDependent ;
eclass:IRDI "0173-1#02-AAN483#003" ;
eclass:multivalent "true"^^xsd:boolean ;
.
eclass13-0:0173-1-01-ADS435-007
puml:label "Child-Block 1";
rdf:type owl:Class ;
rdfs:label "Enveloping body cuboid"@en ;
rdfs:subClassOf eclass13-0:0173-1-01-ADN458-004 ;
rdfs:subClassOf iec61360:ClassReferenceType ;
eclass:IRDI "0173-1#01-ADS435#007" ;
eclass:isDescribedBy eclass13-0:0173-1-02-BAA020-010 ;
eclass:isDescribedBy eclass13-0:0173-1-02-BAB577-008 ;
# eclass:isDescribedBy eclass13-0:0173-1-02-BAF016-006 ; # FIXED elided
.
eclass13-0:0173-1-01-ADS436-007
puml:label "Child Block 2";
rdf:type owl:Class ;
rdfs:label "Enveloping body cylinder"@en ;
rdfs:subClassOf eclass13-0:0173-1-01-ADN458-004 ;
rdfs:subClassOf iec61360:ClassReferenceType ;
eclass:IRDI "0173-1#01-ADS436#007" ;
eclass:isDescribedBy eclass13-0:0173-1-02-AAC895-007 ;
eclass:isDescribedBy eclass13-0:0173-1-02-BAB577-008 ;
.
####################
eclass:Advanced a puml:Inline.
eclass:ExplicitValuelist a puml:Inline.
eclass:ImplicitValuelist a puml:Inline.
eclass:condition a puml:Inline.
eclass:dependent a puml:Inline.
eclass:nonDependent a puml:Inline.
iec61360:ClassReferenceType a puml:Inline.
iec61360:IntType a puml:Inline.
iec61360:IntMeasureType a puml:Inline.
iec61360:RealMeasureType a puml:Inline.
iec61360:StringType a puml:Inline.
rdf1:type puml:arrow puml:up.
rdfs:subClassOf puml:arrow puml:up.
rdfs:range puml:arrow puml:up.
@prefix eclass: <https://eclass-cdp.com/rdf/v1/eclass/> .
@prefix eclass13-0: <https://eclass-cdp.com/rdf/v1/eclass13-0/> .
@prefix iec61360: <https://eclass-cdp.com/rdf/v1/iec61360/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdf1: <http://www.w3.org/1999/02/22-rdf-syntax-ns1#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix puml: <http://plantuml.com/ontology#> .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment