Search Mailing List Archives


Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-discussion] [protege-owl] Protege and JDO (WebProtege)

Scott L Holmes scottlholmes at gmail.com
Sat Oct 10 02:24:33 PDT 2009


Hello Jennifer,

I have moved this topic to the discussion list.

Yes, GWT is terrific but we are unhappy with GWT-Ext.  After we used that
particular library to implement most of the UI, there was a change in the
licensing scheme.  GWT-Ext now only supports Ext 2.0.2 and lower and it is
unclear that this project will ever move forward.  We'll likely have to
replace it with something else.

Yes, when I first read about the licensing issue a while back, in my own
personal problem domain, I figured, OK, Ext 2.0.2 would be good enough. But,
I can see how in the larger possible world the end of development presents a
not easily solved dilemma. From a very quick survey I just did, it looks
like SmartGWT might be a good fit. http://code.google.com/p/smartgwt/
. Unfortunately,
the license is LGPL which is not the most Open Source friendly license. It's
been some time since I looked over the Protege team's licensing strategy so
I'm not clear on if this would work or not for your team.


Making WebProtege run on GAE would be non-trivial for many reasons:


1).  WebProtege leverages a lot of functionality from the Protege
application.  If you run WebProtege in "local mode", it uses a standalone
instance of Protege running in a servlet container to save ontology edits to
file-based ontologies on the file system.  GAE doesn't allow you to write to
the file system.


I've been reviewing more of the Protege source. I guess the idea is to build
a Protege backend plugin. I was planning on studying the RDF backend and
seeing what it would take to redo the fiddly bits with JDO persistence.


2).  Protege does provide the capability to convert from file-based to
database ontologies, but GAE doesn't support relational databases.  So you
couldn't use the existing database back-end that Protege offers to save
ontology edits either.  Writing a new back-end for Protege to use BigTable
for ontology storage would be a significant effort.

Originally I'd planned to use another vendor to host a MySQL database but in
my case that vendor prevents remote access. This got me thinking about a
possible JDO based backend. My initial experiments with GAE JDO and Bigtable
were delightful. The interesting part about this is that it is *not* a
relational database and I'm OK with that. I'm not much of a fan of
relational databases (although they've paid my rent these last 30 some
years). The idea of Protege using Bigtable for ontology storage just seems
like the seed for a class of entirely new applications.


3).  WebProtege can run in "external server mode" where it connects to a
Protege server, which handles ontology loading, saving, etc.  However, the
Protege server uses RMI - also not supported by GAE.

This is the kicker. Running WebProtege in local mode would be preferable but
if "desktop" Protege is to *also* access the ontologies, I'm going to need
to use RMI as it currently stands. I've not had a chance to confirm yet but
is it safe to say that when I click the WebProtege link to open an ontology
in the Protege rich client, that that is an ordinary Protege server
connection? The practical programmer in me thinks this is a show stopper.
The ability of WebProtege and Protege accessing the same ontologies is more
important to me than GAE from a work flow perspective.


4).  We currently store UI configuration information (per ontology, per
user) in an XML file on the file system.  This would have to be rewritten to
use BigTable.

Has your team considered developing an ontology to model and store this
metadata in the form of instances? The idea of keeping track of user
specified configurations is something that got me interested in ontology
driven application development in the first place. Getting WebProtege on GAE
would provide me with the impetus to explore this idea further as the XML
storage would need to be replaced, an ontology designed and bits of
WebProtege tweaked to put/get its configurations from the ontology.


5).  Not difficult, but still an obstacle is that Protege writes information
to a log file and the protege.properties files on the file system.

Never even considered the logs. But yes there is destined to be some work to
do there. There is some support for log4j which should help.


Getting this to work is not a high priority on our list of things to do.
 But, it's all open source if you want to experiment.


I think the most discouraging hurdle is Protege server using RMI. Any GAE
version of Protege Server would necessarily have to have some other
mechanism for client/server. An interesting project to be sure but not one
I'm sure I want to attempt. My main expertise lies in database development.
Perhaps someone is looking into an alternative client server mechanism?

Thanks so much, Jennifer and your team, for giving me the chance to explore
this opportunity. WebProtege is such an interesting step in the evolution of
Protege. What I've seen so far is just brilliant and I'm excited to get
started. However, the practical programmer in me says that what I need to do
first is to get my own reference system running in Tomcat and to learn from
that. GAE will need to wait as I develop my Protege programming chops.

Scott L Holmes
My blog: http://slholmes.org/
Follow my progress at http://www.twitter.com/slholmes
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.stanford.edu/pipermail/protege-discussion/attachments/20091010/e209eb3a/attachment.html>


More information about the protege-discussion mailing list