LANG,GUIDE: Using XQuery types to specify XML valued datatype properties

I am trying to describe the property "person.name" which has
rdfs:range="#PersonName" in order to model the ASTM E2182 XML Clinical
Document standard ... the ontology I am trying to develop is at
http://www.openhealth.org/ASTM/E31.28-model.daml  (see <Class
rdf:ID="PersonName">)

I want to say that a "PersonName" consists of an ordered sequence of name
parts, each of which is a string. The XQuery formal type description:

type PersonName =
    element person.name {
            (element family{text} |
             element given{text} |
             element middle{text} |
             element prefix{text} |
             element suffix{text} |
             element delimiter{text}
            )*}

describes an XML structure:

 <person.name>
        <prefix>Dr.</prefix>
        <given>Jonathan</given>
        <family>Jones</family>
        <delimiter>-</delimiter>
        <family>Borden</family>
        <suffix>M.D.</suffix>
        <delimiter>,</delimiter>
        <suffix>Ph.D.</suffix>
 </person.name>

I am stuck on how to do this in DAML. It seems that I want to describe
something that has rdf:parseType="daml:collection" and each of whose
elements are <oneOf> ... </oneOf>.

On the other hand, if we were to incorporate the XQuery formal language,
this would be easy:

<Property rdf:ID="person.name">
        <rdfs:range>element person.name{(element family{text}|
...}</rdfs:range>

alternatively using XML Schema named types:

        <rdfs:range rdf:resource="myschema:person.name">

alternatively using XML Schema inline
        <rdfs:range><xschema:complexType>
...</xschema:complexType></rdfs:range>

It seems beneficial to be able to describe these sorts of restrictions
directly in OWL. Am I way off base here?

Note: the difference between XQuery types and XML Schema types is that:

1) XQuery types have a compact (non-XML) description
2) XQuery types are formally described
3) XML Schema types

Jonathan

Received on Monday, 11 March 2002 20:46:15 UTC