Re: Inference in daml

> <unionOf parseType="daml:collection">
>     <Class>
>         <Restriction>
>             <onProperty rdf:resource="rdf:type"/>
>             <hasValue rdf:resource="animal"/>
>         </Restriction>
>     </Class>
>     <Class>
>         <complementOf parseType="daml:collection:>
>             <Class>
>                 <Restriction>
>                     <onProperty rdf:resource="rdf:type"/>
>                     <hasValue rdf:resource="dog"/>
>                 </Restriction>
>             </Class>
>         </complementOf>
>     </Class>
> </unionOf>

This is kinda of odd - unionOf is a property not a class, and Class is
a Class, not a property. What you have gives something like this in
N3:-

      [      a :unionOf;
             :Class  [
                 a :Restriction;
                 :onProperty <rdf:type>;
                 :hasValue <#animal> ],
                     [
                 a :complementOf;
                 :Class  [
                     a :Restriction;
                     :onProperty <rdf:type>;
                     :hasValue <#dog> ] ] ].

By which you probably mean:-

   [ :unionOf
     ([ :onProperty <rdf:type>;
        :hasValue <#animal> ]
      [ :complementOf [
        :onProperty <rdf:type>;
        :hasValue <#dog> ] ]) ] .

Which in XML RDF is:-

    <rdf:Description>
        <unionOf rdf:parseType="daml:collection">
            <rdf:Description>
                <onProperty rdf:resource="rdf:type"/>
                <hasValue rdf:resource="#animal"/>
            </rdf:Description>
            <rdf:Description>
                    <complementOf rdf:parseType="Resource">
                        <onProperty rdf:resource="rdf:type"/>
                        <hasValue rdf:resource="#dog"/>
                    </complementOf>
            </rdf:Description>
        </unionOf>
    </rdf:Description>

(After you qualify the "rdf:", due to my laziness).

Hmm... so you're trying to define a new class which is a union of all
things which are animals, and all things which are not dogs. Why not
just say that there is a class of things which are animals and not
dogs?

      [ :unionOf (:Animal [ :complementOf :Dog ]) ] .

or:-

   <rdf:Description>
     <unionOf parseType="daml:collection">
         <Class rdf:resource="#Animal"/>
           <rdf:Description>
            <complementOf rdf:resource="#Dog"/>
          </rdf:Description>
      </unionOf>
   </rdf:Description>

That would seem a more natural thing to do.

--
Kindest Regards,
Sean B. Palmer
@prefix : <http://webns.net/roughterms/> .
:Sean :hasHomepage <http://purl.org/net/sbp/> .

Received on Sunday, 17 June 2001 12:11:44 UTC