W3C home > Mailing lists > Public > public-owl-dev@w3.org > July to September 2009

Re: OWL/RDF Ref/Def and Namespace Reference?

From: Bijan Parsia <bparsia@cs.man.ac.uk>
Date: Tue, 14 Jul 2009 09:50:37 +0100
Cc: public-owl-dev@w3.org
Message-Id: <8CD75CBE-FD8E-4AE4-8FE5-990069751FB9@cs.man.ac.uk>
To: Brad Cox <bradjcox@gmail.com>
On 13 Jul 2009, at 12:23, Brad Cox wrote:

> Thanks Bijan. That leaves just one puzzler. Why is it  
> foaf:imaginaryFriend not foaf#imaginaryFriend,

I don't understand the question.

foaf:imaginaryFriend is a qname in what I wrote. The foaf prefix  
expands to the foaf uri (or to an arbitrary URI, depending on the  
declaration). I don't know what foaf#imaginaryFriend is supposed to be.

If you are asking why foaf uses a slash vs. a hash I direct you to  
Dan's email. Though I dislike the architectural arguments mobilized  
for hash, hash is by far the more common. So I'd just do that.

> and which should I use for my own properties from my core: (core#?)  
> namespace?

I'd go with hash.

> I've been doing it like this, confused by when to use core: vs core#
>
> <rdf:Description rdf:about="#SomeModelElement">
>      <rdf:type rdf:resource="http://<host>/ontology/2009/07/ 
> core#SomeElementClass"/>
>      <core:isElementOf rdf:resource="#SomeModel"/>
>      <core:hasStakeholder rdf:resource="#SomeStakeholder"/>
>      <rdfs:comment>Some Comment</rdfs:comment>
>   </rdf:Description>
>
> Seems to work. But how to explain why to newcomers? I couldn't.

I take two attitudes:
	It doesn't matter. Do whatever you feel like. (That's mostly true for  
many styles of working.)
	Use hash because that's What People Do. But ignore the philosophical/ 
architectural arguments.
If you are building a "normal" ontology either is fine. If you intend  
to publish it on the web for a very specific pattern of use, then you  
might need to consider slash namespaces. Most people don't fall into  
that pattern of use.

> PS: One other. I thought rdf:ID="SomeName" was *THE* way to *define*  
> a new item that you *know* doesn't exist and rdf:about="#SomeName"  
> was *THE* way to reference or extend one that might not yet exist.

That's a line people take. But because it doesn't show up in the  
model, it's not, IMHO, a good line to take. It's better to think of  
rdf:ID as a syntactic sugar for rdf:about + some weird side effects/ 
restrictions. rdf:resource is *also* syntactic sugar for rdf:about.  
rdf:about is the fundamental one.

The resulting triples don't care which you used in your RDF/XML and  
keep no trace of it.

> Why there's about= and resource=, I've never understood.

Syntactic sugar trying to fit into certain design constraints for 1999  
thoughts about how to combine multiple xml applications. In other  
words, hysterical raisons. The modern attitude (imho) is that only the  
resultant triples matter. So, drop ID, and only use resource if you  
like that sugar.

Cheers,
Bijan.
Received on Tuesday, 14 July 2009 08:51:18 GMT

This archive was generated by hypermail 2.3.1 : Wednesday, 27 March 2013 09:32:57 GMT