Skip to content

Schema for a generic (data) provenance annotation

This schema builds on the Thing schema, and diversifies it to capture the key provenance concepts Agent, Activity, Entity, and their relationships. It does that by drawing on (a subset) of the PROV data model PROV-DM.

Central paradigm of the schema is the qualified relation pattern. The three Thing derived key concepts Agent, Activity, and Entity build on the Thing slot relations (symmetric property) for inline declaration of related things, and extend the basic means of qualifying a relationship via characterized_by and with provenance specific slots, and qualified_relations for declaring the roles of related things.

Specifically the latter approach takes the place of all of the various qualified* properties defined in PROV. Rather than supporting association classes like prov:Derivation or prov:Generation, such relationships are annotated by linking to things via slots like derived_from or generated_by, and characterizing the relationship via qualified_relations, and a (custom) Role declaration.

The schema is entity-centric, meaning that entity properties are preferred over activity properties expressing the same (inverse) relationship. For example, an entity's generated_by is implemented, but not an activity's generated.

This schema also incorporates the schemas

The schema definition is available as

URI: https://concepts.datalad.org/s/prov/unreleased

Name: prov-schema

Schema Diagram

erDiagram Agent { uriorcurie pid uriorcurieList broad_mappings uriorcurieList close_mappings string description uriorcurieList exact_mappings uriorcurieList narrow_mappings uriorcurieList related_mappings NodeUriOrCurie schema_type } Activity { W3CISO8601 ended_at W3CISO8601 started_at uriorcurie pid uriorcurieList broad_mappings uriorcurieList close_mappings string description uriorcurieList exact_mappings uriorcurieList narrow_mappings uriorcurieList related_mappings NodeUriOrCurie schema_type } Entity { uriorcurie pid uriorcurieList broad_mappings uriorcurieList close_mappings string description uriorcurieList exact_mappings uriorcurieList narrow_mappings uriorcurieList related_mappings NodeUriOrCurie schema_type } SoftwareAgent { 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 } ValueSpecificationMixin { uriorcurie range string value } 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 } Property { uriorcurie pid 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 } 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 } Annotation { string annotation_value } Identifier { uriorcurie creator string notation NodeUriOrCurie schema_type } IssuedIdentifier { string schema_agency uriorcurie creator string notation NodeUriOrCurie schema_type } ComputedIdentifier { uriorcurie creator string notation NodeUriOrCurie schema_type } Checksum { uriorcurie creator HexBinary notation NodeUriOrCurie schema_type } DOI { string schema_agency uriorcurie creator string notation NodeUriOrCurie schema_type } Role { uriorcurie pid uriorcurieList broad_mappings uriorcurieList close_mappings string description uriorcurieList exact_mappings uriorcurieList narrow_mappings uriorcurieList related_mappings NodeUriOrCurie schema_type } Relationship { NodeUriOrCurie schema_type } Location { uriorcurie pid uriorcurieList broad_mappings uriorcurieList close_mappings string description uriorcurieList exact_mappings uriorcurieList narrow_mappings uriorcurieList related_mappings NodeUriOrCurie schema_type } InstantaneousEvent { W3CISO8601 at_time uriorcurie pid uriorcurieList broad_mappings uriorcurieList close_mappings string description uriorcurieList exact_mappings uriorcurieList narrow_mappings uriorcurieList related_mappings NodeUriOrCurie schema_type } TransientRelationship { W3CISO8601 started_at W3CISO8601 ended_at NodeUriOrCurie schema_type } Agent ||--}o Agent : "acted_on_behalf_of" Agent ||--|o Location : "at_location" Agent ||--}o Identifier : "identifiers" Agent ||--}o Relationship : "qualified_relations" Agent ||--}o Thing : "relations" Agent ||--}o Annotation : "annotations" Agent ||--}o AttributeSpecification : "attributes" Agent ||--}o Statement : "characterized_by" Activity ||--|o Location : "at_location" Activity ||--}o Identifier : "identifiers" Activity ||--}o Relationship : "qualified_relations" Activity ||--}o Agent : "associated_with" Activity ||--}o Activity : "informed_by" Activity ||--}o Thing : "relations" Activity ||--}o Annotation : "annotations" Activity ||--}o AttributeSpecification : "attributes" Activity ||--}o Statement : "characterized_by" Entity ||--}o Identifier : "identifiers" Entity ||--}o Relationship : "qualified_relations" Entity ||--}o Agent : "attributed_to" Entity ||--}o Entity : "derived_from" Entity ||--}o Activity : "generated_by" Entity ||--}o Thing : "relations" Entity ||--}o Annotation : "annotations" Entity ||--}o AttributeSpecification : "attributes" Entity ||--}o Statement : "characterized_by" SoftwareAgent ||--}o Agent : "acted_on_behalf_of" SoftwareAgent ||--|o Location : "at_location" SoftwareAgent ||--}o Identifier : "identifiers" SoftwareAgent ||--}o Relationship : "qualified_relations" SoftwareAgent ||--}o Thing : "relations" SoftwareAgent ||--}o Annotation : "annotations" SoftwareAgent ||--}o AttributeSpecification : "attributes" SoftwareAgent ||--}o Statement : "characterized_by" ThingMixin ||--}o Annotation : "annotations" ThingMixin ||--}o AttributeSpecification : "attributes" ThingMixin ||--}o Statement : "characterized_by" AttributeSpecification ||--|| Property : "predicate" AttributeSpecification ||--}o Annotation : "annotations" AttributeSpecification ||--}o AttributeSpecification : "attributes" AttributeSpecification ||--}o Statement : "characterized_by" Property ||--}o Thing : "relations" Property ||--}o Annotation : "annotations" Property ||--}o AttributeSpecification : "attributes" Property ||--}o Statement : "characterized_by" Statement ||--|| Thing : "object" Statement ||--|| Property : "predicate" Thing ||--}o Thing : "relations" Thing ||--}o Annotation : "annotations" Thing ||--}o AttributeSpecification : "attributes" Thing ||--}o Statement : "characterized_by" ValueSpecification ||--}o Thing : "relations" ValueSpecification ||--}o Annotation : "annotations" ValueSpecification ||--}o AttributeSpecification : "attributes" ValueSpecification ||--}o Statement : "characterized_by" Annotation ||--|o Thing : "annotation_tag" Role ||--}o Thing : "relations" Role ||--}o Annotation : "annotations" Role ||--}o AttributeSpecification : "attributes" Role ||--}o Statement : "characterized_by" Relationship ||--|| Thing : "object" Relationship ||--}o Role : "roles" Location ||--}o Identifier : "identifiers" Location ||--}o Relationship : "qualified_relations" Location ||--}o Thing : "relations" Location ||--}o Annotation : "annotations" Location ||--}o AttributeSpecification : "attributes" Location ||--}o Statement : "characterized_by" InstantaneousEvent ||--}o Identifier : "identifiers" InstantaneousEvent ||--}o Relationship : "qualified_relations" InstantaneousEvent ||--}o Thing : "relations" InstantaneousEvent ||--}o Annotation : "annotations" InstantaneousEvent ||--}o AttributeSpecification : "attributes" InstantaneousEvent ||--}o Statement : "characterized_by" TransientRelationship ||--|| Thing : "object" TransientRelationship ||--}o Role : "roles"
Press "Alt" / "Option" to enable Pan & Zoom

