how to describe a cousin?

Hi there,
I'm trying to put together a simple ontology of family relationships as
part of a larger ontology of animal behaviour, and I'd appreciate some
advice on the best way to describe the concepts around 'cousin'.

I'd like to define a class of first_cousins as the class of individuals
that share the same grandparents with another individual who is not also
their sibling. I can't really see how to do this. I can get around the
problem by saying something like 'cousins are the class of individuals
whose parents are either aunts or uncles'.  In itself this is ugly, and
it gets even worse when I want to describe second cousins - individuals
who share the same great-grandparents.  I've seen the work by Jos De Roo
at http://www.agfa.com/w3c/euler/gedcom-relations.n3 which gives

{: rdfs:fyi :rule22. ?S gc:sibling ?S2. ?S gc:descendent ?D. ?S2
gc:descendent ?D2} => {?D gc:cousin ?D2}.

but I don't see how to write the same in daml/owl

I feel I must be missing something - can anyone point me in the right
direction please?

(For what it's worth, my first hack at first_cousin is appended below -
namespaces removed for brevity)

<daml:Class rdf:about="#First_Cousin">
        <rdfs:label>First Cousin</rdfs:label>
        <rdfs:subClassOf>
            <daml:Restriction>
                <daml:onProperty rdf:resource="#has_parent"/>
                <daml:hasClass>
                    <daml:Class>
                        <daml:unionOf>
                            <daml:List>
                                <daml:first>
                                    <daml:#Aunt"/>
                                </daml:first>
                                <daml:rest>
                                    <daml:List>
                                    <daml:first>
                                    <daml:#Uncle"/>
                                    </daml:first>
                                    <daml:rest>
                                    <daml:nil/>
                                    </daml:rest>
                                    </daml:List>
                                </daml:rest>
                            </daml:List>
                        </daml:unionOf>
                    </daml:Class>
                </daml:hasClass>
            </daml:Restriction>
        </rdfs:subClassOf>
    </daml:Class>

Received on Tuesday, 24 June 2003 14:31:47 UTC