W3C home > Mailing lists > Public > www-rdf-interest@w3.org > August 2000

lists and other facts and rules in RDF

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>
Message-Id: <0006800029039982000002L022*@MHS>
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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:51:43 GMT