Skip to content
Martin O'Connor edited this page Nov 23, 2017 · 55 revisions

The SWRLAPI is a Java API for working with the OWL-based SWRL rule and SQWRL query languages.

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

Software Components

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

SWRL Editor SWRL rules and SQWRL queries can be created and edited using the SWRL Editor.
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.
SQWRL Query Tab SQWRL queries can be managed and executed using the SQWRL Query Tab.
SQWRL Query API This API provides a JDBC-like Java interface to execute SQWRL queries. It is documented here.
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. 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 one of the following papers:

  • "The SWRLAPI: A Development Environment for Working with SWRL Rules" M.J. O'Connor, R.D. Shankar, C. Nyulas, A.K. Das, M.A. Musen. OWL: Experiences and Directions (OWLED), 4th International Workshop, Washington, D.C., U.S.A, 2008.
  • "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 papers:

  • "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.
  • "A Lightweight Model for Representing and Reasoning with Temporal Information in Biomedical Ontologies" M. J. O'Connor and A. K. Das. Proceedings of the Third International Conference on Health Informatics (HEALTHINF), Valencia, Spain, January 20-23, 2010.

The reasoner used by the SWRLAPI is described here:

Additional SWRLAPI-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.


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


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.