-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
When converting between TriG / JSON-LD and CIMXML, we need special handling of the DCAT temporal extent construct based on
dcterms:PeriodOfTime.
DCAT 3 defines temporal coverage using a compound structure (blank node or resource) which is not supported by CIMXML.
(RDF/XML as a syntax supports this, but CIMXML does not.)
Relevant specification:
https://www.w3.org/TR/vocab-dcat-3/#Class:Period_of_Time
Background
In DCAT 3, temporal coverage is expressed using:
dct:temporal→dcterms:PeriodOfTime
with properties:
-
dcat:startDate -
dcat:endDate
This requires a compound RDF node, typically serialized as a blank node in TriG / JSON-LD.
CIMXML does not support compound objects / blank nodes, and therefore cannot represent dcterms:PeriodOfTime directly.
Supported Representation (TriG / JSON-LD)
TriG and JSON-LD SHALL support the full DCAT compound structure.
Example:
dct:temporal [ rdf:type dct:PeriodOfTime;
dcat:startDate "2014-12-31T23:00:00Z"^^xsd:dateTime ;
dcat:endDate "2015-01-01T23:00:00Z"^^xsd:dateTime ;
];Notes:
-
dct:temporalrange isdcterms:PeriodOfTime -
dcat:startDateanddcat:endDateare defined by DCAT 3 -
The node is typically a blank node
CIMXML Handling (Flattened Representation)
For CIMXML output, the compound structure SHALL be flattened.
The dcterms:PeriodOfTime node is not serialized, and only its scalar properties are emitted.
Flattened CIMXML representation:
<dcat:startDate>2014-12-31T23:00:00Z</dcat:startDate>
<dcat:endDate>2015-01-01T23:00:00Z</dcat:endDate>Important characteristics
-
This is a lossy transformation
-
The semantic grouping (
dct:temporal→PeriodOfTime) is not preserved -
The meaning is retained implicitly by context (e.g. dataset temporal coverage)
Rules (Normative)
-
TriG and JSON-LD SHALL support dct:temporal with dcterms:PeriodOfTime
-
CIMXML SHALL NOT emit compound or blank-node structures
-
CIMXML SHALL flatten dcterms:PeriodOfTime into:
-
dcat:startDate
-
dcat:endDate
-
CIMXML SHALL NOT emit rdf:type dct:PeriodOfTime
-
Datatypes SHALL be xsd:dateTime and expressed in UTC (Z)