Re: When to use object property vs datatype property

Hi Kevin,

I think you are being too strict. Indeed, if individuals are only  
created through some web-form, there must be some way of adding  
relations between them, or between individuals and data.

Why is it so hard to assert an object-property relation between e.g.  
an employee and company in a web-form?

I could easily create a drop-down list of all companies that exist in  
my triple-store. This list will show the names of companies, but when  
one of them is selected, and the form is submitted, is is actually the  
URI of the company resource that is sent back to the form handler.

My rule of thumb is that I always use object properties, unless I  
don't want to say anything more about the value of that property. For  
instance, if I want to specify a 'name' that relates some person or  
company to a name, I can just use a datatype property since I don't  
really need to say anything else about the name.

But relating a company to a product is different, because it may be  
useful for my application to say additional things about the product  
(e.g. price, cost, weight, name, category etc.). I need something to  
group all these additional things together, and therefore represent  
each product as an OWL individual as well. The relation between  
company and product should then be an object property.

(NB: a datatype property for 'has_product' on a company individual  
with the value of the 'name' property of some product individual does  
not relate the company to the product according to the RDF/OWL  
semantics)

Good luck,

	Rinke



On 19 jul 2009, at 10:15, Toby A Inkster wrote:

> On 19 Jul 2009, at 07:40, Kevin Jenkins wrote:
>
>> It’s my understanding that object properties link individuals via a  
>> property and that datatype properties link individuals to data  
>> (such as form input). [...] I have many properties in my ontology  
>> such as has-company-name, has-software-product, is-employee-of etc  
>> … my guess is these must be datatype properties because somewhere  
>> (I guess a web form) somebody has to name the company, choose the  
>> software product category from a list, indicate who the employer is  
>> etc.
>
>
> That's not correct.
>
> An object property is a property that takes a resource (an object)  
> as its value. A datatype property is a property that takes a literal  
> (string, number, date/time, boolean, etc) as its value.
>
> e.g.
>
> <#kj> rdf:type foaf:Person ;
>      foaf:name "Kevin Jenkins" ;
>      foaf:mbox <mailto:kj@iteegosearch.com> ;
>      foaf:mbox_sha1sum "d610935545bb79ad673d5a5e7bd45a11f9b12128" ;
>      foaf:knows <#alice> .
>
> In the above, foaf:mbox and foaf:knows are object properties, while  
> foaf:name and foaf:mbox_sha1sum are datatype properties. (rdf:type  
> is also logically an object property, though I think OWL treats it  
> as a special case.)
>
> -- 
> Toby A Inkster
> <mailto:mail@tobyinkster.co.uk>
> <http://tobyinkster.co.uk>
>
>
>



---
Drs Rinke Hoekstra

Leibniz Center for Law      |  AI Department
Faculty of Law              |  Faculty of Sciences
Universiteit van Amsterdam  |  Vrije Universiteit
Kloveniersburgwal 48        |  De Boelelaan 1081a
1012 CX  Amsterdam          |  1081 HV Amsterdam
+31-(0)20-5253499           |  +31-(0)20-5987752
hoekstra@uva.nl             |  hoekstra@few.vu.nl

Homepage: http://www.leibnizcenter.org/users/rinke

Received on Monday, 20 July 2009 07:48:39 UTC