Re: Validating instances based on other instances

Hi!

>> 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;
>>  ]

> I dont see how that would work.

For each value of ex:identifier, ex:A checks whether there exists at 
least 1 ex:related triple also referring to it.

So for:

> 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" .

"12.1234/example.2345" and "12.123/example.4321" don't have a respective 
ex:related counterpart, hence, produce a validation result.

> There can also be multiple Datasets
> and Documents are expected have references to non existing datasets

could you elaborate on that? what validation results should be 
returned/do you expect given your example?

simon

---
DDipl.-Ing. Simon Steyskal
Institute for Information Business, WU Vienna

www: http://www.steyskal.info/  twitter: @simonsteys

Am 2016-09-27 07:42, schrieb Miika Alonen:
> 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]
> 
> 
> 
> 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 Tuesday, 27 September 2016 06:03:11 UTC