- From: Charles McCathieNevile <charles@w3.org>
- Date: Sat, 4 Sep 2004 17:14:50 -0400 (EDT)
- To: Leo Sauermann <leo@gnowsis.com>
- Cc: go4chaitu_eng@yahoo.co.in, www-rdf-interest@w3.org
On Tue, 31 Aug 2004, Leo Sauermann wrote: ... >>ok,so all the rdf files with foaf tags will be used in >>searching applications of some subject like person. >>Now my question is , >> i will use the same namespace (ie)., >> http://xmlns.com/foaf/0.1/ >>but i will define my own properties for a person.I can >>do it right! >> >> >You are not allowed to use the foaf namespace to do your own things. >Foaf belongs to the Foaf project and people will flame you, if you steal >their namespace they have registered. >So you cannot do: >http://xmlns.com/foaf/0.1/streetAddress (which is not in the spec) >but you can do: >http://go4chaitu.org/myPerson/streetAddress >and mix it. And Reto said: You can squat the namespace, however since one expects a definition of the terms at http://xmlns.com/foaf/0.1/ you cannot control the meaning of the terms. So: In fact there is nothing to prevent you from making up a term in the FOAF namespace, providing rich semantic description of it, and using it. But it is generallly considered anti-social and likely to disrupt the fabric of the web - the same way that changing URIs of things you publish is harmful to the web. If you think people are looking at the namespace prefix or the code, it just shows that the tools are pretty poor. There is no reason not to use tools that provide a label, and for that matter in whatever language you want. If you want to make an extension to FOAF, the best thing I can suggest is to document it well - include rdfs:label and rdfs:comment for everything, defining the language you use. You can use SKOS properties to provide an example of use, as well (assuming you are describing something that can be classified as a concept - otherwise you could always make a suitable example property, for example as a subProperty of rdfs:comment that has an XML literal as its range) so you get something like the following definition <r:Description r:about="#estuve"> <s:label xml:lang="en">Was at</s:label> <s:label xml:lang="fr">était près de</s:label> <s:comment xml:lang="en">Describes a place where a Person used to commonly be. The assumption is that they do not visit that place so often, and the this refers to a Person. For example, it could be used for a city someone used to live in.</s:comment> <s:range r:resource="http://www.aktors.org/ontology/portal#Location"/> <s:domain r:resource="http://xmlns.com/foaf/0.1/Person"/> <t:example r:parseType="Literal"> <f:Person> <!-- other properties here --> <my:estuve r:resource="http://www.w3.org/2001/sw/Europe/200306/geo/france#Nice"/> </f:Person> </t:example> </r:Description> in your own definition. Then you go ahead and use it. As Reto noted, people often expect to find information about a property or class at the URI used for its namespace (although that is blessed by the TAG as a good idea, it isn't part of the namespaces specification, nor the RDF specification). So the advantage of defining your own namespace is that you can provide high-quality information so people know how to use your property, and it is more likely that people will find your documentation and use it. As well as not annoying the people who think they control what goes in the original foaf namespace and requiring the implementation of a web of trust as a precondition for the semantic web being useful. There are lots of properties around where the usage is not really clear, since people just copied things from files they found instead of looking at a nice explanation. This leads to people making up new properties that mean much the same ting, but with better documentation (foaf:topic is probably an example of this), in the hope that it will be used in a way that makes it a more useful property when it exists. Although the Semantic Web normally doesn't visibly break when you use a term "wrongly", just as the HTML web mostly seems to work when you use invalid HTML code, the usefulness of it is restricted and people have to do more work in error trapping before they can take advantage of some of the possiblities. This doesn't mean we need a governing body to watch over how we do things, just that we are collectively responsible for how well our shared web works. At the moment the most likely thing if you do something that has a detrimental effect is that people will write you nasty notes. They could also record information in the semantic web saying that you don't know how to use it and your data should not be trusted. At some point soon these systems are likely to be a bit smarter, so more of the effect will be on you and less on the Web, which will learn how to ignore you... cheers Chaals
Received on Saturday, 4 September 2004 21:14:50 UTC