Assunzione di unicità del nome
# Assunzione di unicità del nome

L'assunzione di unicità del nome (in inglese abbreviato UNA, Unique Name Assumption) è un'assunzione semplificativa che viene fatta durante la definizione di alcuni linguaggi per ontologie e logiche descrittive. Nelle logiche in cui vale questa assunzione, nomi diversi fanno sempre riferimento ad entità differenti del mondo.

## Applicazioni

Nell'ambito dei sistemi logico formali di rappresentazione della conoscenza, l'assunzione di unicità del nome è conseguenza dell'assunzione del mondo chiuso, mentre non è generalmente valida secondo l'assunzione del mondo aperto. In scenari come quello del Web semantico, ad esempio, lo stesso concetto può essere presente in diverse ontologie con nome differente; per cui la UNA generalmente non è assunta.

In casi più specifici, tuttavia, anche stante l'assunzione di assunzione del mondo aperto, la UNA può rendersi necessaria per garantire importanti proprietà computazionali. È il caso, ad esempio, di molti linguaggi della famiglia DL-Lite. Il profilo OWL 2 QL, per supportare l'assenza di UNA (allineandosi alla semantica standard OWL) e allo stesso tempo garantire buone proprietà computazionali, deve invece rinunciare alla funzionalità dei ruoli e degli attributi.

## Esempi e implicazioni

Assumere valida l'assunzione di unicità del nome vuol dire, per esempio, che:

* definito soltanto che un'entità nominata "maiale" ha una proprietà tale per cui "il maiale è di colore rosa" non dice nulla sul colore del suino, nella realtà suo sinonimo, quindi alla domanda "il suino è rosa?", la risposta è falso, perché, in primo luogo, non è stata definita l'esistenza di un'entità di nome "suino" e di che colore sia, ed in secondo luogo perché non sarebbe consistente definire con un nome differente lo stesso soggetto. Non è data l'esistenza di sinonimi, che vanno eventualmente definiti come proprietà (nome:Maiale, sinonimo_1:Suino, sinonimo_2: Sus scrofa domesticus, etc.), pur rimanendo unico il nome identificatore scelto;
* se in una lista passeggeri di un volo aereo il nome di un passeggero presentatosi al check-in non risulta nella lista, sebbene questi stia utilizzando un nome alternativo o in altra lingua ma equivalente, assumendo che la lista sia da ritenersi veritiera e completa, allora ne consegue che questi non sia da considerarsi tra i passeggeri del volo;
* in una lista passeggeri di un volo, due passeggeri non possono avere lo stesso identificativo (motivo per cui non è conveniente utilizzare soltanto nome e cognome come identificativi unici per una prenotazione aerea, dati i frequenti casi di omonimia nella realtà): non è consistente definire due o più entità con nomi diversi quando queste siano identiche.

## In OWL

In OWL (Web Ontology Language), la cui semantica è basata sulle logiche descrittive, l'assunzione di unicità del nome non è data, ma sono definiti dei costrutti espliciti che dichiarano l'identità o distinzione tra entità.

Le due dichiarazioni a seguire esprimono relativamente l'identità tra due nomi o la loro distinzione:

* owl:sameAs
* owl:differentFrom

Sebbene l'uso di owl:sameAs sia generalmente da incentivare al fine di garantire una stretta interconnessione fra diverse basi di conoscenza, in letteratura ne è anche stato criticato l'abuso, in quanto la proprietà è spesso usata con significati alternativi, quali "simile a", "rappresenta", ecc.

Fra gli altri problemi nell'uso di owl:sameAs, rientra il fatto che non è una proprietà simmetrica, per cui deve essere usata in entrambe le direzioni. Questo processo può risultare macchinoso quando si vuole connettere due entità appartenenti ad ontologie differenti, in quanto la scelta dev'essere condivisa dagli autori di entrambe le ontologie. Per esempio, supponendo di avere due entità, a:foo e b:bar, per asserire la loro equivalenza è necessario dichiarare:

* asserts "a:foo owl:sameAs b:bar" nell'ontologia a;
* asserts "b:bar owl:sameAs a:foo" nell'ontologia b.
