W3C RDF/Shoe stuff

Inference Rules

pls refer to this schema using the namespace name http://www.w3.org/2000/04shoe-swell/inference#

cookie crumbs: horn clause in the FOLDOC.

Classes

Properties

aka "introduces" in larch

Hmm... this forall mechanism of explicitly stating which symbols are variables is very general, and it makes explicit the connection between variable syntax and the particular logic implied by that syntax.

But it's sort of tedious to work with. Some folks have propose[@@cite] distinguishing variables by their URI scheme, ala var:foo; I noted that this rubs me the wrong way[@@cite], but I couldn't fully explain why (except to appeal to the axiom of opacity@@link). It occurs to me, though, that we can reserve a part of URI space for variables without reserving a new URI scheme. See: KIF and RDF.

Example

busy(?who, ?t) :- member(?who, ?group), meets(?group, ?t)

<r:Rule>
  <r:vars>
    <l:List>
      <l:first rdf:resource="#who">
      <l:rest>
        <List>
          <l:first rdf:resource="#t">
          <l:rest>
            <l:List>
          <l:first rdf:resource="#group"/>
          <l:rest rdf:resource="@@empty"/>
        </l:List>
      </l:rest>
        </l:List>
      </l:rest>
    </l:List>
  </r:vars>

  <r:if>
    <l:List>
      <l:first rdf:resource="#if1"/>
      <l:rest>
        <l:List>
      <l:first rdf:resource="#if2"/>
      <l:rest rdf:resource="@@empty"/>
    </l:List>
      </l:rest>
    </l:List>

  </r:if>

  <r:then rdf:resource="#then"/>

</r:Rule>

  <rdf:Description about="#who">
    <xx:member rdf:ID="if1" rdf:resource="#group"/>
  </rdf:Description>

  <rdf:Description about="#group">
    <xx:meets rdf:ID="if2" rdf:resource="#t"/>
  </rdf:Description>

  <rdf:Description about="#who">
    <xx:busy rdf:ID="then" rdf:resource="#t"/>
  </rdf:Description>

Relationship to FOPC

dealing with variables: base case

iff(rule, ifXthenY)
if

dealing with variables: induction step:

@@this pretty much introduces rule2 by an existential, and won't work in ALL; that is: it needs :the or :find (find or create)... or some sort of ruleOf([vars, if, then]) thingy?

iff(rule, stForall_v)
if

Colophon

I maintain this as HTML, but I make it availble as RDF using a transformation.


Dan Connolly
$Revision: 1.12 $ of $Date: 2000/08/01 20:00:36 $ by $Author: connolly $