Difference between revisions of "Protege4Migration"

From Protege Wiki
Jump to: navigation, search
(Initial Page)
 
(Side by Side Comparison)
 
(36 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
<div class="orangeBox">
 
<div class="orangeBox">
<span class="orangeBoxTitle">Choosing between versions of Protege</span><br /><br />
+
<span class="orangeBoxTitle">Choosing between versions of Desktop Protege</span><br /><br />
This page contains an outline of the major feature differences between Protege 3.x and Protege 4.0.
+
This page contains a high level outline of the major differences in features between Protege 3.x and Protege 4.0+.
 
</div><br />
 
</div><br />
  
Line 7: Line 7:
  
 
== Overview ==
 
== Overview ==
 +
There are a number of differences between Protege 3.x and 4.0+. This page is designed to highlight some of the major factors that may influence which of the two systems would be most appropriate for your project at present. It will also serve as a useful reference point for identifying major features that need priority migration from 3.x to 4.0+. This list is by no means exhaustive and is only intended as an overview.
  
There are a lot of differences between the current release version of Protege 3.x and the current Protege 4.0 alpha.
 
This page is designed to show some of the major factors that would influence which of the two systems would be most appropriate for your project at this current time.
 
It will also serve as a useful reference point for identifying major features that need priority migration from 3.x to 4.0. This is in no way a complete list, but is intended as an overview only.
 
  
== Protege 3.x and 4.0 Side by Side ==
+
== Recommendations ==
  
{|  
+
=== Frames ===
! Protege 3.x
+
 
! Protege 4.0
+
For working with '''frames-based ontologies''' there is only one choice - Protege 3.5 is built on a very mature and stable codebase. Frames support is not currently available in Protege 4.0+.
 +
 
 +
=== OWL (and RDF) ===
 +
 
 +
For working with '''OWL''', there are several factors that may influence your decision on whether to use 3.4 or 4.x.
 +
 
 +
==== Developers ====
 +
 
 +
For coders writing '''purely OWL applications''', we recommend 4.x. For applications where you cannot cleanly break away from '''RDF''' you should consider 3.4.
 +
 
 +
Protege 4.x uses the open source, Java-based [http://owlapi.sourceforge.net/ OWL API] that is proving popular with many developers around the world. This makes writing or migrating to and from other systems more straightforward, and a larger developer community means more assistance and a more robust codebase. In addition, the OWL API supports much of the upcoming OWL 2.0 recommendation.
 +
 
 +
However, for developers that require access to the RDF model at the level of a triple store, the [http://protege.stanford.edu/plugins/owl/api/index.html Protege-OWL API] from Stanford is an option.  This API was built on top of the older frames-based system, i.e., RDF and OWL constructs are layered over Protege's frame objects. This is much harder to develop with as all levels of abstraction are visible at the API level, but allows for more control over the relationship between the different models.
 +
 
 +
==== Users ====
 +
 
 +
For ontology developers the choice is harder as the tasks that any given user/application needs to perform can be very different. For users creating purely '''OWL''' ontologies or
 +
needing OWL2.0 features we would recommend P4.x. For users wanting access to '''RDF''' or that require particular tools that have not yet been converted, P3.x is currently still the choice.
 +
 
 +
Ultimately, P3.x is coming to a stable state such that the features of the platform are well known and the behaviour is predictable. There are many plugins available that aid particular tasks
 +
that are not currently available for P4.x. So for example, those wanting SWRL support will find the framework in P3.x much more substantial than in P4.x. Equally, users that need access
 +
to RDF(S) level constructs will need to use P3.x.
 +
 
 +
P4.x is much more lightweight, being a wholly OWL editing environment currently, and is therefore optimised considerably for dealing with even modestly large OWL ontologies in memory.
 +
The number of groups producing additional tools for visualisation, mining etc is growing. The framework uses more standard mechanisms for customisation and can therefore be more easily tuned to a particular group's workflow. P4.x will also support all OWL2.0 features, such as QCRs, role chains, additional property characteristics etc, many of which are already implemented.
 +
 
 +
 
 +
== Side by Side Comparison ==
 +
{| cellpadding="3" cellspacing="3" style="border:1px dashed #BC8F8F;"
 +
! align="left" width="50%" | Protege 3.x
 +
! align="left" width="50%" | Protege 4.0+
 
|-  
 
|-  
| Frames Editing
+
| style="border-bottom:1px dashed #BC8F8F;" | [[Image:p3.3.png|frame|left|Protege 3 Screenshot]]
| Frames editor not migrated yet
+
| style="border-bottom:1px dashed #BC8F8F;" | [[Image:p4.0.png|frame|left|Protege 4 Screenshot]]
 +
|-
 +
| '''Frames Support''' || '''Frames Support'''
 +
|-
 +
| valign="top" style="border-bottom:1px dashed #BC8F8F;" | Frames editing supported via the [http://protege.stanford.edu/overview/protege-frames.html Protege-Frames editor]
 +
| valign="top"  style="border-bottom:1px dashed #BC8F8F;" | None (Protege-Frames editor has not been migrated yet)<br /><br />
 +
|-
 +
| '''OWL Support''' || '''OWL Support'''
 
|-  
 
|-  
| '''OWL 1.0''' language support
+
| '''[http://www.w3.org/2004/OWL/ OWL 1.0]''' language support
| '''OWL 1.1''' language support
+
| '''[http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2.0]''' language support
 
|-  
 
|-  
 
| OWL and RDF(S) support
 
| OWL and RDF(S) support
| Purely OWL framework currently
+
| Pure OWL framework
 
|-  
 
|-  
| Layered API of OWL over RDF over Frames
+
| valign="top" | OWL and RDF(S) files are accessible via the [http://protege.stanford.edu/plugins/owl/api/index.html Protege-OWL API]. This API layered OWL and RDF support over the existing Frames API.
| Uses clean, heavilly optimised, standard, open-source OWL API
+
| valign="top" | OWL files are accessible via the [http://owlapi.sourceforge.net/ OWL API], which was developed at the [[The University Of Manchester]] (''not the Protege-OWL API, which was used in the 3.x series'').  This is a very clean API that closely follows the OWL specification and the parser is optimized to be faster and use less memory.
 
|-  
 
|-  
 
| SPARQL support
 
| SPARQL support
| No SPARQL support
+
| No SPARQL support yet
 +
|-
 +
| SWRL support through the SWRLTab
 +
| SWRL support through a basic editor and pellet for reasoning
 
|-  
 
|-  
| Meta-modelling support (allowing OWL-full)
+
| Support for meta-modeling (allowing OWL Full)
| no OWL-full
+
| No OWL Full
 
|-  
 
|-  
| RDF/frames overheads in loading, reasoning and memory usage
+
| valign="top" | Reasoner support through HTTP DIG interface allows connection to any DIG compliant reasoner, as well as direct connection to the Pellet reasoner
| Optimised OWL parser and model reduce memory usage and increase speed
+
| valign="top" | Direct connection to FaCT++, Pellet and other DL reasoners for optimum speed of classification
 
|-  
 
|-  
| Reasoner support through HTTP DIG interface allows connection to any DIG compliant reasoner
+
| valign="top" | Configuration settings stored in Protege Project files (.pprj)
| Direct connection to FaCT++ and Pellet for optimum speed of classifying
+
| valign="top" | Configuration settings global (No project files). Preferences persist across installations of Protege
 
|-  
 
|-  
| Project file based configuration
+
| valign="top" style="border-bottom:1px dashed #BC8F8F;" | OWL imports [http://protege.stanford.edu/doc/owl/owl-imports.html handled through a repository mechanism]
| Global configuration - no project files
+
| valign="top" style="border-bottom:1px dashed #BC8F8F;" | Imports resolution from a common folder, user repositories or the web<br /><br />
 
|-  
 
|-  
| OWL imports through repositories mechanism
+
| '''Plugins''' || '''Plugins'''
| Simplified imports resolution from common folder (repositories also supported)
+
|-
 +
| valign="top" | Plugin framework developed at Stanford for tab widgets, slot widgets, back-ends, projects, importing, and exporting
 +
| valign="top" | Plugin framework has been switched to the more industry standard technology, [http://www.osgi.org/osgi_technology/index.asp?section=2 OSGi], which allows for any type of plugin extension
 +
|-
 +
| valign="top" style="border-bottom:1px dashed #BC8F8F;" | Large set of plugins available, developed both in-house and externally by the Protege community
 +
| valign="top" style="border-bottom:1px dashed #BC8F8F;" | Large set of plugins available, developed both in-house and externally by the Protege community<br /><br />
 
|-  
 
|-  
| Large set of plugins available (incl SWRL support)
+
| '''User Interface''' || '''User Interface'''
| Increasing number of plugins available (SWRL support to be ported soon)
+
|-
 +
| valign="top" | Tab and slot widgets make much of user interface configurable
 +
| valign="top" | Plugins define all user interface elements including tabs, views, and menus making everything configurable
 +
|-
 +
| Support fill-in-the-blank style of setting property values in individuals
 +
| Property values of individuals are added as axioms
 +
|-
 +
| valign="top" style="border-bottom:1px dashed #BC8F8F;" | Access is provided to the meta model and can be used to configure the user interface
 +
| valign="top" style="border-bottom:1px dashed #BC8F8F;" | Menu and drag and drop user interface elements
 +
|-
 +
 
 +
<br /><br />
 
|-  
 
|-  
| Protege plugin framework for Tabs, Slots, Backends, Projects, Import/Export
+
| '''Multi-user Support''' || '''Multi-user Support'''
| Built on Java Plugin Framework (soon to be switched to OSGi) - can define any type of plugin extension
+
|-
 +
| valign="top" style="border-bottom:1px dashed #BC8F8F;" | Multiple users can edit the same ontology using the [[Protege_Client-Server_Tutorial|client-server version of Protege]]
 +
| valign="top" style="border-bottom:1px dashed #BC8F8F;" | None ([[Protege_Client-Server|Protege Client-Server]] has not been migrated yet)<br /><br />
 
|-  
 
|-  
| Tabs and Slot Widgets make much of interface configurable
+
| '''Database Storage Model''' || '''Database Storage Model'''
| Plugins define all interface elements including tabs, views and menus making entire interface configurable
 
 
|-
 
|-
| Access of meta model to configure interface
+
| valign="top" | Ability to store ontologies in a database provided by the [http://protege.stanford.edu/doc/design/jdbc_backend.html|Protege JDBC database back-end]
| Menu and Drag and drop interface elements
+
| valign="top" | None (database back-end has not been migrated yet)<br /><br />
 
|}
 
|}

Latest revision as of 13:25, August 8, 2017

Choosing between versions of Desktop Protege

This page contains a high level outline of the major differences in features between Protege 3.x and Protege 4.0+.


Overview

There are a number of differences between Protege 3.x and 4.0+. This page is designed to highlight some of the major factors that may influence which of the two systems would be most appropriate for your project at present. It will also serve as a useful reference point for identifying major features that need priority migration from 3.x to 4.0+. This list is by no means exhaustive and is only intended as an overview.


Recommendations

Frames

For working with frames-based ontologies there is only one choice - Protege 3.5 is built on a very mature and stable codebase. Frames support is not currently available in Protege 4.0+.

OWL (and RDF)

For working with OWL, there are several factors that may influence your decision on whether to use 3.4 or 4.x.

Developers

For coders writing purely OWL applications, we recommend 4.x. For applications where you cannot cleanly break away from RDF you should consider 3.4.

Protege 4.x uses the open source, Java-based OWL API that is proving popular with many developers around the world. This makes writing or migrating to and from other systems more straightforward, and a larger developer community means more assistance and a more robust codebase. In addition, the OWL API supports much of the upcoming OWL 2.0 recommendation.

However, for developers that require access to the RDF model at the level of a triple store, the Protege-OWL API from Stanford is an option. This API was built on top of the older frames-based system, i.e., RDF and OWL constructs are layered over Protege's frame objects. This is much harder to develop with as all levels of abstraction are visible at the API level, but allows for more control over the relationship between the different models.

Users

For ontology developers the choice is harder as the tasks that any given user/application needs to perform can be very different. For users creating purely OWL ontologies or needing OWL2.0 features we would recommend P4.x. For users wanting access to RDF or that require particular tools that have not yet been converted, P3.x is currently still the choice.

Ultimately, P3.x is coming to a stable state such that the features of the platform are well known and the behaviour is predictable. There are many plugins available that aid particular tasks that are not currently available for P4.x. So for example, those wanting SWRL support will find the framework in P3.x much more substantial than in P4.x. Equally, users that need access to RDF(S) level constructs will need to use P3.x.

P4.x is much more lightweight, being a wholly OWL editing environment currently, and is therefore optimised considerably for dealing with even modestly large OWL ontologies in memory. The number of groups producing additional tools for visualisation, mining etc is growing. The framework uses more standard mechanisms for customisation and can therefore be more easily tuned to a particular group's workflow. P4.x will also support all OWL2.0 features, such as QCRs, role chains, additional property characteristics etc, many of which are already implemented.


Side by Side Comparison



Protege 3.x Protege 4.0+
Protege 3 Screenshot
Protege 4 Screenshot
Frames Support Frames Support
Frames editing supported via the Protege-Frames editor None (Protege-Frames editor has not been migrated yet)

OWL Support OWL Support
OWL 1.0 language support OWL 2.0 language support
OWL and RDF(S) support Pure OWL framework
OWL and RDF(S) files are accessible via the Protege-OWL API. This API layered OWL and RDF support over the existing Frames API. OWL files are accessible via the OWL API, which was developed at the The University Of Manchester (not the Protege-OWL API, which was used in the 3.x series). This is a very clean API that closely follows the OWL specification and the parser is optimized to be faster and use less memory.
SPARQL support No SPARQL support yet
SWRL support through the SWRLTab SWRL support through a basic editor and pellet for reasoning
Support for meta-modeling (allowing OWL Full) No OWL Full
Reasoner support through HTTP DIG interface allows connection to any DIG compliant reasoner, as well as direct connection to the Pellet reasoner Direct connection to FaCT++, Pellet and other DL reasoners for optimum speed of classification
Configuration settings stored in Protege Project files (.pprj) Configuration settings global (No project files). Preferences persist across installations of Protege
OWL imports handled through a repository mechanism Imports resolution from a common folder, user repositories or the web

Plugins Plugins
Plugin framework developed at Stanford for tab widgets, slot widgets, back-ends, projects, importing, and exporting Plugin framework has been switched to the more industry standard technology, OSGi, which allows for any type of plugin extension
Large set of plugins available, developed both in-house and externally by the Protege community Large set of plugins available, developed both in-house and externally by the Protege community

User Interface User Interface
Tab and slot widgets make much of user interface configurable Plugins define all user interface elements including tabs, views, and menus making everything configurable
Support fill-in-the-blank style of setting property values in individuals Property values of individuals are added as axioms
Access is provided to the meta model and can be used to configure the user interface Menu and drag and drop user interface elements
Multi-user Support Multi-user Support
Multiple users can edit the same ontology using the client-server version of Protege None (Protege Client-Server has not been migrated yet)

Database Storage Model Database Storage Model
Ability to store ontologies in a database provided by the JDBC database back-end None (database back-end has not been migrated yet)