- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Thu, 21 Aug 2008 14:20:54 -0400
- To: Adrian Walker <adriandwalker@gmail.com>
- CC: axel.polleres@deri.org, public-sparql-dev@w3.org, public-lod@w3.org
Adrian Walker wrote: > Hi Kingsley -- > > You wrote... > > Re. SPARQL & Aggregates, see: > http://esw.w3.org/topic/SPARQL/Extensions/Aggregates > > Yes, that shows that some folks are thinking about the issues. > > But the fundamental problem is (as stated at the foot of that page) > that different implementations of SPARQL aggregates are going ahead > without any spec saying /*what */should be computed. This is the sad > SQL history repeating itself, except it's going to be worse with > on-the-fly linked RDF data than it was for SQL-with-known-data-tables. > > Cheers, -- Adrian Adrian, The Wiki post is kinda old. Take SPARUL and SPARQL-BI as the models going forward. OpenLink (Virtuoso) and HP (ARC) have worked hand in hand re. these enhancements, and the collaboration will not be stopping anytime soon :-) Kingsley > > Internet Business Logic > A Wiki and SOA Endpoint for Executable Open Vocabulary English over > SQL and RDF > Online at www.reengineeringllc.com > <http://www.reengineeringllc.com> Shared use is free > > Adrian Walker > Reengineering > > > > On Thu, Aug 21, 2008 at 1:47 PM, Kingsley Idehen > <kidehen@openlinksw.com <mailto:kidehen@openlinksw.com>> wrote: > > Adrian Walker wrote: > > Hi Axel -- > > Good to see some thinking about fundamentals. > The omission of negation from the SPARQL spec (and hence the > need for your ingenious workarounds) seems to be based on a > confusion that can perhaps be explained away like this.... > > What some semantic web folks seem to want is that when new > facts are added, old conclusions don't go away. They want > things to be monotonic, and they therefore deprecate SQL-style > negation-as-failure (NAF). > > Now suppose an old conclusion p depends on ~r in a consistent > theory, and that an update r is pending. > > We could just add r. p would still hold, but the new theory > has both r and ~r. It's inconsistent. That means that a > naive theorem prover can prove absolutely anything from it. > A better theorem prover would probably refuse to compute with > it. Neither is a desirable outcome. > > But wait. In most practical circumstances, adding r is a way > of saying that ~r should be removed. So, take the update to > mean "add r and also delete ~r". The new theory is > consistent, and p no longer holds. > > So, the price of keeping consistency through an update is that > an old conclusion p may no longer be entailed. Under > consistent update, using classical logic and using NAF lead to > the */same /*behavior. > > If we use Clark's result [1] to view a logic program with NAF > as simply shorthand for a set of clauses in classical logic, > the above starts to look kind of obvious. > > A similar argument could be advanced for the inclusion of > aggregation in an extended SPARQL spec. Now is perhaps a good > time to avoid an error that the SQL folks made -- the results > from SQL aggregations are implementation dependent. That's a > bad idea for SQL, and a terrible one for on-the-fly linked > data and the Semantic Web. > > Hope this helps. > > -- Adrian > > > [1] http://www.doc.ic.ac.uk/~klc/NegAsFailure.pdf > <http://www.doc.ic.ac.uk/%7Eklc/NegAsFailure.pdf> > <http://www.doc.ic.ac.uk/%7Eklc/NegAsFailure.pdf> > > > Internet Business Logic > A Wiki and SOA Endpoint for Executable Open Vocabulary English > over SQL and RDF > Online at www.reengineeringllc.com > <http://www.reengineeringllc.com> > <http://www.reengineeringllc.com> Shared use is free > > Adrian Walker > Reengineering > > > > On Thu, Aug 21, 2008 at 11:51 AM, Axel Polleres > <axel.polleres@deri.org <mailto:axel.polleres@deri.org> > <mailto:axel.polleres@deri.org > <mailto:axel.polleres@deri.org>>> wrote: > > > Tackling the question from the more theoretical side, > I like non-monotonic SPARQL queries like the ones modeling set > difference. > > E.g. > "Give me all persons *without* an email address" in a > certain FOAF > graph. > > > i) It is already folklore, that you can do that with using the > !bound() filter outside an optional, i.e. > > SELECT ?X > FROM G > WHERE { ?X a foaf:Person > OPTIONAL { ?X foaf:mbox ?M} > FILTER (! bound(?X) ) } > > > ii) What some people might find surprising is that I can > achieve > the same result without using a FILTER, more generally that > I can > express > > SELECT ?X > FROM G > FROM NAMED <boundchecker.rdf> > WHERE > { > { ?X a foaf:Person OPTIONAL{ ?X foaf:mbox ?M} } > GRAPH <boundchecker.rdf>{ ?M :is :unbound } > } > > where <boundchecker.rdf> is the graph containing the single > triple > > _:b :is :unbound. > > Maybe requires some thinking, but is a nice example :-) > > (Short explanation: the blanknode in Graph > <boundchecker.rdf> only > matches to unbound variables from the optional patttern. > Note that > non-well-designed OPTIONAL patterns are not commutative, > see [1]. > Actually, [1] "kind of" conjectured that non-well-designed > patterns are useless, but - as this query shows - they aren't > really entirely useless.) > > Axel > > 1. http://iswc2006.semanticweb.org/items/Arenas2006bv.pdf > > > p.s.: Since I didn't see a similar one before, I claim > copyright > for that one, basically, it is very easily generalizable to > model > arbitrary queries SELECT ... P WITHOUT P' > ;-) > > > > Lee Feigenbaum wrote: > > Hi everyone, > > I'm putting together a "SPARQL by Example" tutorial, > which is, > as the name suggests, a step-by-step introduction to SPARQL > taught almost entirely through complete, runnable > SPARQL queries. > > So far, I've gathered a great deal of example queries > myself, > but I know that many subscribers to these lists > probably have > favorite queries of their own that you might be willing to > share with me. > > I'm looking for: > > 1) SPARQL queries > 2) ...that can be run by anyone (no private data sets) > 3a)...either by running the query against a public > SPARQL endpoint > 3b)...or by using a public SPARQL endpoint that will fetch > HTTP-accessible RDF data (e.g. sparql.org > <http://sparql.org> <http://sparql.org> > or demo.openlinksw.com <http://demo.openlinksw.com> > <http://demo.openlinksw.com>) > > 4) ...that answers a real* question > 5) ...and that is fun!** > > * real is in the eye of the beholder, I imagine, but > I'm not > looking for "finds the predicates that relate ex:s and > ex:o > in this sample RDF graph" > > ** fun is also in the eye of the beholder. fun can be a > query > on fun data; a clever query that may illustrate a > particular > SPARQL construct ("trick"); a query that integrates > interesting information; a query with surprising > results; etc. > > thanks to anyone who is able to contribute! > Lee > > PS I plan to make the tutorial slides available online > under > an appropriate CC license once they are completed. > > > > -- Dr. Axel Polleres, Digital Enterprise Research > Institute (DERI) > email: axel.polleres@deri.org > <mailto:axel.polleres@deri.org> <mailto:axel.polleres@deri.org > <mailto:axel.polleres@deri.org>> > > url: http://www.polleres.net/ > > Everything is possible: > rdfs:subClassOf rdfs:subPropertyOf rdfs:Resource. > rdfs:subClassOf rdfs:subPropertyOf rdfs:subPropertyOf. > rdf:type rdfs:subPropertyOf rdfs:subClassOf. > rdfs:subClassOf rdf:type owl:SymmetricProperty. > > > Adrian, > > Re. SPARQL & Aggregates, see: > http://esw.w3.org/topic/SPARQL/Extensions/Aggregates > > > > -- > > > Regards, > > Kingsley Idehen Weblog: > http://www.openlinksw.com/blog/~kidehen > <http://www.openlinksw.com/blog/%7Ekidehen> > President & CEO OpenLink Software Web: http://www.openlinksw.com > > > > > -- Regards, Kingsley Idehen Weblog: http://www.openlinksw.com/blog/~kidehen President & CEO OpenLink Software Web: http://www.openlinksw.com
Received on Thursday, 21 August 2008 18:21:35 UTC