Hi Mike,
On 19/11/2019 12:21, UscholdM wrote:
I was having problems with ontology import. So I did some
experiments. In Protégé, I created a simple ontology that does
nothing other than import another ontology, which is available on the
web. I saved it, and when I opened it in Protégé, it behaved as
expected. When I try to do so in TBC Free Edition 6.0.1 it does not work.
I did further experimenting by downloading the imported ontology
directly from the web and put the file in the TBCFE workspace. That
also did not work. I then read the several paragraphs of TBC
documention on working with imported ontologies. It seems like the
base uri of an ontology plays a prominent role. That seemed odd,
since the ontology URI or ontology Version URI is what matters.
Nevertheless, I tried manually inserting a base statement into the
ontology to be imported setting it to the ontology URI and that also
did not work. When I set the base URI to the Version IRI that was
being explicitly imported, it worked.
The downloads page indicates that 6.0.1 is the latest stable free
version. I asked my colleague to try it on his version, and it worked.
I saw that he has the free edition, but his version was 6.1.1. How can
that be? I asked other colleagues to try the same experiment and the
importing was not working on their then-current version of TBCME, but
when they installed the latest version it did work.
1. Attached is a very explicit set of things that I did, and that I
sent to colleagues to report back on. It also includes screenshots
of errors.
2. The tiny ontology that imports another ontology.
Punch line:
* Is there a free version of TBC that I can currently download that
will import ontologies on the web that do not have a base statement?
Not that I know of.
* Is there any reason to give prominence to the base statement? It
seems that what really matters is the IRI or VersionIRI of the
imported ontology.
The reason why we don't use the owl:versionIRI is that this would
require loading the graph first, just to detect the URI. With large
files this is not feasible. Also, the web import needs to start
somewhere. From the owl:imports statement we only have the physical URL,
so we try to resolve the graph from there. If the versionIRI was
different from the physical URI, how could a web import possibly work?
(In your example the versionIRI is identical to the physical location so
I don't understand why this topic is relevant).
* Is there something else that could be causing the problem that
adding a base statement solves by accident?
I installed 6.0.1 and can reproduce that it cannot directly import from
the web. Maybe that particular version had a bug, or the server response
(HTTP headers/mime type?) from this particular location is a problem for
this version. It works fine in later versions, and I can also do Web
imports for other URLs with 6.0.1 with no problem.
In any case, here is a work-around:
1) Right-click on some project and select Import RDF file from the Web
2) Fill in as shown
This produces a local file starting with
# baseURI: https://ontologies.semanticarts.com/o/gistTop9.0.0
which is our usual convention to recognize graph URIs. This line is
saved at the beginning of each TTL file so that the system doesn't need
to first scan the whole file for its owl:Ontology or owl:versionInfo or
whatever. It improves start-up time and is the only scalable solution
for very large files.
We generally recommend using local files over web imports as the latter
may be unstable (server down, changing data etc).
HTH
Holger
--
You received this message because you are subscribed to the Google Groups "TopBraid
Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/topbraid-users/fee9ee92-fd93-fa98-0f6c-957b1b4dfd53%40topquadrant.com.