- From: Ibach, Brandon L <brandon.l.ibach@lmco.com>
- Date: Fri, 24 Aug 2007 15:32:44 -0400
- To: John McClure <jmcclure@hypergrove.com>
- Cc: Owl Dev <public-owl-dev@w3.org>
John, I'm not sure what the reasoner would do with the <rdf:Alt>, but the generally-accepted way to do this would be something like: <owl:ObjectProperty rdf:about="#Parent"> <rdfs:range> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Human"/> <owl:Class rdf:about="#Corporation"/> </owl:unionOf> </owl:Class> </rdfs:range> </owl:ObjectProperty> Regarding the rest of your example, other than the <owl:ObjectProperty> not belonging just inside of the <owl:Class>, I think you'll find that a Human with more than one Parent will be considered inconsistent due to Human "inheriting" the 1-Parent restriction from LegalPerson. -Brandon :) -----Original Message----- From: public-owl-dev-request@w3.org [mailto:public-owl-dev-request@w3.org] On Behalf Of John McClure Sent: Friday, August 24, 2007 3:05 PM To: Owl Dev Subject: Legal Persons A Person in US legal contexts is either a Human or a Corporation; every Human is a Person, and every Corporation is a Person. 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>? <owl:Class rdf:about="#LegalPerson"> <owl:ObjectProperty rdf:about='#Parent'> <rdfs:range> <rdf:Alt> <li><owl:Class rdf:about="#Human"/></li> <li><owl:Class rdf:about="#Corporation"/></li> </rdf:Alt> </rdfs:range> </owl:ObjectProperty> <owl:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#Parent"/> <owl:maxCardinality rdf:value='1'/> </owl:Restriction> </owl:subClassOf> </owl:Class> <owl:Class rdf:about="#Human"> <owl:subClassOf rdf:resource="#LegalPerson"/> <owl:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#Parent"/> <owl:allValuesFrom rdf:about="#Human"/> </owl:Restriction> </owl:subClassOf> <owl:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#Parent"/> <owl:maxCardinality rdf:value='2'/> </owl:Restriction> </owl:subClassOf> </owl:Class> <owl:Class rdf:about="#Corporation"> <owl:subClassOf rdf:resource="#LegalPerson"/> <owl:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#Parent"/> <owl:allValuesFrom rdf:about="#Corporation"/> </owl:Restriction> </owl:subClassOf> <owl:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#Parent"/> <owl:maxCardinality rdf:value='1'/> </owl:Restriction> </owl:subClassOf> </owl:Class> I haven't found examples of this sort in the docs. I understand that an <rdfs:range> is nothing more than <!-- alternative specification for rdfs:range--> <owl:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#Parent"/> <owl:allValuesFrom> <rdf:Alt> <li><owl:Class rdf:about="#Human"/></li> <li><owl:Class rdf:about="#Corporation"/></li> </rdf:Alt> </owl:allValuesFrom> </owl:Restriction> </owl:subClassOf> Maybe there is a better way to model this? Maybe I should be asking this in another forum? Thanks for any comments, John McClure
Received on Friday, 24 August 2007 19:33:07 UTC