- From: <jos.deroo.jd@belgium.agfa.com>
- Date: Fri, 11 Aug 2000 11:18:43 +0200
- To: " - *connolly@w3.org" <connolly@w3.org>
- Cc: " - *www-rdf-interest@w3.org" <www-rdf-interest@w3.org>
Dan, While at Disneyland Paris I couldn't stop thinking about your cool list stuff at http://www.w3.org/2000/07/hs78/lists and also about the problem of expressing other facts and rules in RDF. We have the following assertions [var:X e:in [var:X e:list var:B]] [[var:X e:in [var:A e:list var:B]] e:if [var:X e:in var:B]] [[e:empty e:list [var:Z e:list e:empty]] e:append var:Z] [[[[var:A e:list var:B] e:list [var:Z e:list e:empty]] e:append [var:A e:list var:C]] e:if [[var:B e:list [var:Z e:list e:empty]] e:append var:C]] The syntax here is nothing else but [subject predicate object] where subject and object can be triples as well. For the moment we use namespace prefixes such as xmlns:e="http://www.jclark.com/xt/java/Euler". You can now ask to proof the question [data:c e:in [data:a e:list [data:b e:list [data:c e:list e:empty]]]] and Euler [1] will give the following proof (as an RDF expression) [e:ok e:and [e:ok e:and [e:ok e:and [[e:empty e:list [[data:c e:list e:empty] e:list e:empty]] e:append [data:c e:list e:empty]]] e:thus [[[data:b e:list e:empty] e:list [[data:c e:list e:empty] e:list e:empty]] e:append [data:b e:list [data:c e:list e:empty]]]] e:thus [[[data:a e:list [data:b e:list e:empty]] e:list [[data:c e:list e:empty] e:list e:empty]] e:append [data:a e:list [data:b e:list [data:c e:list e:empty]]]]] or you can ask [[var:X e:list [[data:c e:list e:empty] e:list e:empty]] e:append [data:a e:list [data:b e:list [data:c e:list e:empty]]]] and Euler [1] will give [e:ok e:and [e:ok e:and [e:ok e:and [[e:empty e:list [[data:c e:list e:empty] e:list e:empty]] e:append [data:c e:list e:empty]]] e:thus [[[data:b e:list e:empty] e:list [[data:c e:list e:empty] e:list e:empty]] e:append [data:b e:list [data:c e:list e:empty]]]] e:thus [[[data:a e:list [data:b e:list e:empty]] e:list [[data:c e:list e:empty] e:list e:empty]] e:append [data:a e:list [data:b e:list [data:c e:list e:empty]]]]] So the thing about facts, rules and proofs is that they are all RDF expressions with some predicates such as e:if, e:and, e:ok, e:thus, etc. Isn't RDF beautiful? -- Jos De Roo -- AGFA [1] ftp://windsor.agfa.be/outgoing/RCEI/NET/euler/index.html PS DanBri, your API question (Amsterdam) is in progress (assert, proof, ...)
Received on Friday, 11 August 2000 05:20:15 UTC