2008/12/18 Mikkel Kamstrup Erlandsen <[email protected]>

> 2008/12/18 Mikkel Kamstrup Erlandsen <[email protected]>
>
>> 2008/12/18 Mikkel Kamstrup Erlandsen <[email protected]>
>>
>>> Hi all,
>>>
>>> I have started to write up some proper documentation for link-by-id as
>>> discussed on the hackfest (it will land in
>>> http://xesam.org/main/XesamOntologyAbout when ready). To this end I came
>>> upon some stuff that needed updating in the onto. Please see the attached
>>> patch.
>>>
>>> What the proposed patch does:
>>>
>>>  * Document xesam:id and xesam:related as mandatedd by link-by-id
>>>
>>>  * Make xesam:contactMedium a child of xesam:id. This has pretty big
>>> consequences - like postal addresses, email addresses and what not to
>>> suddenly become ids. Nonetheless I think it is the right choice
>>>
>>>  * Make xesam:url a child of xesam:id
>>>
>>> Comments?
>>>
>>
>> I have a comment for myself already :-)
>>
>> While it might appear neat to have xesam:postalAddress as ids it also
>> poses some problems. Namely that I also write in the patch that ids should
>> generally be prefixed with an URI scheme (like http://, file:// or
>> isbn:// etc). I would rather not have to write my postal address in an URI
>> :-)
>>
>> Obviously this needs a bit of thought...
>>
>
> And I also forgot the attachment. Great! Here it is...
>

Here's an updated patch for the ontology. It does not declare postal
addresses as ids anymore, but it is a bit more invasive... Here's the quick
overview:

 * Make emailAddress, phoneNumber, url, and contactURL children of xesam:id

 * Add URI scheme requirements to all children of xesam:id. This is required
to ensure global uniqueness. I just follow the IANA rules here really...

 * Document xesam:id and xesam:related as mandatedd by link-by-id

And oh! While I have your attention could you also take a peek at the "Ids
and Object Relations"-section I added to:
http://xesam.org/main/XesamOntologyAbout, or if you want to see it in the
context of the whole onto: http://xesam.org/main/XesamOntology (takes longer
to load)

-- 
Cheers,
Mikkel
=== modified file 'xesam.rdfs'
--- xesam.rdfs	2008-12-16 22:41:37 +0000
+++ xesam.rdfs	2008-12-18 23:15:14 +0000
@@ -65,14 +65,14 @@
 	<rdfs:label>xesam:sha1Hash</rdfs:label>
 	<rdfs:subPropertyOf rdf:resource="&xesam;fingerprint"/>
 	<rdfs:domain rdf:resource="&xesam;Content"/>
-	<rdfs:comment>SHA1 hash</rdfs:comment>
+	<rdfs:comment>SHA1 hash. The value of this field must be qualified with the 'urn:sha1:' URI scheme</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;md5Hash" xss:maxCardinality="1">
 	<rdfs:label>xesam:md5Hash</rdfs:label>
 	<rdfs:subPropertyOf rdf:resource="&xesam;fingerprint"/>
 	<rdfs:domain rdf:resource="&xesam;Content"/>
-	<rdfs:comment>MD5 hash</rdfs:comment>
+	<rdfs:comment>MD5 hash. The value of this field must be qualified with the 'urn:md5:' URI scheme</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;isContentEncrypted" xss:maxCardinality="1">
@@ -165,7 +165,7 @@
 	<rdfs:label>xesam:related</rdfs:label>
 	<rdfs:domain rdf:resource="&xesam;Content"/>
 	<rdfs:range rdf:resource="&xss;Uri"/>
-	<rdfs:comment>Abstract content relation. Use children</rdfs:comment>
+	<rdfs:comment>Abstract content relation. Please only use the child fields of xesam:related. To form a relation the value of any child field of xesam:related should match up to some xesam:id of the related object, although it is not a requirement that the id in question exists</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;contains">
@@ -276,7 +276,7 @@
 	<rdfs:label>xesam:id</rdfs:label>
 	<rdfs:domain rdf:resource="&xesam;Content"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Content ID</rdfs:comment>
