# Gellish

Gellish è un linguaggio naturale controllato in cui l'informazione e la conoscenza possono essere espresse in una forma interpretabile da un computer, ma indipendente dal sistema utilizzato. Gellish è un sottoinsieme strutturato del linguaggio naturale adatto alla rappresentazione delle informazioni e della conoscenza, oltre che come successore dell'EDI (electronic data interchange). Dal punto di vista della modellazione dei dati, si tratta di un modello dei dati generico che include conoscenza e semantica specifiche di un dominio.
Sotto il profilo etimologico, "Gellish deriva originariamente da 'Generic Engineering Language', tuttavia è stato ulteriormente sviluppato in un linguaggio applicabile anche al di fuori della disciplina ingegneristica" (Van Renssen 2006).

## Panoramica

Gellish è stato progettato per l'espressione di specifiche complete e inequivocabili di prodotti, impianti e processi, e per le informazioni sul loro acquisto, sulla loro fabbricazione, installazione, esercizio e manutenzione oltre che per lo scambio di tali informazioni tra i sistemi, in modo indipendente dal sistema e interpretabile da computer. Gellish è inoltre pensato per l'espressione della conoscenza di queste cose.
La definizione di Gellish è fornita nel Gellish Dictionary, un grande 'dizionario intelligente' di concetti e relazioni tra quei concetti (inizialmente chiamato STEPlib). Il Dizionario è definito 'intelligente' ('smart dictionary'), perché in esso i concetti sono organizzati secondo una gerarchia tipo-sottotipo, rendendolo una tassonomia che supporta l'ereditarietà delle proprietà tra tipi e sottotipi. Inoltre, perché insieme ad altre relazioni tra i concetti il dizionario intelligente si estende in un'ontologia. Gellish ha una struttura oggetto-relazione-oggetto e, di conseguenza, comprende la definizione di un gran numero di tipi di relazione standard (oltre 650) che determinano la ricca capacità di espressione semantica del linguaggio.
In linea di principio, per ogni linguaggio naturale vi è una variante Gellish che è specifica per quella lingua. Ad esempio, Gellish Dutch (Nederlands Gellish), Gellish German (Gellish Deutsch), Gellish English ecc. Gellish non introduce una propria terminologia, come l'Esperanto, ma usa i termini propri dei linguaggi naturali. Così, per esempio, il dizionario Gellish English è un normale dizionario esteso con concetti aggiuntivi e con relazioni tra i concetti.
Esemplificando, il dizionario Gellish contiene le definizioni di concetti come 'pompa' e 'massa' e le definizioni di tipi di relazione. Questo dizionario definisce, ad esempio, i tipi di relazione che possono essere espresse con frasi standard di Gellish English, come <is a subtype of> ('è un sottotipo di'), <is classified as a> ('è classificato come un'), <has as aspect> ('ha come aspetto'), e <is quantified as> ('è misurato in'). Tali tipi di relazione standard e definizioni di concetti permettono ad un software alimentato da Gellish di interpretare correttamente le espressioni Gellish, soprattutto quando queste sono espresse in una tabella del database Gellish come segue:
| Termine sul lato sinistro | Tipo di relazione | Termine sul lato destro |
| pompa centrifuga | is a subtype of | pompa |
| P-123 | is classified as a | pompa centrifuga |
| P-123 | has as aspect | la massa di P-123 |
| la massa di P-123 | is classified as a | massa |
| la massa di P-123 | is qualified as | 50 kg |
Full Gellish richiede colonne aggiuntive per gli identificatori unici, il linguaggio di espressione, il contesto di validità, lo stato, la data di creazione, ecc. Gellish Light, invece, richiede solo le tre colonne indicate sopra e pertanto non supporta, ad esempio, la distinzione tra omonimi, la traduzione automatica e la gestione della versione, che sono supportate da Full Gellish.
La raccolta dei tipi standard di relazione definisce i tipi di fatti che possono essere espressi in Gellish. Ci sono principalmente tre gruppi di tipi di relazione:
* Tipi per le relazioni tra generi di cose (classi). Sono destinati all'espressione della conoscenza. Ad esempio, la relazione di specializzazione nella prima riga dell'esempio precedente,
* Tipi per le relazioni tra le cose individuali (individui, istanze delle classi). Sono tipi dedicati all'espressione di informazioni su cose singole. Ad esempio il possesso di un aspetto espresso dalla relazione nella terza riga dell'esempio.
* Tipi per le relazioni tra individui e classi. Sono utili per i collegamenti tra gli individui ed i concetti generali nel dizionario (o per estensioni private del dizionario). Ad esempio le relazioni di classificazione e di qualificazione di cui sopra.
Chiunque può estendere il dizionario Gellish e i tipi di relazione con concetti definiti in proprio.
Nel Dizionario Gellish è integrata una base di conoscenza basilare dell'ingegneria. Tale conoscenza è a sua volta espressa in Gellish. In genere il dizionario Gellish viene utilizzato per selezionare le classi per una classificazione o come terminologia standard (metadati) o per armonizzare i dati in sistemi informatici diversi o come strumento in un motore di ricerca.
Gellish utilizza un identificatore numerico per ogni concetto. Per esempio, 130206 (pompa) e 1225 (is classified as a). Questo fa sì che i concetti siano identificati in modo indipendente dal linguaggio naturale. Una conseguenza di ciò è che le informazioni e le conoscenze espresse in Gellish in una particolare variante della lingua possono essere automaticamente tradotte e presentate in qualsiasi altra variante della lingue per la quale esiste un dizionario Gellish. Ad esempio, un computer può automaticamente esprimere in tedesco la seconda espressione Gellish dell'esempio precedente come segue: - P-123 'ist klassifiziert als ein' Zentrifugalpumpe

