W3C home > Mailing lists > Public > public-owl-dev@w3.org > October to December 2007

Re: Representing anonymous individual in SemWeb Best Practice documents

From: Ian Horrocks <horrocks@cs.man.ac.uk>
Date: Wed, 17 Oct 2007 16:27:36 +0100
Message-Id: <D88B8CF1-FFA1-4E3A-B789-A5B67CCEC345@cs.man.ac.uk>
Cc: Owl Dev <public-owl-dev@w3.org>, "Ibach, Brandon L" <brandon.l.ibach@lmco.com>
To: Benedicto Rodriguez <br205r@ecs.soton.ac.uk>

Benedicto,

I recommend that you give up the unequal struggle of trying to write  
N3/RDF OWL directly. Instead, grab an OWL editor and use it to write  
the axiom(s) you want. If you are interested in the RDF  
serialisation, then just look at the file saved by the editor. I can  
warmly recommend the new 4.x version of Protege [1] (make sure you  
get 4.x -- it has been completely re-engineered to be OWL specific,  
and is orders of magnitude faster and slicker than the 3.x versions).

This is what it produced for what I think you are trying to say  
(which turns out to be exactly the same as Brandon came up with):

     <Person rdf:about="#John">
         <rdf:type>
             <owl:Restriction>
                 <owl:onProperty rdf:resource="#has_health_status"/>
                 <owl:someValuesFrom rdf:resource="#Good_health_value"/>
             </owl:Restriction>
         </rdf:type>
     </Person>

Regards,
Ian


On 17 Oct 2007, at 02:29, Ibach, Brandon L wrote:

