NOTE: This page is now defunct -- please see http://protege.cim3.net/cgi-bin/wiki.pl?DataGenie for current information
This plug-in is NOT a database back-end. We expect this plug-in to be used when there exists legacy data that one wants to dump into Protege, before doing additional knowledge acquisition or knowledge modeling. This plug-in (as written) does not include any capability for moving data in the opposite direction (from Protege classes and instances into a relational database). Another use for this plug-in might be as a (convoluted?) database viewer. For efficiency, a database might be stored as a set of custom-designed database tables, but then the DataGenie could be used to view portions of this schema in the Protege frame-based UI.
Archive
Get DataGenie from Protege 2.1 release
Get DataGenie from Protege 1.9 release
Get DataGenie from Protege 1.9 source
Sample Project
Enter a JDBC Driver and URL and DataGenie will connect to the database.When tested with Postgresql, it was found that the JDBC driver had more SQL functionality than the ODBC/JDBC bridge.
Here is a link to the Postgresql JDBC driver
Here is a link to the MySQL JDBC driver
If table T1 has a foreign key relationship to table T2, then a new slot is added to class C1 (representing T1) whose value is an instance of C2 (representing T2). Each instance of C1 will look up the corresponding instance of C2 and add it to the new slot.
If table T1 has exactly two columns, both columns are part of the primary key, and both columns are foreign keys to other tables T2 and T3, this is defined to be a bridge table. In this case, a slot with cardinality multiple will be added toC2 (representing T2), whose values are instances of C3 (representing T3). A corresponding inverse slot will be added to C3 whose values are instances of C2. Each instance of row in T1 will cause an instance of C2 to be added to the new slot in T3, and an instance of C3 to be added to the new slot in T2.