Re: spatial relations and OWL1.1

Hello,
despite the etiquette I wish to thank explicitly for all answers I've got...
As it sounds until now, my (bachelor)work will be about the theme of
representing RCC8 in OWL and testing the possibilities of reasoning about
it. So I would have to build a tool as Mr. Sirin talked about and to test
how DL-reasoner (Pellet) would work with this:

Evren Sirin-2 wrote:
> 
> So everything in RCC8 can be represented in OWL 1.1. As I 
> said the representation is not intuitive (a region is represented as a 
> concept, the relations between regions as one or more concept axioms, 
> etc.) but if you have a tool that does the OWL conversion behind the 
> scenes, it wouldn't be too bad (there is no such tool that I'm aware 
> of). Also it is not clear how practical it would be to use a DL reasoner 
> with this transformation against a realistic RCC8 dataset (I'm not aware 
> of such a dataset either :).
> 
As I've read, Pellet 1.4 supports all the features proposed in OWL 1.1, so
it would be interesting to see, what comes out...

Please let me ask all of you now, if the following considerations make sense
for you, if there are some mistakes in, if you know some helpful literature
and so on...Thanks a lot!

If I've understood right the article from Katz([1] Representing Qualitative
Spatial Information in OWL-DL. Yarden Katz 
and Bernardo Cuenca Grau. In Proceedings of the OWL: Experiences and 
Directions Workshop. Galway, Ireland, November 2005
http://www.mindswap.org/2005/OWLWorkshop/sub26.pdf)

there first will be to introduce a recursive  and symmetric property (e.g
"spatially_connected") (with range and domain e.g. a class
"topological_region"), which is possible with owl1.1
If I have an ontology with informations about (potentially spatially
related) objects (e.g. a taxonomy of geographical objects) and want to
append informations about their spatial relationships, I have to append for
each involved instance x a  new class X (e.g. region_occupied_by_x) with the
restriction (as shown in  [1])  to be regular closed (in topological way:
x=c(i(x)) with i=interior, c=closure of x, x subset of a (topological)
universe)
(this transformation would be one task for the tool, as well as the
construction of the axioms in II))
(in the following: ?E=existence-quantor; ?A=all-Quantor; ?U=union_of;
?I=Intersection_of; ?C=subclass_of)

I)
?ER.(?AR.X), in OWL(DL/1.1)-notation:
<owl:ObjectProperty rdf:ID="interior_Prop"> 
  <rdf:type rdf:resource="&owl;TransitiveProperty" />
  <rdf:type rdf:resource="&owl;SymmetricProperty" />
</owl:ObjectProperty>


<owl:class RDF:ID=" region_occupied_by_x_interior ">
  <rdfs:subClassOf> 
    <owl:Restriction> 
      <owl:onProperty rdf:resource="# interior_Prop "/> 
      <owl:allValuesFrom rdf:resource="# region_occupied_by_x " />
    </owl:Restriction> 
  </rdfs:subClassOf> 
</owl:Class>

//the all-quantified-class; topological: the interior of the region

<owl:class RDF:ID=" region_occupied_by_x ">
  <rdfs:subClassOf> 
    <owl:Restriction> 
      <owl:onProperty rdf:resource="# interior_Prop "/> 
      <owl:someValuesFrom rdf:resource="# region_occupied_by_x_interior " />
    </owl:Restriction> 
  </rdfs:subClassOf> 
</owl:Class>

//the exist-quantified class; topological, the closure of the interior=the
region is regular closed

(Or how can we nest the two restrictions otherwise?)

II)
to say now that two objects x, y are spatially related we have to append
(following [1]) new concepts (classes), e.g. to say x is_disconnected_with y
we have to add the concept (axiom)
DC(X,Y):= X?C(not)Y 

which translates in OWL like this (?):

<owl:Class rdf:ID=" region_occupied_by_x "> 
  <owl:disjointWith rdf:resource="# region_occupied_by_y " /> 
</owl:Class>

to say x partially_overlaps y we have to add several axioms:
PO(X,Y):= Z2==?AR.XIAR.Y; Z3==X?I(not)Y; Z4==(not)XIY, where the Zi have
to be instantiate to prevent from being unsatisfiable (empty) an the KB be
consistent at same time

<owl:Class rdf:ID="X_intersects_Y"> 
  <owl:unionOf rdf:parseType="Collection"> 
    <owl:class RDF:ID=" region_occupied_by_x_interior ">
      <rdfs:subClassOf> 
        <owl:Restriction> 
          <owl:onProperty rdf:resource="# interior_Prop "/> 
          <owl:allValuesFrom rdf:resource="# region_occupied_by_x " />
        </owl:Restriction> 
      </rdfs:subClassOf> 
    </owl:Class> 

    <owl:class RDF:ID=" region_occupied_by_y_interior ">
      <rdfs:subClassOf> 
        <owl:Restriction> 
          <owl:onProperty rdf:resource="# interior_Prop "/> 
          <owl:allValuesFrom rdf:resource="# region_occupied_by_y " />
        </owl:Restriction> 
      </rdfs:subClassOf> 
    </owl:Class> 
  </owl:unionOf> 
</owl:Class>

//Z2, the "part" where region_occupied_by_x and ..._by_y occupie the same
area

<owl:Class rdf:ID="X_intersects_notY"> 
  <owl:unionOf rdf:parseType="Collection"> 
    <owl:class RDF:ID=" region_occupied_by_x "/>
    <owl:Class rdf:ID="notY"> 
      <owl:complementOf rdf:resource="# region_occupied_by_y " /> 
    </owl:Class>
  </owl:unionOf> 
</owl:Class>

//Z3, the "part" of  X not intersected, the "rest" of X

for Z4 as above but x, y (X/Y) vice versa.

and so on...

I imagine to (in a first step) use the Jena (jena.sourceforge.net)-libraries
to give the user the possibility to edit ontologies (to add spatial
relations) by selecting certain instances and define their prevailing
spatial relationships, where the above shown transformations are done "in
the background".

Please let me ask all of you now, if this so far makes sense for you, if
there are some mistakes in my considerations, if you know some helpful
literature and so on...Thanks a lot!

Seldon

-- 
View this message in context: http://www.nabble.com/spatial-relations-and-OWL1.1-tf3651314.html#a10338649
Sent from the w3.org - public-owl-dev mailing list archive at Nabble.com.

Received on Saturday, 5 May 2007 17:41:11 UTC