namespace declarations and imports

View: New views
5 Messages — Rating Filter:   Alert me  

namespace declarations and imports

by James Prentice :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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. My question is, how are the foaf and owl definitions located?
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. Does it
look up the URI in some common repositories and try to load from there?

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? 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. I don't see a large
difference between namespace declarations and imports.

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

Re: namespace declarations and imports

by Michael Hausenblas :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


James,

IMHO a pre-linked-data-area issue. See the recent discussion on
public-lod@... mailing list [1], hence not sure if it makes sense to
rehash it here.

Cheers,
      Michael

[1] http://lists.w3.org/Archives/Public/public-lod/2009Jun/0243.html

--
Dr. Michael Hausenblas
LiDRC - Linked Data Research Centre
DERI - Digital Enterprise Research Institute
NUIG - National University of Ireland, Galway
Ireland, Europe
Tel. +353 91 495730
http://linkeddata.deri.ie/
http://sw-app.org/about.html



> From: James Prentice <prentice.j.a@...>
> Date: Tue, 23 Jun 2009 16:18:06 -0700
> To: Semantic Web community <semantic-web@...>
> Subject: namespace declarations and imports
> Resent-From: Semantic Web community <semantic-web@...>
> Resent-Date: Wed, 24 Jun 2009 08:22:05 +0000
>
> 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. My question is, how are the foaf and owl definitions located?
> 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. Does it
> look up the URI in some common repositories and try to load from there?
>
> 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? 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. I don't see a large
> difference between namespace declarations and imports.
>
> 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



Re: namespace declarations and imports

by Pat Hayes :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


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





Re: namespace declarations and imports

by James Prentice :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks for the clarification. I can see the difference now. My misunderstanding was partly to do with an example I was following in a SW book I'm reading that uses the FOAF ontology. In that example they create a new ontology and declare the foaf namespace but never do an owl:imports, so I mistakenly thought that their new ontology somehow had access to the foaf ontology. What was actually happening was that in their Java code in Jena, the foaf ontology is being read in and aligned with their own ontology.

Cheers,
Jim

On Wed, Jun 24, 2009 at 7:58 AM, Pat Hayes <phayes@...> wrote:

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






Re: namespace declarations and imports

by David Booth-6 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, 2009-06-24 at 09:58 -0500, Pat Hayes wrote:
>
> On Jun 23, 2009, at 6:18 PM, James Prentice wrote:
[ . . . ]

> > 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.

However, if you want your reasoner to make use of the additional
semantics implied by a particular URI, such as an OWL URI, then the
reasoner needs to know about them.

In short, if you are using terms from an ontology, there are *three*
things you may wish to do:

 1. Namespaces can provide convenient abbreviations for long URIs --
nothing more.

 2. You may wish to load the ontology into your reasoner along with your
other RDF data.  This may permit your reasoner to produce more
interesting entailments.

 3. You may wish to load particular "semantic extensions" (see
http://www.w3.org/TR/rdf-mt/#MonSemExt ) into your reasoner or choose a
reasoner that has built-in support for the semantic extensions that you
wish to use, such as OWL semantics.  This also may permit your reasoner
to produce more interesting entailments.  

Except for namespaces, this process is illustrated in figure 2 at
http://dbooth.org/2009/denotation/#rdfsem


--
David Booth, Ph.D.
Cleveland Clinic (contractor)

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.