2

Lets say an ontology is defined as:

 classA:
    rel1 some classB

 classB
-------------------
individual_1 rel1 individual_2

individual_2
-------------------
objectProperty: rel1

   rel1 domain :classA
   rel1 range: classB
   rel1 inverse of rel2

objectProperty: rel2

Pellet deduce individual2 rel2 individual2 -that is OK, but does not deduce classB rel2 some classA.
why deducing between individual and class is different?

Also reasoner does not say anything about domain and range of rel2.
(I expect to declare classB as domain and classA as range of rel2)

alex
  • 7,551
  • 13
  • 48
  • 80
  • why should Pellet infer `classB SubClassOf (rel2 some classA)`? Based on which axioms exactly in your ontology? – UninformedUser Jan 07 '20 at 07:24
  • It's also important to say that not showing axioms in Protege doesn't mean that Pellet does not infer those. There is an obvious trade-off between what can be shown to the user and what not given that the number of inferred axioms is infinite. Moreover, Protege has some config options for reasoners where you can define the axioms computed and shown in the UI. – UninformedUser Jan 07 '20 at 07:27
  • 1
    Regarding the first comment: OWL reasoning is *deductive*, from general statements to specifics. Just because a single individual (or even a set of individuals) has some properties, does not mean somehting holds in general. That task, from specific to general is called *inductive reasoning*. So, no in OWL you can't deduce general axioms based on facts about `individual_2` – UninformedUser Jan 07 '20 at 07:32
  • @AKSW According to the fact that `rel2 inverse of rel1` and `classA SubClassOf (rel1 some classB)` ,Which axiom should be added to the ontology to make pellet to infer `classB SubClassOf (rel2 some classA)`? – alex Jan 07 '20 at 08:29
  • 1
    Imagine that `b1` belongs to `ClassB`. Now what? How can one prove that there exists respective `a1`? But obviously, `((rel2 some classA)) SubClassOf ClassB`. As for domain and range, theu should be inferred. Check *Reasoner > Configure*. – Stanislav Kralin Jan 13 '20 at 15:59
  • @StanislavKralin thats the point! so we can say `((rel2 some classA)) SubClassOf ClassB` but not `ClassB subClassOf ((rel2 some classA)) `.I was drawing the opposite – alex Jan 13 '20 at 19:03

0 Answers0