Difference between revisions of "OntoBase"
Lenyabloko (talk | contribs) (→Extending database support) |
Lenyabloko (talk | contribs) (→Extending database support) |
||
Line 84: | Line 84: | ||
− | === Extending | + | === Extending === |
+ | Changing or adding functionality is easy when using Eclipse IDE connected to open source repository at | ||
+ | |||
+ | http://code.google.com/p/ontobase/source/checkout | ||
Revision as of 10:24, March 15, 2009
OntoBase
by Len Yabloko
OntoBase is a plug-in that allows Protégé to be used as "Model" and "View" for simple database applications. OntoBase can be simply “snapped on” any relational database to provide access to data, virtually without any programming.
Contents
Versions & Compatibility
This section lists available versions of OntoBase.
If you click on the button below to add a new version of OntoBase, you will be asked to define a page title for the new version. Please adhere to the naming convention of OntoBase X.X.X when you define the new page!
Changelog
Version | Changes in this version |
---|---|
OntoBase 3.4.2 | GUI improovements and bug fixes |
OntoBase 3.4.1 | Compatible with Protege 3.4 OWL and RDF backend |
OntoBase 3.4.0 | tested with Protege-Frames 3.4.4 (build 579) |
OntoBase 3.3.7 | Improved user dialog and performance |
OntoBase 3.3.6 | - automatically generate SQL joins |
OntoBase 3.3.5 | -Automatically switching between several connected databases;
-Improved data access performance using separate Java thread; -Automatic synchronization of ontology with source databases upon loading of the project; |
OntoBase 3.3.4 | Support for PostgreSQL added. |
OntoBase 3.3.3 | Support for database engines can now be added/extended |
OntoBase 3.3.2 | full read/write access to Oracle, Microsoft SQL and MySQL |
OntoBase 0.3.3 | see page for more details |
More Details
Description
OntoBase is a plug-in that turns any relational database into ontology. You can define new classes by mapping slots to columns of one or more tables. It allows Protégé to be used as "Model" and "View" for simple database applications. In its current form OntoBase can be simply “snapped on” any relational database to provide access to data, virtually without any programming.
Installation
The ONTOBaseTab can work with "basic" or "full" installation of Protege 3.x running in JRE 1.5 or higher. To make sure Protege loads with correct JVM change following line in protege.lax file
lax.nl.current.vm=C:\\Program Files\\Java\\jre1.6.0_04\\bin\\java.exe
1) Extract OntoBase_X.X.X.zip into Protege installation root directory.
2) Open New Project using Protege files(.pont and .pins) or XML file
3) Go to Project->Configure and check ONTOBaseTab box.
4) When OntoBase window appears enter JDBC address of database and click connect button.
Following are some examples of JDBC database URLs:
jdbc:oracle:thin:@machine_name:port_number:instance_name jdbc:mysql://host_name:port/dbname
Note: JDBC driver corresponding to entered URL must be provided either by placing it directly in Protege root directory under name driver0.jar (or driver1.jar, driver2.jar), or by placing it in location specified in following line of protege.lax file
lax.class.path=protege.jar;...;dbdrivers/sqljdbc.jar; dbdrivers/ojdbc6.jar; dbdrivers/mysql-connector-java-5.1.6-bin.jar...
Drivers tested with OntoBase:
http://dev.mysql.com/downloads/connector/j/5.1.html
http://download.oracle.com/otn/utilities_drivers/jdbc/111060/lib/ojdbc6.jar
5) Wait until connection is established and then click on "run" icon.
Note: If import does not start in a few moments or if it later stops before reaching 100%, then you may need to adjust application memory allocation by editing following line in protege.lax file
lax.nl.java.option.java.heap.size.initial=100000000
The protege.lax file is located in the root directory of your Protege installation
6) After import of database schema is finished OntoBase will re-load and check sign will appear next to imported url.
At this point Protege project will contain "ground" ontology generated by OntoBase with four top level classes:
:THING :SYSTEM-CLASS .TUPLE ~STREAM @GROUND =SERVICE
Note: All top level classes (except ~STREAM) should have sub-classes corresponding to each table in the database.
7) To test generated "ground" ontology simply select any sub-class of @GROUND (each corresponding to a table) and press "create" button on OntoBase tab. You should see a popup asking for primary key of the table. Fill-in the values and close the popup - this should result in fetching a requested row from the table in a form of Protege instance. You can view/edit the instance - all changes will be automatically saved to database.
8) Now you are ready to use OntoBase for defining entities and relations. To begin find and select a sub-class of =SERVICE that will be used for "seeding" new service. Seed name must always begin with "=" and correspond to a database table containing resulting "output" of some service. With the seed selected in Protege class browser press OntoBase "create" button.
If everything is normal you should see a dialog window asking to use existing entity name (by selecting and pressing "Ok") or to create a new one (by pressing "Cancel"). Then simply follow instructions provided by OntoBase in each newly created class documentation (after reading you can clear or replace it).
Extending
Changing or adding functionality is easy when using Eclipse IDE connected to open source repository at
http://code.google.com/p/ontobase/source/checkout
Support for database engines can be added or extended by implementing new JDBC protocol adapters. OntoBase distribution now includes Java sources for MySql 5, Oracle 11 and MS SQL 2005 adapters used by ONTOBaseTab.
Create new class extending "generic" with exactly the same name as the part of JDBC url that follows "jdbc:" as in
jdbc:postgresql://host/database