W3C home > Mailing lists > Public > www-archive@w3.org > September 2009

Re: vCard RDF merge....

From: Toby Inkster <tai@g5n.co.uk>
Date: Tue, 1 Sep 2009 21:38:33 +0100
Message-Id: <7EA47B19-5B9C-4420-969B-2F0E28F1A345@g5n.co.uk>
Cc: Harry Halpin <hhalpin@ibiblio.org>, Norman Walsh <ndw@nwalsh.com>, Brian Suda <brian.suda@gmail.com>, <www-archive@w3.org>, "Martin Hepp (UniBW)" <martin.hepp@ebusiness-unibw.org>
To: Renato Iannella <renato@nicta.com.au>
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:mail@tobyinkster.co.uk>
<http://tobyinkster.co.uk>
Received on Tuesday, 1 September 2009 20:39:34 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 7 November 2012 14:18:26 GMT