-
Notifications
You must be signed in to change notification settings - Fork 24
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
Propose change on inverse properties in DCAT? #313
Comments
I might be missing some important aspects here, so please chip in if there are any contradicting opinions on this topic. |
Hi @terjesyl thanks for you thorough proposal. After rereading it several times and the current DCAT specification, it seems that based on this section
our profile discussion which direction of the inverse property we like to use cannot be hold. The DCAT specification stipulates that at least one direction which they have chosen should be present. However given our discussions in DCAT-AP I feel that the community would possibly has interest in choosing a different basis. Taking is aspect into account I think we can resolve this as follows for the impacted properties:
Unfortunately we cannot simply remove all not supported DCAT properties as the case exists that cardinality constraints are to be expressed: E.g. A dataset in a dataset Series must be connected with a DatasetSeries. In that case the cardinality constraint should be expressed differently. |
Let me offer another perspective. Since both DCAT and DCAT-AP are RDF based specifications, and even JSON-LD allows us to use reverse properties, my question is:
Why is it a problem to use <pre-existing-dataset> dcat:inSeries <series> . instead of <series> dcat:seriesMember <pre-existing-dataset> . in the triples describing the series, and I get the same effect. If talking about JSON-LD representation of this, I can use What am I missing? |
@jakubklimek, @terjesyl raised a profile conformance points: namely that w3c DCAT has chosen the direction properties. According to that, DCAT-AP as a profile has not the choice use use either one. One must use always dcat:inSeries and optionally may add dcat:seriesMember. An knowledge graph with only dcat:seriesMember is not conform w3c DCAT. For me at the level of the semantics in the "data specification" this is fine. However, it means that DCAT-AP cannot promote the use of the other direction when this is considered the most appropriate and easier to implement. Promoting the other case would mean that the RDF exported by a catalogue has to be augmented before sharing with the W3C direction. |
@bertvannuffelen I think we are in agreement here. My question to @terjesyl is what is the exact problem in using the DCAT compliant |
Thanks for the input @jakubklimek. We are still discussing this on our team, so therefore the late reply. My question is if the DCAT-AP community sees it as beneficial to use dcat:seriesMember as the "main" property and dcat:inSeries as its inverse, and if that is a change we wish to propose to DCAT. (edit: adding minor remarks and fixing typos) |
[Sorry for the long text, which is "copied" from the sandbox https://jimjyang.github.io/playground/dataset-series/ where I tried to build a dataset series] Let’s build a dataset series using dcat:DatasetSeries! Use case: I. Assuming that we have the following three instances of dcat:Dataset, already published by three different Agents:
II. Assuming further that we have the following file to be harvested into our data portal, created by
Possible implementations: After the harvesting, in our data portal, should this instance of dcat:DatasetSeries A. use dcat:seriesMembers to refer directly to the abovementioned three instances of dcat:Dataset, as in https://jimjyang.github.io/playground/dataset-series/beesEU2022.ttl?
B. or, not use dcat:seriesMembers, as in https://jimjyang.github.io/playground/dataset-series/beesEU2022withoutMembers.ttl?
C. or, use dcat:seriesMembers referring to new instances of dcat:Dataset that refer to the original instances of dcat:Dataset using owl:sameAs, and these new instances of dcat:Dataset also refer back to the dataset series using dcat:inSeries, as in https://jimjyang.github.io/playground/dataset-series/beesEU2022withNewMemberURIs.ttl.
Questions:
|
@jimjyang I do not understand one thing. @prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <https://jimjyang.github.io/playgound/dataset-series/> .
### The dataset series description
<beesEU2022> a dcat:DatasetSeries ;
dct:title "Bee population in EU, 2022"@en ;
dct:description "A dataset series containing existing national open datasets."@en ;
rdfs:comment "assuming that members will refer to this dataset series using dcat:inSeries"@en ;
.
### Enriching the dataset descriptions by using their original URIs
<https://jimjyang.github.io/playground/dataset-series/beesBE2022> a dcat:Dataset ;
dcat:inSeries <beesEU2022> ;
.
<https://jimjyang.github.io/playground/dataset-series/beesCZ2022> a dcat:Dataset ;
dcat:inSeries <beesEU2022> ;
.
<https://jimjyang.github.io/playground/dataset-series/beesNO2022> a dcat:Dataset ;
dcat:inSeries <beesEU2022> ;
. I sense that the problem may be coming from this statement:
What do you mean exactly by "updating"? <beesEU2022> a dcat:DatasetSeries ;
<https://jimjyang.github.io/playground/dataset-series/beesNO2022> a dcat:Dataset ;
dcat:inSeries <beesEU2022> . i.e. I do not see sending an RDF triple with Additionally, (optionally), the portal can also add the inverse, sending e.g. <beesEU2022> a dcat:DatasetSeries ;
dcat:seriesMember <https://jimjyang.github.io/playground/dataset-series/beesNO2022> .
<https://jimjyang.github.io/playground/dataset-series/beesNO2022> a dcat:Dataset ;
dcat:inSeries <beesEU2022> ;
|
Sorry, @jakubklimek, that I wasn't (and still ain't) able to explain our concern precise enough. Our main concern is that using dcat:inSeries as the main property may make it more difficult to implement in non-reasoning systems than using dcat:seriesMember as the main property. Anyway, the main question is actually which property to choose as the main property. So, besides having to be compliant with W3C/DCAT3 (which though still is a Working Draft), could someone summarize the pros and cons of (the rationale behind) choosing dcat:inSeries as the main property (similarly pros and cons of choosing dcat:seriesMember)? |
@jimjyang OK, before we start listing pro's and con's (which may actually be a discussion best held in the W3C DCAT group), let me get better clarity on what you mean by non-reasoning systems. What makes the case <beesEU2022> a dcat:DatasetSeries ;
<https://jimjyang.github.io/playground/dataset-series/beesNO2022> a dcat:Dataset ;
dcat:inSeries <beesEU2022> . more difficult to work with for non-reasoning systems than <beesEU2022> a dcat:DatasetSeries ;
dcat:seriesMember <https://jimjyang.github.io/playground/dataset-series/beesNO2022> . ? |
@jakubklimek To be honest, I don't know if there are any systems which may be called "non-reasoning systems". What I mean is not (only) the (in)ability to understand subclasses, subproperties etc., but (also) the (in)ability to understand/infer the inverse property when only the main property is given. Theoretically and technically I also believe that it works either way, but I hope we choose the way which is "most logical" and "less difficult" to implement. So, when the whole intention behind introducing dcat:DatasetSeries is to catalogize dataset series and thus to know the members in the series, why not getting the members directly from the dataset series description (using dcat:seriesMember)? [I'm sorry that I'm unable to participate in the webinar the coming Tuesday. Keep the good work and wish you all a successful webinar!] |
@jimjyang Yes, those are valid concerns, however, I think these need to be discussed at W3C DCAT since they are the ones who defined the main and the inverse properties in this case like they are. I think their motivation might have been to be able to add datasets to the series "without having to update the series" - which together with your case are two contradictory ones. |
From the perspective of DCAT-AP we will close this issue. |
Summarized
Issue: only using dcat:inSeries and dcat:last+dcat:prev to define series membership does not meet the requirements and needs expressed by different contributors in this repo. But using dcat:seriesMember alone is not compliant with W3C DCAT's definition of inverse properties.
Possible solution: propose a change to W3C's DCAT, to make dcat:inSeries the inverse property of dcat:seriesMember.
Description
We see some issues regarding how to meet the use cases for Dataset Series presented by several people here. Two important considerations mentioned:
Also see:
As far as I can see there are two ways to define a series/collection that are also easily implementable:
Method A gives a linked list. This does not make sense for unordered collections, and there have been several objections to making this the mandatory way of describing a dataset series.
Method B allows both ordered and unordered collections, and seems to meet the requirements in the use cases presented. Thus it seems preferable to require dcat:seriesMember when defining a dataset series, and making inSeries optional. However this raises an issue. DCAT chapter 7 "Use of inverse properties" defines dcat:seriesMember as an inverse of dcat:inSeries, and says:
In other words, if an inverse property is used, here dcat:seriesMember, the master property, here dcat:inSeries, MUST exist. If DCAT-AP requires dcat:seriesMember, descriptions of dataset series would need to use both dcat:seriesMember and dcat:inSeries to be compliant with DCAT-AP and DCAT. This defeats the purpose.
If instead dcat:inSeries is defined to be inverse property of dcat:seriesMember this would solve the issue. Is this something we should propose to W3C's DCAT?
The text was updated successfully, but these errors were encountered: