[Pellet-users] Simple datatype restriction question.
Bijan Parsia
bijan at clarkparsia.com
Sat Jul 12 11:33:46 UTC 2008
On Jul 11, 2008, at 11:33 PM, Olivier Rossel wrote:
> Sorry to ask for something probably very simple.
> I have an ontology that defines available and unavailable items based
> on the value of its stock datatype value.
> At the moment Pellet is not able to infer which item is available or
> not (I tried in Swoop 2.2.1 and Swoop 2.3beta4).
> Did I miss something in my modeling?
> Any piece of advice is very welcome.
Georgios already gave you the specific answer (and the keys to the
general answer).
To simplify a bit, let's say you have a name (A) and a class
expression (EXPR) (say, a restriction or whatnot).
If you say:
A subClassOf EXPR
you are saying that if something is an A, then it is also an EXPR.
But notice that if something is EXPR, we don't know if it is an A,
thus Pellet won't conclude that it is an A.
(Necessary conditions; i.e., EXPR is necessary for being an A; once
you are an A you are all EXPR as well).
If you say
EXPR subClassOf A
Then Pellet, if it can prove something is EXPR (and that can be
tricky given the open world assumption), can *recognize* that it is
an A.
(Sufficient conditions; i.e., being all EXPRy makes you A (ok); it's
enough to be an A that you are all EXPR).
If you say:
A equiv EXPR
then you say both. You *define* A to be EXPR (and vice versa).
(Note that this all works with EXPRs on both sides in owl, even
indirectly. E.g., if you say:
A equiv EXPR1.
A equiv EXPR2.
then you've said:
EXPR1 equiv EXPR2.
Powerful stuff!)
Cheers,
Bijan.
More information about the Pellet-users
mailing list