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
