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 ?
Regards
Clément
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.
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).