- From: Graham Klyne <gk@ninebynine.org>
- Date: Fri, 25 Apr 2003 11:59:10 +0100
- To: Karsten Otto <otto@math.fu-berlin.de>
- Cc: RDF interest group <www-rdf-interest@w3.org>
At 11:15 25/04/2003 +0200, Karsten Otto wrote: >Consider a more simple example: Let's say you had stated > >_:x :- { ex:s1 ex:p1 ex:o1 . } . >_:x :- { ex:s2 ex:p2 ex:o2 . } . > >or, for that matter > >{ ex:s1 ex:p1 ex:o1 . } :- { ex:s2 ex:p2 ex:o2 . } . > >This works nicely in accordance to my interpretation above, you simply >combine the two nodes together, and basically get > >{ ex:s1 ex:p1 ex:o1 . ex:s2 ex:p2 ex:o2 . } . > >This also works if you have [] nodes instead of {}. OK, that looks like another possible interpretation, which overcomes some of the problems I was having. It even seems to play reasonably with the style existing RDF semantics, in that if we say: ex:f :- { ex:s1 ex:p1 ex:o1 . ex:s2 ex:p2 ex:o2 . } . then whenever ex:f is true, then so are: ex:f1 :- { ex:s1 ex:p1 ex:o1 . } . and ex:f2 :- { ex:s2 ex:p2 ex:o2 . } . so the subgraph lemma [1] continues to work even when RDF is extended to allow nested formulae. [1] http://www.w3.org/TR/rdf-mt/#entail It also seems to follow the open-world approach of RDF; i.e. asserting that some statements are true, does not deny the truth of additional information. Or, if formulae are used (as in CWM) to describe simple inference rules: [r1] { ex:s1 ex:p1 ex:o1 . ex:s2 ex:p2 ex:o2 . } log:implies { exc:s1 exc:p1 exc:o1 . } . would entail: [r2] { ex:s1 ex:p1 ex:o1 . } log:implies { exc:s1 exc:p1 exc:o1 . } . (i.e. it's always safe to draw the conclusion in [r2] when it holds in [r1] Similarly [r3] { ex:s1 ex:p1 ex:o1 . } log:implies { exc:s1 exc:p1 exc:o1 . exc:s2 exc:p2 exc:o2 . } . would entail: [r4] { ex:s1 ex:p1 ex:o1 . } log:implies { exc:s1 exc:p1 exc:o1 . } . So how does this play with my graph-matching question? I don't think it provides a complete answer, but it suggests some possible lines to think about. I need to think about this some more, but the approach has some appeal. Because formulae are not a standard part of RDF (even though I personally believe they are potentially very useful), I don't want to invest too much effort in following a line that is incompatible with what other folks are doing. I'd be interested to hear from folks who are actually using formulae in applications. >Now, if you use a non-anonymous node with the :- operator, matters >become difficult. It means that your anonymous node is not anonymous at >all, but in fact a named node! The mechanism still works, but it is >somewhat counter-intuitive. Consider: > >ex:a :- [ ex:p1 ex:o1 . ] . > >becomes > >ex:a ex:p1 ex:o1 . Yes, that's exactly how I would expect :- to work with [...] (and my N3 parser would return identical graphs for both cases). #g ------------------- Graham Klyne <GK@NineByNine.org> PGP: 0FAA 69FF C083 000B A2E9 A131 01B9 1C7A DBCA CB5E
Received on Friday, 25 April 2003 08:04:19 UTC