• Non ci sono risultati.

Linguaggi per la creazione di ontologie: il linguaggio OWL

2.4 Ontologie ed ambienti di apprendimento in rete

2.4.3 Linguaggi per la creazione di ontologie: il linguaggio OWL

da considerare e fasi di creazione da un punto di vista concettuale, in questo paragrafo l’attenzione si sposta sui linguaggi di creazione delle ontologie sul WEB. Il punto di partenza è rappresentato dalla constatazione che il WEB attuale (Web 1.0) rappresenta un’immensa quantità di informazioni difficile da gestire da un punto di vista del recupero dei contenuti, ecco perché l’idea è quella di mappare tale ragnatela di informazione in maniera più precisa e semanticamente rilevante, cioè appunto è possibile grazie alla definizione di ontologie per il web (Web Semantico, Web 2.0). Poiché il linguaggio del Web è standard e tutte le applicazioni in esso contenute devono o dovrebbero avere la caratteristica della standardizzazione, l’idea è quella di ricorrere ad un linguaggio standard per la definizione di ontologie per il web. Tale linguaggio, sviluppato e promosso dal W3C agli inizi del 2004, è il Linguaggio Ontologico per il Web (OWL).

Tale linguaggio, è stato creato per fornire uno strumento di descrizione delle classi, degli individui e delle relazioni all’interno di uno specifico dominio, secondo la filosofia delle ontologie.

Pertanto, mediante OWL è possibile formalizzare un dominio mediante la definizione di classi, individui e proprietà, e ragionare su tali elementi al fine di consentire scambio automatico di informazione tra agenti computazionali e tra questi ed essere umani. In un ambiente di apprendimento in rete ciò assume particolare importanza poiché soprattutto in contesti caratterizzati da elevati contenuti didattici e da molti attori, come nel caso di contesti universitari e post-universitari, è necessario definire delle classi e stabilire alcune proprietà tra queste, al fine di fornire dei livelli semantici e relazionare tali livelli semantici tra di loro. Ad esempio il concetto di ipertesto può essere trattato secondo diversi approcci (umanisti, tecnologici, filosofici, psicologici etc), solo grazie ad una ontologia di definizione di contenuti è possibile instaurare delle relazioni tra tali argomentazioni diverse di un unico concetto e fare in modo di pesonalizzarle in base ai profili dei learners.

In effetti un primo passo in tale direzione è stato compiuto grazie agli standard di definizione di learning objects che si basano appunto sul linguaggio XML, grazie al quale è stato possibile definire un primo livello semantico per lo scambio di dati. Ad ogni modo la differenza tra XML ed una ontologia consiste nel fatto che XML è un linguaggio per la definizione standard di messaggi mentre l’ontologia è la rappresentazione di un dominio di conoscenza. In altre parole, definendo i dati con il solo linguaggio XML non è possibile fare dei ragionamenti tra i vari elementi, mentre grazie alle ontologie e quindi al linguaggio OWL è possibile compiere dei ragionamenti. Quindi un grosso vantaggio delle ontologie OWL è quello di riuscire ad implementare strumenti in grado di ragionare sulle stesse.

Capitolo 2° - Ambienti di apprendimento in rete

Il linguaggio OWL può essere suddiviso in 3 sotto-linguaggi che consentono di definire diversi livelli di espressività: OWL Lite, OWL DL ed OWL Full.

OWL Lite permette una gerarchia di classificazione e semplici restrizioni, OWL DL supporta una maggiore espressività e calcolo computazionale ma ha tuttavia delle restrizioni, ad esempio una classe non può essere un individuo o una proprietà ed anche questa ultima non può una classe o un individuo. Infine, OWL Full consente la massima espressività ma non offre garanzie computazionali; ad esempio una classe può essere anche un individuo.

L’utilizzo di una di queste estensioni di OWL dipende dalle esigenze degli sviluppatori ed utenti in relazione al grado di espressività che si vuole raggiungere.

Uno dei punti di forza del linguaggio OWL è quello di gestire la condivisione tra ontologie diverse “scritte” appunto in linguaggio OWL, permettendo la possibilità di importare informazioni da altre ontologie. E’ questa in effetti, la logica del Semantic Web che alla sua base ha in concetto di informazione distribuita.

