Re: rdf inclusion

Dave Rager wrote:
> 
> Drew,
> 
> My original impression is that by using a property or a class defined
> in some ontology, I am agreeing to use that ontology.  I believe this
> corresponds with Frank's answer to:
> 
> >    Does using a term defined by some ontology O in some
> >    RDF graph G mean that G is using O?
> 
> Then Jeff came along and explains daml:imports is required, and
> presents an example.  He also indicates the correct way to use
> daml:imports for instance data is inside an rdf:description tag.
> This corresponds with what's in the language reference description
> document [1], though it doesn't describe how to use daml:imports with
> instance data.
> 
> I'm willing to add daml:imports statements to the SONAT data files
> since this seems to be the proper usage of DAML+OIL.
> 
> Since I had never seen daml:imports used in this way, I checked a few
> random  DAML+OIL instance files from homework 3 and the crawler.  I
> didn't see any that use daml:imports as Jeff described.  I did find:
> 
> a) daml:imports used in daml:Ontology header in the instance file,
> even though there are no ontology definitions in the file.

This would mena that the person is declaring that document to be an
ontology and that it imports some other ontology. I wouldn't think this
is an error, even if it doesn't contain what we would call "ontology
definitions" (although it is unusual and probably not what was
intended).

> b) daml:imports used in a header tag describing the file:
> <rdf:description rdf:about="">
>      <daml:imports>...</daml:imports>
> </rdf:description>

I don't know what the elipses contain, but I imagine this is wrong
because you need to identify a resource that is being imported. The
contents would just be a string.

> c) No use of daml:imports
> 
> Does someone want to define the scope of the daml:imports statement.
> When applied to a resource (instance), does it only apply to the
> statements within the same rdf:description tag?  or the resource in
> general?

Think of imports as a property whose source and object are Resources.
When we say resource A imports resource B, then we make an explicit
statement that anything in B serves as additional knowledge for
interpreting or understanding A. The convention of using rdf:about=""
simply means that the current document (resource) is the source of the
statement. The object must be another resource containing DAML+OIL. When
you have:

<daml:Ontology rdf:about="">
  <daml:imports rdf:resource="http://foo.org/ont/">
</daml:Ontology>

you are making two statements. That the current document is an ontology
and that it imports "http://foo.org/ont/." For an instance to import an
ontology, you simply make the property statement, thus:

<rdf:Description rdf:about="">
  <daml:imports rdf:resource="http://foo.org/ont/">
</daml:Ontology>

Alternatively, you could explictly say the current document was a
resource as such:

<rdfs:Resource rdf:about="">
  <daml:imports rdf:resource="http://foo.org/ont/">
<rdfs:Resource>

> If it is applied to a document as in b) do all DAML+OIL resources
> referenced within that document also use the imported ontology?  Or
> just to statements about the document itself?

In terms of merging RDF graphs, daml:imports means you can't add that
triples from some graph unless you also add all the triples from the
graphs of the resources that are imported. This isn't a
statement-by-statement thing. It is on a document level.

Jeff

> -Dave
> 
> [1] http://www.daml.org/2001/03/reference#Imports

Received on Tuesday, 23 April 2002 15:46:13 UTC