Expressing "not" in RDF rules

Hello world,

I've been fiddling with RDF recently to build a few little graphviz
diagrams. I'm reasonably comfortable using logical inference to deduce
properties with statements of the form

  { :p :someProperty :s } log:implies { :s :someOtherProp "foo" }

but I claim no deep knowledge of RDF.

For my most recent toy, I want to do something more complex and I
can't get my head around it. The short question is, how do I express
"not" in an RDF rule.

The longer question is:

Suppose I have three nodes, :p, :s, and :t. I want to express the
following rule:

If    :p :pointsTo :s
and   :p :pointsTo :t
and   not(s :pointsTo :t)
then  :p :hasEdge :t

Graphically, I'm trying to avoid a bunch of extraneous edges. Given

     [p]----------------->[t]
      |                    ^
      +---->[s]------------+

I want to simply graph:

     [p]------>[s]------->[t]

I hope that makes something resembling sense. :-)

                                        Be seeing you,
                                          norm

-- 
Norman.Walsh@Sun.COM   | One's never alone with a rubber duck.
XML Standards Engineer |
XML Technology Center  | 
Sun Microsystems, Inc. | 

Received on Wednesday, 23 January 2002 14:46:11 UTC