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

How to specify the multiple endpoints of a SPARQL service #1587

Open
marcelotto opened this issue Feb 1, 2024 · 2 comments
Open

How to specify the multiple endpoints of a SPARQL service #1587

marcelotto opened this issue Feb 1, 2024 · 2 comments
Labels
dcat future-work issue deferred to the next standardization round

Comments

@marcelotto
Copy link

I am seeking clarification on the recommendations for specifying the multiple endpoints of a SPARQL service for its different operations (query, update, graph store) with a dcat:DataService. Although the vocabulary definition of dcat:endpointURL does not impose any cardinality restrictions, it seems to be intended to be used for a single endpoint. Is the creation of multiple dcat:DataService instances for each endpoint the preferred approach, or are there other recommended methods within DCAT for handling this scenario?

@bertvannuffelen
Copy link

@marcelotto this is a question of granularity: Is your intend to manage for each "Operation" a different Data Service?

Consider an OpenAPI specification of a system: That has multiple resources and multiple operations for each resource. If you want to publish this as a catalogue of resources and operations than there will be for each resource a dataset and for each operation a data service. This catalogue organisation can drive to create a website similar to what the OpenAPI specification.

However this granularity is not to be shared as such with the public in a broad data ecosystem: I think the chance it low that people would ask to google search (or chatGPT): give me a dataset for which there is an open Update SPARQL endpoint for a resource A.
In this usecase you will abstract away the indiviual resources and the operations of the API. And thus therefore you end with a Dataservice that points with its endpointURL to the root of the API.

In Open Data Portals such as https://data.europa.eu there is little need for the fine grained expressing. It makes your Dataservice only harder to find. But if you are managing an API platform such a APIGEE then it is critical. So it depends on you target and maybe you need both.

@marcelotto
Copy link
Author

@bertvannuffelen Thank you for your detailed response.

Regarding the question of whether to manage each "operation" as a different Data Service, my intention is actually the opposite. By "operations," I refer to the typical endpoints found in a SPARQL store, including:

I am interested in describing a SPARQL service that hosts a dcat:Catalog, encompassing these endpoints within a single dcat:DataService. However, given that dcat:endpointURL is defined as "the root location or primary endpoint of the service" it seems not straightforward to achieve this with DCAT alone without introducing new properties. I was hoping there might be specific recommendations for this case, especially since SPARQL is also a W3C standard.

Absent such guidance, I might lean towards defining my own properties derived from dcat:endpointURL rather than representing each endpoint as a separate dcat:DataService.

@riccardoAlbertoni riccardoAlbertoni added future-work issue deferred to the next standardization round dcat labels Apr 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dcat future-work issue deferred to the next standardization round
Projects
None yet
Development

No branches or pull requests

4 participants