Re: Property Paths Update (negated property classes)

It's also possible (though far less convenient) to do SELECT DISTINCT ? 
p, then build that as a (x|y|...) set. For some data that set will be  
huge though.

- Steve

On 16 Mar 2010, at 10:16, Andy Seaborne wrote:

> This is Doug Reid's suggestion of:
>
> ?x !(rdf:type|^rdf:type) ?y
>
> or find all connections between ?x and ?y that are not via rdf:type,  
> in either direction.  This should extend to longer paths.
>
> ?x !(rdf:type|^rdf:type)* ?y
>
> # Added extra () for clarity of precedence.
> # ! binds tighter than * so it's not needed
> ?x (!(rdf:type|^rdf:type))* ?y
>
>
> The case of
>
> ?x !(rdf:type|rdfs:label) ?y
>
> without use of ^ works quite easily.  I am wondering about the need  
> for reversed properties
>
> A safe course of action would be to allow the case of forward  
> negated sets (^ can be applied outside the pattern).  It is quite  
> useful to match all but know unwanted properties.
>
> Some cases of "(^)" can be written in other forms (to get  
> semantically equivalent results - not exactly the same e.g. ?x/:a ? 
> y/:b and ?x/:b ?y/:a) but I haven't discovered whether this covers  
> all cases or not.
>
> 	Andy
>

-- 
Steve Harris, Garlik Limited
2 Sheen Road, Richmond, TW9 1AE, UK
+44 20 8973 2465  http://www.garlik.com/
Registered in England and Wales 535 7233 VAT # 849 0517 11
Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10  
9AD

Received on Tuesday, 16 March 2010 13:57:59 UTC