Skip to content

Qualified relations

Riccardo Albertoni edited this page May 4, 2020 · 58 revisions

Pattern

The Qualified Relation pattern is a solution for refining a relationship between entities. It is helpful when additional information about a relationship is required, such as the time-instant or -interval when a relationship existed, or when the complete set of relationships cannot be defined in the base vocabulary. The qualifier is either (preferably) taken from a set of values maintained separately to the base vocabulary (e.g. in a controlled vocabulary), or may be defined inline, i.e. at 'run-time'.

ex:Resource2 :relatedResource ex:Resource1 .

ex:Resource2 :related [
    a :QualifiedRelation ; 
    :hadRole voc32:roleA ; 
    :atTime "2018-05-31T12:00:00.00"^^xsd:dateTime ;
    :resource ex:Resource1 ] . 

Qualified relations are often implemented as blank-nodes, as shown here.

Precedents

Examples of qualified relationships in existing W3C vocabularies include:

  1. The qualified terms in Prov-O each elaborate one of the simple relationships defined in the 'Starting Point' and 'Expanded' parts of the vocabulary. The qualified forms allow for various kinds of qualification, including time, role, plan etc.

  2. In the Organization Ontology relationships between Organizations and Agents (e.g. Persons) are implemented using association classes Post and Membership which allow the role and timing of the relationship to be specified.

  3. The Sample Relations module in SSN supports the wide variety of relationships between Samples that are required to describe all potential scenarios in empirical science.

DCAT applications

The code for these applications is currently in

Agent roles

A generic attribution relationship from a dataset to an agent can be encoded using prov:wasAttributedTo.

Standard specializations (implicitly sub-properties of prov:wasAttributedTo) are available from Dublin Core, dct:contributor, dct:creator, and dct:publisher. However, there are many other potential roles for an agent with respect to an entity or resource. These can be encoded using the qualified form prov:qualifiedAttribution from PROV-O, as shown in the following example:

ex:DS987
  a dcat:Dataset ;
  prov:qualifiedAttribution [
    a prov:Attribution ;
    prov:agent <https://www.ala.org.au/> ;
    dcat:hadRole <https://inspire.ec.europa.eu/metadata-codelist/ResponsiblePartyRole/distributor>
  ] ;
  prov:qualifiedAttribution [
    a prov:Attribution ;
    prov:agent <https://www.education.gov.au/> ;
    dcat:hadRole <http://id.loc.gov/vocabulary/relators/fnd>
  ] ;
.    

In this example the values of dcat:hadRole are taken from the INSPIRE list of responsible party roles and the MARC Relators

Some controlled vocabularies of agent roles are available, including

Note: The rdfs:domain of prov:hadRole property is prov:Association [PROV-O] i.e. PROV-O roles relate to activities, not entities. Therefore, a new property dcat:hadRole is required to attach a specific role to a prov:Attribution.

Related datasets

Generic relationships between datasets can be encoded using dct:relation (see Property: resource relation).

Standard specializations (sub-properties) of dct:relation are available from Dublin Core and PROV-O. The W3C Data cube vocabulary also has two properties related to specific sub-setting arrangements: qb:slice for lower dimensional subsets; qb:observation for a single item from a dataset .

dct:relation sub-properties

For cases where none of these are suitable, the qualified relation pattern can be used. Standard PROV-O qualified terms to relate entities are prov:qualifiedDerivation or prov:qualifiedInfluence, but do not appear to cover the full scope required. In particular, they do not fully cover

  • part-whole or entity composition (other than as members of a collection)
  • members of a series, including sequential or relative positions within the series
  • spatio-temporal and topological relationships

To satisfy this, a new property dcat:qualifiedRelation and class dcat:QualifiedRelationship could be introduced in DCAT, along with dcat:hadRole, and used following this example:

ex:Test987
  a dcat:Dataset ; 
  dcat:qualifiedRelation [
    a dcat:QualifiedRelationship ;
    dcat:target <http://example.org/Test123> ;
    dcat:hadRole "canonical" ;
  ] ;
.

In this example the value of dcat:hadRole is taken from the IANA registry of Link Relations

Some controlled vocabularies of dataset relations are available, including

Project context

The term prov:qualifiedGeneration from PROV-O may be used to provide details of how an activity provides context for a dataset or other resource, using the following pattern:

ex:DS987 
  a dcat:Dataset ;
  prov:qualifiedGeneration [
    a prov:Generation ;
    prov:activity <https://collections.ala.org.au/public/show/dp3904> ;
    prov:atTime "2014-05-31T12:00:00"^^xsd:dateTime 
  ] ;
.    

Here the qualified relation pattern allows us to add a time-stamp to the association between a data set and the (ongoing) activity which generated it.

Simple relations

Simple relations can be mapped to qualified relations using property-chain-axioms. For example, the well known Dublin Core properties dct:creator, dct:contributor, dct:publisher can be related to the qualified forms from PROV-O as follows:

dct:publisher
  rdfs:subPropertyOf prov:wasAttributedTo ;  
  owl:propertyChainAxiom (                   
    [                                      
      rdf:type owl:ObjectProperty ;
      rdfs:subPropertyOf prov:qualifiedAttribution ;
      rdfs:range [
        rdf:type owl:Class ;
        rdfs:subClassOf prov:Attribution ;
        rdfs:subClassOf [
          rdf:type owl:Restriction ;
          owl:hasValue <http://inspire.ec.europa.eu/metadata-codelist/ResponsiblePartyRole/publisher> ;
          owl:onProperty dcat:hadRole ;
        ] ;
      ] ;
    ]
    prov:agent
  ) ;
.

i.e. dct:publisher is

  • a special cases of prov:wasAttributedTo
  • corresponding to the property-chain [ prov:qualifiedAttribution , prov:agent ]
  • with the value of the dcat:hadRole property on the prov:Attribution fixed to <http://inspire.ec.europa.eu/metadata-codelist/ResponsiblePartyRole/publisher>.

DCT to PROV mappings

Some specific entity-entity relationships are included in the Dublin Core Metadata Terms (with mappings to PROV-O taken from prov-dc), including

  • dct:hasVersion rdfs:subPropertyOf prov:hadRevision
  • dct:hasFormat rdfs:subPropertyOf prov:alternateOf
  • dct:references rdfs:subPropertyOf prov:wasDerivedFrom
  • dct:replaces complex mapping
  • dct:source rdfs:subPropertyOf prov:wasDerivedFrom

DCAT requirements

The following Use Cases potentially require solutions using qualified forms

The following Requirements derived from these use cases appear to be resolvable using qualified forms