Semantic Web. Esplorazione/visualizzazione di ontologie

I parte: Introduzione e analisi dei tool attualidi

In questo articolo cercheremo di capire quali caratteristiche siano da valutare nella scelta di un tool per la navigazione e consultazione di ontologie. Successivamente prenderemo in esame alcuni dei più interessanti tool open source esitenti e ne metteremo a confronto le caratteristiche individuando pregi e difetti dal punto di vista dell‘utilizzatore finale.

Introduzione

Il semantic web è ormai una realtà nell'ambito del ICT e come tale anche le ontologie sono diventate un concetto piuttosto comune nell'informatica. L'affermazione poi di linguaggi e formati standardizzati per la loro definizione, come RDF e OWL, ne favoriscono la scrittura o l'esportazione automatica da sorgenti eterogenee come pagine web, documenti di testo o database. Ciò di fatto si traduce in una proliferazione di ontologie sui più disparati domini di conoscenza: dalle più generali e filosofiche come SUMO [SUMO] e MILO [MILO] che cercano di rappresentare un riferimento per altre ontologie a quelle più verticali e specializzate, come FOAF [FOAF] per la descrizione delle persone o GENE Ontology (GO) [GENE] per la descrizione dei modelli genetici. Insomma le ontologie non mancano; quello che sembra mancare di più è l'effettiva percezione della loro reale utilità. Ecco allora che una delle tante problematiche correlate con l'effettivo uso delle ontologie riguarda la loro consultazione diretta da un esperto di dominio. Ciò dipende in effetti dall'intrinseca complessità di queste strutture (grafi) e quindi indirettamente da quanto le applicazioni che le usano riescono a farcele consultare in maniera trasparente, efficiente e interattiva. A partire da queste tre dimensioni cercheremo di definire una serie di caratteristiche per la valutazione e comparazione dei tool presi in esame.

Profilo base dei tool e caratteristiche di confronto

Se si effettua una ricerca su Google usando come parole chiave "Ontology browsing" o "Ontology viewing" si otterrà un set di risultati piuttosto vasto ed eterogeneo dovuto al fatto che il concetto di navigazione ontologica è piuttosto generico e vasto. Esso infatti comprende tutta una serie di applicazioni/piattaforme  che si possono differenziare in base alle seguenti macro-caratteristiche:

  • Tipologia di tool e utente di riferimento: per l'uso diretto e caricamento di ontologie direttamente da utente finale (sviluppatore o esperto di dominio che sia) piuttosto che una piattaforma o un framework da configurare per la navigazione e consultazione di ontologie specifiche (esempio per portali semantici).
  • Modalità di consultazione: testuale/ipertestuale piuttosto che grafica (grafi, diagrammi etc...)
  • Tipo di ontologie navigabili: una ontologia specifica cablata piuttosto che una qualsiasi ontologia in un formato W3C standard come OWL o RDF

Ai fini di questo articolo prenderemo in considerazione solo i tool che rispettano il seguente profilo:

  • direttamente utilizzabili dall'utente finale: sono escluse quindi piattaforme per portali semantici (come SWED o Longwell) e framework o librerie per il rendering specifico di ontologie (come jOWL). In pratica il tool deve essere direttamente installabile e usabile o eventualmente accessibile online.
  • modalità di consultazione di tipo testuale/hypertestuale. In questo modo l'ontologia deve poter essere navigabile tramite ricerche di termini e navigazione cross-concept via link (tipo link hypertestuale)
  • caricamento di una qualunque ontologia standard: deve quindi essere possibile almeno teoricamente poter caricare una qualsiasi ontologia e quindi per tutte le ontologia di un formato standardizzato come RDF/OWL.

Nota: quest'ultima proprietà restringe di molto il campo di scelta in quanto la maggioranza dei tool è cablata su una particolare ontologia (spesso anche non standardizzata) in modo da ottimizzare e sfruttare al meglio la conoscenza a priori del modello (es. Ontology Lookup Service [OLS] per la genetica o KSMSA Ontology Browser [KOB] per SUMO e MILO.

