Dxwg: Express dct:contributor explicitly or via qualifiedAttribution

Created on 10 Sep 2019  路  8Comments  路  Source: w3c/dxwg

The text in 13.1 as well as the hadRole description in the changelog seems to indicate that qualifiedAttribution should not be used when the relation is well captured by the semantics of dct:publisher, dct:creator and dct:contributor.

However, dct:contributor is not listed as one of the properties on a cataloged resource. This seems inconsistent.

Editorial dcat feedback future-work qualified relations

All 8 comments

Thanks for pointing this out, @matthiaspalmer .

dct:contributor is not explicitly included in the DCAT vocabulary as none of the contributed use cases and related requirements was asking for that.

The references in the DCAT spec to dct:contributor were added to give an example of a generic agent role. But indeed this may be misleading / generate confusion.

We probably need to remove such references, or rephrase them to make it clear that dct:contributor is used just as an example of a generic agent role.

@agbeltran , @dr-shorthair , @davebrowning , @pwin , @riccardoAlbertoni , WDYT?

dcat:hadRole provides a generic or extensible place to attach semantics to a relationship. As mentioned in the text in https://w3c.github.io/dxwg/dcat/#qualified-forms it can be used any time, but in some cases a more specific predicate from DC Terms or PROV or maybe other places is suitable and already in wide use. I don't think we can enumerate all the possibilities.

However, dct:contributor is not listed as one of the properties on a cataloged resource. This seems inconsistent.

I'd like to remind that DCAT should be interpreted following the usual RDF open-world assumptions around the presence/absence of properties, relationships. So, "not being listed" doesn't imply a property can't be used.

@dr-shorthair , @riccardoAlbertoni , I agree with you. But the fact that @matthiaspalmer raised this issue implies that readers may see it as an inconsistency.

As @andrea-perego said, it was confusing for me. Let me elaborate.
The two first sentences in 13.1:

The standard [DCTERMS] properties dct:contributor, dct:creator and dct:publisher, and the generic prov:wasAttributedTo from [PROV-O], support basic associations of responsible agents with a cataloged resource. However, there are many other roles of importance in relation to datasets and services - e.g. funder, distributor, custodian, editor.

I would use "basic associations" to refer only to the 2 properties to be expressed directly (dct:creator and dct:publisher). To include in the same sentence also the generic construction and one specific use of that construction (prov:wasAttributedTo with dct:contributor) is very confusing. Especially when the next sentence talks about "other roles" that makes the case for the use of that generic construction.

The sentence in the changelog is also confusing:

The property dcat:hadRole is added to support the use of prov:qualifiedAttribution to associate an agent with a resource, where the role of the agent with relation to the resource is specified, and is something other than the standard [DCTERMS] roles: creator, publisher or contributor.

I interpret "something other than" to mean "do not use dcat:hadRole for these listed predicates".

Furthermore, I found the following in chapter C2 which I missed before:

prov:wasAttributedTo provides a general link to all kinds of associated agents, such as project sponsors, managers, dataset owners, etc which are not correctly characterized using dct:creator, dct:contributor or dct:publisher.

Again, this seems to indicate that prov:wasAttributedTo should not be used for dct:contributor!

I understand the comment from @riccardoAlbertoni about the open world, but the DCAT "recommends" certain properties, including dct:creator, dct:publisher and prov:wasAttributedTo. So my point is that the W3C Recommendation should make clear if it "recommends" dct:contributor to be expressed directly on a cataloged resource or via prov:wasAttributedTo. Currently I think there are four different places that makes you scratch your head.

So why beat around the bush, just make the wording clear that dct:contributor is to be used in conjuction with prov:qualifiedAttribution and everything is fine. As @dr-shorthair says, it is impossible to enumerate all the possibilities, but since dct:contributor is mentioned several times it does not hurt to clarify how the relation is supposed to be expressed.

So, to summarize, this is how I read the document right now:

Should dct:contributor be expressed as a direct property?

  1. NO - Not explicitly recommended by the specification
  2. MAYBE - It is a basic association (chapter 13.1, the wording is unclear)
  3. YES - You can (open world argument)
  4. YES - Changelog and example C2 says not as prov:AttributedTo, so yes it has to be direct.

Should dct:contributor be expressed via prov:wasAttributedTo

  1. MAYBE - It is mentioned several times in chapter 13 (unclear wording)
  2. NO - According to changelog (as I interpret the text)
  3. NO - According to text in the C2 example.

I think all mentions of dct:contributor in the document are more or less unclear, they should be revisited and clarified.

@matthiaspalmer , based on what you say, there's actually some confusion.

Properties prov:wasAttributedTo / dcat:hadRole has been added in order to provide a standard pattern to be used to express roles not available in existing vocabularies, and specifically in [DCTERMS]. So, if you want to use a role from [DCTERMS] which is not explicitly included in DCAT (as dct:contributor), you should indeed use it, and you should not use prov:wasAttributedTo / dcat:hadRole for that.

This is basically the sense of all the passages you quote, and you can probably find more background information in the use cases that triggered this feature in DCAT2 - see, e.g., https://www.w3.org/TR/dcat-ucr/#ID13

So, answering your questions:

Should dct:contributor be expressed as a direct property?

YES

Should dct:contributor be expressed via prov:wasAttributedTo?

NO

@andrea-perego I appreciate the common understanding that there is confusion here :-)
I do not really have an opinion which way it should be, I just want it to be clear.

If your interpretation holds, that it should be expressed directly. Then how should this be formulated better in DCAT? Below is a clumsy attempt:

  1. It is recommended to use dct:creator and dct:publisher as direct properties.
  2. If there is a need to express other relations between datasets and agents, use the prov:wasAttributedTo with the corresponding property as dcat:hadRole.
  3. Special case: if the role is the generic dct:contributor, it should be expressed as a direct property as well, just like dct:creator and dct:publisher. However, we do not formally recommended this property on cataloged resources like we do for dct:creator and dct:publisher.

The nr. 3 special case would make more sense if it applied to more properties, but as far as I know, there are no more properties in DCTerms that it applies to.

Maybe the three rules above can be formalized in a less awkward way?

There is definitely two simpler ways if it is important to keep the model / writings in DCAT simpler:

  1. Recommend it OR
  2. express it via prov:wasAttributedTo

@matthiaspalmer , just to be crystal clear: the general principle to use existing roles if available does not apply to dct:contributor only, but to ALL available roles - e.g., in [DCTERMS] there are also dct:mediator and dct:rightsHolder.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

dret picture dret  路  4Comments

bertvannuffelen picture bertvannuffelen  路  4Comments

dr-shorthair picture dr-shorthair  路  4Comments

andrea-perego picture andrea-perego  路  5Comments

andrea-perego picture andrea-perego  路  6Comments