Unique Name Assumption

Elyes Lehtihet lehtihet at iie.cnam.fr
Thu Apr 19 00:31:47 PDT 2007


Even by using Classes you will still have to deal with the unique name 
assumption. Again the only solution is to add systematically 
'owl:AllDisjoint' axioms between sibling classes - that should work if 
you are not using too much multiple inheritance... the reasoner will 
eventually infer inconsistencies...

All the best,
Elyes

------------- On 18/04/2007 22:40,Ed Shaya wrote:
> It does not seem to me to be a good idea to make individual 
> elements/atoms instances in the first place.  What if someone needs to 
> refer to a specific atom sitting in their Atomic Force Microscope 
> (AFM)?  For this you would want to make an individual of the Class 
> Carbon.
> <Carbon rdf:ID="MyCarbonAtom"/> where Carbon is a class.  This also 
> makes it possible to add isotopic species as subclasses.  We should 
> refrain from using individuals except for a named individual in the 
> universe: Earth, Algol, M31, Mike Brown, MyBigRedChair.
>
> One still should make the various types of atoms owl:disjointWith, 
> but, as I mentioned previously, we really need a new version of OWL to 
> make this more manageable because nearly every class is distinct from 
> every other class in astronomy.  In any event the only loss if you do 
> not use disjointWith is that a reasoner can not spot an error if 
> someone tries MyCarbonAtom is both Carbon and Silicon.
>
> Ed
>
>
> Thanks, Elyes for pointing out a weakness here.
> Ed
>
>
> Elyes Lehtihet wrote:
>> Hello,
>>
>> While exploring the AstroOntology, I have noticed that you create a 
>> set of individuals (instances) of the AtomicElement, SpectralType, 
>> etc. As you probably know, the web ontology language use the Unique 
>> Name Assumption: every concept is not, by default, necessary distinct 
>> from the others. It implies that the instances of your classes are 
>> not made 'explicitly' distinct for the reasoners : Carbon is not 
>> explicitly distinct from Calcium, etc. etc.
>>
>> The common pattern to solve this problem is to create an 
>> 'owl:AllDifferents' axiom (Protégé: OWL/Edit owl:AllDifferents...) 
>> that regroups the set of instances. After, one should create a new 
>> expression to enumerate the allowed values of the class. Example for 
>> the LuminosityClass: {LuminosityClassII LuminosityClassV 
>> LuminosityClassIII LuminosityClassIV LuminosityClassI}
>> This method assumes that a Class cannot take other values than the 
>> ones explicitly defined by the enumeration - But maybe there are more 
>> AtomicElement than the 14 that are cited :-)
>>
>> Best regards,
>> Elyes
>>



More information about the semantics mailing list