+	<rdfs:comment>Abstract object identifier. Please only use the child fields of xesam:id. An id is a string value that uniquely identifies the content. The same must be true for any child field of xesam:id. Generally ids should be prefixed with an URI scheme like http://, file://, or isbn:// to ensure uniqueness among different types of ids. To form a relation to an object add any of the object's xesam:id values in some child field of xesam:related</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;contentCreated" xss:maxCardinality="1">
@@ -1480,15 +1480,16 @@
 	<rdfs:label>xesam:contactMedium</rdfs:label>
 	<rdfs:domain rdf:resource="&xesam;Contact"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Generic contact medium</rdfs:comment>
+	<rdfs:comment>Generic contact medium, ie. a means to contact the individual or organization in question</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;imContactMedium">
 	<rdfs:label>xesam:imContactMedium</rdfs:label>
 	<rdfs:subPropertyOf rdf:resource="&xesam;contactMedium"/>
+	<rdfs:subPropertyOf rdf:resource="&xesam;id"/>
 	<rdfs:domain rdf:resource="&xesam;Contact"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Generic IM contact medium</rdfs:comment>
+	<rdfs:comment>Generic IM contact medium. The value of this field must be qualified with the 'im:' URI scheme</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;jabberContactMedium">
@@ -1496,7 +1497,7 @@
 	<rdfs:subPropertyOf rdf:resource="&xesam;imContactMedium"/>
 	<rdfs:domain rdf:resource="&xesam;Contact"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Contact Jabber ID</rdfs:comment>
+	<rdfs:comment>Contact Jabber ID. Please see xesam:imContactMedium formatting details</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;ircContactMedium">
@@ -1504,7 +1505,7 @@
 	<rdfs:subPropertyOf rdf:resource="&xesam;imContactMedium"/>
 	<rdfs:domain rdf:resource="&xesam;Contact"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Contact IRC i...@server</rdfs:comment>
+	<rdfs:comment>Contact IRC. Please see xesam:imContactMedium formatting details</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;postalAddress">
@@ -1526,17 +1527,19 @@
 <rdf:Property rdf:about="&xesam;emailAddress">
 	<rdfs:label>xesam:emailAddress</rdfs:label>
 	<rdfs:subPropertyOf rdf:resource="&xesam;contactMedium"/>
+	<rdfs:subPropertyOf rdf:resource="&xesam;id"/>
 	<rdfs:domain rdf:resource="&xesam;Contact"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Contact email address</rdfs:comment>
+	<rdfs:comment>Contact email address. Email addresses must be qualified by the 'mailto:' URI scheme</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;contactURL">
 	<rdfs:label>xesam:contactURL</rdfs:label>
 	<rdfs:subPropertyOf rdf:resource="&xesam;contactMedium"/>
+	<rdfs:subPropertyOf rdf:resource="&xesam;id"/>
 	<rdfs:domain rdf:resource="&xesam;Contact"/>
 	<rdfs:range rdf:resource="&xss;Url"/>
-	<rdfs:comment>Contact URL</rdfs:comment>
+	<rdfs:comment>Contact URL. The URL must include the URI scheme, like http://example.com, not just the server address example.com</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;homepageContactURL">
@@ -1544,7 +1547,7 @@
 	<rdfs:subPropertyOf rdf:resource="&xesam;contactURL"/>
 	<rdfs:domain rdf:resource="&xesam;Contact"/>
 	<rdfs:range rdf:resource="&xss;Url"/>
-	<rdfs:comment>Contact homepage URL</rdfs:comment>
+	<rdfs:comment>Contact homepage URL. Please see xesam:contactURL for formatting details</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;blogContactURL">
@@ -1552,15 +1555,16 @@
 	<rdfs:subPropertyOf rdf:resource="&xesam;contactURL"/>
 	<rdfs:domain rdf:resource="&xesam;Contact"/>
 	<rdfs:range rdf:resource="&xss;Url"/>