>
> I think you'll find that the intent in both of these cases was to have
> the Restriction be an additional object of the "a" predicate, which is
> shorthand for "rdf:type".  The N3 notation for multiple objects of the
> same predicate is to separate them with commas, but the example uses a
> semi-colon, which is for separating multiple predicates of the same
> subject.  I think you'll find that the following will parse correctly
> and reflect the original intent.
>
> :John  a  :Person ,
>           [  a  owl:Restriction;
>              owl:onProperty :has_health_status ;
>              owl:someValuesFrom :Good_health_value ].
>
> Read this as "John is a Person and is also an individual that has a
> value from the Good_health_value class for the has_health_status
> property."  The RDF/XML equivalent would be:
>
> <Person rdf:about="#John">
>    <rdf:type>
>       <owl:Restriction>
>          <owl:onProperty rdf:resource="#has_health_status"/>
>  	   <owl:someValuesFrom rdf:resource="#Good_health_value"/>
>       </owl:Restriction>
>    </rdf:type>
> </Person>
>
> Note that this is somewhat shorter than your version, as you included
> statements about Good_health_value being an owl:Class and
> has_health_status being an owl:FunctionalProperty, which were not
> present in the N3 version, above.  Presumably, these statements  
> would be
> present elsewhere in the ontology.
>
> Note, also, that it is somewhat imprecise to refer to the RDF/XML  
> as an
> "OWL implementation" in contrast to the N3 version.  Both N3 and  
> RDF/XML
> are valid syntaxes for an OWL ontology, as they are both valid  
> syntaxes
> for RDF, upon which OWL is built.  The successor to OWL, currently  
> known
> as "OWL 1.1", continues this layering, though it also presently  
> proposes
> some alternative, non-RDF-based, syntaxes.
>
> -Brandon :)
>
>
>> -----Original Message-----
>> From: public-owl-dev-request@w3.org
>> [mailto:public-owl-dev-request@w3.org] On Behalf Of Benedicto
>> Rodriguez
>> Sent: Sunday, October 14, 2007 7:54 PM
>> To: public-owl-dev@w3.org
>> Subject: Representing anonymous individual in SemWeb Best
>> Practice documents
>> Importance: High
>>
>>
>> Hello everyone,
>>
>> (This post probably belongs to the
>> public-swbp-wg-request@w3.org mailing
>> list, but given that the working group is now closed and the type of
>> questions included, I thought it would be ok to post it here  
>> instead).
>>
>> Two of the documents in the SWBPD WG ([1], [2]) talk about
>> representing
>> anonymous individuals as the value of a property using an existential
>> restriction.
>>
>> [1] Representing Classes As Property Values on the Semantic Web.  
>> (See:
>> Approach 4). http://www.w3.org/TR/swbp-classes-as-values/
>>
>> [2] Representing Specified Values in OWL: "value partitions"
>> and "value
>> sets". (See: Pattern 2, variant 2).
>> http://www.w3.org/TR/swbp-specified-values/
>>
>> In both cases only the N3 syntax for this variant is provided, not  
>> the
>> corresponding OWL implementation.
>> According to both documents the resulting OWL implementation is  
>> within
>> OWL-DL expressivity.
>>
>> *** My goal is simply to write this OWL implementation within
>> OWL-DL but
>> I run into some problems doing so.
>>
>> A) 	I noticed that the N3 syntax provided in [1] and [2] for this
>> variant doesn't parse in the only N3 validator online I found
>> (http://rdfabout.com/demo/validator/ listed in the
>> SemanticWebTools page
>> of the ESW Wiki).
>>
>> Now, I'm not sure if this is because the N3 syntax is actually NOT
>> correct or because of an issue with the parser. (?)
>>
>> In [2] for example. To parse this variant I used the file
>> http://www.w3.org/TR/swbp-specified-values/value-partitions-va
>> riant-1.n3
>> (provided in [2]) replacing the definition of :John in the
>> file for the
>> definition shown below (also provided in [2]) and after a couple of
>> tweaks to bypass an empty relative URI issue:
>>
>> ### Define John as an individual of type person and of type
>> has_health_status someValuesFrom Good_health_status
>> :John
>>     a      :Person ;
>>     [    a      owl:Restriction;
>>          owl:onProperty :has_health_status ;
>>          owl:someValuesFrom :Good_health_value
>>     ].
>>
>> B) 	The following modification to the previous N3 snippet solved the
>> parsing problem, but I'm not sure if this is what the original N3
>> expression shown in A) intended to represent (?):
>>
>> :John
>>     a      :Person ;
>>     :has_health_value
>>         [    a      owl:Restriction;
>>              owl:onProperty :has_health_status ;
>>              owl:someValuesFrom :Good_health_value
>>         ].
>>
>> Now, I have tried 2 options when converting the N3 snippet shown  
>> in A)
>> into OWL.
>> (Again, the original claim in [1] and [2] is the representation of an
>> anonymous individuals as the value of a property using an existential
>> restriction).
>>
>> C) 	Option 1: This OWL implementation would place the model is in
>> OWL Full because the value of the property "has_health_status" is an
>> anonymous class defined by a restriction rather than an anonymous
>> individual.
>> This deviates from the intention in [1] and [2].
>>
>> <Person rdf:about="#John">
>>    <has_health_status>
>>       <owl:Restriction>
>>  	   <owl:someValuesFrom>
>>             <owl:Class rdf:about="#Good_health_value"/>
>>          </owl:someValuesFrom>
>>          <owl:onProperty>
>>             <owl:FunctionalProperty rdf:about="#has_health_status"/>
>>          </owl:onProperty>
>>       </owl:Restriction>
>>    </has_health_status>
>> </Person>
>>
>> D) 	Option 2: This OWL implementation leaves the model in OWL-DL
>> because the value of the property "has_health_status" is an anonymous
>> individual from the class "Good_health_value".
>> However it doesn't seem to correspond to the original N3 expression
>> given that it lacks the "someValuesFrom" restriction.
>>
>>   <Person rdf:about="#John">
>> 	  <has_health_status>
>> 		<Good_health_value/>		
>> 	  </has_health_status>
>>   </Person>
>>
>> E) 	The same issues and same possible solutions apply to the
>> representation of :LionsLifeInThePrideBook in Approach 4 in document
>> [1]:
>>
>> :LionsLifeInThePrideBook
>>       a       :Book;
>>       [ a       owl:Restriction ;
>>                 owl:onProperty dc:subject ;
>>                 owl:someValuesFrom :Lion      ];
>>       rdfs:seeAlso <http://isbn.nu/0736809643> ;
>>       :bookTitle "Lions: Life in the Pride" .
>>
>> In conlusion, any suggestions of what the OWL-DL implementation of  
>> the
>> N3 snippet in A) should be?
>> Is the OWL in D) a sensible solution?
>>
>> Additionally, any comments regarding what may be causing the parsing
>> issue of the N3 shown in A)?
>> Do you think the modification shown in B) (that parses OK),
>> is what [2]
>> intended to represent?
>>
>> Any other comments/feedback would be very welcome and appreciated.
>>
>> Regards,
>> Bene Rodriguez
>>
>> Postgraduate Student | Intelligence, Agents and Multimedia Group |
>> School of Electronics and Computer Science | University of
>> Southampton |
>> Southampton SO17 1BJ | United Kingdom | Phone: +44 23 8059
>> 3122 | Email:
>> bene@soton.ac.uk
>>
>>
>>
>
Received on Wednesday, 17 October 2007 15:28:08 GMT

This archive was generated by hypermail 2.3.1 : Wednesday, 27 March 2013 09:32:55 GMT