I tool che andremo quindi ad analizzare saranno: Protègè 3.4 [PR3_4] , SWOOP [SWO], OWLSight [OSIG], e Ontology Browser [ONB], Ontology Explorer [OEXP1] [OEXP2] .
Prima di descrivere più in dettaglio i vari tool cerchiamo di stilare una lista delle caratteristiche per la comparazione:

Caratteristiche generiche

Online o Stand-alone

Permettono editing

Prevedono funzionalità di reasoning/inferenza

Caratteristiche relative alla tassonomia

Uso delle label - se presenti rdf:label le sfruttano

Mostrano istanze nell'albero della tassonomia

Caratteristiche di ricerca

Ricerca testuale sull'intera ontologia

Ricerca interattiva (auto-fill)

Ricerca anche su rdf:label e rdf:comments

Informazioni mostrate (classi, proprietà e istanze)

Descrizioni dei concetti

Proprietà ereditate

Ontology Meta information

Scelta della lingua

Gestione restrizione di tipo "hasValue"

Altre restrizioni OWL

Tassonomia delle proprietà

Interfacce e navigazione

Link fra concetti

Visualizzazione multipla di concetti (tabbed)

A partire da queste caratteristiche alla fine dell'articolo andremo a definire una tabella riassuntiva di comparazione di tutti i tool esaminati.

Protègè 3.4 beta

Protègè è un tool opensource per lo sviluppo ed editing avanzato di ontologie OWL/RDF. Fornisce tuttavia anche un discreto supporto per la consultazione e il data-entry attraverso funzionalità di ricerca (piuttosto primitive) e di creazione automatica di form per l'immissione di dati.

Protègè (la cui versione 4 è già uscita ma è ancora una alpha "under construction") è sviluppato e mantenuto dallo Stanford Center for Biomedical Informatics Research presso la Stanford University School of Medicine.  Attualemente ne è stata anche pubblicata anche una versione alpha online [WPRO] basata su GWT e AJAX.

Il tool permette di caricare un qualsiasi file OWL o RDF (da locale o da remoto) per poi salvarlo come progetto "pprj" in locale.

Una volta caricata l'ontologia, Protègè espone tutta una serie di informazioni organizzati per "tab" configurabili: tassonomia, proprietà, istanze e tante altre informazioni più avanzate principalmente volte all'editing.

 

 

Figura 1 - Protègè 3.4 beta

Come si è detto il tool è organizza le sue funzionalità per "tab" i cui principali sono:

Metadata - presenta tutte le meta informazioni che descrivono l'ontologia. In particolare, le ontologie importate, l'URI associato, commento, label e i namespace con relativi prefissi utilizzati. Ogni informazione è ovviamente editabile. Nella parte denominata "Ontology Browser" è possibile vedere quali siano le ontologie importate e con quale gerarchia oltre che importarne di nuove.

OWL Classes - presenta l'albero della tassonomia di tutte le classi (anche quelle importate) e una serie di funzionalità per cercare, creare, editare e cancellare le classi. Selezionando una classe dall'albero a sinistra (SUBCLASS EXPLORER) è possibile vedere/modificarne tutta le relative "annotation property" (id, comments, label) oltre che gestire le proprietà (object e datatype) che modellano la classe (aventi cioè la classe come dominio) attraverso il pannello "Properties". È anche possibile visualizzare o modificare, tramite un editor apposito, le restrizioni OWL (allValuesFrom, hasValue etc...) sulle singole proprietà relativamente a quella particolare classe. Questo tipo di funzionalità è sicuramente una delle più avanzate e meno comuni fornite dagli attuali tool.

In sostanza questa vista risulta una delle più importanti e utili al momento dello sviluppo in quanto permette di creare l'intero modello dell'ontologia in termini di classi e delle loro proprietà relativamente alla tassonomia globale.

 

 

Figura 2 - Protègè 3.4 beta

 

Properties - qui è possibile visualizzare la tassonomia globale delle proprietà suddivise in base al tipo (Object Property, Datatype Property). Anche in questo caso selezionando una proprietà o cercandola  tramite l'apposito campo di ricerca in fondo a sinistra, sarà possibile editare nome(ID), label, comment e definire dominio e codominio della proprietà.

 

 

Figura 3 - Protègè 3.4 beta

