Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cardinality of dcat:endpointURL for dcat:DataService breaks maxCardinality of DCAT 2 and is hard to implement #166

Open
stigbd opened this issue Oct 13, 2020 · 5 comments
Labels
status:fixed This issue has been fixed in a draft.

Comments

@stigbd
Copy link

stigbd commented Oct 13, 2020

Submitter name and affiliation

Stig B. Dørmænen, Norwegian Digitalisation Agency

Portal, service or software product represented or affected

Norwegian national dataportal

Description of the problem or requirement

In DCAT_AP_2.0.1 endpointURL property of dcat:DataService is given by:

Property URI Range Usage note Card
endpointURL dcat:endpointURL rdfs:Resource The root location or primary endpoint of the service (an IRI). 1..n

I have two (interrelated) problems with this property, as given by DCAT-AP:

1. Cardinality of endpointURL breaks maxCardinality restriction given by W3C DCAT 2.0

In W3C DCAT 2.0 we find the following statements:

dcat:DataService
  a owl:Class ;
  rdfs:subClassOf [
      a owl:Restriction ;
      owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty dcat:endpointURL ;
    ] ;
.

As I understands the owl:maxCardinality, W3C DCAT 2 states that a dcat:DataService is a thing with at most one endpointURL. I cannot see that DCAT-APs definition of the property falls under "additional constraints" or emphasizing usage in relation to DCAT 2.

2. How to implement a DataService with many endpointURLs

If it would be the case that a DataService did have more than one endpointURL, I can not see how to describe it in a way that does not break the definition (usage note in dcat-ap ) endpointURL. Consider the following example:

<http://example.com/dataservices/1> a dcat:DataService;
         dcat:endpointURL <http://example.com/endpointURL/1> ,                           
                          <http://example.com/endpointURL/2>
.

There is no way to identify "the root location or primary endpoint", since there is no distinguishing criteria to discriminate the one from the other. One solution might be:

<http://example.com/dataservices/1> a dcat:DataService;
         dcat:endpointURL <http://example.com/endpoints/1> ,
                          <http://example.com/endpoints/2>
.
http://example.com/endpoints/1> a rdfs:Resource;
         ????:url <http://example.com/endpointURL/1> ;
         ????:description "test"@en ;
.
http://example.com/endpoints/2> a rdfs:Resource;
         ????:url <http://example.com/endpointURL/2> ;
         ????:description "production"@en ;
.

This solution does validate according to dcat-ap 2 shacl, but I cannot see that it preserves the intention of the definition.

Proposed solution

I would propose to change the cardinalty of dcat:endpointURL to be [0..1].

  • DCAT-AP would no longer contradict W3C DCAT 2.
  • A "dataService" with two endpointURLs would then result in two distinct instances of DataService.
@andrea-perego
Copy link

For the records, this issue has also been raised as future work for DCAT (yet to be discussed) - see w3c/dxwg#1242

@stigbd stigbd changed the title Cardinality of dcat:endpointURL for dcat:DataService breaks maxCardniality of dcat 2 and is hard to implement Cardinality of dcat:endpointURL for dcat:DataService breaks maxCardinality of DCAT 2 and is hard to implement Oct 14, 2020
@bertvannuffelen
Copy link
Contributor

bertvannuffelen commented Oct 14, 2020

For the cardinality constraints: I agree we should align with the cardinality requirements from DCAT. A proposal adaption in the next draft will be made.

@bertvannuffelen
Copy link
Contributor

The discussions in the w3c group are of interest for this working group. So far this working group has not expressed major specific requirements for data services in the application context of DCAT-AP, namely Open Data Portals in the Europe. Aside of highlighting key information the DCAT-AP relies for data service description entirely on DCAT.

@bertvannuffelen
Copy link
Contributor

proposal:

An issue on this topic has been filed at W3C: namely it is unclear if the cardinalities in the w3c dcat.ttl file are normative or not.
See w3c/dxwg#1394

motivation:
The cardinalities only appear in this ttl file, and are expressed as OWL constraints, and thus only when interpreting the dcat.ttl file as OWL then the cardinalities appear. This issue should be resolved by W3C.

Note that for properties this also holds and thus it would violate the interpretation that W3C DCAT is not imposing cardinalities when reading the html specification.

@bertvannuffelen bertvannuffelen added status:waitingForDecisionW3C The issue is handled at W3C and removed future-work this topic will be dealt in the future labels Sep 13, 2021
@bertvannuffelen
Copy link
Contributor

Issue in w3c/dxwg#1394 has been closed. So I propose to close also this issue.

@bertvannuffelen bertvannuffelen added status:fixed This issue has been fixed in a draft. and removed status:resolution-proposed labels Jan 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status:fixed This issue has been fixed in a draft.
Projects
None yet
Development

No branches or pull requests

3 participants