<rdf:RDF
    xmlns:iw="http://inferenceweb.stanford.edu/2004/07/iw.owl#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
  <owl:Class rdf:about="http://inferenceweb.stanford.edu/2004/07/iw.owl#Source"/>
  <owl:Class rdf:about="http://inferenceweb.stanford.edu/2004/07/iw.owl#DeclarativeRule"/>
  <owl:Class rdf:about="http://inferenceweb.stanford.edu/2004/07/iw.owl#Team"/>
  <rdf:Property rdf:about="http://inferenceweb.stanford.edu/2004/07/iw.owl#firstSubmissionDate"/>
  <rdf:Property rdf:about="http://inferenceweb.stanford.edu/2004/07/iw.owl#name"/>
  <rdf:Property rdf:about="http://inferenceweb.stanford.edu/2004/07/iw.owl#lastSubmissionDate"/>
  <rdf:Property rdf:about="http://inferenceweb.stanford.edu/2004/07/iw.owl#hasSource"/>
  <rdf:Property rdf:about="http://inferenceweb.stanford.edu/2004/07/iw.owl#submitter"/>
  <rdf:Property rdf:about="http://inferenceweb.stanford.edu/2004/07/iw.owl#englishExample"/>
  <rdf:Property rdf:about="http://inferenceweb.stanford.edu/2004/07/iw.owl#englishDescription"/>
  <iw:Source rdf:about="http://inferenceweb.stanford.edu/registry/ORG/KSL.owl#KSL"/>
  <iw:DeclarativeRule rdf:about="http://inferenceweb.stanford.edu/registry/DPR/ValueLinkCreationReasoningStep.owl#ValueLinkCreationReasoningStep">
    <iw:lastSubmissionDate>20060105111006</iw:lastSubmissionDate>
    <iw:name>Value Link Creation</iw:name>
    <iw:firstSubmissionDate>20051128143825</iw:firstSubmissionDate>
    <iw:hasSource rdf:parseType="Collection">
      <iw:Source rdf:about="http://inferenceweb.stanford.edu/registry/ORG/KSL.owl#KSL"/>
    </iw:hasSource>
    <iw:englishDescription>&lt;p>
This proof step is a forward-chaining resolution reasoning step implemented with Value Collections, listeners, and Value Links in JTP's frame system.
&lt;p>
Given a Horn clause with one positive literal and N=2 negative literals, and given another positive triple P that unifies with one of the negative literals in the Horn clause, derive a shorter Horn clause with one antecedent as would occur in a resolution step.  (For the case of N>=3 negative literals refer to the Value Collection Listener Creation rule description.
&lt;p>
Note: some implementation detail is useful here to motivate the name of the rule.  Negative literals in the clause that are triples with one unbound variable correspond to Value Collections in JTP's frame system.  Recall that a Value Collection can be viewed as the set of values of &lt;code>?x&lt;/code> that satisfy a triple of the form &lt;code>(property subject ?x)&lt;/code>, or of the form &lt;code>(property ?x value)&lt;/code>.  A listener is created for one of those Value Collections to await new values, so that when one arrives (represented by triple P in the description above), this triggers the creation of a Value Link.
&lt;p>
A ValueLink represents the inclusion of one Value Collection, the source, into another Value Collection, the target.  A Value Link from source collection &lt;code>(p1 s1 ?x)&lt;/code> to target collection &lt;code>(p2 s2 ?y)&lt;/code> asserts that all values of &lt;code>?x&lt;/code> in the source are also values for &lt;code>?y&lt;/code> in the target. A Value Link can thus be viewed as implementing the implication:
&lt;pre>
   (&lt;= (p2 s2 ?x)
       (p1 s1 ?x))
&lt;/pre>
</iw:englishDescription>
    <iw:submitter>
      <iw:Team rdf:about="http://inferenceweb.stanford.edu/registry/TM/IW-TEAM.owl#IW-TEAM"/>
    </iw:submitter>
    <iw:englishExample>&lt;p>
Example 1:
&lt;p>
Consider the Value Collections &lt;code>(type Rover ?x)&lt;/code> and &lt;code>(subClassOf Dog ?y)&lt;/code>, and suppose we know that &lt;code>(type Rover Dog)&lt;/code>.  Then a Value Link from the source Value Collection &lt;code>(subClassOf Dog ?y)&lt;/code> to the target Value Collection &lt;code>(type Rover ?x)&lt;/code> asserts that all superclasses of Dog are also types for Rover.  This ValueLink can be viewed as implementing the implication:
&lt;pre>
   (&lt;= (type Rover ?x)
       (subClassOf Dog ?x))
&lt;/pre>
&lt;p>
Example 2:
&lt;p>
Given the clause corresponding to a Value Collection Listener Creation step:
&lt;pre>
  (&lt;= (subClassOf CRAB ?x) 
      (and (subClassOf CRAB ?y) (subClassOf ?y ?x)))
&lt;/pre>
wherein a listener has been set up awaiting new values for the Value Collection &lt;code>(subClassOf CRAB ?y)&lt;/code>, and given the triple &lt;code>(subClassOf CRAB SHELLFISH)&lt;/code>, a Value Link Creation proof step derives using variable binding &lt;code>?y=SHELLFISH&lt;/code> a new clause:
&lt;pre>
  (&lt;= (subClassOf CRAB ?x) 
      (subClassOf SHELLFISH ?x))
&lt;/pre>
by setting up a Value Link from the Value Collection &lt;code>(subClassOf SHELLFISH ?x)&lt;/code> to the Value Collection &lt;code>(subClassOf CRAB ?x)&lt;/code>.
&lt;p></iw:englishExample>
  </iw:DeclarativeRule>
</rdf:RDF>
