Re: SKOS concept scheme URIs as values for constraints

On 8/8/15 2:48 AM, Phil Archer wrote:
> Thanks for the replies everyone.
>
> Hmm... templates, special code, DIY... Meh. In short, the use case is 
> not covered out of the box.

Guess what: every single potential user of SHACL will have some 
requirement that is not "covered out of the box". One example for me is 
primary keys. Well, we got to stop somewhere, and cannot add everything 
hard-coded into the core language. That's why we have the extension 
mechanism.

>
> To be useful, I'd expect the validator to go and fetch the SKOS 
> concept scheme and check that the value of a property is valid. So I 
> guess the questions would be:
>
> 1. Does the URI given as the value of a property dereference?
> 2. Does the type of that resource match what I expect (is it typed as 
> a SKOS Concept in this case).
>
> Of course, that's a heavy burden, I well understand that, and the 
> burden may be more than is needed in many cases, and too much in 
> others, but authoritative lists of allowed values are not uncommon.
>
> If this is out of scope for the work, OK, that's my answer. If the 
> answer is "you can bolt something on the side that does it" then, 
> well, I'd likely not bother with the bolt and just do it myself anyway 
> - which kind of defeats the object.

The closest work-around if you need to dereference values is to collect 
those additional triples *in advance*, before calling the engine, and 
then pass them into the SHACL engine as part of the default query graph. 
How else would you like this to be handled by a generic SHACL engine? 
How could it know which nodes it has to dereference, and how? This 
sounds like a fairly application- and architecture specific issue to me.

Cheers,
Holger

