- From: Simon Steyskal <simon.steyskal@wu.ac.at>
- Date: Wed, 28 Sep 2016 09:29:59 +0200
- To: Miika Alonen <miika.alonen@csc.fi>
- Cc: "public-rdf-sha." <public-rdf-shapes@w3.org>
Hi!
> ex:Document_3
> rdf:type ex:Document ;
> # This should be invalid
> ex:identifier "foo" ;
ex:Document_3 isn't reported because there doesn't exist any "<subject>
ex:related "foo" ." triple.
Why should ex:Document_3 be invalid?
simon
---
DDipl.-Ing. Simon Steyskal
Institute for Information Business, WU Vienna
www: http://www.steyskal.info/ twitter: @simonsteys
Am 2016-09-28 09:09, schrieb Miika Alonen:
> Hi,
>
> I tried this but it doesnt seem to work.
>
> Full example:
>
> ex:A
> rdf:type sh:Shape ;
> sh:property [
> sh:class ex:Dataset ;
> sh:minCount 1 ;
> sh:path [
> sh:inversePath ex:identifier ;
> ] ;
> ] ;
> sh:targetObjectsOf ex:related ;
> .
>
>
> ex:Dataset_1
> rdf:type ex:Dataset ;
> ex:identifier "123" ;
> .
> ex:Foo
> rdf:type ex:SomethingElse ;
> ex:identifier "foo" ;
> .
> ex:Document_1
> rdf:type ex:Document ;
> # This is the only triple that is reported to be invalid "Less than 1
> values".
> ex:related "abc" ;
> .
> ex:Document_2
> rdf:type ex:Document ;
> ex:related "123" ;
> .
> ex:Document_3
> rdf:type ex:Document ;
> # This should be invalid
> ex:identifier "foo" ;
> .
>
> Tested this with TBC.
>
> - Miika
>
> ----- Original Message -----
> From: "Simon Steyskal" <simon.steyskal@wu.ac.at>
> To: "Miika Alonen" <miika.alonen@csc.fi>
> Cc: "public-rdf-sha." <public-rdf-shapes@w3.org>
> Sent: Wednesday, 28 September, 2016 08:28:04
> Subject: Re: Validating instances based on other instances
>
> Hi!
>
> ex:A a sh:Shape ;
> sh:targetObjectsOf ex:related ;
> sh:property [
> sh:path [ sh:inversePath ex:identifier ] ;
> sh:minCount 1;
> sh:class ex:Dataset ;
> ] .
>
> should do the trick.
>
> HTH, simon
>
> ---
> DDipl.-Ing. Simon Steyskal
> Institute for Information Business, WU Vienna
>
> www: http://www.steyskal.info/ twitter: @simonsteys
>
> Am 2016-09-27 14:19, schrieb Miika Alonen:
>> It works - thanks. Not so trivial :)
>>
>> Is it also possible to include Class reference to this workaround? In
>> case the identifier predicate is used by multiple types, for example:
>>
>> ex:Dataset1 a ex:Dataset ; ex:identifier "1" .
>>
>> ex:Dataset2 a ex:SomethingElse ; ex:identifier "2" .
>>
>> ex:Document1 ex:related "2" . (INVALID)
>>
>> - Miika.
>>
>> -------------------------
>>
>> FROM: "Dimitris Kontokostas" <kontokostas@informatik.uni-leipzig.de>
>> TO: "Miika Alonen" <miika.alonen@csc.fi>
>> CC: "public-rdf-sha." <public-rdf-shapes@w3.org>
>> SENT: Tuesday, 27 September, 2016 09:18:03
>> SUBJECT: Re: Validating instances based on other instances
>>
>> A minor adjustment / property swap
>> ex:A a sh:Shape ;
>> sh:targetObjectsOf EX:RELATED ;
>> sh:property [
>> sh:path [ sh:inversePath EX:IDENTIFIER ]
>> sh:minCount 1;
>> ]
>>
>> this shape would report
>>
>> "12.123/example.1234" -> valid
>> "20.234/undefined.2234" -> invalid
>> "null" -> invalid
>>
>> On Tue, Sep 27, 2016 at 8:42 AM, Miika Alonen <miika.alonen@csc.fi>
>> wrote:
>>
>>> I dont see how that would work. There can also be multiple Datasets
>>> and Documents are expected have references to non existing datasets
>>> eg:
>>>
>>> ex:Dataset1 ex:identifier "12.123/example.1234" .
>>> ex:Dataset2 ex:identifier "12.1234/example.2345" .
>>> ex:Dataset3 ex:identifier "12.123/example.4321" .
>>>
>>> ex:Document1 ex:related "12.123/example.1234" .
>>> ex:Document1 ex:related "20.234/undefined.2234" .
>>> ex:Document1 ex:related "null" .
>>>
>>> This again is example of "bad" data that could be cleaned - but
>>> there are many use cases where resources are "linked" using literal
>>> references.
>>>
>>> - Miika
>>>
>>> -------------------------
>>>
>>> FROM: "Dimitris Kontokostas" <kontokostas@informatik.uni-leipzig.de>
>>> TO: "Miika Alonen" <miika.alonen@csc.fi>
>>> CC: "public-rdf-sha." <public-rdf-shapes@w3.org>
>>> SENT: Monday, 26 September, 2016 22:20:25
>>> SUBJECT: Re: Validating instances based on other instances
>>>
>>> Hi Miika,
>>>
>>> a workaround could be something like
>>>
>>> ex:A a sh:Shape ;
>>> sh:targetObjectsOf ex:identifier ;
>>> sh:property [
>>> sh:path [ sh:inversePath ex:related ]
>>> sh:minCount 1;
>>> ]
>>>
>>> On Mon, Sep 26, 2016 at 6:34 PM, Miika Alonen <miika.alonen@csc.fi>
>>> wrote:
>>>
>>>> Hi all,
>>>>
>>>> Question about how to validate instance literals (or irirefs)
>>>> based on other instance values.
>>>>
>>>> I have a use case where i have literals that should be same as
>>>> some other literals, for example:
>>>>
>>>> VALID DATA:
>>>>
>>>> ex:Dataset ex:identifier "doi:10.3972/example.0145.db" .
>>>>
>>>> ex:Document ex:related "doi:10.3972/example.0145.db" .
>>>>
>>>> INVALID DATA:
>>>>
>>>> ex:Dataset ex:identifier "doi:10.3972/example.0145.db" .
>>>>
>>>> ex:Document ex:related "doi:null" .
>>>>
>>>> Is there other ways to validate this than Sparql constraints. I
>>>> know i could do something like:
>>>>
>>>> <http://example.com/ns# [1]> sh:prefix "ex" .
>>>>
>>>> ex:DocumentShape
>>>> a sh:Shape ;
>>>> sh:targetClass ex:DocumentType ;
>>>> sh:sparql [
>>>> sh:message "Values must be dataset identifiers" ;
>>>> sh:select """
>>>> SELECT $this ?value
>>>> WHERE {
>>>> $this ex:related ?value .
>>>> ?identifier ex:identifier ?value .
>>>> }
>>>> """ ;
>>>> ] .
>>>>
>>>> ETC ... but sparql seems bit overkill and it is hard to write. Is
>>>> there or could there be other ways to produce these queries? For
>>>> example property paths where first resource would be the starting
>>>> point of the property path, eg:
>>>>
>>>> sh:DocumentShape
>>>> a sh:Shape .
>>>> sh:targetClass ex:DocumentType ;
>>>> sh:property [
>>>> sh:predicate ex:related ;
>>>> sh:equals ( ex:DatasetType ex:identifier );
>>>> ] .
>>>>
>>>> - Miika
>>>
>>> --
>>>
>>> Dimitris Kontokostas
>>> Department of Computer Science, University of Leipzig & DBpedia
>>> Association
>>> Projects: http://dbpedia.org [2], http://rdfunit.aksw.org [3],
>>> http://aligned-project.eu [4]
>>>
>>> Homepage: http://aksw.org/DimitrisKontokostas [5]
>>>
>>> Research Group: AKSW/KILT http://aksw.org/Groups/KILT [6]
>>
>> --
>>
>> Dimitris Kontokostas
>> Department of Computer Science, University of Leipzig & DBpedia
>> Association
>> Projects: http://dbpedia.org [2], http://rdfunit.aksw.org [3],
>> http://aligned-project.eu [4]
>>
>> Homepage: http://aksw.org/DimitrisKontokostas [5]
>>
>> Research Group: AKSW/KILT http://aksw.org/Groups/KILT [6]
>>
>>
>>
>> Links:
>> ------
>> [1] http://example.com/ns#
>> [2] http://dbpedia.org
>> [3] http://rdfunit.aksw.org
>> [4] http://aligned-project.eu
>> [5] http://aksw.org/DimitrisKontokostas
>> [6] http://aksw.org/Groups/KILT
Received on Wednesday, 28 September 2016 07:30:30 UTC