Nel caso la proprietà sia di tipo ObjectProperty (ossia da classe a classe) si potrà anche vedere o specificare se è Functional, InverseFuncionatl, Symmetric o Transitive e infine anche specificarne l'eventuale proprietà inversa.

Individuals - qui è possibile, tramite il SubClass Browser navigare la tassonomia e vedere quali siano le istanze delle classi. Quest'ultime vengono però visualizzate non all'interno della tassonomia ma in un pannello apposito a parte chiamato InstanceBrowser. A destra dell'Instance Browser c'è  il pannelo principale (Individual Editor) per la visualizzazione e modifica di tutti i valori delle proprietà dell'istanza selezionata nell'Instance Browser.

Nel caso di valori di Object Property le istanze valore possono essere esaminate aprendo il loro pannello (finestra di pop-up) con un doppio click. Anche per le istanze è possibile effettuare una ricerca, visualizzarne comments e labels nonche' ovviamente editare qualunque campo.

 

 

Figura 4 - Protègè 3.4 beta


 

Forms - questo tab serve per configurare i campi editabili per l'immisione di nuove istanze. In pratica tramite un pannello Form Browser  (del tutto simile al SubClass Browser) è possibile cercare o selezionare una particolare classe e per essa definire una form di immissione istanze che verrà poi presentata nel pannello Individual Editor del tab Individuals. Questo tab è teoricamente molto utile per definire una interfaccia di data-entry in maniera semi automatica e veloce a partire dalle informazioni del modello. Praticamente però risulta troppo legata all'uso interno a Protègè e quindi di solo appannaggio dello sviluppatore e non di un possibile utente finale esperto di dominio.

Figura 5 - Protègè 3.4 beta

Protègè ha molte altre funzionalità potenti che però sono legate agli aspetti di sviluppo e che quindi non sono di interesse per questo articolo. Vanno però menzionate per la loro importanza  la possibilità di importare esportare l'ontologia in diversi formati (N-TRIPLE, N3, TURTLE etc...), di gestire repository locali di ontologie per poter lavorare in maniera indipendente da locale e infine soprattutto la sua forte estendibilità basata sui plugin (tra cui è bene menzionare Jambalaya [JAMBA] per la consultazione grafica dell'ontologia).
In conclusione possiamo dire che Protègè è oggi forse l'ambiente più completo e usato per la creazione e manutenzione di ontologie. Ciò di fatto porta a usarlo a volte in maniera impropria anche come tool per la consultazione. Impropria perche' Protègè è essenzialmente pensato per l'esperto di ontologie, colui che ragiona in termini di classi e sottoclassi, di Datatype e Object property, di "equivalent class" e "same as" etc..., e che quindi è interessato più alla definizione e gestione del modello che alla conoscenza di dominio contenuta nelle istanze. Ecco allora che la ricerca di termini e relazioni risulta piuttosto inappropriata e banalmente legata a dei pattern-matching solo sugli id dei concetti, la navigazione è possibile solo sulla tassonomia e non in maniera ortogonale rispetto alle proprietà specifiche del dominio modellato come previsto da tecniche come il "faceted browsing."

SWOOP

SWOOP è un tool OpenSource per l'editing ma anche la navigazione di ontologie OWL basato su una interfaccia ad link hypertestuali (tipo pagine HTML). È una applicazione desktop sviluppata da MIND lab presso l'Università del Maryland. Attualmente il tool è fermo ad una release del 2007 (2.3 beta 4).

Figura 6 - Swoop

Swoop permette di caricare più ontologie OWL contemporaneamente selezionabili poi in un secondo momento dal pannello in alto a sinistra "Ontology List".

Selezionando una ontologia vengono visualizzate nel pannello principale alcune informazioni generali come il numero di classi, proprietà e istanze ma anche il namespace e le ontologie importate.

A differenza di Protègè però non vengono mostrate label e commenti (spesso informazioni testuali molto utili invece a descrivere globalmente una ontologia)

Figura 7 - Swoop

Per ogni ontologia selezionata il tool fornisce due pannelli principali: uno per la navigazione dell'albero delle classi e delle proprietà  e uno per la visualizzazione dei dettagli dell'elemento selezionato. Tramite un check "Editable" è possibile decidere di visualizzare l'ontologia solo in modalità di consultazione oppure se renderla editabile.

