Re: namespace declarations and imports

On Jun 23, 2009, at 6:18 PM, James Prentice wrote:

> I have a very newbie question I'm hoping someone can clarify. Say I'm
> creating an ontology and have several namespace declarations because  
> I want
> to use some defined vocabularies, e.g. foaf:http://xmlns.com/foaf/ 
> 0.1/ and
>
> owl:http://www.w3.org/2002/07/owl#. Maybe I want to use foaf:mbox and
> owl:sameAs.
There are two issues here. You can use namespace declarations to help  
you write the URI references more compactly, but the actual ontology  
is using the full URI reference. (In NTriples notation this is made  
explicit, for example.) So you could write them all out in full and  
not use namespaces at all, and it would work exactly the same way.  
Then there is the question of whether using a URI creates any kind of  
link to another ontology. And the answer there is that it does not,  
though a lot of people (like yourself) feel that maybe it should. And  
maybe it often does in practice, etc. etc. BUt according to the specs,  
simply using a URIreference in an ontology does not automatically  
assert anything from its 'home' ontology, even if it has one. And its  
not obliged to have one. You control this stuff by importing (or not,  
as you choose.)
>  My question is, how are the foaf and owl definitions located?

They aren't, unless you import them explicitly. And they aren't  
definitions, by the way, just more ontologies.
> Since URIs are not always resolvable, or may be resolvable to  
> something
>
> other than the ontology itself, I'm wondering how they are loaded  
> when I do
> something like run the Pellet reasoner on my ontology in Protege.

They aren't. If you run a reasoner on your ontology, it runs on your  
ontology. If you include an imports, then your ontology includes the  
imported ontology, but if not, it doesn't.
>  Does it
> look up the URI in some common repositories and try to load from  
> there?
No.
>
>
> On a related note, I was confused by this paragraph from
> http://www.w3.org/TR/owl-ref/#imports-def
>
> "Although owl:imports and namespace declarations may appear  
> redundant, they
>
> actually serve different purposes. Namespace declarations simply set  
> up a
> shorthand for referring to identifiers. They do not implicitly  
> include the
> meaning of documents located at the URI. On the other hand,  
> owl:imports does
>
> not provide any shorthand notation for referring to the identifiers  
> from the
> imported document. Therefore, it is common to have a corresponding  
> namespace
> declaration for any ontology that is imported."
>
> Namespace declarations don't *only* set up shorthand, do they?
Yes, that is all they do. Really.
>  If I declare
>
> the foaf namespace and then refer to foaf definitions in my  
> ontology, at
> some point the foaf ontology has to be loaded.
No, it doesn't. That is the point. You may be being misled by  
referring to foaf 'definitions'. OWL and RDF don't have definitions,  
just assertions (sentences, axioms, 'facts') There are no definitions  
that have to be loaded or used.
> I don't see a large
> difference between namespace declarations and imports.

But you should.

Pat Hayes
>
> I'm very confused by this issue, so it's possible that my question  
> doesn't
>
> even make sense. :-) Thanks for any clarification of this issue.
>
> Cheers,
> Jim

------------------------------------------------------------
IHMC                                     (850)434 8903 or (650)494 3973
40 South Alcaniz St.           (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes

Received on Wednesday, 24 June 2009 14:59:51 UTC