How can I reason over swrl built-ins using OWLAPI and Pellet in Java?
08:47 26 Jan 2026

I’m a bit confused and hope someone can help.

I’m working on a project that uses SWRL rules and Pellet. In my rules I rely on specific built-ins such as:

  • swrlb:addDayTimeDurationToDateTime

  • temporal:equals

  • temporal:before

These rules worked correctly in Protégé.
Now I’m trying to implement the same pipeline in Java using Openllet and OWLAPI, but I receive warnings indicating that these built-ins are not available. For example:

2026-01-26 15:10:39 WARNING openllet.core.KnowledgeBaseImpl consistency Ignoring rule Rule([...]): No builtin for http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#equals

It seems that Openllet does not support these built-ins.

My questions are:

  1. What options do I have to make this work in Java?

  2. Is there another reasoner I can use that supports these SWRL built-ins?

  3. Is there a different approach I should follow?

[1] https://www.w3.org/submissions/SWRL/

[2] https://github.com/protegeproject/swrlapi/wiki/SWRLTemporalBuiltInsBasic

java owl protege owl-api swrl