È possibile anche effettuare ricerche di termini (pattern matching) su una particolare ontologia o su tutte quelle attualmente caricate usando il campo di ricerca "Lookup" in fondo a sinistra. Tutta la navigazione quindi è basata sulla tassonomia e sui link hypertestuali presenti nelle schede di dettaglio dei concetti. Di fatto classi, proprietà e istanze sono tutti link alle rispettive pagine di dettaglio, per cui partendo da una classe è possibile cliccare una delle sue istanze (se presenti) sotto la voce "Instances" e andare alla pagina con i dettagli relativi all'istanza.

Figura 8 - Swoop

L'idea infatti del tool è quella di dare all'utente una percezione della navigazione molto prossima a quella della normale navigazione di un sito web con tanto di pulsanti "avanti" e "indietro" in alto a sinistra.
Una caratteristica che ritengo degna di nota di questo tool è di avere fra le opzioni la possibilità di scegliere di usare sempre le label (quando presenti) per la visualizzazione dei concetti al posto degli ID.

Nota: la maggior parte dei tool commettano l'errore di usare rdfs:ID come unico identificativo visuale e nome di un oggetto. Ma non non è detto che questo abbia sempre un senso logico (potrebbe essere un indice alfanumerico o un codice univoco). Il nome leggibile di un concetto o una qualsiasi risorsa in RDF è deputato all'elemento standard rdf:label. Certo, non garantisce l'univocità ma da un punto di vista di consultazione è molto più importante comprendere un termine che evitare di trovarlo ripetuto. Sarebbe come mostrare le chiavi primarie dei record di un DB al posto di un campo "nome".

In conclusione SWOOP è sicuramente un tool interessante per il fatto che cerca di proporsi anche come viewer oltre che come editor di ontologie. Ciò lo si capisce dall'opzione Editable per mascherare le funzionalità di editing , dal tentativo di presentare una ontologia come un sito web sfruttando la "naturale" navigazione con link ipertestuali e dall'uso delle label  al posto degli ID.

Purtroppo però anche SWOOP come Protègè è fortemente rivolto all'esperto di ontologia in quanto non maschera le metainformazioni di modello per esaltare la fruibilità delle informazioni di dominio.

OWLSight

OWLSight è una applicazione web basata GWT [GWT] (Google Web Toolkit) sviluppata da una società di nome Clark & Parsia (gli sviluppatori del famoso resoner Java Pellet), nel 2008. Il tool è essenzialmente mirato alla sola esplorazione di ontologie OWL online. Per questo motivo punta molto a una gradevole interfaccia che sfrutta molto l'interattività dei widget forniti da GWT.

Figura 9 - OWLSight

Una volta caricata l'ontologia OWL in alto vengono visualizzate una serie di informazione globali come numero di classi, proprietà (differenziate in base al fatto che siano Object o Datatype) e il numero di istanze. Non vengono però riportate nel le ontologie importate e ne label e comment di descrizione sommaria.
Il tool non è dotato di un motore di ricerca sui concetti quindi tutta la consultazione avviene tramite la tassonomia visualizzata nel pannello di sinistra ClassTree. Qui viene riportato l'albero navigabile delle classi senza però nessuna informazione descrittiva a corredo e senza presentare le istanze.

Nota: continua a restarmi ignota la motivazione per cui la maggioranza dei tool non presenta le istanze nell'albero delle classi quando da un punto di vista dell'esplorazione tassonomica risulterebbe molto comodo scoprire direttamente nell'albero le istanze delle classi come foglie.

Cliccando su una classe è possibile vedere nel pannello principale (a destra) la scheda di descrizione con informazione come superclassi, sottoclassi, sottoclassi inferite (ossia computate tramite description logic da un reasoner) e lista delle eventuali istanze. Una grave mancanza del tool sta nel fatto che la principale informazione relativa ad una classe, ossia quali siano le sue proprietà che di fatto la modellano in maniera esplicita, non sono riportate. Ciò ovviamente non permette all'utente finale (che io identifico sempre nel caso estremo dell'esperto di dominio) di comprendere quali siano le caratteristiche che modellano e descrivono un certo concetto.

