Skip to content
Martin O'Connor edited this page Apr 30, 2015 · 55 revisions

The SWRLAPI is a Java API for working with the OWL-based SWRL rule language. It provides and array of Java APIs for working with SWRL rules and includes graphical tools for editing and executing rules. A SWRL-based OWL query language called SQWRL is also provided.

If you are not familiar with the SWRL language you can find an introduction here. An introduction to SQWRL can be found here.

Table of Contents

Software Components

The SWRLAPI provides a collection of software components and Java APIs. These components and APIs can be used by developers who wish to work with SWRL rules in their applications.

The APIs include:

=== SWRL Rule Engine API === SWRL rule engines can be created and managed using the SWRL Rule Engine API.

SQWRL

The SWRLAPI includes an implementation of the SQWRL query language. It provides a graphical interface called the SQWRL Query Tab to display the results of SQWRL queries.

SQWRL Query API

This API provides a JDBC-like Java interface to execute SQWRL queries. It is documented here. The SWRLAPI provides a collection of Java APIs to work with SWRL rules. These are documented here. The SWRLAPI also provides a set of standalone graphical interfaces for managing SWRL rules. These interfaces are designed to be embeddable into third party Java applications.

SWRL Built-in Libraries

SWRL Built-Ins are user-defined methods that can be used in SWRL rules. A number of built-in libraries are provided by the SWRLAPI. These include an implementation of the core SWRL built-ins defined in the SWRL Submission and built-ins for querying OWL ontologies. The libraries are documented here.

SWRL Temporal Ontology and Library

The SWRLAPI provides an array of mechanisms for modeling, reasoning with, and querying temporal information. They are documented here.

OWL 2 RL Reasoner Framework

The SWRLAPI provides a framework for implementing and managing an OWL 2 RL reasoner. Documentation can be found here.

SWRL Built-in Bridge

SWRL built-ins are user-defined predicates that can be used in SWRL rules. The SWRLAPI has a set of APIs called the built-in bridge that provides a mechanism to define Java implementations of SWRL built-ins. These implementations can then be dynamically loaded by the bridge and invoked from a rule engine.

SWRL Rule Engine Bridge

The bridge provides the infrastructure necessary to incorporate third party rule engines to execute SWRL rules. See the SWRL Rule Engine Bridge FAQ for more details. A Drools-based rule engine built using this infrastructure is described here here. A user interface called the SWRL Drools Tab is also provided to interact with this bridge. It is documented here.

Citing in Publications

To cite general use of the SWRLAPI in a publication, use the following paper:

  • "Supporting Rule System Interoperability on the Semantic Web with SWRL" M.J. O'Connor, H. Knublauch, S.W. Tu, B. Grossof, M. Dean, W.E. Grosso, M.A. Musen. 4th International Semantic Web Conference (ISWC), Galway, Ireland, Springer Verlag, LNCS 3729, 974-986, 2005.

SQWRL can be cited as follows:

The SWRLAPI's temporal functionality is covered in the following paper:

  • "A Method for Representing and Querying Temporal Information in OWL" M. J. O'Connor and A. K. Das. Biomedical Engineering Systems and Technologies (Selected Papers), Springer Verlag, CCIS 127, 97-110, 2011.

The reasoner used by the SWRLAPI is described here:

Additional SWRL-related publications can be found here.

Source Code

The SWRLAPI is open source and all its source code is available for download from its GitHub repository.

Building

Information on building the SWRLAPI can be found in the repository README.md file.

Author

The SWRLAPI was written by Martin O'Connor at Stanford Center for Biomedical Informatics Research.

How can I get help?

Questions and comments on the SWRLAPI should be sent to the Protégé mailing list (protege-user at lists dot stanford dot edu). This list is monitored by the developers of the SWRLAPI.