On 1 Sep 2009, at 05:50, Renato Iannella wrote:

Toby (all), how would we express this model in the new merged document?

Can we say that the Tel Property has a range of "rdf:type" values?
(is that even possible?)

Something like:

<#alice> v:tel [ a v:Cell, v:Voice; rdf:value <tel:+441234567890> ] .

This would require definitions of the following classes:

        v:Tel a rdfs:Class .
        v:Email a rdfs:Class .
        v:Address a rdfs:Class .
        v:Label a rdfs:Class .
        v:Home rdfs:subClassOf [owl:unionOf (v:Tel v:Address v:Label)] .
        v:Msg rdfs:subClassOf v:Tel .
        v:Work rdfs:subClassOf [owl:unionOf (v:Tel v:Address v:Label)] .
v:Pref rdfs:subClassOf [owl:unionOf (v:Tel v:Email v:Address v:Label)] .
        v:Voice rdfs:subClassOf v:Tel .
        v:Fax rdfs:subClassOf v:Tel .
        v:Cell rdfs:subClassOf v:Tel .
        v:Video rdfs:subClassOf v:Tel .
        v:Pager rdfs:subClassOf v:Tel .
        v:BBS rdfs:subClassOf v:Tel .
        v:Modem rdfs:subClassOf v:Tel .
        v:Car rdfs:subClassOf v:Tel .
        v:ISDN rdfs:subClassOf v:Tel .
        v:PCS rdfs:subClassOf v:Tel .
        v:Internet rdfs:subClassOf v:Email .
        v:X400 rdfs:subClassOf v:Email .
        v:Dom rdfs:subClassOf [owl:unionOf (v:Address v:Label)] .
        v:Intl rdfs:subClassOf [owl:unionOf (v:Address v:Label)] .
        v:Postal rdfs:subClassOf [owl:unionOf (v:Address v:Label)] .
        v:Parcel rdfs:subClassOf [owl:unionOf (v:Address v:Label)] .

Which is quite a few. Introducing an extra property is only a tiny bit more work:

        v:usage rdfs:subPropertyOf rdf:type ;
                rdfs:range v:CommunicationsUsage .
        # For all of the classes above
        # except Tel, Email, Address and Label:
        ?class a v:CommunicationsUsage .

It's probably also useful to define v:Tel, v:Email, v:Label and v:Address as mutually disjoint:

        v:Tel owl:disjointWith v:Email, v:Label, v:Address .
        v:Email owl:disjointwith v:Label, v:Address .
        v:Label owl:disjointWith v:Address .

With all that in place, you can write:

        <#alice>
                v:tel
                [
                        rdf:type v:Tel ;
                        v:usage v:Cell, v:Voice ;
                        rdf:value <tel:+441234567890>
                ] .

--
Toby A Inkster
<mailto:[email protected]>
<http://tobyinkster.co.uk>




Reply via email to