Oltre all'albero delle classi è possibile visualizzare l'albero delle Proprietà tramite il tab "Property Tree"

Figura 10 - OWLSight

Le proprietà non sono differenziate tra DataType e Object type e questo da un punto di vista della consultazione è un bene in quanto l'utente finale non necessita di questo tipo di separazione. Anche nel caso delle proprietà selezionandone una viene visualizzato il pannello di dettaglio che mostra gli attributi della proprietà (functional, inverse functional, simmetric etc...), il dominio (unico modo per scoprire quali proprietà abbia una certa classe) i range e, se presente, la proprietà inversa.
Infine selezionando una istanza (dalla lista di quelle di una classe o dalla lista globale delle istanze) verrà aperto nel pannello principale la descrizione di una istanza principalmente in termini di annotazioni rdf, classi (implicite ed esplicite) di appartenenza e valori delle proprietà (in questo caso però divise in object property e datatype).

Figura 11 - OWLSight

In conclusione il tool risulta sicuramente accattivante dal punto di vista grafico e molto interattivo, sicuramente interessante dal punto di vista architetturale, ma questo non basta certo a renderlo un tool davvero orientato alla consultazione da parte di un utente non esperto di ontologie.

L'assenza della ricerca lo rende fortemente limitato alla navigazione dell'albero delle classi. Questo non è pensabile per ontologie complesse e profonde in cui la tassonomia rappresenta una formalizzazione organizzativa delle informazioni e non un modo per navigarle. Va anche detto che la strana scelta di non visualizzare le proprietà di una classe non aiuta certo l'utente ad avere una percezione chiara ed immediata dei modelli concettuali descritti.

Infine, come anche per gli altri tool, le informazioni non sono rese all'utente in maniera trasparente rispetto terminologia tecnica dell'ontologia. Concetti come annotation, label, Object Properties o Inferred Superclasses non dovrebbero essere mostrati all'utente finale il quale viene solo confuso da questi concetti specifici per le ontologie.

Ontology Browser

Questo tool è essenzialmente una applicazione online sviluppata e mantenuta dall'Università di Manchester che trasforma dinamicamente una ontologia in pagine html. Principalmente orientata alla consultazione online di ontologie OWL, risulta però piuttosto anti-intuitiva come interfaccia per l'assenza quantomeno di un albero tassonomico che funga da guida.
Una volta caricata l'ontologia viene presentato l'elenco delle ontologie importate da cui sarà possibile selezionare quella di partenza. In questo modo però l'utente deve conoscere a priori quale ontologia (solo dal nome) possa contenere le informazioni che cerca.

Una volta selezionata una ontologia sarà visualizzata una pagina che organizza Annotazioni (labels e commenti), Riferimenti (accesso a classi, proprietà e istanze) e gli eventuali import dell'ontologia stessa.

Figura 12 - Ontology Browser

In alto è presente una ricerca interattiva con feed-back dinamico che costituisce il miglior punto di partenza per la navigazione. Digitando infatti una stringa è possibile vedere dinamicamente il set di risultati cambiare (con riferimenti agli ID dei concetti e non delle label). Selezionando poi un elemento dalla lista verrà visualizzata la sua pagina di dettagli.

Nota: ancora una volta si fa totale affidamento sul fatto che l'ontologia deputi agli ID una stringa che abbia senso logico. Cosa accadrebbe però con una ontologia autogenerata che magari usa codici alfanumerici univoci?

Cliccando invece sulla navigazione per classi (Classes) viene presentata una lista piatta di tutte le classi presenti. Ciò significa che non viene visualizzato un albero navigabile e che quindi per sapere le relazioni di gerarchia è necessario aprire una classe e vedere le relative informazioni (subclasse superclass).

Figura 13 - Ontology Browser

Nel dettaglio della classe vengono visualizzate la gerarchia relativa alla classe selezionata, le annotation e le proprietà che modellano la classe nel pannello Usage. In particolare nell'elenco di proprietà (non divise in object e datatype) sono riportate sia quelle che partono dalla classe (per cui la classe è dominio) sia quelle che arrivano su quella classe (per cui la classe è range). In questo modo l'utente potrebbe capire quali siano le proprietà entranti e uscenti. Dico "potrebbe" perche' ovviamente l'uso di termini tecnici come "domain" e "range" non sono naturali per un utente inesperto di ontologie e quindi di fatto queste info risultano poco intuitive.

