- From: Steffen Staab <staab@uni-koblenz.de>
- Date: Tue, 20 May 2008 09:03:00 +0200
- To: Adrian Walker <adriandwalker@gmail.com>
- CC: semantic-web@w3.org, florence.amardeilh@mondeca.com, steph.weiser@gmail.com, Philippe.Laublet@paris4.sorbonne.fr
Hi SPARQL has an implicit negation, allthough a very crude one using a tricky combination of optional, filter and bound expressions. SPARQL also closes the world locally, as described in papers by Polleres or Schenk. Here is a paper (among others) which describes the negation with an example: http://www.uni-koblenz.de/~sschenk/publications/2008/Schenk2008WWW.pdf And here is an implementation on top of Sesame to do the kind of derivation with SPARQL you are looking for: http://www.uni-koblenz.de/FB4/Institutes/IFI/AGStaab/Research/NetworkedGraphs Cheers, Steffen Adrian Walker schrieb: > Hi Bernard & Peter -- > > Some folks regard the lack of an official relational-database-style > negation in SPARQL as a design flaw. For example, it breaks the > implied analogy with SQL, which does of course have closed world negation. > > I'm not a SPARQL expert, but my understanding is that there are > several hacks one can do to get SQL-like negation -- one of them is to > use a SPARQL "filter" keyword. > > The lack of standardized aggregations in SPARQL is also a worry. > > The task that Bernard describes would be straightforward to implement > in the deductive system that is online at the site below, mainly > because that system embodies different design choices. > > Some examples to light the way: > > www.reengineeringllc.com/demo_agents/RDFQueryLangComparison1.agent > <http://www.reengineeringllc.com/demo_agents/RDFQueryLangComparison1.agent> > > www.reengineeringllc.com/demo_agents/Calendar1.agent > <http://www.reengineeringllc.com/demo_agents/Calendar1.agent> > > > www.reengineeringllc.com/demo_agents/Oil-IndustrySupplyChain1MySql1.agent > <http://www.reengineeringllc.com/demo_agents/Oil-IndustrySupplyChain1MySql1.agent> > > Hope this helps. > > -- Adrian > > Internet Business Logic > A Wiki and SOA Endpoint for Executable Open Vocabulary English over SQL > Online at www.reengineeringllc.com > <http://www.reengineeringllc.com> Shared use is _free_ > > Adrian Walker > Reengineering > > > > > > On Mon, May 19, 2008 at 5:38 PM, Peter Ansell <ansell.peter@gmail.com > <mailto:ansell.peter@gmail.com>> wrote: > > > You might just have to give in and describe either every day as being > open or closed, especially if you want to use CONSTRUCT against a > known URI, which you wouldn't have in your current system. Maybe the > implicit statements that people accept normally can't actually be > interpreted by a dumb computer system, although with numeric/date > ranges you could easily construct regions where things are open on > concurrent days (although I don't know the specifics about how much > date or numeric reasoning a sparql engine would need to have in this > respect). > > Basically I would say that you have to put knowledge in to get > reasoning back, so either you put the knowledge into an ontology that > any day without "opening" is considered closed, or vice-versa, or you > describe every possibility as open or closed. Is it that hard in this > context to be describing both cases? > > Peter > > 2008/5/20 Bernard Vatant <bernard.vatant@mondeca.com > <mailto:bernard.vatant@mondeca.com>>: > > > > Hi all > > > > We're currently fighting with knowledge extraction about > opening/closing > > days for tourism facilities (hotels, restaurants, museums, > campings ...). > > Information can be found in terms of closing and/or opening days > during a > > period, such as : > > "Widget Museum is open in 2008, from March 1st to October 31st, > closed on > > Sunday and Tuesday". > > NLP can extract the following description (1) > > > > :WidgetMuseum :openingPeriod _:p1 > > _:p1 :begins 2008-03-01 > > _:p1 :ends 2008-10-31 > > _:p1 :closingDay :Tuesday > > _:p1 :closingDay :Sunday > > > > In an open world, we have no way to know if this is a complete > description, > > and can't infer that Widget Museum is open on Monday. > > > > The other way round, if the information is given in terms of > opening days, > > "Widget Museum is open in 2008, from March 1st to October 31st, > on Monday, > > Wednesday, Thursday, Friday and Saturday". > > Which yields the description (2) > > > > :WidgetMuseum :openingPeriod _:p2 > > _:p2 :begins 2008-03-01 > > _:p2 :ends 2008-10-31 > > _:p2 :openingDay :Monday > > _:p2 :openingDay :Wednesday > > _:p2 :openingDay :Thursday > > _:p2 :openingDay :Friday > > _:p2 :openingDay :Saturday > > > > ... we can't infer that Widget Museum is closed on Tuesday and > Sunday. IOW > > there is no way to identify logically _:p1 and _:p2 in an open > world. > > > > Supposing (1) is the standard target description required by the > ontology > > used in the system, I thought possible to write, in our closed > world, a > > SPARQL CONSTRUCT query which would yield (1) from (2). > > But thinking twice, my hunch is now that it is impossible, > because of the > > implicit open world assumption made by SPARQL. > > > > Has someone already dealt with such issues? Any pointer welcome. > > > > Thanks for your help > > > > Bernard > > > > -- > > > > *Bernard Vatant > > *Knowledge Engineering > > ---------------------------------------------------- > > *Mondeca** > > *3, cité Nollez 75018 Paris France > > Web: www.mondeca.com <http://www.mondeca.com> > <http://www.mondeca.com> > > ---------------------------------------------------- > > Tel: +33 (0) 971 488 459 > > Mail: bernard.vatant@mondeca.com > <mailto:bernard.vatant@mondeca.com> > <mailto:bernard.vatant@mondeca.com > <mailto:bernard.vatant@mondeca.com>> > > Blog: Leçons de Choses <http://mondeca.wordpress.com/> > > > > > > > > > >
Received on Tuesday, 20 May 2008 07:03:46 UTC