RDF Example


<rdf:RDF xmlns:db="http://www.w3.org/2002/01/rdf-databases/db-ont-1#"
         xmlns:rei="http://www.w3.org/2002/01/rdf-databases/rei-ont-1#"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

>
  <!-- Contant URIs -->
  <rei:Constant rdf:ID="__c1"><rei:denotation rdf:resource="http://t.example.com/p1" /></rei:Constant>
  <rei:Constant rdf:ID="__c2"><rei:denotation rdf:resource="http://t.example.com/p2" /></rei:Constant>
  <rei:Constant rdf:ID="__c3"><rei:denotation rdf:resource="http://t.example.com/p3" /></rei:Constant>

  <!-- Contant literals -->

  <!-- Variables -->
  <rei:Variable rdf:ID="__s1" rei:name="s1" />
  <rei:Variable rdf:ID="__o1" rei:name="o1" />
  <rei:Variable rdf:ID="__o2" rei:name="o2" />
  <rei:Variable rdf:ID="__o3" rei:name="o3" />
  <rei:Function rdf:ID="__g1" rei:name="g1">
    <rei:parameters rdf:parseType="daml:collection">
      <rdf:Description about="__o1" />
      <rdf:Description about="__o2" />
    </rei:parameters>
  </rei:Function>

  <!-- Conditions -->
  <db:Conjunction rdf:ID="__cond">
     <db:conjuncts rdf:parseType="daml:collection">
       <rei:Triple><rei:predicate rdf:resource="#__c1" />
                   <rei:subject rdf:resource="#__s1" />
                   <rei:object rdf:resource="#__o1" /></rei:Triple>
       <rei:Triple><rei:predicate rdf:resource="#__c2" />
                   <rei:subject rdf:resource="#__o1" />
                   <rei:object rdf:resource="#__o2" /></rei:Triple>
       <rei:Triple><rei:predicate rdf:resource="#__c3" />
                   <rei:subject rdf:resource="#__o2" />
                   <rei:object rdf:resource="#__o3" /></rei:Triple>
      </db:conjuncts>
  </db:Conjunction>

  <!-- A Command (or something) -->

  <!-- matches algae's ask '((t::p1 ?s1 ?o1) (t::p2 ?o1 ?o2) (t::p3 ?o2 ?o3)) -->
  <db:Query ID="q1">
     <db:where rdf:resource="#__cond" />
     <db:minRows>7</db:minRows>
     <db:request>
        <db:ComboRequest>
          <db:parts rdf:parseType="daml:collection">
            <db:Insert ID="i1">
               <db:content>
                     <rei:Triple ID="t1">
                        <rei:predicate rdf:resource="#__c1" />
                        <rei:subject rdf:resource="#__s1" />
                        <rei:object rdf:resource="#__g1" />
                     </rei:Triple>
               </db:content>
            </db:Insert>
            <db:Insert>
               <db:content>
                <rei:Triple><rei:predicate rdf:resource="#__c2" />
                                   <rei:subject rdf:resource="#__g1" />
                                   <rei:object rdf:resource="#__o2" /></rei:Triple>
               </db:content>
            </db:Insert>
          </db:parts>
        </db:ComboRequest>
     </db:request>
  </db:Query>
</rdf:RDF>