Nota: uno dei modi per rendere trasparenti le informazioni rispetto ai costrutti ontologici è anche quello di mascherare o individuare forme più intuitive di presentare tali costrutti. Per esempio le proprietà di cui una classe (concetto) è domain dovrebbero essere semplicemente rappresentate come relazioni che caratterizzano il concetto e che lo connettono con altri concetti. Le proprietà di cui la classe è range invece potrebbero essere rappresentate come relazioni entranti che partono da un concetto e arrivano sul concetto in oggetto.

Sempre nel dettaglio delle classi è anche possibile vedere quali restrizioni siano associate alle proprietà per  quella classe. Queste vengono rappresentate nel pannello "SuperClasses".

L'elenco delle istanze di una classe invece è presentato nel pannello Usage in quanto una istanza fa riferimento a quella classe come tipo.

Aprendo il dettaglio di una proprietà è possibile visualizzare la sua gerarchia fra le relazioni dell'ontologia, le sue annotazioni, dominio e range e la sua eventuale inversa. Nel pannello Usage delle proprietà vengono riportati tutti gli usi della proprietà nell'ontologia quindi come legame fra istanze o come legame fra classe/classe (Object Type) o classe/literal per le datatype.

Questo tipo di informazioni seppur dispersive e piuttosto confuse (poiche' non supportate dall'uso di label e commenti leggibili) possono risultare utili nella ricerca di una particolare caratteristica e suo uso effettivo potenziando di fatto la navigazione cross-concept.

La visualizzazione delle istanze è simile alle classi: vengono infatti mostrate le classi di appartenenza e nel pannello Usage tutte le relazioni che coinvolgono tale istanza all'interno dell'ontologia.

In conclusione possiamo dire che il tool fornisce una navigabilità piuttosto confusa anche se per certi versi presenti degli spunti interessante come per esempio il pannello Usage che funge da aggregatore di informazioni diverse in cui partecipa il concetto in esame (classe, proprietà o istanza che sia). È un po' come se in ogni punto dell'ontologia fosse possibile sapere dove è possibile andare e da dove è possibile provenire.

Pensando quindi in termini di utente finale resta sempre un eccessivo uso della terminologia ontologica e una organizzazione della navigazione non legata alle informazioni ma ancora troppo alle strutture.

Degna di nota comunque è il supporto alla ricerca interattiva che fornisce di fatto l'unico modo pratico per iniziare la consultazione delle informazioni.

Ontology Explorer

L'Ontology Explorer è un tool Web per la consultazione e navigazione di ontologie OWL basata su AJAX e in particolare sul framework opensource GWT  [GWT]. Il tool è stato sviluppato presso laboratorio X-Lab [CrossLab] (di ricerca applicata su standard e interoperabilità) presso il centro ricerche ENEA di Bologna.

Pensato principalmente come strumento di utilità per gli esperti di settore e non di ontologie, nasce proprio dall'esigenza di rendere facilmente fruibili all'utente finale le informazioni modellate su domini anche piuttosto complessi.

Figura 14 - Ontology Explorer

L'OE oltre a permettere il normale caricamento di ontologie OWL remote, può essere richiamato direttamente in maniera parametrizzata via http-GET in modo da caricare una specifica ontologia su di un particolare concetto. Ciò, di fatto, rende possibile richiamare tramite un normalissimo URL la visualizzazione di ontologie esterne da applicazioni diverse.
Una volta caricata una ontologia, le informazioni vengono organizzate principalmente su un layout a due colonne; a sinistra la tassonomia e la ricerca e a destra i dettagli dei concetti selezionati organizzati per tab.

L'albero della tassonomia riporta oltre alle classi anche le istanze come foglie. Tramite questo albero è possibile navigare le classi e visualizzare come tool-tip le descrizioni (rdf:comments se presenti) al passaggio del mouse. È possibile anche configurare il tool in modo che tutti i concetti dell'ontologia (classi, istanze e relazioni) siano visualizzati tramite la loro label (se presenti).

