success with ?v variables

Tim,
thanks for the ?v hack
we now also use [ rdf:first ?a; rdf:rest ?b ] instead of ( ?a / ?b )
(but still have |= and /= for (non)entailments in e.g.
  http://www.agfa.com/w3c/euler/etc5.n3
  http://www.agfa.com/w3c/euler/etc5-proof.n3)


#Processed by Id: cwm.py,v 1.103 2002/08/08 02:03:35 timbl Exp
        #    using base http://www.agfa.com/w3c/euler/owl-rules

#  Notation3 generation by
#       notation3.py,v 1.118 2002/08/16 22:30:48 timbl Exp

#   Base was: http://www.agfa.com/w3c/euler/owl-rules
     @prefix : <#> .
     @prefix log: <http://www.w3.org/2000/10/swap/log#> .
     @prefix math: <http://www.w3.org/2000/10/swap/math#> .
     @prefix owl: <http://www.w3.org/2002/07/owl#> .
     @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
     @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
     @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

    this     log:forAll :C,
                :L,
                :R,
                :a,
                :b,
                :c,
                :max,
                :min,
                :n,
                :o,
                :p,
                :q,
                :r,
                :s,
                :x,
                :y,
                :z .

    <>     a owl:Ontology;
         :rcsid "$Id: owl-rules.n3,v 1.54 2002/08/17 17:23:27 amdus Exp 
$";
         owl:imports <http://www.w3.org/2000/01/rdf-schema> .

    owl:FunctionalProperty     a rdfs:Class .

    owl:InverseFunctionalProperty     a rdfs:Class .

    owl:Ontology     a rdfs:Class .

    owl:Restriction     a rdfs:Class .

    owl:SymmetricProperty     a rdfs:Class .

    owl:TransitiveProperty     a rdfs:Class .

    owl:allValuesFrom     a rdf:Property;
         rdfs:domain owl:Restriction;
         rdfs:range rdfs:Class .

    owl:cardinality     a rdf:Property;
         rdfs:domain owl:Restriction;
         rdfs:range xsd:nonNegativeInteger .

    owl:complementOf     a rdf:Property,
                owl:SymmetricProperty;
         rdfs:domain rdfs:Class;
         rdfs:range rdfs:Class .

    owl:differentFrom     a rdf:Property,
                owl:SymmetricProperty .

    owl:disjointWith     a rdf:Property,
                owl:SymmetricProperty;
         rdfs:domain rdfs:Class;
         rdfs:range rdfs:Class .

    owl:equivalentTo     a rdf:Property,
                owl:SymmetricProperty,
                owl:TransitiveProperty .

    owl:extension     a rdf:Property;
         rdfs:domain rdf:Property;
         rdfs:range rdf:List .

    owl:hasValue     a rdf:Property;
         rdfs:domain owl:Restriction .

    owl:imports     a rdf:Property;
         rdfs:subPropertyOf rdfs:seeAlso .

    owl:intersectionOf     a rdf:Property;
         rdfs:domain rdfs:Class;
         rdfs:range rdf:List .

    owl:inverseOf     a rdf:Property,
                owl:SymmetricProperty .

    owl:item     a rdf:Property;
         rdfs:domain rdf:List .

    owl:maxCardinality     a rdf:Property;
         rdfs:domain owl:Restriction;
         rdfs:range xsd:nonNegativeInteger .

    owl:minCardinality     a rdf:Property;
         rdfs:domain owl:Restriction;
         rdfs:range xsd:nonNegativeInteger .

    owl:onProperty     a rdf:Property;
         rdfs:domain owl:Restriction;
         rdfs:range rdf:Property .

    owl:oneOf     a rdf:Property;
         rdfs:domain rdfs:Class;
         rdfs:range rdf:List .

    owl:sameClassAs     a rdf:Property,
                owl:SymmetricProperty,
                owl:TransitiveProperty;
         rdfs:domain rdfs:Class;
         rdfs:range rdfs:Class;
         rdfs:subPropertyOf rdfs:subClassOf .

    owl:samePropertyAs     a rdf:Property,
                owl:SymmetricProperty,
                owl:TransitiveProperty;
         rdfs:subPropertyOf rdfs:subPropertyOf .

    owl:someValuesFrom     a rdf:Property;
         rdfs:domain owl:Restriction;
         rdfs:range rdfs:Class .

    owl:unionOf     a rdf:Property;
         rdfs:domain rdfs:Class;
         rdfs:range rdf:List .

    owl:versionInfo     a rdf:Property;
         rdfs:subPropertyOf rdfs:comment .
    {

        }     log:implies {:a     :includes () .
        },
                {
          [      owl:notItem :x ].
        },
                {
          [      rdf:first :x;
                 rdf:rest :b;
                 owl:item :x ].
        } .
    {
        :b     owl:item :x .

        }     log:implies {
          [      rdf:first :a;
                 rdf:rest :b;
                 owl:item :x ].
        } .
    {
        :C     owl:oneOf :L .
        :L     owl:item :x .

        }     log:implies {:x     a :C .
        } .
    {
        :a     :includes :c;
             owl:item :b .

        }     log:implies {:a     :includes  [
                 rdf:first :b;
                 rdf:rest :c ] .
        } .
    {
        :a     owl:differentFrom :x .
        :b     owl:notItem :x .

        }     log:implies {
          [      rdf:first :a;
                 rdf:rest :b;
                 owl:notItem :x ].
        } .
    {
        :p     a owl:SymmetricProperty .
        :s     :p :o .

        }     log:implies {:o     :p :s .
        } .
    {
        :p     owl:equivalentTo :q .
        :x     :p :y .

        }     log:implies {:x     :q :y .
        } .
    {
        :p     owl:inverseOf :q .
        :s     :p :o .

        }     log:implies {:o     :q :s .
        } .
    {
        :p     owl:samePropertyAs :r .
        :s     :p :o .

        }     log:implies {:s     :r :o .
        } .
    {
        :p     owl:samePropertyAs :r .
        :s     :r :o .

        }     log:implies {:s     :p :o .
        } .
    {
        :s     a :x .
        :x     owl:sameClassAs :y .

        }     log:implies {:s     a :y .
        } .
    {
        :s     a :y .
        :x     owl:sameClassAs :y .

        }     log:implies {:s     a :x .
        } .
    {
        :x     :p :y;
             owl:equivalentTo :z .

        }     log:implies {:z     :p :y .
        } .
    {
        :x     :p :y .
        :y     owl:equivalentTo :z .

        }     log:implies {:x     :p :z .
        } .
    {
        :x     owl:complementOf :y .
        :y     owl:complementOf :z .

        }     log:implies {:x     owl:sameClassAs :z .
        } .
    {
        :x     owl:complementOf :y .
        :y     owl:sameClassAs :x .

        }     log:implies {:x     :inconsistentWith owl:sameClassAs .
        } .
    {
        :C     owl:oneOf :L .
        :L     owl:notItem :x .
        :x     a :C .

        }     log:implies {:x     :inconsistentWith owl:oneOf .
        } .
    {
        :L     owl:item :C .
        :x     a :z .
        :z     owl:intersectionOf :L .

        }     log:implies {:x     a :C .
        } .
    {
        :a     owl:extension :x .
        :b     owl:extension :y .
        :y     :includes :x .

        }     log:implies {:a     rdfs:subPropertyOf :b .
        } .
    {
        :a     owl:intersectionOf :x .
        :b     owl:intersectionOf :y .
        :x     :includes :y .

        }     log:implies {:a     rdfs:subClassOf :b .
        } .
    {
        :a     owl:oneOf :x .
        :b     owl:oneOf :y .
        :y     :includes :x .

        }     log:implies {:a     rdfs:subClassOf :b .
        } .
    {
        :a     owl:unionOf :x .
        :b     owl:unionOf :y .
        :y     :includes :x .

        }     log:implies {:a     rdfs:subClassOf :b .
        } .
    {
        :p     a owl:FunctionalProperty .
        :s     :p :x,
                    :y .

        }     log:implies {:x     owl:equivalentTo :y .
        } .
    {
        :p     a owl:InverseFunctionalProperty .
        :x     :p :o .
        :y     :p :o .

        }     log:implies {:x     owl:equivalentTo :y .
        } .
    {
        :p     a owl:TransitiveProperty .
        :s     :p :x .
        :x     :p :o .

        }     log:implies {:s     :p :o .
        } .
    {
        :x     a :y,
                    :z .
        :y     owl:complementOf :z .

        }     log:implies {:x     :inconsistentWith owl:complementOf .
        } .
    {
        :x     a :y,
                    :z .
        :y     owl:disjointWith :z .

        }     log:implies {:x     :inconsistentWith owl:disjointWith .
        } .
    {
        :R     owl:allValuesFrom :C;
             owl:onProperty :p .
        :s     a :R;
             :p :o .

        }     log:implies {:o     a :C .
        } .
    {
        :a     owl:extension :x .
        :b     owl:extension :y .
        :x     :includes :y .
        :y     :includes :x .

        }     log:implies {:a     owl:samePropertyAs :b .
        } .
    {
        :a     owl:intersectionOf :x .
        :b     owl:intersectionOf :y .
        :x     :includes :y .
        :y     :includes :x .

        }     log:implies {:a     owl:sameClassAs :b .
        } .
    {
        :a     owl:oneOf :x .
        :b     owl:oneOf :y .
        :x     :includes :y .
        :y     :includes :x .

        }     log:implies {:a     owl:sameClassAs :b .
        } .
    {
        :a     owl:unionOf :x .
        :b     owl:unionOf :y .
        :x     :includes :y .
        :y     :includes :x .

        }     log:implies {:a     owl:sameClassAs :b .
        } .
    {
        :p     a owl:FunctionalProperty .
        :s     :p :x,
                    :y .
        :x     owl:differentFrom :y .

        }     log:implies {:x     :inconsistentWith owl:FunctionalProperty 
.
        } .
    {
        :p     a owl:InverseFunctionalProperty .
        :x     :p :o;
             owl:differentFrom :y .
        :y     :p :o .

        }     log:implies {:x     :inconsistentWith 
owl:InverseFunctionalProperty .
        } .
    {
        :L     owl:item  (
            :s
            :o  ) .
        :p     owl:extension :L .

        }     log:implies {:s     :p :o .
        } .
    {
        :L     owl:notItem  (
            :s
            :o  ) .
        :p     owl:extension :L .
        :s     :p :o .

        }     log:implies {
          ( :s
            :o  )
             :inconsistentWith owl:extension .
        } .
    {
        this     log:forAll :o,
                    :p,
                    :s .
        :n     math:lessThan :min .
        :s     a  [
                 a owl:Restriction;
                 owl:minCardinality :min;
                 owl:onProperty :p ] .
        {
            :s     :p :o .

            }     math:proofCount :n .

        }     log:implies {:s     :inconsistentWith owl:Restriction .
        } .
    {
        this     log:forAll :o,
                    :p,
                    :s .
        :max     math:lessThan :n .
        :s     a  [
                 a owl:Restriction;
                 owl:maxCardinality :max;
                 owl:onProperty :p ] .
        {
            :s     :p :o .

            }     math:proofCount :n .

        }     log:implies {:s     :inconsistentWith owl:Restriction .
        } .

#ENDS

-- ,
Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/

Received on Saturday, 17 August 2002 13:37:38 UTC