Re: Proposal to resolve ISSUE-86

On Mar 26, 2008, at 12:58 PM, Peter F. Patel-Schneider wrote:

> If we do this (not that I am advocating it per se) then I suggest that
> the generate the names as something like
> 	owl11aip:xxx
> where xxx is a fresh name and owl11aip expands into something in the
> owl11 namespace, and also have an axiom of the form
> 	InverseObjectProperties(owl11aip:xxx P)
Yes.
>
> Note that it is not the case that aiP is guaranteed to not collide  
> with
> another URI.  An OWL FULL ontology may (stupidly) decide to use  
> URIs in
> the owl11 namespace, and may even use a name of the form owl11:aip_xxx
> for some xxx that is the encoding of a URI that is also in the
> ontology.  This is rather a remote chance, but it is not non-zero.

Agreed. We can advertise that if you use URIs in this namespace you  
take this risk.
People in the RDF world are used to "respecting namespaces".

-Alan

>
> peter
>
>
> From: Alan Ruttenberg <alanruttenberg@gmail.com>
> Subject: Proposal to resolve ISSUE-86
> Date: Sun, 16 Mar 2008 21:30:28 -0400
>
>>
>> RDF/XML serialization for anonymous inverse properties
>> To remind:
>>> Anonymous inverse properties can be used in  
>>> ObjectPropertyAssertion axioms like
>>>
>>>    ObjectPropertyAssertion(InverseObjectProperty(property)  
>>> subject object )
>>>
>>> According to [1], the RDF/XML serialization of this assertion  
>>> will be
>>>
>>>    subject _:p object .
>>>    _:p owl11:inverseObjectPropertyExpression property .
>>>
>>> which is not valid RDF because RDF does not allow bnodes in the  
>>> predicate position [2]. AFAICT this is the only place where  
>>> anonymous inverse properties appear in the predicate position  
>>> (all other uses get serialized into subject or object position).  
>>> Disallowing anonymous inverses in ObjectPropertyAssertion would  
>>> solve the problem (and would not affect the expressivity).
>>
>> I think it is beneficial to allow for anonymous inverses in  
>> ObjectPropertyAssertion. Note that this is not an issue with RDF/ 
>> XML specifically, but rather of RDF proper.
>> The proposal is as follows.
>> 1) InverseObjectProperty can currently be nested. Thus we can have  
>> InverseObjectProperty[1](InverseObjectProperty[2]...  
>> InverseObjectProperty[N](P) closed with an appropriate number of  
>> parentheses. If N is even, rewrite the expression to "P",  
>> otherwise rewrite the expression to "InverseObjectProperty(P)".
>> If the expression is now P we're done.
>> [Alternatively, change the grammar so that the nesting is not  
>> possible - this is my personal preference, btw]
>> 2) Change the production "inverseObjectProperties :=  
>> 'InverseObjectProperties' '(' { annotation }  
>> objectPropertyExpression objectPropertyExpression ')'"
>> to "inverseObjectProperties := 'InverseObjectProperties'  
>> '(' { annotation } objectPropertyURI objectPropertyURI ')'"
>> I don't see the need for using objectPropertyExpression here, and  
>> it simplifies the below.
>> 3) Consider that there may already be an axiom  
>> InverseObjectProperties(P IP) in which case I'll say IP exists.
>> If IP exists, on serialization, an implementation MAY substitute  
>> IP for InverseObjectPropery(P) and we're done. (I'm mixed on this  
>> one  - I could take it or leave it)
>> 4) If IP exists an implementation may and if not it must create a  
>> new URI to name the inverse property, in a canonical way  -  the  
>> URI that results from the concatenation of unabbreviated form of  
>> "owl11:aip_" and the % encoded objectPropertyURI - call this aiP.  
>> Note that this is guaranteed to not collide with another URI.
>> if this choice is made, then add another triple - aiP owl:inverseOf P
>> -Alan
>>
>>

Received on Wednesday, 26 March 2008 17:18:25 UTC