Sequence and inverse/transitive properties

Hi,

I'm working for the first time with rdf:seq and I have a few questions.

I have a class Person and 2 inverse and transitive properties hasChild
and isChildOf:
  <owl:Class rdf:about="#Person"/>
  <owl:ObjectProperty rdf:about="#hasChild">
    <rdf:type rdf:resource="&owl;TransitiveProperty"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#isChildOf">
    <rdf:type rdf:resource="&owl;TransitiveProperty"/>
    <owl:inverseOf rdf:resource="#hasChild"/>
  </owl:ObjectProperty>

Here are my individuals:
  <rdf:Description rdf:about="http://www.test.com/test.owl#parent1">
    <hasChild xmlns="http://www.test.com/test.owl#"
rdf:resource="http://www.test.com/test.owl#childSeq"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.test.com/test.owl#childSeq">
    <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.test.com/test.owl#parent1">
    <rdf:type rdf:resource="http://www.test.com/test.owl#Person"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.test.com/test.owl#child1">
    <rdf:type rdf:resource="http://www.test.com/test.owl#Person"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.test.com/test.owl#child2">
    <rdf:type rdf:resource="http://www.test.com/test.owl#Person"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.test.com/test.owl#childSeq">
    <rdf:_1 rdf:resource="http://www.test.com/test.owl#child1"/>
    <rdf:_2 rdf:resource="http://www.test.com/test.owl#child2"/>
  </rdf:Description>


How can I know who is the parent of a child?
HasChild property from the parent give me the Seq instance, so the
inverse from the Seq will return the parent. There is no properties
about children...

Ideally, I'd like to have something like
  parent1 hasChild child1, child2 (sorted)
  child1 isChildOf parent1
  child2 isChildOf parent1

And how can I use the transitivity of hasChild:
  parent1 hasChild seq(child1)
  child1 hasChild seq(child3)

I don't understand how can I get all children (multiple generations)
from a parent (something like parent1 hasChild child1, child2,
child3).

Is there a way from an individual to retrieve the seq that contains it?

Thanks in advance

Cedric

Received on Thursday, 22 October 2009 20:11:22 UTC