From: Dan Connolly (connolly@w3.org)
Date: 11/15/01
Ian Horrocks wrote: [...] > this of course makes the query language much less > expressive - in a certain sense, it then just becomes a fancy "user > interface" for our old friend realisation (tell me the members of > class C). I find that pretty appealing, really. I'm most interested in general-purpose RDF query and rules stuff; I've been wondering what a "DAML+OIL query language" would look like if it weren't a general-purpose RDF query langauge. The above is a pretty satisfying bumper-sticker description for a DAML+OIL query language. > The additional point regarding cycles can be summarised as > follows. When there are no cycles in the non-distinguished variables, > queries can easily be "collapsed" into a single class and answered > using our standard reasoning services, e.g., a query of the form: > > (x) <- Q(x,y) ^ R(y,z) ^ S(z,w) > > can be reduced to: > > (x) <- C(x) > > where C is the class (hasClass Q (hasClass R (hasClass S > Thing))). Note that (an extended version of) the technique can still > be used when there are n distinguished variables. That sorta appeals to me, but after scratching my head for a few minutes, I don't quite get it. I would very much appreciate a tutorial on rewriting horn clauses as DAML+OIL descriptions. The tools I use (http://www.w3.org/2000/10/swap/) are pretty much rules-based, but I'm making an effort, lately, to replace application-specific rules ala: { :n1 a rm:external} log:implies { :n1 dot:color "grey5"; dot:shape "plaintext"}. with rules to capture DAML+OIL: # hasValue { :s a [ ont:onProperty :p; ont:hasValue :o ] } log:implies { :s :p :o }. and facts written in the DAML+OIL vocabulary: _:doesAnnoProto ont:onProperty rm:prototypes; ont:hasValue :annoteaProtocol. psum:AnnoteaClient u:subClassOf _:doesAnnoProto. psum:AnnoteaService u:subClassOf _:doesAnnoProto. but it takes significant mental energy to think this way, and I'm only able to do it in simple cases. -- Dan Connolly, W3C http://www.w3.org/People/Connolly/
This archive was generated by hypermail 2.1.4 : 04/02/02 EST