Re: n-ary datatypes

On 2/6/07 9:19 AM, Turner, David wrote:
> Hi,
>
> I've recently started working with Jeremy Carroll at HP, initially
> focussing on OWL 1.1. At the moment I'm reading through the specs, and I
> have some questions about n-ary datatypes as implemented in OWL.
> Fundamentally, I am having trouble seeing how n can be anything other
> than 1.
>
> >From section 5 of [1]:
>
>   
>> This is in order to support class definitions such as "objects whose 
>> width is greater than their height", where the values of width and 
>> height are specified using two data properties. In such definitions, 
>> the arity of the given data range must be equal to the number of the 
>> given data properties."
>>     
>
> which seems to be the only place in the document that mentions the
> possibility of non-1 arities. 
I agree that there is not enough explanation about n-ary datatypes but 
there are other places where you see them, e.g in functional syntax we have:

dataAllValuesFrom := 'DataAllValuesFrom' '(' dataPropertyExpression { 
dataPropertyExpression } dataRange ')'

which shows how you would use a list of datatype proerpties with an 
n-ary datatype. Similarly, in the RDF mapping document it is said that 
they would be mapped to a rdf:List which is used as the value of 
owl:onProperty.
> How, exactly, would one go about defining
> the class of objects whose width is greater than their height?
> Presumably the  intention is to have a datatype of arity two, whose
> extension is the graph of the relation '>', but I cannot find the
> appropriate syntax to define this. 
There is no proposed way to define these kind of datatypes. I don't 
think it would be useful anyway because I don't see an easy way to 
describe the semantics of such user-defined relations without 
complicating the language. The alternative is to adopt a set of built-in 
relations with predefined URIs, such as the ones described in SWRL or 
SPARQL.
> I would like to understand how to
>
> (a) define a datatype, arity 2, being the product of the width and
> height datatypes, then
> (b) restrict this datatype down to those pairs <width, height> where
> width > height.
>
> It is not obvious how to do either (a) or (b) within OWL. 
I would define this like:

DataAllValuesFrom( dimension:width dimension:height swrlb:greaterThan )

We wouldn't necessarily use the SWRL builtin namespace but could use 
something like 
<http://www.w3.org/TR/xpath-functions/#func-numeric-greater-than>. I 
think it would be good for OWL 1.1 specification to  recommend a set of  
predefined n-ary datatypes but not require tools support them (as OWL 
recommends XSD types to be used as datatypes but requires only the 
support of xsd:string and xsd:integer).

Regards,
Evren
> The collection
> of XML Schema facets seems only to be relevant to unary datatypes, so is
> of no help here.
>
> Cheers,
>
> Dave Turner
>
>
> (Incidentally, [1] makes the false claim that its canonical version
> lives at http://owl1-1.cs.manchester.ac.uk/syntax.html - this link is
> broken).
>
> [1] http://owl1_1.cs.manchester.ac.uk/owl_specification.html
>
>
>
>
>
>   

Received on Wednesday, 7 February 2007 13:00:39 UTC