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: - Che cosa <is located in> Parigi
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