Describing (finding) subjects which don't have a particular predicate in SPARQL

If you want to do something like a SQL NOT in SPARQL, here's what the query looks like:

PREFIX rs: <http://schemas.talis.com/2006/recordstore/schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

DESCRIBE ?tenancy {
  ?tenancy rdf:type rs:Tenancy .
  OPTIONAL { ?tenancy rs:platformStoreUri ?o } .
  FILTER ( !bound(?o) )
}

Here I'm looking for subjects with rdf type of http://schemas.talis.com/2006/recordstore/schema#Tenancy, which don't have a http://schemas.talis.com/2006/recordstore/schema#platformStoreUri predicate. The important bit is that you make the predicate which could potentially not be "set" OPTIONAL; and add a FILTER which only includes subjects where the predicate is bound to a value. This effectively screens out any subjects where the predicate has not been added to the subject. This pattern is basically Negation as Failure (according to the SPARQL recommendation), which derives from logic programming. Feels a bit like being back at university.

Comments

Wow!I seriously loved

Wow!I seriously loved reading your website. It turned out well written as well as simple to comprehend. Unlike additional blogs I have got read.
tapetes para cocina

This is what I have been

This is what I have been searching in many websites and I finally found it here. Amazing article. I am so impressed.

topes de hule

I have been seeking

I have been seeking information on this topic for the past few hours and found your post to be well written and has solid information.
tapetes publicitarios

Great webpage brother I am

Great webpage brother I am gona inform this to all my friends and contacts.
pisos de hule

Hi, i have read your post.

Hi, i have read your post. Everything good articles and really interested it. Keep it save to my bookmarks. Nice post and thanks for share.
tapetes impresos

I want to thank you for your

I want to thank you for your initiatives people developed within inscribing this article. I really hope regular best do the job through people inside the future far too. really your current artistic creating talents provides galvanized everyone.
aislante acústico para piso

Great blog article about

Great blog article about this topic, I have been lately in your blog once or twice now. I just wanted to say hi and show my thanks for the information provided.
Good Relationship With Lovills Creek

Realized i kept missing the

Realized i kept missing the f in the 'rdf' string....ops. Thanks for this

A good example of content

A good example of content presentation. A piece of information from you every now and then is really great. Everything was so well coordinated and looked so aesthetically pleasing to the eye.

gymastic rings

new to sparql

I am familiar with stand sql, i am looking at the syntax for SPARQL and it seems more flexible. Looks like you have more powerful expressions for filtering. Nice

reply

you've no approach exactly how convenient this kind of illegal program might be :) Only just last night There really is a new 7 yr old shoe common box rife with cd's utilizing thousand's mp3's. I've not a clue what is certainly, there (certainly, I recognize a touch, that's the software). The truth is whereby I am going with this ;)
Thank you
austin