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#> 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, http://rdfunit.aksw.org,
http://aligned-project.eu
Homepage: http://aksw.org/DimitrisKontokostas
Research Group: AKSW/KILT http://aksw.org/Groups/KILT

Received on Monday, 26 September 2016 19:21:23 UTC