Collection of provenance properties for use in schemas
This schema mixin provides the majority of the terms and relationships defined by PROV-O, with the following exceptions and deviations. It is implemented as a mixin to be able to flexibly add provenance-focused interfaces to classes that are part of a topical class hierarchy already.
All relationships are implemented using the "qualified relation" pattern, but
combined with properties that are named after their (shortened) "binary"
equivalent. For example, a wasDerivedFrom is implemented as the
derived_from slot, and has the Derivation association class as its
range. This means that qualifying properties of a relationship are
consolidated into the respective relationship class. Consequently, there is
no equivalent of, for example, generatedAtTime. Instead, the time needs to
be annotated via the at_time slot of Generation.
Consistent with PROV-DM, all relationship classes support the expression of
arbitrary attributes to further characterize a relationship beyond the set of
dedicated slots. This is achieved by applying the core ThingMixin to the
Influence class, the base class of all relationships. This allows for the
same annotation patterns that are enabled by Thing to also be used for PROV
relationships. This includes, custom attributes, characterized_by relations,
mapping declarations, annotations, and semantic mappings.
All relationship classes uniformly use an object slot to reference the
respective entity, agent, or activity. PROV-O's actedOnBehalfOf is named
delegated_by for consistency with the association class Delegation.
No inverse properties are defined, i.e. there is invalidated_by, but not
invalidated.
This schema does not implement support for PROV bundles.
There is no explicit support for annotating an Influence with an unspecific
Activity (hadActivity, optional in PROV-O). For describing, for example,
the generating activity in a derivation, generated_by is provided.
The annotation of Agent and Entity instances with a location (PROV-O
atLocation) is not supported. The idea of a (single) location for these
concepts is at odds with the core approach of this schema to use persistent
identifiers for all Things. However, at_location is supported within
Start and End that are available to annotate Activity, and
EntityInfluence like Usage with temporal and spatial locators.
There is not direct support for the PROV-O classes Location, Plan,
(and with it hadPlan), Role, and SoftwareAgent. The Thing class can
be used to express these concepts in a generic fashion. Dedicated support
is left to more application-specific schemas that require these concepts.
The PROV-O concept of PrimarySource, as a special case of a Derivation
is not supported. Use the role annotation to identify an influencing entity
in a Derivation as a "primary source".
More information may be available on the schema's about page.
The schema definition is available as
URI: https://concepts.datalad.org/s/prov-mixin/unreleased
Name: prov-mixin-schema
Schema Diagram
erDiagram
ActivityInfluence {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
ActivityMixin {
}
AgentInfluence {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
AgentMixin {
}
Annotation {
string annotation_value
}
Association {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
AttributeSpecification {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
uriorcurie range
string value
}
Attribution {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Communication {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Delegation {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Derivation {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
End {
W3CISO8601 at_time
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
EntityInfluence {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
EntityMixin {
}
Generation {
W3CISO8601 at_time
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Influence {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
InstantaneousEventMixin {
W3CISO8601 at_time
}
Invalidation {
W3CISO8601 at_time
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Property {
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Quotation {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Revision {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Start {
W3CISO8601 at_time
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Statement {
}
Thing {
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
ThingMixin {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Usage {
W3CISO8601 at_time
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
ValueSpecification {
uriorcurie range
string value
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
ValueSpecificationMixin {
uriorcurie range
string value
}
ActivityInfluence ||--|o Thing : "object"
ActivityInfluence ||--}o Annotation : "annotations"
ActivityInfluence ||--}o AttributeSpecification : "attributes"
ActivityInfluence ||--}o Statement : "characterized_by"
ActivityInfluence ||--}o Thing : "roles"
ActivityMixin ||--|o End : "ended"
ActivityMixin ||--|o Start : "started"
ActivityMixin ||--}o Association : "associated_with"
ActivityMixin ||--}o Communication : "informed_by"
ActivityMixin ||--}o Influence : "influenced_by"
ActivityMixin ||--}o Usage : "used"
AgentInfluence ||--|o Thing : "object"
AgentInfluence ||--}o Annotation : "annotations"
AgentInfluence ||--}o AttributeSpecification : "attributes"
AgentInfluence ||--}o Statement : "characterized_by"
AgentInfluence ||--}o Thing : "roles"
AgentMixin ||--|o Delegation : "delegated_by"
AgentMixin ||--}o Influence : "influenced_by"
Annotation ||--|o Thing : "annotation_tag"
Association ||--|o End : "ended"
Association ||--|o Start : "started"
Association ||--|o Thing : "object"
Association ||--}o Annotation : "annotations"
Association ||--}o AttributeSpecification : "attributes"
Association ||--}o Statement : "characterized_by"
Association ||--}o Thing : "roles"
AttributeSpecification ||--|| Property : "predicate"
AttributeSpecification ||--}o Annotation : "annotations"
AttributeSpecification ||--}o AttributeSpecification : "attributes"
AttributeSpecification ||--}o Statement : "characterized_by"
Attribution ||--|o Thing : "object"
Attribution ||--}o Annotation : "annotations"
Attribution ||--}o AttributeSpecification : "attributes"
Attribution ||--}o Statement : "characterized_by"
Attribution ||--}o Thing : "roles"
Communication ||--|o Thing : "object"
Communication ||--}o Annotation : "annotations"
Communication ||--}o AttributeSpecification : "attributes"
Communication ||--}o Statement : "characterized_by"
Communication ||--}o Thing : "roles"
Delegation ||--|o End : "ended"
Delegation ||--|o Start : "started"
Delegation ||--|o Thing : "object"
Delegation ||--}o Annotation : "annotations"
Delegation ||--}o AttributeSpecification : "attributes"
Delegation ||--}o Statement : "characterized_by"
Delegation ||--}o Thing : "roles"
Derivation ||--|o Generation : "generated_by"
Derivation ||--|o Thing : "object"
Derivation ||--}o Annotation : "annotations"
Derivation ||--}o AttributeSpecification : "attributes"
Derivation ||--}o Statement : "characterized_by"
Derivation ||--}o Thing : "roles"
Derivation ||--}o Usage : "used"
End ||--|o Thing : "at_location"
End ||--|o Thing : "object"
End ||--}o Annotation : "annotations"
End ||--}o AttributeSpecification : "attributes"
End ||--}o Statement : "characterized_by"
End ||--}o Thing : "roles"
EntityInfluence ||--|o Thing : "object"
EntityInfluence ||--}o Annotation : "annotations"
EntityInfluence ||--}o AttributeSpecification : "attributes"
EntityInfluence ||--}o Statement : "characterized_by"
EntityInfluence ||--}o Thing : "roles"
EntityMixin ||--|o Generation : "generated_by"
EntityMixin ||--|o Invalidation : "invalidated_by"
EntityMixin ||--|o Quotation : "quoted_from"
EntityMixin ||--|o Revision : "revision_of"
EntityMixin ||--|o Thing : "alternate_of"
EntityMixin ||--|o Thing : "specialization_of"
EntityMixin ||--}o Attribution : "attributed_to"
EntityMixin ||--}o Derivation : "derived_from"
EntityMixin ||--}o Influence : "influenced_by"
Generation ||--|o Thing : "at_location"
Generation ||--|o Thing : "object"
Generation ||--}o Annotation : "annotations"
Generation ||--}o AttributeSpecification : "attributes"
Generation ||--}o Statement : "characterized_by"
Generation ||--}o Thing : "roles"
Influence ||--|o Thing : "object"
Influence ||--}o Annotation : "annotations"
Influence ||--}o AttributeSpecification : "attributes"
Influence ||--}o Statement : "characterized_by"
Influence ||--}o Thing : "roles"
InstantaneousEventMixin ||--|o Thing : "at_location"
Invalidation ||--|o Thing : "at_location"
Invalidation ||--|o Thing : "object"
Invalidation ||--}o Annotation : "annotations"
Invalidation ||--}o AttributeSpecification : "attributes"
Invalidation ||--}o Statement : "characterized_by"
Invalidation ||--}o Thing : "roles"
Property ||--}o Annotation : "annotations"
Property ||--}o AttributeSpecification : "attributes"
Property ||--}o Statement : "characterized_by"
Property ||--}o Thing : "relations"
Quotation ||--|o Generation : "generated_by"
Quotation ||--|o Thing : "object"
Quotation ||--}o Annotation : "annotations"
Quotation ||--}o AttributeSpecification : "attributes"
Quotation ||--}o Statement : "characterized_by"
Quotation ||--}o Thing : "roles"
Quotation ||--}o Usage : "used"
Revision ||--|o Generation : "generated_by"
Revision ||--|o Thing : "object"
Revision ||--}o Annotation : "annotations"
Revision ||--}o AttributeSpecification : "attributes"
Revision ||--}o Statement : "characterized_by"
Revision ||--}o Thing : "roles"
Revision ||--}o Usage : "used"
Start ||--|o Thing : "at_location"
Start ||--|o Thing : "object"
Start ||--}o Annotation : "annotations"
Start ||--}o AttributeSpecification : "attributes"
Start ||--}o Statement : "characterized_by"
Start ||--}o Thing : "roles"
Statement ||--|| Property : "predicate"
Statement ||--|| Thing : "object"
Thing ||--}o Annotation : "annotations"
Thing ||--}o AttributeSpecification : "attributes"
Thing ||--}o Statement : "characterized_by"
Thing ||--}o Thing : "relations"
ThingMixin ||--}o Annotation : "annotations"
ThingMixin ||--}o AttributeSpecification : "attributes"
ThingMixin ||--}o Statement : "characterized_by"
Usage ||--|o Thing : "at_location"
Usage ||--|o Thing : "object"
Usage ||--}o Annotation : "annotations"
Usage ||--}o AttributeSpecification : "attributes"
Usage ||--}o Statement : "characterized_by"
Usage ||--}o Thing : "roles"
ValueSpecification ||--}o Annotation : "annotations"
ValueSpecification ||--}o AttributeSpecification : "attributes"
ValueSpecification ||--}o Statement : "characterized_by"
ValueSpecification ||--}o Thing : "relations"
Classes
| Class | Description |
|---|---|
| ActivityMixin | An activity is something that occurs over a period of time and acts upon or w... |
| AgentMixin | Something that bears some form of responsibility for an activity taking place... |
| Annotation | A tag/value pair with the semantics of OWL Annotation |
| AttributeSpecification | An attribute is conceptually a thing, but it requires no dedicated identifier... |
| EntityMixin | A physical, digital, conceptual, or other kind of thing with some fixed aspec... |
| Influence | Influence is the capacity of an entity, activity, or agent to have an effect ... |
| ActivityInfluence | ActivitiyInfluence is the capacity of an activity to have an effect on the ch... |
| Communication | Communication is the exchange of an entity by two activities, one activity us... |
| Generation | Generation is the completion of production of a new entity by an activity |
| Invalidation | Invalidation is the start of the destruction, cessation, or expiry of an exis... |
| AgentInfluence | AgentInfluence is the capacity of an agent to have an effect on the character... |
| Association | An activity association is an assignment of responsibility to an agent for an... |
| Attribution | Attribution is the ascribing of an entity to an agent |
| Delegation | Delegation is the assignment of authority and responsibility to an agent (by ... |
| EntityInfluence | EntityInfluence is the capacity of an entity to have an effect on the charact... |
| Derivation | A derivation is a transformation of an entity into another, an update of an e... |
| Quotation | A quotation is the repeat of (some or all of) an entity, such as text or imag... |
| Revision | A revision is a derivation for which the resulting entity is a revised versio... |
| End | End is when an activity is deemed to have been ended by an entity, known as t... |
| Start | Start is when an activity is deemed to have been started by an entity, known ... |
| Usage | Usage is the beginning of utilizing an entity by an activity |
| InstantaneousEventMixin | The PROV data model is implicitly based on a notion of instantaneous events (... |
| Statement | An RDF statement that links a predicate (a Property) with an object (a ... |
| Thing | The most basic, identifiable item |
| Property | An RDF property, a Thing used to define a predicate, for example in a `St... |
| ValueSpecification | A Thing that is a value of some kind |
| ThingMixin | Mix-in with the common interface of Thing and AttributeSpecification |
| ValueSpecificationMixin | Mix-in for a (structured) value specification |
Slots
| Slot | Description |
|---|---|
| about | A relation of an information artifact to the subject, such as a URL identifyi... |
| alternate_of | Two alternate entities present aspects of the same thing |
| annotation_tag | A tag identifying an annotation |
| annotation_value | The actual annotation |
| annotations | A record of properties of the metadata record on a subject, a collection of t... |
| associated_with | An activity association is an assignment of responsibility to an agent for an... |
| at_location | Associate the subject with a location |
| at_time | Time at which an instanteneous event takes place or took place |
| attributed_to | Attribution is the ascribing of an entity to an agent |
| attributes | Declares a relation that associates a Thing (or another attribute) with an ... |
| broad_mappings | A list of terms from different schemas or terminology systems that have broad... |
| characterized_by | Qualifies relationships between a subject Thing and an object Thing with ... |
| close_mappings | A list of terms from different schemas or terminology systems that have close... |
| conforms_to | An established standard to which the subject conforms |
| date_modified | Timepoint at which the subject was (last) changed, updated or modified |
| date_published | Timepoint at which the subject was (last) published |
| delegated_by | Delegation is the assignment of authority and responsibility to an agent (by ... |
| depends_on | The subject depends on object in some way |
| derived_from | A entity from which the subject was created through some kind of process |
| description | A free-text account of the subject |
| ended | End is when an activity is deemed to have been ended by an entity, known as t... |
| ended_at | End is when an activity is deemed to have been ended by some trigger |
| exact_mappings | A list of terms from different schemas or terminology systems that have ident... |
| generated_by | Identification of the process that led to the production of the subject entit... |
| influenced_by | Influence is the capacity of an entity, activity, or agent to have an effect ... |
| informed_by | Communication is the exchange of an entity by two activities, one activity us... |
| invalidated_by | Invalidation is the start of the destruction, cessation, or expiry of an exis... |
| kind | The nature of the subject |
| locator | A descriptive identifier that locates a resource within a containing resource |
| mappings | A list of terms from different schemas or terminology systems that have compa... |
| narrow_mappings | A list of terms from different schemas or terminology systems that have narro... |
| object | Reference to a Thing within a Statement |
| part_of | The entity that the subject is a part of |
| parts | A related resource that is included either physically or logically in the des... |
| pid | Persistent and globally unique identifier of a Thing |
| predicate | Reference to a Property within a Statement |
| quoted_from | A quotation is the repeat of (some or all of) an entity, such as text or imag... |
| range | Declares that the value of a Thing or AttributeSpecification are instance... |
| related_mappings | A list of terms from different schemas or terminology systems that have relat... |
| relations | Declares an unqualified relation of the subject Thing to another Thing |
| revision_of | A revision is a derivation for which the resulting entity is a revised versio... |
| roles | Describes the function of an entity or agent (object) within the scope of a r... |
| same_as | Declares that the subject and an object are equal |
| schema_type | State that the subject is an instance of a particular schema class |
| specialization_of | An entity that is a specialization of another shares all aspects of the latte... |
| started | Start is when an activity is deemed to have been started by an entity, known ... |
| started_at | Start is when an activity is deemed to have been started by some trigger |
| used | Usage is the beginning of utilizing an entity by an activity |
| value | Value that is a direct representation of a thing |
| version_of | A related resource of which the described resource is a version, edition, or ... |
Enumerations
| Enumeration | Description |
|---|---|
Types
| Type | Description |
|---|---|
| Boolean | A binary (true or false) value |
| Curie | a compact URI |
| Date | a date (year, month and day) in an idealized calendar |
| DateOrDatetime | Either a date or a datetime |
| Datetime | The combination of a date and time |
| Decimal | A real number with arbitrary precision that conforms to the xsd:decimal speci... |
| Double | A real number that conforms to the xsd:double specification |
| EmailAddress | RFC 5322 compliant email address |
| Float | A real number that conforms to the xsd:float specification |
| HexBinary | hex-encoded binary data |
| Integer | An integer |
| Jsonpath | A string encoding a JSON Path |
| Jsonpointer | A string encoding a JSON Pointer |
| Ncname | Prefix part of CURIE |
| Nodeidentifier | A URI, CURIE or BNODE that represents a node in a model |
| NodeUriOrCurie | A type referencing an graph node |
| NonNegativeInteger | An integer |
| Objectidentifier | A URI or CURIE that represents an object in the model |
| Sparqlpath | A string encoding a SPARQL Property Path |
| String | A character string |
| Time | A time object represents a (local) time of day, independent of any particular... |
| Uri | a complete URI |
| Uriorcurie | a URI or a CURIE |
| W3CISO8601 | W3C variant/subset of IS08601 for specifying date(times) |
Subsets
| Subset | Description |
|---|---|