Skip to content

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.

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 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 { } ActivityMixin { } AgentInfluence { } AgentMixin { } Annotation { string annotation_value } Association { } 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 { } Communication { } Delegation { } Derivation { } End { W3CISO8601 at_time } EntityInfluence { } EntityMixin { } Generation { W3CISO8601 at_time } Influence { } InstantaneousEventMixin { W3CISO8601 at_time } Invalidation { W3CISO8601 at_time } Property { uriorcurie pid uriorcurieList broad_mappings uriorcurieList close_mappings string description uriorcurieList exact_mappings uriorcurieList narrow_mappings uriorcurieList related_mappings NodeUriOrCurie schema_type } Quotation { } Revision { } Start { W3CISO8601 at_time } 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 } 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 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 Thing : "roles" AgentMixin ||--|o Delegation : "delegated_by" AgentMixin ||--}o Influence : "influenced_by" Annotation ||--|o Thing : "annotation_tag" Association ||--|o Thing : "object" 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 Thing : "roles" Communication ||--|o Thing : "object" Communication ||--}o Thing : "roles" Delegation ||--|o Thing : "object" Delegation ||--}o Thing : "roles" Derivation ||--|o Generation : "generated_by" Derivation ||--|o Thing : "object" Derivation ||--}o Thing : "roles" Derivation ||--}o Usage : "used" End ||--|o Thing : "at_location" End ||--|o Thing : "object" End ||--}o Thing : "roles" EntityInfluence ||--|o Thing : "object" 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 Thing : "roles" Influence ||--|o Thing : "object" Influence ||--}o Thing : "roles" InstantaneousEventMixin ||--|o Thing : "at_location" Invalidation ||--|o Thing : "at_location" Invalidation ||--|o Thing : "object" 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 Thing : "roles" Quotation ||--}o Usage : "used" Revision ||--|o Generation : "generated_by" Revision ||--|o Thing : "object" Revision ||--}o Thing : "roles" Revision ||--}o Usage : "used" Start ||--|o Thing : "at_location" Start ||--|o Thing : "object" 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 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...
received_by Indicates the person or authoritative body who has received something
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