Dopo avere fatto questa panoramica sulla definizione e sulle estensioni del linguaggio OWL, di seguito vengono illustrate le principali caratteristiche a livello di sintassi, senza avere chiaramente la pretesa di trattare in maniera approfondita tutti i comandi, oggetti e proprietà a disposizione, per i quali si rimanda alla guida completa OWL. In effetti, l’utilizzo delle ontologie in ambito didattico-pedagogico e nell’ambito della formazione e degli ambienti di apprendimento nello specifico, non deve necessariamente avere come prerequisito la conoscenza approfondita del linguaggio OWL a livello di sintassi, per tale scopo esistono come vedremo più avanti, dei software anche di tipo open-source che consentono la creazione di ontologie generando essi

stessi il codice OWL, ad ogni modo è bene avere un’idea della struttura di base che si nasconde dietro tali software.

La prima sezione di una ontologia OWL è costituita dal cosiddetto “spazio dei nomi” ovvero dalla specificazione del suo vocabolario e quindi dei termini che verranno utilizzati, quindi dalla dichiarazione dello spazio dei nomi, così come mostrato nel seguente esempio riferito alla definizione di una ontologia per la struttura di corsi all’interno di un ambiente di apprendimento:

<rdf:RDF xmlns ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/corsi#" xmlns:cor ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/corsi#" xml:base ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/corsi#" xmlns:mod="http://www.w3.org/TR/2004/REC-owl-guide-20040210/moduli#" xmlns:owl ="http://www.w3.org/2002/07/owl#" xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd ="http://www.w3.org/2001/XMLSchema#">

La successive sezione riguarda invece la definizione di una serie di informazioni e meglio ancora di meta-informazioni relative alla versione del linguaggio, ai commenti ed alla importazione di eventuali ontologie esterne (Intestazione dell’Ontologia).

Capitolo 2° - Ambienti di apprendimento in rete

<owl:Ontology rdf:about="">

<rdfs:comment>Esempio di Ontologia per la formazione</rdfs:comment>

<owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine"/> <owl:imports rdf:resource="http://www.griadlearn.unical.it/corsi"/>

<rdfs:label>Wine Ontology</rdfs:label> </owl:Ontology>

</rdf:RDF>

Dopo avere definito il vocabolario e l’intestazione dell’ontologia, le istruzioni successive consentono di definire le classi, gli individui, le proprietà e le relazioni tra questi oggetti, come anticipato nei paragrafi precedenti in fase di definizione di una ontologia e degli elementi costitutivi.

Prendendo ad esempio come riferimento il dominio dei contenuti all’interno di un ambiente di apprendimento e volendo creare le classi CLASSE_Didattica e CLASSE_Tecnologia, la sintassi è la seguente:

<owl:Class rdf:ID="CLASSE_Didattica"/> <owl:Class rdf:ID="CLASSE_Tecnologia"/>

Volendo adesso creare una sotto-classe paradigmi_dell’apprendimento all’interno della CLASSE_Didattica, si procede utilizzando il costruttore rdfs:subClassOf nel seguente

<rdfs:subClassOf rdf:resource="# CLASSE_Didattica"/> </owl:Class>

Passando adesso a definire i vari individui che nel nostro esempio concreto possono essere rappresentati dalle singole lezioni (learning objects) si procede nel seguente modo:

<owl:Thing rdf:ID="definizione_paradigmi_apprendimento" /> <owl:Thing rdf:about="# definizione_paradigmi_apprendimento"> <rdf:type rdf:resource="# paradigmi_dell’apprendimento"/> </owl:Thing>

La proprietà che consente di collegare un individuo ad una classe è appunto rdf:type; definizione_paradigmi_apprendimento è membro della classe

paradigmi_dell’apprendimento.

Adesso, dopo avere definito classi, sotto-classi ed individui, l’altro aspetto da considerare è relativo alla possibilità di potere definire Proprietà che consentono appunto di specificare fatti generali e specifici sui vari elementi. Supponiamo ad esempio di volere definire una restrizione alla sotto-classe

paradigmi_dell’apprendimento stabilendo che essa deve contenere minimo 3 Learning

Objects (es. un learning objects testo, un learning objects power-point, un learning objects video-lezione). Per definire ciò si utilizzano i seguenti costrutti:

Capitolo 2° - Ambienti di apprendimento in rete

<owl:onProperty rdf:resource="# paradigmi_dell’apprendimento"/>

<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">3</owl:minCardinality> </owl:Restriction>