## Modelli in Gellish

In Gellish possono essere espressi modelli di informazioni, come Facility Information Models e Building Information Models (BIMS), così come modelli della conoscenza, modelli dei requisiti, dizionari, tassonomie e ontologie. Ogni tipo di modello richiede la sua propria semantica e quindi il suo proprio sottoinsieme di tipi di relazione dal Dizionario Gellish.

## Gellish Database

Gellish è solitamente espresso in forma di Gellish Database che consiste di una o più tabelle. Ogni tabella del database Gellish consiste di una serie di colonne standard (o di un sottoinsieme di quelle standard). Ogni riga in una tabella è adatto alla registrazione di qualsiasi fatto (principale) espresso nel linguaggio Gellish così come alla memorizzazione di fatti ausiliari che forniscono informazioni relative al fatto principale, come il linguaggio, lo stato, l'autore, la data di creazione, ecc. Le colonne della tabella sono standardizzate, in modo che la progettazione del database diventi superflua. Le tabelle possono essere utilizzate come parte di una banca dati centrale o possono costituire un database distribuito, ma una tabella può anche essere scambiata via file o come corpo di un messaggio Gellish.
Il nucleo di una tabella del Database Gellish è costituito da tre colonne:
* un oggetto sul lato sinistro
* un tipo di relazione
* un oggetto sul lato destro
Quando ogni cosa possiede un identificatore univoco (UID) e almeno un nome, il nucleo esteso di una tabella diventa come segue:
| Linguaggio | UID oggetto lato sinistro | Nome oggetto lato sinistro | UID fatto | UID tipo di relazione | Nome tipo di relazione | UID oggetto lato destro | Nome oggetto lato destro | Stato |
| Inglese | 101 | La torre Eiffel | 201 | 5138 | is located in | 102 | Parigi | Accettato |
| Inglese | 101 | La torre Eiffel | 202 | 1225 | is classified as a | 40903 | torre | Accettato |
| Inglese | 102 | Parigi | 203 | 1225 | is classified as a | 700008 | città | Accettato |
Nell'esempio precedente, i concetti denominati 'torre' e 'città', così come i tipi (standard) di relazione sono selezionati con i loro UID dal Gellish English Dictionary. Ciò permette di formulare le domande utilizzando lo stesso linguaggio Gellish. Per consentire di esprimere le query il linguaggio Gellish comprende termini standardizzati, come what, which, where e when. Per esempio, un software alimentato da Gellish dovrebbe essere in grado di fornire la risposta corretta alla domanda:
Una tabella del database completo Gellish ha colonne aggiuntive per esprimere fatti ausiliari che supportano per esempio l'uso di sinonimi e omonimi, linguaggi multipli, ruoli, contesti di validità, intenzione, unità di misura, data dell'ultima modifica e di riferimento.
Gellish consente anche la traduzione automatica, grazie all'impiego degli UID indipendenti dalla lingua. Gli identificatori univoci sono la base che permette al software alimentato da Gellish di esprimere automaticamente i fatti esposti sopra in qualsiasi altra lingua per cui sia disponibile un Dizionario Gellish che utilizza gli stessi UID e fornisce una traduzione dei nomi degli oggetti, così come una traduzione dei tipi standard di relazione, come ad esempio <is located in> e <is classified as a>. Si noti che questa capacità di traduzione automatica vuol dire che una query/domanda espressa in un linguaggio particolare, ad esempio l'inglese, può essere utilizzata per cercare in un database Gellish in un'altra lingua (per esempio cinese), mentre la risposta può essere presentata in inglese!
Una tabella di database Gellish può essere implementata in qualsiasi formato tabellare. Per esempio, può essere implementata come un database SQL o in altro modo, come un file di tipo STEPfile (secondo la norma ISO 10303-21), o come un semplice foglio di calcolo, ad esempio in Excel, come il Dizionario Gellish stesso. Le tabelle del database Gellish possono anche essere descritte in una forma equivalente, utilizzando RDF/Notation3 o XML. Una rappresentazione di "Gellish in XML" è definita in uno schema XML standard. Si consiglia di attribuire ad un file XML con i dati in base a tale schema XML l'estensione di file GML, mentre GMZ sta per "Gellish in formato XML zippato" (cioè in formato compresso).
Una delle differenze tra Gellish e RDF, XML o OWL è che Gellish English comprende un vasto Dizionario Inglese di concetti, tra cui anche un grande (e estendibile) insieme di tipi di relazione standard per costruire espressioni interpretabili dai computer (in una forma che è anche leggibile per i non professionisti IT). D'altra parte, 'linguaggi' come RDF, XML e OWL definiscono solo alcuni concetti di base, cosa che lascia molta libertà per i loro utilizzatori nella definizione dei concetti del loro 'linguaggio di dominio'. Questa libertà ha però lo svantaggio che gli utenti di 'linguaggi' come RDF, XML o OWL ancora non adottano un linguaggio comune e, in ogni caso, non possono integrare dati che provengono da fonti diverse. Gellish è progettato per fornire un vero linguaggio comune, perlomeno in misura molto maggiore e quindi fornisce molta più standardizzazione e comunanza di terminologia ed espressioni.

