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>