W3C home > Mailing lists > Public > public-lod@w3.org > November 2009

Re: Ontology modules and namespaces

From: Jeremy Carroll <jeremy@topquadrant.com>
Date: Tue, 10 Nov 2009 23:29:36 +0100
Message-ID: <4AF9E950.3080406@topquadrant.com>
To: Simon Reinhardt <simon.reinhardt@koeln.de>
CC: Ian Emmons <iemmons@bbn.com>, semantic-web@w3.org, public-lod@w3.org

Hi Simon

I have only just seen your question about namespaces  and saw that the 
discussion so far has missed discussing the relevant namespace standards 
(even the somewhat silly dispute about whether TopBraid Composer follows 
the standards concerning namespaces and XML Base: for the record, it does).

Basically there are three: XML Namespaces [1], RDF Schema, and RDF/XML 
Syntax. OWL, for example, defers to all three of these.

There is a foundational issue in that XML Namespaces were done in a bit 
of a hurry, and then the way that RDF interacts with them isn't the same 
as when they are being used in XML.

So first: from the point of view of the logical meaning of an RDF or OWL 
document, namespaces are completely irrelevant.
The role of namespaces is to organize names into (informal) collections, 
for the convenience of the user (in this case the ontologist).
Hence, if you find it more convenient to use one namespace instead of 
several then you should.

There is quite a gap between the Namespaces in XML Rec. and RDF. The 
former says simply:
[[
Definition: An *XML namespace* is identified by an IRI reference 
[RFC3987] <http://www.w3.org/TR/2006/REC-xml-names11-20060816/#IRIRef>; 
element and attribute names may be placed in an XML namespace using the 
mechanisms described in this specification.
]]
so that a namespace is a collection of names.

RDF/XML [2] gives a mechanism for mapping namespace qualified names to 
RDF URI References (intended to be compatible with IRI Refs), and hence 
to URIRef nodes in an RDF graph.

RDF Schema [3] (the RDF Vocabulary Description Language) then gives 
informal definitions to the various names in both the rdf and rdfs 
namespaces. A key half paragraph giving insight into the relationship 
between namespaces and vocabularies is found in:

[[ The core vocabulary is defined in a namespace informally called 
'rdfs' here. That namespace is identified by the URI-Reference 
http://www.w3.org/2000/01/rdf-schema# and is associated with the prefix 
'rdfs'. This specification also uses the prefix 'rdf' to refer to the 
RDF namespace 
<http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/#section-Namespace> 
http://www.w3.org/1999/02/22-rdf-syntax-ns#.
]]

The relationship between vocabularies (and ontologies) and namespaces is 
informal. Often the terms in a vocabulary or ontology are defined in one 
or two namespaces. There is no prohibition on using a vocabulary in 
which every term is from its own namespace. The use of namespaces allows 
us to use prefixes, which allows us to avoid writing cumbersome URIs too 
many times.

Jeremy Carroll
TopQuadrant



[1]
http://www.w3.org/TR/2006/REC-xml-names11-20060816/

[2]
http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/

[3]
http://www.w3.org/TR/2004/REC-rdf-schema-20040210/
>
> On Oct 26, 2009, at 10:25 AM, Simon Reinhardt wrote:
>> Hi,
>>
>> It is becoming somewhat popular for large ontologies to be split into 
>> a core ontology file and module ontology files (which import the 
>> core). Normally each module then gets its own namespace for the terms 
>> defined in it. I was wondering though if that is too complicated for 
>> users of the ontologies. I have seen confusion of "sioc" and "sioct" 
>> (the prefixes for the SIOC core and the SIOC Types module namespaces) 
>> and when such vocabularies get higher adoption by people not so well 
>> versed with ontologies I can see it happen a lot more often.
>>
>> So as an alternative I want to explore the idea of just using one 
>> namespace shared between the core and the modules. The advantage 
>> would be not having to guess which namespace to use. One disadvantage 
>> for the developer(s) of the ontology is that a "local name" can only 
>> be used in one of the modules or core, you can't use the same "word" 
>> under a different namespace with a different meaning. Another 
>> disadvantage is that if you want the terms to dereference to the 
>> ontology files they have been defined in then you can only do that 
>> with a "/" namespace (and you have to set up lots of redirects).
>>
>> My questions: What do you think of that idea? Can you see any other 
>> advantages or disadvantages? Do you think several namespaces are not 
>> confusing at all? And what are the main advantages to splitting up 
>> ontologies into modules other than being easier to organise? Do they 
>> justify a higher burden on the ontology users?
>>
>> Thanks,
>> Simon
Received on Tuesday, 10 November 2009 22:30:23 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:16:01 UTC