Classes

Class Description
Annotation A tag/value pair with the semantics of OWL Annotation
AttributeSpecification An attribute is conceptually a thing, but it requires no dedicated identifier...
Identifier An identifier is a label that uniquely identifies an item in a particular con...
        ComputedIdentifier An identifier that has been derived from information on the identified entity
                Checksum A Checksum is a value that allows to check the integrity of the contents of a...
        IssuedIdentifier An identifier that was issued by a particular agent with a notation that has ...
                DOI Digital Object Identifier (DOI; ISO 26324), an identifier system governed by ...
Relationship An association class for characterizing the relation between two things with ...
        TransientRelationship A relationship that is valid or remains in place for a limited time
Statement An RDF statement that links a predicate (a Property) with an object (a ...
Thing The most basic, identifiable item
        Activity An activity is something that occurs over a period of time and acts upon or w...
        Agent Something that bears some form of responsibility for an activity taking place...
                SoftwareAgent Running software
        Entity A physical, digital, conceptual, or other kind of thing with some fixed aspec...
        InstantaneousEvent A moment of a transition from one particular state of the world to another
        Location A location can be an identifiable geographic place (ISO 19112), but it can al...
        Property An RDF property, a Thing used to define a predicate, for example in a `St...
        Role A role is the function of a resource or agent with respect to a subject, in t...
        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
acted_on_behalf_of Assign the authority and responsibility for carrying out a specific activity ...
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...
creator An agent responsible for making an entity
date_modified Timepoint at which the subject was (last) changed, updated or modified
date_published Timepoint at which the subject was (last) published
derived_from Derivation is a transformation of an entity into another, an update of an ent...
description A free-text account of the subject
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 Generation is the completion of production of a new entity by an activity
identifiers An unambiguous reference to the subject within a given context
informed_by Communication is the exchange of an entity by two activities, one activity us...
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...
notation String of characters such as "T58:5" or "30:4833" used to uniquely identify a...
object Reference to a Thing within a Statement
pid Persistent and globally unique identifier of a Thing
predicate Reference to a Property within a Statement
qualified_relations Characterizes the relationship or role of an entity with respect to the subje...
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
roles Describes the function of an entity or agent (object) within the scope of a `...
schema_agency Name of the agency that issued an identifier
schema_type State that the subject is an instance of a particular schema class
started_at Start is when an activity is deemed to have been started by some trigger
value Value of a thing

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