W3C home > Mailing lists > Public > public-owl-wg@w3.org > June 2008

Re: I've extended the specification with easy keys (ACTION-160)

From: Alan Ruttenberg <alanruttenberg@gmail.com>
Date: Thu, 19 Jun 2008 03:40:48 -0400
Message-Id: <E94CF65D-C495-4EB5-B48C-3841E38D3843@gmail.com>
Cc: Bijan Parsia <bparsia@cs.man.ac.uk>, OWL Working Group WG <public-owl-wg@w3.org>
To: Boris Motik <boris.motik@comlab.ox.ac.uk>

On Jun 16, 2008, at 4:27 PM, Bijan Parsia wrote:

>
> On 16 Jun 2008, at 21:14, Boris Motik wrote:
> [snip]
>> Hads up, contrary to Bijan's suggestion, I haven't introduced a  
>> nonterminal production KeyPropertyExpression that would
>> be a superclass for ObjectPropertyExpression and  
>> DataPropertyExpression. Introducing another class seemed like  
>> quite a bit of
>> overhead, particularly that you need to syntactically distinguish  
>> object from data property expressions in the semantics and in
>> various other places. Instead, in the RDF mapping and semantics  
>> document, I chose to refer to the axiom as KeyFor( OPE1 ... OPEm
>> DPE1 ... DPEm CE ). Although this seems to suggest that all object  
>> properties should come before all data properties, this is not
>> the intended meaning; in fact, the syntax allows for interleaving  
>> object and data properties.
>
> Yeah, I tried that but got stuck on the implied meaning. Works  
> though if it's all a set anyway.

Fine for the semantics document, but why keep the complexity in the  
syntax document. (as long as there is explicit mention that there is  
no loss to do the reordering there)  But the mapping document implies  
that they are ordered, the grammer says they can be interleaved:

For syntax you could say:

A key axiom KeyFor( PE1 ... PEn CE ) states that the object or data  
property expressions PEi are keys for (named) instances of the class  
expression CE  that is, no two (named) instances of CE can coincide  
on the values of all the property expressions PEi.  ...


For mapping you've introduced OPEorDPE anyways. I don't see the  
problem with adding, in 2.1

PE denotes either a data property expression or a object property  
expression.

Then:

KeyFor( PE1 ... PEn CE ) => T(CE) owl:hasKey T(SEQ PE1 ... PEn)

This has the benefit of there being a mapping for

KeyFor( OPE1 DPE1 OPE2 CE)

which is allowed by the grammer.

KeyFor := 'KeyFor' '(' { annotation } ObjectPropertyExpression |  
DataPropertyExpression { ObjectPropertyExpression |  
DataPropertyExpression } ClassExpression ')'


-Alan
Received on Thursday, 19 June 2008 07:41:28 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 19 June 2008 07:41:30 GMT