« Return to Thread: namespace declarations and imports

Re: namespace declarations and imports

by Pat Hayes :: Rate this Message:

Reply to Author | View in Thread


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




 « Return to Thread: namespace declarations and imports