Hi,
I am writing this question to ask for clarification about a strange behaviour I am experiencing when I perform some basic query on a simple ontology created in Protégé. I must admit I am still pretty new to Sparql/inferences rules, so maybe I am just missing something obvious. I am currently evaluating Stardog usage for a research project, and I am still studying the available books so please fell free to tell me if I simply don't get how this is supposed to work.

I have defined a simple ontology with Protégé. As you can see from the above screenshot I just have a parent class ItemTypeA with two subclasses (for now, ignore ItemTypeB).
CategoryA1 is defined as equivalent to "ItemTypeA and (not(IsCategory1 value false))"
CategoryA2 is defined as equivalent to "ItemTypeA and (Not(CategoryA1))"
The property IsCategory1 is marked as functional, so the system knows to expect just one instance of the property on each item.
I add two instances of the base class ItemTypeA, one with "IsCategory1" set true and the other one set to false.
Protégé correctly show inference for the two instances and assign them to the CategoryA1 and CategoryA2 classes as expected. Sparql Query plugin misses the inference - but that seems to be expected as far as I know because that plugin inference support is limited. The OWL2Query tab plugin get the inference right.

Yet, Stardog query seems to not infere the above informations, no mater which reasoning level I set. Do I miss something obvious or is this the expected result?
If needed I can provide a simple usecase, just tell me and I will upload the test ontology I am using if you need to see that in more detail.
Thanks for the support