## Gellish rispetto a OWL

OWL (Web Ontology Language) e Gellish sono entrambi pensati per un utilizzo nell'ambito del web semantico Tuttavia vi sono notevoli differenze tra i due linguaggi. Le differenze principali sono le seguenti:
1. Destinatari e metalivello OWL è un metalinguaggio che include una grammatica di base, ma non dispone di un dizionario. OWL è pensato per essere utilizzato da parte di sviluppatori di sistemi informatici e sviluppatori di ontologie per creare queste ultime. Gellish è un linguaggio, che comprende una grammatica, un dizionario e un'ontologia. Gellish può essere utilizzato sia dagli sviluppatori di sistemi informatici sia da parte degli utenti finali e può essere usato anche da sviluppatori di ontologie, quando occorre estendere l'ontologia di Gellish. Gellish non fa una distinzione tra un metalinguaggio e un linguaggio utente, ma integra in un unico linguaggio i concetti propri di entrambi i 'mondi'. Così, il dizionario di Gellish English contiene concetti equivalenti ai concetti di OWL, ma contiene anche concetti di un comune dizionario nella lingua inglese.
2. Vocabolari e ontologie OWL può essere utilizzato per rappresentare in modo esplicito il significato dei termini in vocabolari e le relazioni tra questi termini. In altre parole: può essere utilizzato per la definizione di tassonomie o ontologie I termini di un particolare vocabolario non diventano parte del linguaggio OWL. Pertanto, OWL non include le definizioni dei termini in linguaggio naturale come strada, auto, bullone o lunghezza. Tuttavia, esso può essere utilizzato per definire e costruire un'ontologia. La parte di ontologia superiore ('upper ontology') di Gellish può essere utilizzata anche per definire termini e relazioni tra essi. Tuttavia, molti di tali termini del linguaggio naturale sono già definiti nella parte inferiore del dizionario (tassonomia/ontologia) stesso di Gellish. Così, termini quali strada, auto, bullone o lunghezza fanno parte del linguaggio Gellish. Pertanto, Gellish English costituisce un sottoinsieme dell'Inglese naturale.
3. Sinonimi e funzionalità multi-lingua Gellish distingue tra i concetti ed i termini diversi utilizzati come nomi (sinonimi, abbreviazioni e traduzioni) per fare riferimento ai concetti in contesti e linguaggi diversi. Ogni concetto è identificato da un identificatore univoco indipendente dal linguaggio naturale e possono esistere numerosi termini diversi per indicare quel concetto nelle diverse lingue. Ciò consente la traduzione automatica tra diverse versioni di Gellish in linguaggio naturale. In OWL i vari termini in diverse lingue e i sinonimi sono in linea di massima concetti differenti che devono essere dichiarati uguali mediante relazioni esplicite di equivalenza. Da un lato questo è un concetto semplice, ma rende la traduzione automatica notevolmente più complessa.
4. Ontologia superiore OWL può essere considerata come un'ontologia superiore costituita da 54 'costrutti di linguaggio' (costruttori o concetti). La parte superiore dell'ontologia di Gellish è attualmente composta da oltre 1500 concetti di cui circa 650 sono tipi standard di relazione. Inoltre, il dizionatio e la tassonomia di Gellish contengono complessivamente più di 40.000 concetti. Ciò evidenzia la grande ricchezza semantica e l'ampia capacità espressiva di Gellish. In aggiunta, Gellish contiene le definizioni di molti fatti relativi ai concetti definiti e tali fatti sono espressi come relazioni tra i concetti medesimi.
5. Estensibilità OWL ha un gruppo fisso di concetti (termini) che viene esteso solo quando lo standard OWL stesso è esteso. Gellish è estensibile da qualsiasi utente.

