2

I have a simple OWL ontology that I have loaded into a GraphDB repo (standard prefixes omitted for clarity):

@prefix s: <urn:sample:> .

s:Fruit a owl:Class;
  owl:oneOf (s:Apple s:Banana s:Pear) .

[a owl:AllDifferent;
 owl:distinctMembers (s:Apple s:Banana s:Pear)] .

s:eats a owl:ObjectProperty .

s:Fruitivore owl:equivalentClass 
    [a owl:Restriction;
     owl:onProperty s:eats;
     owl:allValuesFrom s:Fruit].

s:Henry a s:Fruitivore .

s:LimitedDiet owl:equivalentClass 
    [a owl:Restriction;
     owl:onProperty s:eats;
     owl:maxCardinality 3].

I'm asserting that there are only 3 types of fruit, and that Henry is someone who eats only Fruit.

Finally I've defined a class (LimitedDiet) of those individuals that eat no more than 3 different things.

If I load this, I see all 6 expected owl:differentFrom inferences (fruitA owl:differentFrom fruitB) as long as I choose owl-max as my ruleset.

However, regardless of which precanned ruleset type I choose for my repository, I never see the inference that Henry is an individual belonging to the class LimitedDiet.

Is this expected, given the available rulesets? If I wanted to define my own ruleset that could support this type of inference, are there any pointers anyone could direct me to that could help?

Also - should I have expected to see all:differentFrom assertions inferred in OWL-RL and OWL-QL as well as OWL-MAX? I thought they were both extensions of the latter.

Many thanks!

Stanislav Kralin
  • 11,070
  • 4
  • 35
  • 58
wabrit
  • 217
  • 2
  • 14
  • Can you explain why `Henry` should belong to class `LimitedDiet`? I don't see how you derive this from the given axioms. If you think because `Henry` has no `eats` relations at all in your data, then please look at the Open World Assumption characteristic of OWL. But I'm not sure whether this also holds for the rule processing engine in GraphDB. – UninformedUser Feb 28 '18 at 12:27
  • As I understand it (and this example is more or less identical to one given in Allemang & Hendler's book "Semantic Web for the Working Ontologist") the reasoning goes as follows: - Henry eats only Fruit (or to be precise, if Henry eats something, it's a fruit, which includes the case where he doesn't eat anything). - There are only 3 Fruits (closed world). - ergo Henry can only eat at most 3 different things. – wabrit Feb 28 '18 at 12:50
  • I can't see how this should work with [OWL-RL](https://www.w3.org/TR/owl2-profiles/#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules) rules. And I don't know the details of the OWL-MAX profile. – UninformedUser Feb 28 '18 at 13:04
  • OWL-Max [is not](http://graphdb.ontotext.com/documentation/free/reasoning.html#predefined-rulesets) "Max OWL". In GraphDB, "Max OWL" is rather OWL 2 RL, which supports 0 and 1 cardinality constraints only. BTW, even Pellet can't infer what you want. – Stanislav Kralin Feb 28 '18 at 13:42
  • Thanks both; it sounds like these examples, interesting though they are, are beyond the remit of most standard profiles in practical use today? – wabrit Feb 28 '18 at 13:52
  • On a more prosaic note, should the OWL-DL and OWL-RL rulesets in GraphDB have inferred the owl:differentFrom assertions from my ontology sample above? I was surprised they didn't, given that OWL-Max did and the fact that RL/QL are described as extensions of that in the docs. – wabrit Feb 28 '18 at 13:54
  • To answer my own question - OLW-RL and OWL-DL are focused on consistency checking arising from owl:distinctMembers, but don't infer owl:differentFrom assertions. Conversely, OWL-max does infer, but does not apply consistency checks. – wabrit Mar 01 '18 at 17:12

0 Answers0