- From: Dan Connolly <connolly@w3.org>
- Date: Fri, 24 Aug 2007 14:32:35 -0500
- To: John McClure <jmcclure@hypergrove.com>
- Cc: Owl Dev <public-owl-dev@w3.org>
On Fri, 2007-08-24 at 12:04 -0700, John McClure wrote:
> A Person in US legal contexts is either a Human or a Corporation;
Straightforward rendition in OWL, written in turtle syntax:
uslegal:Person owl:unionOf (uslegal:Human uslegal:Corporation).
>  every Human is
> a Person, and every Corporation is a Person.
Likewise:
uslegal:Human rdfs:subClassOf uslegal:Person.
uslegal:Corporation rdfs:subClassOf uslegal:Person.
Those are theorems that follow from the above, of course.
This assumes owl: is bound like this:
 @prefix owl: <http://www.w3.org/2002/07/owl#>.
and uslegal: is a fictitious example:
  @prefix uslegal: <http://example/uslegal/vocab#>.
> Is the following construct valid? Will or should reasoners be troubled by
> <rdf:Alt> within a <rdfs:range>, and can or should <rdf:Alt> be used within an
> <owl:Restriction>?
My advice on rdf:Alt is: don't.
In this case, use owl:unionOf .
My advice on RDF/XML is: use tools.
So take the above turtle syntax and stick it in a file, e.g.
http://pastebin.com/pastebin.php?dl=m4d3b5ace
then use a toolkit like redland (or Jena or swap/cwm or ... )
to convert to RDF/XML.
The triplr online service is particularly convenient:
http://triplr.org/rdf/http://pastebin.com/pastebin.php?dl=m4d3b5ace
and out comes...
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:uslegal="http://example/uslegal/vocab#" xml:base="http://triplr.org/rdf/http://pastebin.com/pastebin.php?dl=m4d3b5ace">
  <rdf:Description rdf:about="http://example/uslegal/vocab#Person">
    <owl:unionOf>
      <rdf:Description>
        <rdf:first rdf:resource="http://example/uslegal/vocab#Human"/>
        <rdf:rest>
          <rdf:Description>
            <rdf:first rdf:resource="http://example/uslegal/vocab#Corporation"/>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:Description>
        </rdf:rest>
      </rdf:Description>
    </owl:unionOf>
  </rdf:Description>
</rdf:RDF>
Now that rendition doesn't use parseType="Collection" short-hand, but...
well... trying to make RDF/XML look pretty is one of those battles
I choose not to engage in any more.
About the example you sent, some details...
> <owl:Class rdf:about="#LegalPerson">
>      <owl:ObjectProperty rdf:about='#Parent'>
property names conventionally start with lowercase, so #parent
>         <rdfs:range>
> 	  <rdf:Alt>
> 	       <li><owl:Class rdf:about="#Human"/></li>
> 	       <li><owl:Class rdf:about="#Corporation"/></li>
> 	  </rdf:Alt>
>         </rdfs:range>
rather:
        <rdfs:range rdf:parseType="Resource">
	  <owl:unionOf rdf:parseType="Collection">
	       <owl:Class rdf:about="#Human"/>
	       <owl:Class rdf:about="#Corporation"/>
	  </owl:unionOf>
        </rdfs:range>
The rest of it looks mostly OK at a glance, but I don't trust myself
to read RDF/XML. I use tools.
> I haven't found examples of this sort in the docs.
http://www.w3.org/TR/owl-ref/#unionOf-def
-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Friday, 24 August 2007 19:32:52 UTC