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 ?

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.

Second, there’re restrictions on the kind of recursion that Stardog can handle, see 4. in https://www.stardog.com/docs/#_rule_limitations_gotchas

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).

Best,
Pavel

Pavel,

Sorry for the misunderstanding,

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

Please accept my apologizes,

Clément

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

Cheers,
Pavel

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