Skip to content

Known issues

Known defects and limitations of the ontologies, the recommended workarounds, and the planned fixes.

CPM-O 1.0.0

Common Provenance Model Ontology (CPM-O) 1.0.0, namespace https://www.commonprovenancemodel.org/ns/cpm#.

IDSummaryAffectsStatus
KI-1Each CPM type has two IRIs: the lower-case type value and the capitalized classCPM-O 1.0.0Fix planned in the next revision of the CPM specification
KI-2Identifier values must be typed xsd:anyURICPM-O 1.0.0Documented behaviour
KI-3CPM-O together with its PROV-O import is not OWL 2 DLPROV-O (imported)Cannot be fixed in CPM-O
KI-4Class restrictions do not validate dataCPM-O 1.0.0Validation planned for a future version

KI-1: Each CPM type has two IRIs

Description.

Type valueClass
backwardConnectorBackwardConnector
forwardConnectorForwardConnector
specForwardConnectorForwardConnectorSpecialized
idIdentifierEntity
mainActivityMainActivity
currentAgentCurrentAgent
senderAgentSenderAgent
receiverAgentReceiverAgent

Workaround. Always prefer the capitalized class names:

The lower-case values remain valid, because CPM-O declares them as classes equivalent to the capitalized classes.

Planned fix. The next revision of the CPM specification is to use the capitalized class names as type values. The lower-case IRIs will then be marked owl:deprecated, not removed, so that existing data stays valid.

KI-2: Identifier values must be typed xsd:anyURI

Description. The range of the following properties is xsd:anyURI: cpm:referencedBundleId, cpm:referencedMetaBundleId, cpm:provenanceServiceUri, cpm:contactIdPid, and cpm:hasId. If a value is written as an untyped string, it becomes xsd:string in RDF. The xsd:string and xsd:anyURI value spaces are disjoint, so the data becomes logically inconsistent with CPM-O. A qualified-name value ('ex:b0') becomes an IRI node in RDF, which also conflicts with the declared datatype properties.

Workaround. Always write these values typed:

PROV-N:    cpm:referencedBundleId="https://example.org/bundles/b0" %% xsd:anyURI
PROV-JSON: "cpm:referencedBundleId": {"$": "https://example.org/bundles/b0", "type": "xsd:anyURI"}

KI-3: CPM-O with its PROV-O import is not OWL 2 DL

Description. PROV-O (http://www.w3.org/ns/prov-o-20130430) declares prov:specializationOf and prov:wasRevisionOf both as owl:AnnotationProperty and as owl:ObjectProperty. OWL 2 DL does not allow a property to be both. Any ontology that imports PROV-O unchanged, including CPM-O, therefore falls outside OWL 2 DL. CPM-O's own axioms are OWL 2 DL.

Workaround. None is needed in practice. Common reasoners, e.g. HermiT, process the ontology without problems.

Status. Cannot be fixed in CPM-O without copying and modifying PROV-O, and CPM-O deliberately imports PROV-O rather than copying it.

KI-4: Class restrictions do not validate data

Description. The owl:minCardinality restrictions document which attributes the CPM requires. OWL, however, assumes that missing information may exist elsewhere (open-world semantics). A resource that lacks a required attribute is therefore not reported as an error.

Workaround. Check conformance to the CPM outside the ontology, e.g. with the CPM software libraries.

Planned fix. A future version will provide validation constraints, e.g. exact cardinalities and SHACL shapes.

PBM-O and PDG-O

No known issues are recorded for PBM-O and PDG-O.