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] R: Re: trouble in testing consistency

emanu.storti at tiscali.it emanu.storti at tiscali.it
Fri Oct 3 04:05:31 PDT 2008


Thank you for your reply, I'm trying to get used to think in terms of 
Open World Assumption.

I'm wondering if it is possible to "close" an 
instance, that is whether an instance can be constrained to have 
properties with a specific cardinality (I mean, at instance level, 
rather than at  class level).
An example:
m3 could be described with a 
datatype property maxNumberOfTask = "2": so it should have only 2 task 
connected (that is, the cardinality of "specifies" property must be 
exactly 2).

It's different from saying that its class "specifies 
exactly 2 tasks", because I'd like to specify this from instance to 
instance.

My class "Classification_Method" should be "the set of all 
instances that "specifies"  the task "classification" AND that have 
"specifies" property with a cardinality defined by the instances 
themselves, as the value of maxNumberOfTask.

Classification_Method=
(specifies_task HAS "classification") AND (specifies_task EXACTLY (the 
value of the property maxNumberOfTask, different from instance to 
instance)) 
 
My question is: is it feasible to restrict a class using 
the value of its instances properties? It would mean that an instance 
must be semantically "self-coherent" to join that class (or, in other 
words, everything about that instance  has been said).

The last 
question is: I would like to define concept and relations using a 
formalism, in order to have a high level representation of the ontology 
and also to describe it in my thesis with a human-readable syntax 
(unlike RDF/XML).

Is there a standard logic language to do this? Maybe 
should I use DL standard representation? 
Where can I find any 
resources to learn how to use the syntax?


Thank you again,
Emanuele 
Storti

>
>> 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
>
>




_______________________________________________________________



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 09/10/2008! http://abbonati.tiscali.it/promo/adsl8mega/



More information about the protege-owl mailing list