-	<rdfs:comment>Contact blog URL</rdfs:comment>
+	<rdfs:comment>Contact blog URL. Please see xesam:contactURL for formatting details</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;phoneNumber">
 	<rdfs:label>xesam:phoneNumber</rdfs:label>
 	<rdfs:subPropertyOf rdf:resource="&xesam;contactMedium"/>
+	<rdfs:subPropertyOf rdf:resource="&xesam;id"/>
 	<rdfs:domain rdf:resource="&xesam;Contact"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Contact phone number</rdfs:comment>
+	<rdfs:comment>Contact phone number. Phone numbers must be qualified with the 'tel:' URI scheme</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;cellPhoneNumber">
@@ -1568,7 +1572,7 @@
 	<rdfs:subPropertyOf rdf:resource="&xesam;phoneNumber"/>
 	<rdfs:domain rdf:resource="&xesam;Contact"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Contact cell phone number</rdfs:comment>
+	<rdfs:comment>Contact cell phone number. Please see xesam:phoneNumber for formatting details</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;faxPhoneNumber">
@@ -1576,7 +1580,7 @@
 	<rdfs:subPropertyOf rdf:resource="&xesam;phoneNumber"/>
 	<rdfs:domain rdf:resource="&xesam;Contact"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Contact fax phone number</rdfs:comment>
+	<rdfs:comment>Contact fax phone number. Please see xesam:phoneNumber for formatting details</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;knows">
@@ -1675,7 +1679,7 @@
 	<rdfs:subPropertyOf rdf:resource="&xesam;emailAddress"/>
 	<rdfs:domain rdf:resource="&xesam;Person"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Contact work email address</rdfs:comment>
+	<rdfs:comment>Contact work email address. Please see xesam:emailAddress for formatting details</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;homeEmailAddress">
@@ -1683,7 +1687,7 @@
 	<rdfs:subPropertyOf rdf:resource="&xesam;emailAddress"/>
 	<rdfs:domain rdf:resource="&xesam;Person"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Contact home email address</rdfs:comment>
+	<rdfs:comment>Contact home email address. Please see xesam:emailAddress for formatting details</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;homePhoneNumber">
@@ -1691,7 +1695,7 @@
 	<rdfs:subPropertyOf rdf:resource="&xesam;phoneNumber"/>
 	<rdfs:domain rdf:resource="&xesam;Person"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Contact home phone number</rdfs:comment>
+	<rdfs:comment>Contact home phone number. Please see xesam:phoneNumber for formatting details</rdfs:comment>
 </rdf:Property>
 
 <rdf:Property rdf:about="&xesam;workPhoneNumber">
@@ -1699,7 +1703,7 @@
 	<rdfs:subPropertyOf rdf:resource="&xesam;phoneNumber"/>
 	<rdfs:domain rdf:resource="&xesam;Person"/>
 	<rdfs:range rdf:resource="&xsd;string"/>
-	<rdfs:comment>Contact work phone number</rdfs:comment>
+	<rdfs:comment>Contact work phone number. Please see xesam:phoneNumber for formatting details</rdfs:comment>
 </rdf:Property>
 
 
@@ -1792,6 +1796,7 @@
 
 <rdf:Property rdf:about="&xesam;url" xss:maxCardinality="1">
 	<rdfs:label>xesam:url</rdfs:label>
+	<rdfs:subPropertyOf rdf:resource="&xesam;id"/>
 	<rdfs:domain rdf:resource="&xesam;Source"/>
 	<rdfs:range rdf:resource="&xss;Url"/>
 	<rdfs:comment>URL to access the content, this must be a qualified URL and not just a file path. A hint on how to open or interpret the URL may be provided in xesam:urlHint</rdfs:comment>

_______________________________________________
Xesam mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xesam

Reply via email to