[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