Search Mailing List Archives


Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-owl] trouble in testing consistency

Timothy Redmond tredmond at stanford.edu
Thu Oct 2 11:55:12 PDT 2008


> Then, to test the inconsistency, I added this
> connection:
> "c1" uses "m3".
> This should not be correct, because an
> instance of classification_algorithm, according to the restriction,
> should "use" an instance of a method which "specify" the
> "classification" task, and this is not the case, because c1 uses m3, a
> method which "specify" the "feature_selection" task.



This is an example of the open world assumption.  You have actually  
said very little about c1 at this point.  Pellet correctly figures  
that a1 could be a member of

     "uses SOME (Method AND (specifies HAS classification))"

There are two obvious ways that this could happen.  The simplest is  
that perhaps m3 also specifies classification.  Nowhere did you rule  
this out so it remains a possibility.  Also perhaps c1uses some other  
method than m3 and that other method specifies classification.   
Finally there is another possibility that might not occur to you  
immediately.  It is possible that classification and feature_selection  
are actually two different names for the same individual.

One way to get an inconsistency would be to add the following assertions

    uses is functional
    specifies is functional
    the individuals classification and feature_selection are distinct.

If you do this then pellet will indeed generate an inconsistency.

> In addition, if I delete at all
> the connection between the c1 and m3 (so c1 has no connection to any
> Method), Protégé shows a red square around the "uses" property when I
> focus on the c1 instance (pointing out that there is an error).

To my way of thinking this is a problem with Protege.  What it is  
trying to suggest to you is that - since you did have an assertion  
implying that c1 would have a "uses" value then perhaps you should  
give that value a name and include the assertion.  But the reality is  
that it is perfectly acceptable not all not to include a uses value  
for c1.  Indeed pellet will simply figure out that there must be an  
individual there but not be able to determine if that individual is  
the same as any other individual in  your  ontology.

-Timothy



On Oct 1, 2008, at 3:25 AM, emanu.storti at tiscali.it wrote:

> Hello, I'm a university student in Computer Engineering. I'm building
> an owl ontology about algorithms with Protègè 3.3.1.
> My problem is to
> verify whether my ontology is consistent or not.
>
> I have this simple
> class structure:
> owl:Thing
> -Algorithm
> ---classification_algorithm (with
> 1 instance: named "a1")
> ---clustering_algorithm
>
> -Method
> ---
> classification_method (with 1 instance: "m1")
> ---clustering_method
> (with 1 instance: "m2")
> ---da_method (with 1 instance:"m3")
>
> -Task
> (with 2 instances: "classification" and "feature_selection")
>
>
> Then, I
> defined 2 object properties in this way:
> uses (domain:Algorithm, range:
> Method) == an algorithm uses a method
> specifies (domain:Method, range:
> Task) == a method specifies a task
>
> And the connections are:
>
> "m1"
> specifies "classification"
> "m3" specifies "feature_selection"
>
>
> Well,
> now I'd like to restrict the property "uses" for class
> "classification_algorithm", saying that a classification algorithm  
> MUST
> use at least 1 method which specifies "classification".
> Written in a
> formal way, in the "asserted condition" Tab of the
> classification_algorithm class I wrote:
>
> "uses SOME (Method AND
> (specifies HAS classification))" as a NECESSARY condition.
>
> 1st
> question: is it syntactically wrong?
> 2nd question: does it express the
> correct meaning?
>
>
> Then, to test the inconsistency, I added this
> connection:
> "c1" uses "m3".
> This should not be correct, because an
> instance of classification_algorithm, according to the restriction,
> should "use" an instance of a method which "specify" the
> "classification" task, and this is not the case, because c1 uses m3, a
> method which "specify" the "feature_selection" task.
>
> Anyway, Pellet
> says that the ontology is consistent.
> In addition, if I delete at all
> the connection between the c1 and m3 (so c1 has no connection to any
> Method), Protégé shows a red square around the "uses" property when I
> focus on the c1 instance (pointing out that there is an error).
> Even in
> this case, the reasoner says that the ontology is consistent.
>
> 3rd
> question: What's wrong? Doesn't consistency concern this kind of
> mistakes?
> 4th question: What kind of ontology test can show me that
> there is an error?
>
> Thank you in advance,
> Emanuele S.
>
>
> Con Tiscali Adsl 8 Mega navighi SENZA LIMITI e GRATIS PER I PRIMI  
> TRE MESI. In seguito paghi solo € 19,95 al mese. Attivala subito,  
> l’offerta è valida fino al 02/10/2008! http://abbonati.tiscali.it/promo/adsl8mega/
> _______________________________________________
> protege-owl mailing list
> protege-owl at lists.stanford.edu
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03




More information about the protege-owl mailing list