- 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