La navigazione potrà essere effettuata quindi o a partire dalla tassonomia o più intuitivamente tramite l'avvio di una ricerca sfruttando l'apposito campo in alto a sinistra. La ricerca viene effettuata su classi e istanze (ma non sulle proprietà) dell'intera ontologia ed è semi-interattiva, ossia presenta il sottoinsieme di risultati come pop-up list solo alla pressione del tasto "INVIO" di conferma (questo per evitare rallentamenti inaspettati sui pattern dei primi caratteri digitati). La ricerca può essere configurata tramite il pannello "options" in base a:

  • Ricerca su ID o su Label
  • Ricerca di tipo "start-with" o "contain"
  • Considera o meno i prefissi relativi alle diverse ontologie importate

 

Figura 15 - Ontology Explorer

Una volta individuato un concetto di interesse (sia da tassonomia che da risultato della ricerca) esso può essere aperto in dettaglio nel pannello di destra il quale è essendo organizzato a tab permette di aprire più concetti e mantenerli visualizzati contemporaneamente (per eventuali confronti).

Nel caso si sia selezionata una classe verranno presentate prima informazione di carattere generale come label della classe (se presente), superclasse di appartenenza (nella forma leggibile "is a person"), e descrizione (rdf:comments). Sotto sono disposti dei pannelli (che possono essere aperti o chiusi per praticità) con le eventuali proprietà valorizzate derivanti da restrizioni di tipo "hasValue" e il pannello di tutte le proprietà (non divise fra objetct e datatype) e infine la lista delle istanze di quella classe.

Figura 16 - Ontology Explorer

Ogni proprietà (che tra parentesi riporta il suo range) può essere ulteriormente aperta in modo da mostrare informazioni di dettaglio come descrizione e attributi.

Nel caso di proprietà con valore (Properties values) verranno mostrati le proprietà che riportano le sole restrizioni di tipo "hasValue" e che quindi vengono valorizzate anche sulla classe. Questo tipo di restrizioni su proprietà sono ereditate da tutte le sottoclassi e ovviamente anche dalle istanze che le riporteranno direttamente come valorizzazioni di proprietà. I valori sono cliccabili e aprono un nuovo tab con i dettagli del concetto sezionato.

Figura 17 - Ontology Explorer

Selezionando una istanza invece saranno visibili oltre alle informazioni come descrizione, label e classe di appartenenza anche tutte le proprietà con i relativi valori cliccabili. Nel caso che i valori siano dei normali URL questi vengono automaticamente riconosciuti e presentati come link hypertestuali cliccabili.

Figura 18 - Ontology Explorer

Infine le informazioni di carattere generale sull'ontologia come label, namespace, numero classi , numero istanze e proprietà, sono accessibili tramite il pulsante "More Info"

L'OE in conclusione cerca di mascherare il più possibile i costrutti ontologici per dare più risalto alle informazioni vere e proprie e alla loro modellazione semantica. L'uso delle label su tutte le visualizzazioni e la ricerca su label stesse è sicuramente un indice di questa propensione.

Sempre a questo scopo il tool cerca, dove possibile, di comporre frasi di senso compiuto a partire da certi tipi di relazioni e dai valori ad esse assegnati (p.e. "fabric has property concept" dove "fabric" è il dominio della relazione "has_property" e "concept" è la classe range).

La stessa ricerca è abbastanza potente anche se il fatto che non venga effettuata sulle proprietà è una forte limitazione.

Non è possibile inoltre vedere la classificazione delle relazioni e non tutte le restrizioni sono visibili. Inoltre non tutti i concetti che compaiono nella scheda di dettaglio risultano cliccabili limitando di fatto fortemente la libera navigazione "cross-concept".

Degna di nota invece è la gestione delle classi con restrizione "has_value" in modo da sfruttare la caratterizzazione ed espressività di questo tipo di costrutti OWL.

Infine una peculiarità del tool possiamo dire essere quella di riconoscere e trattare anche le così dette classi-istanze, ossia una particolare modellazione (possibile solo in OWL Full) che permette di trattare una classe come istanza vedendola essenzialmente come istanza effettiva della meta-classe owl:class. In questo modo è possibile associare relazioni valorizzabili a intere classi (che diversamente dalle restrizioni has_value però non sono ereditate dalle sottoclassi e dalle istanze).