>
> Karen's Use Case 37 does indeed seem very similar and, yes, SHACL has 
> regEx matching, enumerated lists and so on, so a lot of what I'm 
> asking can be done - and that may be sufficient (or that may have to 
> be sufficient), but without fetching the authoritative list of allowed 
> values from an external source, the issue of synchronising will always 
> come up.
>
> I should indeed have some test data imminently, if it's wanted.
>
> Thanks
>
> Phil.
>
> PS. I'm very likely to join the f2f in Lille next month as I'll be 
> passing through on my way home from Brussels. Looking forward to 
> catching up with the wider work of the group.
>
> On 05/08/2015 01:01, Holger Knublauch wrote:
>> This is correct and thanks for highlighting this. I wanted to be brief
>> and could elaborate or even implement the template as an example. I was
>> hoping that my statement "using a template" would have been sufficiently
>> clear, but maybe it wasn't. Yes, there needs to be at least one person
>> on the planet, knowledgeable of SPARQL and SHACL, who needed this
>> feature to cast it into a template and publish it for everyone else 
>> to use.
>>
>> (BTW I later noticed that the original requirement may have been about
>> checking for the presence of URIs in a certain named graph. In that
>> case, the SPARQL GRAPH keyword could be used, assuming the named graphs
>> are present in the same dataset, or SERVICE for external graphs. There
>> are all kinds of variations here, which is why my inclination is to
>> leave this as an opportunity for third-party templates, not the core
>> language.)
>>
>> Regards,
>> Holger
>>
>>
>> On 8/5/2015 9:29, Arnaud Le Hors wrote:
>>> Holger,
>>>
>>> I think we ought to clarify that what you present here isn't all it
>>> takes because it relies on having shx:allowedValueNamespaces defined
>>> somewhere, presumably using the SPARQL extension.
>>>
>>> I know you wrote "an end-user syntax" and the implication is that some
>>> advanced-user has defined such a template for the end-user but we need
>>> to be careful not to set the wrong expectation.
>>>
>>> Regards.
>>> -- 
>>> Arnaud  Le Hors - Senior Technical Staff Member, Open Web Technologies
>>> - IBM Software Group
>>>
>>>
>>> Holger Knublauch <holger@topquadrant.com> wrote on 08/03/2015 03:29:13
>>> PM:
>>>
>>> > From: Holger Knublauch <holger@topquadrant.com>
>>> > To: public-data-shapes-wg@w3.org, "public-rdf-shapes@w3.org"
>>> > <public-rdf-shapes@w3.org>
>>> > Date: 08/03/2015 03:30 PM
>>> > Subject: Re: SKOS concept scheme URIs as values for constraints
>>> >
>>> > This could be represented in SHACL using a template, with an end-user
>>> > syntax such as
>>> >
>>> > ex:MyShape
>>> >      a sh:Shape ;
>>> >      sh:property [
>>> >          a shx:AllowedValueNamespacesConstraint ;
>>> >          sh:predicate ps:siteDesignation ;
>>> >          shx:allowedValueNamespaces (
>>> > "http://inspire.ec.europa.eu/codelist/DesignationValue/" ) ;
>>> >          sh:valueClass skos:Concept ;
>>> >      ] .
>>> >
>>> > In the above scenario I am assuming that the algorithm will check 
>>> that
>>> > all values of the given property must be URIs starting with one of 
>>> the
>>> > enumerated strings (using STRSTARTS in SPARQL). It would not go to 
>>> the
>>> > web to check whether there is actually a Graph at that namespace - 
>>> this
>>> > would be outside of what SPARQL can do right now.
>>> >
>>> > I cannot comment on whether this particular pattern should become 
>>> part
>>> > of the Core vocabulary too, but the whole point of the extension
>>> > mechanism is to allow anyone to represent and publish their own
>>> favorite
>>> > constraint design patterns, so that they don't rely on the choices 
>>> made
>>> > by a particular working group in the year 2015.
>>> >
>>> > Holger
>>> >
>>> >
>>> >
>>> > On 8/4/2015 5:39, Karen Coyle wrote:
>>> > > Phil,
>>> > >
>>> > > Thanks for bringing this up. I thought that I had covered this 
>>> in use
>>> > > case #34 [1], and at one point I asked if all of these criteria 
>>> were
>>> > > met by the requirements and I was assured that they were. This is a
>>> > > key use case for the cultural heritage community, so if there 
>>> are any
>>> > > doubts that these requirements can be met we need to address this.
>>> > > Perhaps the was to resolve this is to provide test cases. There 
>>> seem
>>> > > to be some functional versions of SHACL that could be used to test
>>> > > this, if I'm not mistaken. Would you be able to provide some test
>>> data?
>>> > >
>>> > > Thanks,
>>> > >
>>> > > kc
>>> > > [1]
>>> > > http://w3c.github.io/data-shapes/data-shapes-ucr/#uc37-defining-
>>> > allowed-required-values
>>> > >
>>> > > On 8/3/15 9:48 AM, Phil Archer wrote:
>>> > >> Hi,
>>> > >>
>>> > >> I've had an opportunity to take a look at the SHACL work today 
>>> and I
>>> > >> notice one of the use cases looks set to be missed - although
>>> only just.
>>> > >>
>>> > >> The UCR doc includes the one about self-describing Linked Data
>>> [1] which
>>> > >> talks about the value of a property being a skos:Concept. Are you
>>> > >> considering making this a little tougher, i.e. that the value of
>>> a given
>>> > >> property is a concept defined in a specific scheme?
>>> > >>
>>> > >> I see that SHACL allows the enumeration of values [2], but I want
>>> to be
>>> > >> able to say "any value from the SKOS Concept scheme at <foo>". It
>>> looks
>>> > >> like SHACL won't support that?
>>> > >>
>>> > >> Use Case: INSPIRE
>>> > >>
>>> > >> INSPIRE [0] - the European Union's obligatory set of standards for
>>> > >> environmental and geospatial data - has a handy registry of SKOS
>>> concept
>>> > >> schemes [3]. In one of my projects, I've been working on creating
>>> RDF
>>> > >> vocabularies that are compatible with the INSPIRE data model,
>>> such as
>>> > >> the one about protected sites [4]. That has a property
>>> > >> ps:siteDesignation for which the range is defined as skos:Concept
>>> but
>>> > >> really what it should say is:
>>> > >>
>>> > >> the value of this property should be a skos:Concept in the 
>>> scheme at
>>> > >> http://inspire.ec.europa.eu/codelist/DesignationValue/.
>>> > >>
>>> > >> It would be inappropriate to enumerate the concepts in that 
>>> concept
>>> > >> scheme (there are 6 of them) since it is under a different
>>> > >> organisation's change control.
>>> > >>
>>> > >> I recognise that this leads to the possibility that a graph 
>>> that is
>>> > >> valid today may become invalid if the INSPIRE Registry were to be
>>> > >> amended but that's a management task for the European 
>>> Commission to
>>> > >> worry about (i.e. the people responsible for the INSPIRE data
>>> model) and
>>> > >> they would need to be mindful of such situations which would occur
>>> > >> whether we were talking about RDF graphs or dollops of GML, so I
>>> don't
>>> > >> think that's a show stopper here.
>>> > >>
>>> > >> WDYT?
>>> > >>
>>> > >> Phil.
>>> > >>
>>> > >>
>>> > >> [0] http://inspire.ec.europa.eu/
>>> > >>
>>> > >> [1]
>>> > >> http://w3c.github.io/data-shapes/data-shapes-ucr/#uc28-self-
>>> > describing-linked-data-resources
>>> > >>
>>> > >>
>>> > >>
>>> > >> [2]
>>> > >> http://w3c.github.io/data-shapes/shacl/
>>> > #AbstractAllowedValuesPropertyConstraint
>>> > >>
>>> > >>
>>> > >>
>>> > >> [3] http://inspire.ec.europa.eu/registry/
>>> > >>
>>> > >> [4] http://www.w3.org/2015/03/inspire/ps
>>> > >>
>>> > >>
>>> > >
>>> >
>>> >
>>>
>>
>>
>

Received on Saturday, 8 August 2015 01:28:35 UTC