- From: Axel Polleres <axel.polleres@deri.org>
 - Date: Thu, 13 Nov 2008 00:43:12 +0000
 - To: Jaroslav Pullmann <jaroslav.pullmann@fit.fraunhofer.de>
 - CC: public-sparql-dev@w3.org
 
Jaroslav Pullmann wrote:
> 
>  Hello,
> to check for property cardinalities within an RDF document I used 
> following queries:
> 
>  - for cardinality 0-1: NOT(Q2)
>  - for cardinality 1: Q1 AND NOT(Q2)
>  - for cardinality 1-n : Q1
> 
> 
> # Q1
> ASK
> WHERE
> {
>     ?s rdf:type pfx:Foo; pfx:bar ?b .
> }
you want to check cardinality 1-n of the bar propery on class Foo, I 
assume... looks fine, could syntactically be abbreviated a bit using 
turtle shortcuts:
ASK WHERE { [a pfx:Foo] pfx:bar ?b .}
> # Q2 - no solutions, no duplicates
> ASK
> WHERE
> {
>     ?s rdf:type pfx:Foo;
>     pfx:bar ?b;
>     pfx:bar ?b1
>     FILTER(?b != ?b1)
> }
also looks reasonable to me, you could do a positive version, by "hifing 
the NOT in an OPTIONAL as usual:
ASK
WHERE
  {
      OPTIONAL{ [a pfx:Foo ] pfx:bar ?b, ?b1 . FILTER(?b != ?b1) }
      FILTER( ! bound (?b ) )
  }
> Could these queries be formulated in a simpler, more elegant way ?
> 
>   Many thanks for your suggestions
>     Jaro
> 
> 
> 
-- 
Dr. Axel Polleres
Digital Enterprise Research Institute, National University of Ireland, 
Galway
email: axel.polleres@deri.org  url: http://www.polleres.net/
Received on Thursday, 13 November 2008 00:43:55 UTC