-
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
Distribution service [RDISV] #56
Comments
This requirement is very similar to #55. Should they be combined? |
Also depends on #52 |
@makxdekkers I don't think so. This issue is at a coarser level than #55. As @andrea-perego notes in https://www.w3.org/TR/dcat-ucr/#ID18 a set of subclasses of dcat:Distribution were originally proposed for DCAT, but did not make it into recommendation. This issue invites us to revisit that. |
Proposal for a DataService class to help resolve this issue, and also #166 |
I think we need to take into account backward compatibility. An alternative option is the one used in Geo/DCAT-AP, where the fact that the distribution points to a service is specified by soft typing the distribution ( |
@andrea-perego In your response to #166 you explain that you used dctype:Service in the past.
|
@dr-shorthair , please see my replies inline:
Yes (at least, in GeoDCAT-AP).
I would be in favour of that, and, more in general, of not limiting the content of a
I'm open to either options - as explained in #166 (comment) |
In the context of Geoplatform.gov, we have to deal with the modeling of services, whose health status are checked on a regular basis(https://statuschecker.fgdc.gov/). Now, here the caveat. A service can provide multiple assets (for example multiple feature collections in WFS or layers in WMS). When you model the distribution of this asset that is served by this service, you cannot just refer to the Service (using srim:servicedBy), you need more information about "how" to access the service. You need the set of valid parameters for calling an operation of the service. For example, a Layer can be distributed from a WMS and its parameters needs the layer id. Idem for a WFS, you need to give a least the featureType identifier to refer to the collection. My initial thought was to introduce an additional class called DataSource which captures standard, parameter descriptions and bindings of parameter name to value. However, we found out that extending dcat:Distribution by adding parameters and bindings will simplify the model by avoiding introducing a new first class object. We define the parameter concept in a different namespace because we believe it can be reused in many different contexts outside DCAT: Here a summary of its properties: JSON | RDFProperty | Range | Description | Obligation | Card. Here an example in JSON-LD of a layer distributed from a WMTS: note that we are using a url template when you have parameters
I hope this will help to move forward this difficult issue. |
Thanks, @fellahst , for sharing the Geoplatform.gov approach. It seems that the solution you use is similar to the one developed in Geo/DCAT-AP (illustrated in UC18 & UC20), although there are some differences. A full example on how this is done in Geo/DCAT-AP is documented at #166 (comment) . I think it would be nice to see if we can build on both approaches to provide a consolidated solution. I summarise below how this is done in Geo/DCAT-AP, focussing on the issues you mention. About the similiarities:
Services are denoted as The difference, is that the link to the resources (e.g., datasets) available from a service is specified by using Coming now to the issue of modelling a distribution pointing to a service, this is done (a) by (soft) typing the distribution ( As explained in UC18, we also had the issue you mention concerning the fact that a service may give access to more than one dataset, so the question is how to specify the relevant query parameters. Our aim was to identify a solution able to describe the query interface and parameters for any services (not only geospatial ones) by using a standard mechanism / language, preferably widely supported. In particular, the decision was not to encode in RDF the query parameters, but to link to (or embed in RDF) a separate (XML, JSON, ...) document providing this information. The preliminary proposal was to use an OpenSearch description document (OSDD). You can find a full description of the approach in the DCAT-AP issue tracker (DT2: Service-based data access). This idea of using OpenSearch was further discussed (a bar camp session of the SDSVoc workshop was devoted to it), and, eventually, it was considered not fit for describing all services. So, the issue was put on hold. Looking forward to your feedback. |
Do you mean
Looking at the latter, I understand that in the GeoDCAT-AP implementations you have implemented a work-around to allow services to be catalogued, with
This looks like a clear demonstration of the requirements, but a sub-optimal solution because
That is why I propose adding an explicit class for services to DCAT, so that we have a clean platform to achieve the outcome that you describe. There is a clear and easy correspondence with the GeoDCAT-AP solution:
See #172 and https://github.com/w3c/dxwg/wiki/Cataloguing-data-services |
However, I'm not sure if there is a 'backward compatibility' explanation need with respect to DCAT 1.0. Rather, the compatibility/migration documentation is more with respect to the additional requirements and solution introduced in GeoDCAT-AP? |
@andrea-perego Thank you so much for taking the time to compare the GeoDCAT-AP approach with the Geoplatform one. I think both approaches are very similar and probably hint that both approaches are on the right track (passing the Test of Independent Invention). I have a couple of comments and disagreement with the references you gave. In UC20, you model catalog service as dcat:Catalog. This seems very weird to me. In my mind, a catalog is a collection of items, not a service. The DCAT specification defines dcat:Catalog as "a curated collection of metadata about datasets". A Catalog service provides an API that manages one or more catalogs, provides search, harvesting, indexing functions for example. Convoluting both notions (Catalog and CatalogService) will cause problems in modeling relationships between CatalogService and Catalogs. I think that using dct:Service to model service is fine. For some reason, I missed this term from DC Terms and I introduced the concept in SRIM namespace. I would agree that dct:Service is totally appropriate. I will probably update the spec to make the alignment. To model relationships between Service and other items (Dataset, Layer, Map, etc..), we borrowed the terms used in ISO 19115 (operatesOn and servicedBy). However, we generalized the range of operatesOn to be srim:Item (which is superclass of dcat:Dataset), so we can refer to other types of assets such as Layer or Map. I strongly recommend we introduce a superclass of dcat:Dataset to accommodate this case (may be sioc:Item). My last comment about the modeling of query parameters. Personally, I do not like the suggestion of using an external document such as OSDD, because it makes the implementation of the client more complex for the following reasons:
The RDF parameter model we used in Geoplatform, maps almost one to one OSDD model (we may need to add additional properties to fill the gap such as pattern). The benefits of this approach are:
While we should try to accommodate the different type of service implementation (REST, SOAP, RPC), we should consider that RESTful APIs constitutes the majority of service APIs out there, so the spec should make it trivial and easy to access these services. |
@dr-shorthair asked:
My original comment was indeed related to DCAT 1.0, as it was about the idea of defining a subclass of As I said elsewhere, I'm not a priori against the idea of defining a specific class for services, as first-class citizens (i.e., not as distributions). Of course, here there may be backward compatibility issues with Geo/DCAT-AP. But I think your proposal, @dr-shorthair , does address them. I have nonetheless some comments on the proposal at Cataloguing data services. I'll post them to #172 . |
Thanks for your comments, @fellahst . Please see my replies inline.
I was thinking the same 😄
I agree that However, I'm also aware of use cases (leaving aside the GeoDCAT-AP approach) where Said that, using a:CatalogService a dcat:Catalog , dctype:Service . This could also be a possible solution to the issue I raised in #172 (comment) about making
I think a class more general than On a different note, I would be interested to know if you considered defining a "layer" as a distribution of a dataset, and, in such a case, why you decided otherwise. Please note that I don't have any specific position on this issue - I'm just curious.
I see your point, but an RDF-based approach may have other issues. In Geo/DCAT-AP, the assumption was that the catalogue platform used might not necessarily be natively based on RDF. So, the rationale behind using a fit-for-purpose language (as OpenSearch) to specify the query parameters was based on the idea that such "language" would be more easily interpreted by software agents, compared to an ad hoc RDF representation. Said that, we might have overestimated this problem, and therefore we could re-visit our resolution. I wonder whether you could share some details on how you've implemented your approach. BTW, another reason for looking into OpenSearch was related to the work at OGC to extend it to support requirements of OGC services - see http://www.opengeospatial.org/standards/opensearchgeo and http://www.opengeospatial.org/standards/opensearch-eo
This could be indeed a possible way forward. My concern is whether defining how this should be done in DCAT could be out of scope of DXWG. If we opt for an RDF-based solution, this seems like something to be addressed by a specific vocabulary. |
@fellahst wrote
|
Comment on behalf of Øystein Åsnes on "DCAT Distribution to describe web services [ID6]"
|
Also see example from @andrea-perego #166 (comment) |
Resolved with #241 |
Distribution service [RDISV]
Ability 1) to describe the type of distribution and 2) provide information about the type of service
Such a description may be provided through a suitable profile identifier that defines a profile of the relevant service type.
Related requirements: Profiles listing [RPFL] Distribution schema [RDIS]
Related use cases: DCAT Distribution to describe web services [ID6] Modeling service-based data access [ID18] Machine actionable link for a mapping client [ID21]
The text was updated successfully, but these errors were encountered: