profileFormat: ODPV-Profile-1.0
id: ODPV-PROV-O
title: ODPV to PROV-O profile
version: 0.1.0
status: stable
vocabulary:
  id: ODPV
  version: 1.1.0
  baseUri: https://opendataproducts.org/odpv-v1.1/
externalStandard:
  name: PROV-O
  version: '2013'
  specification: https://www.w3.org/TR/prov-o/
  namespace: http://www.w3.org/ns/prov#
purpose: Represent ODPV provenance-related concepts using the PROV Entity, Activity, and Agent model.
scope:
  includes:
    - Agent, activity, usage, derivation, and generation provenance
    - Direction-preserving transformations
  excludes:
    - A full ODPV ontology
    - General graph serialization
    - Runtime event transport
mappings:
  - id: dataset
    kind: semanticMapping
    odpvTerm: Dataset
    externalReference: prov:Entity
    relation: closeMatch
    direction: bidirectional
    rationale: A dataset can be modeled as a PROV Entity, while PROV Entity also covers far more than data collections.
    evidence: https://www.w3.org/TR/prov-o/#Entity
    status: reviewed
  - id: agent
    kind: semanticMapping
    odpvTerm: Agent
    externalReference: prov:Agent
    relation: closeMatch
    direction: bidirectional
    rationale: Both name an actor with responsibility, while ODPV also includes automation actors and software systems in its data product-management scope.
    evidence: https://www.w3.org/TR/prov-o/#Agent
    status: reviewed
  - id: workflow
    kind: semanticMapping
    odpvTerm: Workflow
    externalReference: prov:Activity
    relation: closeMatch
    direction: bidirectional
    rationale: A workflow may be represented by one or more activities; PROV Activity captures the time-bounded occurrence that acts on entities.
    evidence: https://www.w3.org/TR/prov-o/#Activity
    status: reviewed
  - id: provider
    kind: semanticMapping
    odpvTerm: Provider
    externalReference: prov:Agent
    relation: closeMatch
    direction: bidirectional
    rationale: A provider can be represented as an agent responsible for a resource, but PROV Agent does not itself distinguish provider from owner or steward.
    evidence: https://www.w3.org/TR/prov-o/#Agent
    status: reviewed
  - id: uses
    kind: semanticMapping
    odpvTerm: uses
    externalReference: prov:used
    relation: closeMatch
    direction: bidirectional
    rationale: Both express use of an entity, while the ODPV relation is available in broader product and graph contexts.
    evidence: https://www.w3.org/TR/prov-o/#used
    status: reviewed
  - id: derived-from
    kind: semanticMapping
    odpvTerm: derivedFrom
    externalReference: prov:wasDerivedFrom
    relation: closeMatch
    direction: bidirectional
    rationale: Both express derivation, while PROV adds formal provenance constraints and optional activity detail.
    evidence: https://www.w3.org/TR/prov-o/#wasDerivedFrom
    status: reviewed
  - id: consumes
    kind: transformation
    odpvTerm: consumes
    externalReference: prov:used
    direction: odpvToExternal
    rationale: PROV used is asserted from an Activity to an Entity; a generic ODPV consumer must be bound to an activity before conversion.
    evidence: https://www.w3.org/TR/prov-o/#used
    status: reviewed
    implementationNotes: The SDK must create or resolve the consuming Activity and must not emit prov:used from a person, team, or product directly.
  - id: provided-by
    kind: transformation
    odpvTerm: providedBy
    externalReference: prov:wasAttributedTo
    direction: odpvToExternal
    rationale: Provider attribution can be represented in PROV when the provided object is an Entity and the provider is an Agent.
    evidence: https://www.w3.org/TR/prov-o/#wasAttributedTo
    status: reviewed
    implementationNotes: The SDK must preserve ODPV Provider role information because prov:wasAttributedTo does not distinguish provider from other agent roles.
  - id: produces
    kind: transformation
    odpvTerm: produces
    externalReference: prov:wasGeneratedBy
    direction: odpvToExternal
    rationale: ODPV produces is directed from a producer to an output; PROV records the output entity as generated by an activity.
    evidence: https://www.w3.org/TR/prov-o/#wasGeneratedBy
    status: reviewed
    implementationNotes: The SDK must represent the output as the subject of prov:wasGeneratedBy and ensure the producer is modeled as, or linked to, a PROV Activity.
  - id: version-of
    kind: transformation
    odpvTerm: versionOf
    externalReference: prov:wasRevisionOf
    direction: odpvToExternal
    rationale: A revision can represent an entity version when the ODPV version is a revision of an earlier entity; not every version relationship has that provenance meaning.
    evidence: https://www.w3.org/TR/prov-o/#wasRevisionOf
    status: reviewed
    implementationNotes: The SDK must emit prov:wasRevisionOf only when both endpoints are versioned PROV Entities and retain the ODPV edge otherwise.
