Re: property inference rule

Dear Nikita, 
in which language would you like express such rule?
{hasNiece} = {hasBrother X hasDaughter}
Several Semantic Web related approaches
Prolog
  hasNiece(X, Y) :- hasBrother(X, Z), hasDaughter(Z, Y).
Some relations with SW  please look SWI Prolog parser for RDF and dissertation of Hefflin   also XSB
http://www.xml.com/pub/a/2001/07/25/prologrdf.html
http://www.swi.psy.uva.nl/projects/SWI-Prolog/packages/sgml/rdf2pl.html
you can define something like
hasBrother(X, Y) :- rdf(X, exactpropertyidentifierforhasbrother,Y).  


RuleML
http://www.dfki.de/ruleml/
<if>
    <atom>
        <rel>hasNiece</rel>
        <var>x</var>       
        <var>y</var>       
    </atom>
  <and>
    <atom>
        <rel>hasBrother</rel>
        <var>x</var>       
        <var>z</var>       
    </atom>
    <atom>
        <rel>hasDaughter</rel>
        <var>x</var>       
        <var>z</var>       
    </atom>
  </and>
</if>

Jess
http://herzberg.ca.sandia.gov/jess/
(defrule niece-defin
   (has-brother ?person ?his_brother)
   (has-daughter ?his_brother ?daughter)
=>
   (has-niece ?person ?daughter)
)

Best regards
MSc Andrei S. Lopatenko
Researcher
Vienna University of Technology
Extension Centre
http://derpi.tuwien.ac.at/~andrei/

  ----- Original Message ----- 
  From: Nikita Ogievetsky 
  To: www-rdf-interest@w3.org 
  Sent: Monday, November 05, 2001 6:33 PM
  Subject: property inference rule


  Does anybody know a way to express 
  an inference rule that from:

  <person rdf:ID="A">
      <hasBrother>
          <person>
              <hasDaughter rdf:resource="#C"/>
          </person>
      </hasBrother>
  </person>

  follows:

  <person rdf:ID="A">
      <hasNiece rdf:resource="#C">
  </person>

  In other words:

  {hasNiece} = {hasBrother X hasDaughter}

  I had been pondering over this for some time
  and could not find an answer neither myself nor by asking some other people.

  Thanks,

  --Nikita.

Received on Monday, 5 November 2001 11:46:20 UTC