## Storia

Gellish costituisce uno sviluppo ulteriore delle norme ISO 10303-221 (AP221) e ISO 15926 Esso integra ed estende i concetti definiti in entrambi gli standard. Un sottoinsieme del Dizionario Gellish (STEPlib) è utilizzato per la creazione dello standard ISO 15926-4.

## Collegamenti esterni e riferimenti

* Gellish è descritto maggiormente nel progetto Gellish su SourceForge.
* L'area download del progetto Gellish consente il download gratuito della versione completa del dizionario di Gellish English secondo le condizioni 'open source'.
(Per un'ulteriore definizione di 'open source' vedere )
* A. Van Renssen, Gellish: A Generic Extensible Ontological Language, Delft University Press, 2005, ISBN 90-407-2597-7. Una versione pdf è disponibile gratuitamente presso la Delft University Library
* Il pacchetto della documentazione di Gellish su SourceForge contiene diversi documenti su Gellish, come
** il Gellish English Application Handbook
** la definizione del database di Gellish
** il manuale di estensione del Dizionario Gellish.
** linee guida per l'utilizzo di Gellish e per la creazione di cataloghi di prodotto.
** esempi con le descrizioni di una strada e di un sistema di lubrificazione e della conoscenza su di essi.
* Un'implementazione di Gellish in 'The Brain' presenta tra l'altro le attività e gli oggetti geografici e altre parti del Dizionario intelligente di Gellish.
L'implementazione 'Brain' include anche una base di conoscenza multi-lingua sui vini.
* Un quadro concettuale per la costruzione di database distribuiti utilizzando Gellish, su repository.tudelft.nl.
* Una semplice pseudo-implementazione di Gellish, su obromley.deoss.net. URL consultato il 26 ottobre 2009 (archiviato dall'url originale il 4 aprile 2011).
* Gellish, un linguaggio ontologico estensibile, su dupress.nl. URL consultato il 26 ottobre 2009 (archiviato dall'url originale il 24 luglio 2011).