- From: Kurt Cagle <kurt.cagle@gmail.com>
- Date: Mon, 23 Sep 2024 12:40:48 -0700
- To: Vladimir Alexiev <vladimir.alexiev@ontotext.com>
- Cc: David Habgood <dcchabgood@gmail.com>, public-shacl@w3.org
- Message-ID: <CALm0LSE7cP2vg+LJA4nbC_vyXq78zHbetsD2uanSBA_dfSLZZA@mail.gmail.com>
This looks like it may be incredibly useful. On Mon, Sep 23, 2024, 12:07 Vladimir Alexiev <vladimir.alexiev@ontotext.com> wrote: > These may be useful: > > https://shape-fragments.github.io/shape-fragments-spec/ > https://github.com/Shape-Fragments/SHACL2SPARQL > https://github.com/MaximeJakubowski/ssf_project > https://github.com/MaximeJakubowski/sls_project > > > On Mon, Sep 23, 2024 at 2:57 PM David Habgood <dcchabgood@gmail.com> > wrote: > >> Hi all, >> >> I have a library which generates SPARQL queries from SHACL, mostly to >> support two use cases. The first is listing sets of items, or focus nodes, >> with constraints on which items are selected. I find this one quite >> straightforward in SHACL. The second is describing individual objects, i.e. >> which properties should be included/and or excluded when describing an >> individual focus node. This one I find less clear - I can see there are a >> series of SHACL predicates which are relevant, but it's unclear to me if >> there's a "canonical" way this should be done. >> >> My question is whether there's a canonical way to do Use Case 2, and if >> not, should this form part of the use cases SHACL covers in future or be a >> part of a SHACL extension. >> >> In detail my use cases are: >> >> Use Case 1: >> I want to describe the selection of a set of focus nodes, based on one or >> a combination of the following focus node attributes: >> - the class of the focus nodes >> - the focus nodes' relationship to a specified node (e.g. is member of x) >> - the focus nodes' relationship to nodes of a specified class (e.g. the >> dcat:Catalogs that contain any dcat:Dataset, dcat:Resource etc.) >> - the presence or abscence of properties on the focus nodes, including >> via path relations (inverse, sequence etc.) >> >> Use Case 2: >> I want to describe a focus node by choosing one of the following two >> methods: >> 1. >> a. including all direct properties, except: >> - excluding any properties explicitly stated including via path relations >> (inverse, sequence etc.). (e.g. when describing a dcat:Dataset, not listing >> it's large number of members) >> - including any properties explicitly stated via "indirect" path >> relations (inverse, sequence etc.) >> b. inclusion of blank nodes to a specified depth >> >> 2. >> a. excluding all direct/indirect properties, except: >> - including any properties explicitly stated via direct and indirect path >> relations (inverse, sequence etc.) >> b. inclusion of blank nodes to a specified depth >> >> If SHACL predicates are reused across both use cases I want a clear way >> to distinguish which they are being used for. E.g. is a SHACL expression >> which in some way specifies dcterms:hasPart being used to describe how to >> select a set of focus nodes, or how to describe each focus node. At present >> I've used extension predicates for the blank node depth and "include all >> properties" concepts. >> >> Thanks, >> David >> >
Received on Monday, 23 September 2024 19:41:06 UTC