Conclusioni e tabella comparativa

A conclusione di questo primo articolo della serie riportiamo una semplice tabella comparativa fra i tool presentati rispetto alle caratteristiche individuate all'inizio.

Tabella 1 - Tabella comparativa fra i tool presentati nell'articolo. I criteri discriminanti sono quelli presi in considerazione all'inizio della comparazione.

Al termine di questa rassegna, emerge chiaramente come i tool, nonostante ognuno con i suoi pregi e difetti, tendano tutti ad assomigliarsi nel momento di doversi "inventare" un modo pratico per la consultazione di ontologie non conosciute a priori.

Tutti i tool (chi più chi meno)  faticano infatti a nascondere le informazioni meramente strutturali e tecniche specifiche dei costrutti ontologici per esporre in maniera chiara e trasparente la semantica descritta dal modello. Per capire la portata del problema si pensi ai database: sarebbe come se per consultare le informazioni di un db un utente dovesse avere a che fare con dataset, record, campi, chiavi primarie o estere, vincoli referenziali e quant'altro...

Va anche detto però che nel caso dei database non sarebbe pensabile un tool per la navigazione di qualunque db mentre le ontologie danno questa possibilità.

Si tratta quindi di estrarre le informazioni dalla struttura e presentarle in maniera opportunamente filtrata e aggregata in modo da esaltare le connessioni semantiche e la leggibilità del grafo sottostante.

Infine l'uso di un reasoner e di eventuali "semantic rules" (p.. SWRL) per fare inferenza rappresenta il sicuro elemento vincente per arricchire e potenziare la ricerca e la generazione di nuove informazioni non direttamente esplicitate dal modello.

 

Riferimenti

[SUMO] Suggested Upper Merged Ontology (SUMO)
http://www.ontologyportal.org/

[MILO] MILO Ontology
http://www.schemaweb.info/schema/SchemaDetails.aspx?id=241

[FOAF] Friend Of A Friend
http://www.foaf-project.org/

[GENE] GENE Ontology
http://www.geneontology.org/

[OLS] Ontology Lookup Service
http://www.ebi.ac.uk/ontology-lookup/browse.do?ontName=GO

[KOB] KSMSA Ontology Browser
http://virtual.cvut.cz/ksmsaWeb/browser/title

[PR3_4] Protege 3.4 beta
http://protege.stanford.edu/

[WPRO] WebProtege Online Editor
http://protegewiki.stanford.edu/index.php/WebProtege

[SWO] SWOOP
http://code.google.com/p/swoop/

[OSIG] OWLSight
http://pellet.owldl.com/ontology-browser

[ONB] Ontology Browser
http://code.google.com/p/ontology-browser/

[OEXP1] Ontology Explorer
http://www.cross-lab.it/cross-lab/imple/pgcl.asp?lingua=it&p=247&node_id=6.1.1

[OEXP2] Matteo Busanelli, Massimo Bondi, Nicola Gessa, "An Ajax Application To Improve Online Ontology Browsing: Ontology Explorer", in "Proceedings of 1st International Conference on Knowledge Management and Information Sharing (KMIS 2009)", Funchal - Madeira, Portugal, 6-8 October, 2009, pp. 83-88, ISBN: 978-989-674-013-9

[GWT] Google Web Toolkit
http://code.google.com/intl/it-IT/webtoolkit/

[CrossLab] ENEA - Xlab
http://www.cross-lab.it

[JAMBA] Jambalaya Graphical Viewer Plugin per Protege
http://www.thechiselgroup.org/jambalaya

Condividi

Pubblicato nel numero
142 luglio 2009
Nato a Imola nel 1978, ha conseguito la laurea Specialistica in informatica nel 2005 presso l‘Università di Bologna con una tesi sull‘"Estrazione di Ontologie da Framework standardizzati EDI/XML". Per tre anni ha lavorato come ricercatore presso il centro ENEA di Bologna seguendo progetti sull‘applicazione di tecnologie semantiche a framework e…
Articoli nella stessa serie
Ti potrebbe interessare anche