- From: Evren Sirin <evren@clarkparsia.com>
- Date: Wed, 07 Feb 2007 08:00:26 -0500
- To: "Turner, David" <davidt@hp.com>
- CC: public-owl-dev@w3.org
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