Stardog & Inference : Does it supports recursion?

Hello there,

Still working a bit with the Reasoning aspect of Stardog, I’m doing two things : importing a full .ttl file of triple datas, and also importing a .xml file explaning my ontology, containing my rules written in SWRL .

Here’s the point : on the .xml file, I have let’s say two rules :

  • the first rule put individuals into a class called myClass, based on classic conditions
  • the second rule put individuals into a class names myClass2, based on : myClass(?individual) ^ anotherConditions …

It means that my second rule depends on the result of my first rule : indeed, it depends on which individuals are or are not in the class myClass

In Protégé, if I create individuals and run the reasoner, it works fine. But if I saved this ontology as a .rdf file and I run this in Stardog, it doesn’t work at all : the second rule does not consider anymore the result of the first rule.

So here’s my question : does Stardog allow recursion on rules ?


Edit : If need is, I can put screenshots of Protégé results & Stardog results

First of all, there’s no recursion in what you describe: just because your 2nd rule uses predicates which occur in the head of the 1st rule doesn’t make the program recursive. It can be unfolded into a union of conjunctive queries.

Second, there’re restrictions on the kind of recursion that Stardog can handle, see 4. in

If you believe your case does not fall in an unsupported category, please share the rules and the data so we can reproduce the issue (or create a minimal reproducible test case).



Sorry for the misunderstanding,

I’ve made an huge mistake on my ontology (missclicked a button).

Please accept my apologizes,


No problem. Support of recursion is a particularly tricky part of reasoning.


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.