(started from https://github.com/Sveino/Inst4CIM-KG/issues/13, where I noticed dm used for two different purposes). There are 4 namespaces that are closely related: to my mind "model" is carrier of "header" or "metadata" and "differential model" is closely related to it:
Do you really need separate ontologies DatasetMetadata, Header (and there was FileHeader?
Several of the ontology terms are defined in 2 of the 3.
So I suggest to merge these files, and to reduce to 1-2 namespaces:
grep -E '^(dm:|eumd:|md:)' */*/*
CGMES-NC/ttl/DatasetMetadata-AP-Voc-RDFS2020.ttl:eumd:DateTimeStamp a rdfs:Class ;
CGMES-NC/ttl/DatasetMetadata-AP-Voc-RDFS2020.ttl:dm:Ontology a owl:Ontology ;
CGMES-NC/ttl/DatasetMetadata-AP-Voc-RDFS2020.ttl:eumd:Model1 a rdf:Property ;
CGMES-NC/ttl/DatasetMetadata-AP-Voc-RDFS2020.ttl:eumd:Model2 a rdf:Property ;
CGMES-NC/ttl/DatasetMetadata-AP-Voc-RDFS2020.ttl:eumd:processType a rdf:Property ;
CGMES-NC/ttl/DatasetMetadata-AP-Voc-RDFS2020.ttl:eumd:usedSettings a rdf:Property ;
CGMES-NC/ttl/DatasetMetadata-AP-Voc-RDFS2020.ttl:dm:Package_DatasetMetadataProfile a cims:ClassCategory ;
CGMES-NC/ttl/DatasetMetadata-AP-Voc-RDFS2020.ttl:dm:Package_DocDatasetMetadataProfile a cims:ClassCategory ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:dm:DifferenceModel a rdfs:Class ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:eumd:DateTimeStamp a rdfs:Class ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:FullModel a rdfs:Class ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:Model a rdfs:Class ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:dm:DifferenceModel.forwardDifferences a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:dm:DifferenceModel.preconditions a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:dm:DifferenceModel.reverseDifferences a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:eumd:Model.applicationSoftware a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:eumd:Model1 a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:eumd:Model2 a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:eumd:processType a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:eumd:usedSettings a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:Model.DependentOn a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:Model.Depending a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:Model.SupersededBy a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:Model.Supersedes a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:Model.created a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:Model.description a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:Model.modelingAuthoritySet a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:Model.profile a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:Model.scenarioTime a rdf:Property ;
CGMES-NC/ttl/Header-AP-Voc-RDFS2020.ttl:md:Model.version a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:dm:DifferenceModel a rdfs:Class ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:FullModel a rdfs:Class ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:Model a rdfs:Class ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:dm:DifferenceModel.forwardDifferences a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:dm:DifferenceModel.preconditions a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:dm:DifferenceModel.reverseDifferences a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:Model.DependentOn a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:Model.Depending a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:Model.SupersededBy a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:Model.Supersedes a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:Model.created a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:Model.description a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:Model.modelingAuthoritySet a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:Model.profile a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:Model.scenarioTime a rdf:Property ;
CGMES/ttl/61970-600-2_Header-AP-Voc-RDFS2019_v3-0-0.ttl:md:Model.version a rdf:Property ;
In addition:
eumd:DateTimeStamp is wrong
eumd:Model1, eumd:Model2 are junk prop names
These props don't follow the naming convention: md:Model.DependentOn, md:Model.Depending, md:Model.SupersededBy, md:Model.Supersedes
@Sveino sent METADATA FOR DATASET AND DISTRIBUTION SPECIFICATION 2024-09-10 VERSION 2.4.0 FOR CIM WG REVIEW (to go into https://github.com/Sveino/Spec4CIM-KG)
and he noted "describes the requirements for the DCAT-AP-CIM. It explains that two additional attributes that we have extended DCAT-AP with. We should not hijack any namespace dcat-cim shall only refer to the extension"
I like this a lot: DCAT-AP-CIM would follow the tradition of DCAT-AP (EU dataset), DCAT-AP-Stat (statistical), DCAT-AP-Geo (Geographical) etc. It should only describe the use of DCAT terms, but not redefine them.
IMHO no new namespace is needed: there is already md (and eumd that has only 1 term!)
(started from https://github.com/Sveino/Inst4CIM-KG/issues/13, where I noticed
dm
used for two different purposes). There are 4 namespaces that are closely related: to my mind "model" is carrier of "header" or "metadata" and "differential model" is closely related to it:Do you really need separate ontologies
DatasetMetadata, Header
(and there wasFileHeader
? Several of the ontology terms are defined in 2 of the 3. So I suggest to merge these files, and to reduce to 1-2 namespaces:In addition:
eumd:DateTimeStamp
is wrongeumd:Model1, eumd:Model2
are junk prop namesmd:Model.DependentOn, md:Model.Depending, md:Model.SupersededBy, md:Model.Supersedes