-
Notifications
You must be signed in to change notification settings - Fork 47
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
Add property to link from Distribution -> Dataset (inverse of dcat:distribution) #166
Comments
I don't think we need to define an inverse property for dcat:distribution. When using a registry/catalog of datasets, the primary use case is to search datasets of interests. Once the dataset of interest is found, a user wants to know what distributions are available for a given dataset. I don't see a real-world use case where a user would start to search for Distribution and then figure out what dataset it belongs to. |
I also don't see a use case requiring the inverse of Based on the DCAT implementations I am aware of, my personal understanding is that This seems possible, looking at the actual semantics of I'm probably going too far, but this use of |
I was thinking in particular of https://www.w3.org/TR/dcat-ucr/#ID6 - the use of dcat:Distribution to describe data services. In this case the service is an independent thing with (usually) a need to link back to the descriptions of the datasets that it presents. Also Modeling service-based data access https://www.w3.org/TR/dcat-ucr/#ID18 Though perhaps we should first decide if services are distributions. Or if distributions are ever first-class resources - see #52 and also #56 |
Thanks for the clarification, @dr-shorthair . However, I'm not sure that the service is the distribution. Rather, the service is linked from the distribution by using Actually, the relationship between a service and the data accessible from it looks similar to the role of the ISO 19139 element How to model this relationship was one of issues discussed in the development of GeoDCAT-AP. The adopted solution was following from the decision of considering This could be actually a use case in favour of relaxing the domain restriction of |
Thanks @andrea-perego . Can you confirm if WMS and WFS end-points were also described? Which DCAT class was used? |
Proposal for a DataService class to help resolve this issue, also #56 |
To me this sounds like an argument to make |
@larsgsvensson said:
Ops, I was actually trying to make an argument against that.
It is true that the situation may be different for |
@dr-shorthair said:
The short answer is yes, and the class is The long answer: GeoDCAT-AP basically follows the ISO 19115/19119 approach, i.e., a service is a first-class resource documented by a metadata record registered in a catalogue. As such it stands at the same level of As such, a service is not described as a About the details on how a service and the distribution pointing to it is described in GeoDCAT-AP, I think we can refer to what said in UC20 and UC18, respectively. However, I include below a revised and extended version of the example in UC18, to better illustrate the catalogue-service-distribution relationship: a:Catalog a dcat:Catalog ;
dcat:dataset a:Dataset ;
# The relationship between the catalogue and the documented service
# is specified with dct:hasPart as super-property of dcat:dataset
dct:hasPart a:Service .
a:Dataset a dcat:Dataset;
dcat:distribution [ a dcat:Distribution ;
dct:title "Data from a WMS"@en ;
dct:description "This data is available from a Web Map Service (WMS)"@en ;
dct:license <https://creativecommons.org/licenses/by/4.0/> ;
# The URL of the service API endpoint
dcat:accessURL <http://some.site/service/wms> ;
# The distribution points to a service
dct:type <http://publications.europa.eu/resource/authority/distribution-type/WEB_SERVICE> ;
# The service conforms to the WMS specification
dct:conformsTo <http://www.opengis.net/def/serviceType/ogc/wms> ] .
a:Service a dctype:Service ;
dct:title "WMS"@en ;
dct:description "Web Map Service (WMS)"@en ;
dct:license <https://creativecommons.org/publicdomain/zero/1.0/> ;
# The URL of the service API endpoint
foaf:homepage <http://some.site/service/wms> ;
# The service is a view service
dct:type <http://inspire.ec.europa.eu/metadata-codelist/SpatialDataServiceType/view> ;
# The service conforms to the WMS specification
dct:conformsTo <http://www.opengis.net/def/serviceType/ogc/wms> . |
OK - so is dctype:Service enough? Or do we need a model in DCAT. If you want to make dct:type and dct:conformsTo core, do we want to make a new class? or just go with SHACL after the fact? |
@andrea-perego scripsit:
Yes, I was referring mainly to dcat:downloadURL and thought that there would be a 1:1 correspondance between distribution and download. Thanks for the clarification! |
@dr-shorthair said:
IMO, |
Agreed. See #56 (comment) #172 and https://github.com/w3c/dxwg/wiki/Cataloguing-data-services for a proposal to add a new class to DCAT for Data-Services. |
Separating out this question (which is distinct from axiomatization of dcat:distribution #120)
DIscussion from #120 pasted below:
@dr-shorthair commented 22 days ago
Do we need an inverse property here - to allow a distro to point to the dataset that it purports to instantiate?
@dr-shorthair commented 23 hours ago
In this case I think an inverse property makes sense.
A Distro will usually know which Dataset that it is related to.
@akuckartz commented 23 hours ago
No inverse properties please. They are not necessary. But that probably should better be discussed in a separate issue.
@dr-shorthair commented 22 hours ago
@akuckartz : so if I have a description of a distribution (dcat:Distribution) in front of me, how do I know which dataset(s) it is a distribution of? Do I have to make a separate query to the catalogue?
@akuckartz commented 15 hours ago
Some information about inverse properties:
https://www.w3.org/wiki/WebSchemas/InverseProperties
@dr-shorthair commented 14 hours ago
@akuckartz - is this ref meant to answer my question above ?#120 (comment) The page appears to be largely about syntax in different platforms.
My point is that
(i) there is a reasonable requirement to be able to traverse from a distro to its dataset, and
(ii) the normal solution for common requirements is a specific property or property path.
Yes, the information might be obtained using additional service calls/queries, but this may not be the optimal solution.
@akuckartz commented 13 hours ago
@dr-shorthair That page contains the result of older discussions about the need for inverse properties. It states at the beginning:
that this should be addressed at the level of syntaxes for Web data, and not by defining inverse properties in the vocabularies
@dr-shorthair commented 13 hours ago
Thanks for clarifying.
I certainly understand that not all inverses are needed, and that they should only be introduced and named where there is a requirement.
However, that is really just a special case of noting that not all potential relationships should be blessed by being given their own name in a vocabulary: whether you call it ontology engineering, information modeling or data modeling, the art is in selecting which edges from the very large set of candidates in a graph we think are important. We do this for efficiency, not because there is no other path to travel that joins the same two resources. Sometimes that will include inverses. But I do not accept a blanket rule to prohibit them - people will encounter different artefacts from different access routes, and it is best if they can see all the relationships that matter (!) without running an additional query.
In this case, there is a whole lot of descriptive information that is more appropriately attached to the Dataset description than the Distribution. I'd prefer to just navigate over to it than have to reason my way over.
@nicholascar commented 13 hours ago
PROV defines some inverse properties (generated/wasGeneratedBy) but not all (used, no wasUsedBy) due to anticipated use. We should do the same.
Not enough people/systems are capable of reasoning or distributed graph assembly to just always declare only the semantic minimum.
@akuckartz commented 3 hours ago
Again: I think that a separate issue should be opened to propose an inverse property.
The text was updated successfully, but these errors were encountered: