API comparison


Cite error: <ref> tags exist, but no <references/> tag was found


Cite error: <ref> tags exist, but no <references/> tag was found

Josef, Paul, Hoan,


Cite error: <ref> tags exist, but no <references/> tag was found

Criteria

Complexity/easy to use

  • easy/reasonable to use
  • write both java programs and also use command-line inputs

Restrictions (download, availability for OWL 1.0/2.0)

  • support RDFS, DAML + OIL, OWL (Jena v2)

Jena API

Examples & Documentation (easy to implement)

Reasoning, support for SWRL

  • This section of the documentation describes the current support for inference available within Jena2. It includes an outline of the general inference API, together with details of the specific rule engines and configurations for RDFS and OWL inference supplied with Jena2. http://jena.sourceforge.net/inference/#RULEsyntax
  • The second major set of reasoners supplied with Jena2 is a rule-based implementation of the OWL/lite subset of OWL/full. http://jena.sourceforge.net/inference/#owl
  • does not support SWRL
  • Reasoner: pellet
  • Jena rule reasoner based on ....(?)

prepared by Paul and Huan in 2012

OWL-API


Cite error: <ref> tags exist, but no <references/> tag was found

prepared by Maurice and Josef in 2012 Summary: The OWL-API was developed by Manchester and Karlsruhe University. The basics are described in the paper "Cooking the Semantic Web with the OWL API" [1]

Complexity/easy to use

  • higher level of abstraction
  • loading ontologies is easy, running SWRL more complex

Restrictions (download, availability for OWL 1.0/2.0)

  • public available, http://owlapi.sourceforge.net
  • applicability to OWL 2.0 - info not found
  • Latest version available for OWL 2.2.0
  • Version 3 of the OWL API is backward incompatible with version 2 of the OWL API


Cite error: <ref> tags exist, but no <references/> tag was found

OWL API - Examples & Documentation


Cite error: <ref> tags exist, but no <references/> tag was found

Reasoning, support for SWRL

  • own examples on how to create an ontology andd some rules
  • interaction with reasoning
  • Two reasoner implementations available: Pellet and FaCT++.
  • Pellet should support SWRL rules


Cite error: <ref> tags exist, but no <references/> tag was found

Protege-API


Cite error: <ref> tags exist, but no <references/> tag was found

prepared by Dave in 2012

Complexity/easy to use

  • Like other Java APIs, the libraries are needed to be imported in the source code of the application.

Restrictions (download, availability for OWL 1.0/2.0)

  • OWL and RDF.
  • Provided with the standard Protege installation.

Examples & Documentation (easy to implement)

Reasoning, support for SWRL


Cite error: <ref> tags exist, but no <references/> tag was found

Comparison of API


Cite error: <ref> tags exist, but no <references/> tag was found

Which one to select

  • OWL-API most probably easiest to use
  • Protege API is the most complete, and has good compatibility with Protege
  • Protege API does not need any other installations
  • Protege API includes most of the Jena properties
  • UNIK uses OWL-API

Web Links


Cite error: <ref> tags exist, but no <references/> tag was found

Conclusion: Protege-API


Cite error: <ref> tags exist, but no <references/> tag was found

Generally get's the Job done and it looks ok from my view.

Pros

  • The mapping of OWL-Classes to Java Interfaces resembles the intention of OWL (better than mapping to Objects)
  • Let's you create additional abstract interfaces and classes, so no need to edit the generated code if customization is needed.

Cons are:

  • Jena can not handle too large nested items.
  • DateTime handling could be better. Not using the correct Converter can give you trouble (e.g. Date.toString() in a german locale)
  • Typesafe Collections would be nice.
  • Neccessary to include libs that do not belong there (jlooks.jar)


Cite error: <ref> tags exist, but no <references/> tag was found

Conclusion: OWL-API


Cite error: <ref> tags exist, but no <references/> tag was found

If you are used to do the things low level, this is the right stuff for you, but for the normal "object-oriented"-Programmer this is more or less pain.

Pros:

  • Clean design (I have to emphasize this, after working with it a little bit longer)
  • Good change management in ontologies
  • Low level approach

Cons:

  • Low Level approach (in regard to the use case)
  • Overly verbose for normal (business rule driven) programming.
  • Sometimes sparse Documentation (JavaDoc) although the class names are chosen very well, for a beginner this is not always sufficient to understand the whole concept.


Cite error: <ref> tags exist, but no <references/> tag was found