Metodologie per la gestione di conoscenza ontologica Prof. M.T. PAZIENZA a.a. 2008-2009 Sommario • Introduzione • Linguaggi per la gestione delle ontologie (RDF, RDFS, OWL) Linguaggi di gestione delle ontologie Linguaggi formali per la definizione di ontologie e basi di conoscenza, per supportare il ragionamento su di esse ed interrogarle. RDF produce specifiche di contenuto grazie alle triple (soggetto-predicato-oggetto) RDFS che usa le triple per dichiarare le classi e le relazioni valide sulla base di conoscenza OWL (Web Ontology Language) è un linguaggio di markup per rappresentare esplicitamente ontologie ( semantica formale di termini e relazioni tra i termini). Resource Description Framework (RDF) Il Resource Description Framework (RDF) è un framework per la descrizione della conoscenza sul web. Esso è stato specificatamente creato per la descrizione dei metadati relativi alle risorse. RDF è sostanzialmente un modello formale di dati dotato di sintassi di interscambio, un sistema di schemi di tipo ed un linguaggio d’interrogazione L’RDF si basa su tre principi chiave: • Qualunque cosa può essere identificata da un URI (Universal Resource Identifier) • The least power: utilizzare il linguaggio meno espressivo per definire qualunque cosa • Qualunque cosa può dire qualunque cosa su qualunque cosa Resource Description Framework (RDF) Il Resource Description Framework (RDF) rientra nel contesto delle specificazioni del World Wide Web (W3C); originariamente disegnato come metadata data model, è poi diventato un metodo generale per modellare l’informazione in una molteplicità di formati sintattici Una collezione di statements RDF rappresenta intrinsecamente un labeled directed multigraph. In quanto tale un RDF-based data model è più idoneo ad esprimere certi tipi di rappresentazione della conoscenza di quanto non lo siano il modello relazionale ed altri modelli ontologici. Resource Description Framework (RDF) Qualunque cosa descritta da RDF è detta risorsa. In genere una risorsa è reperibile sul Web, ma RDF può descrivere anche risorse che non si trovano direttamente sul Web. Ogni risorsa è identificata da un URI. Il data model di RDF si basa sull’idea di descrivere le risorse nella forma di uno statement soggetto-predicato-oggettto (triple) dove il soggetto è una risorsa, il predicato è una proprietà e l’oggetto è un valore. Il soggetto denota la risorsa Il predicato denota caratteristiche della risorsa ed esprime una relazione tra soggetto ed oggetto. RDF è un modello astratto con diversi formati di file; così il modo particolare in cui una risorsa o tripla è rappresentata varia da formato a formato. Resource Description Framework (RDF) In pratica, però, dati RDF sono collezionati in database relazionali o in altre rappresentazioni native, le cosiddette “triple stores”, o con Quad stores se il contesto (ovvero il grafo di riferimento) è anch’esso memorizzato con triple RDF. Nel 1999 è stato pubblicato come raccomandazione del W3C la prima specifica della sintassi del data model RDF RDF: Resource identification • Il soggetto di uno statement RDF è una risorsa, possibilmente identificata dal un Uniform Resource Identifier (URI) o meno (risorsa anonima). • Il predicato è anch’esso una risorsa che rappresenta una relazione. • L’oggetto è una risorsa od un valore (Unicode string literal). In applicazioni del Semantic Web le risorse sono rappresentate da URI che denotano dati reali accessibili sul Web. Ma RDF non è limitata alla ddescrizione di di risorse Internet-based. Perciò è necessario che produttori ed utilizzatori di statement RDF concordino sulla semantica degli identificatori delle risorse. RDF: Statement reification and context La conoscenza modellizzata attraverso una collezione di statement RDF può essere reificata. In tal caso a ciascuno statement (ovvero a ciascuna tripla subjectpredicate-object) viene assegnato un proprio unico URI e trattato come una risorsa essa stessa nei cui confronti è possibile fare uno statement addizionale; esempio "Jane says that John is the author of document X". In un database di triple RDF reificato, ciascuno statement originario, essendo esso stesso una risorsa, in genere ha almeno 3 statement addizionali scritti per lui: uno per asserire che il suo soggetto è una qualche risorsa, uno per asserire che il suo predicato è una qualche risorsa, ed uno per asserire che il suo oggetto è una qualche risorsa o literal. --------Le risorse non corrispondono soltanto a cose che possono essere intuitivamente considerate come oggetti fisici. Molto spesso vengono utilizzate per rappresentare concetti astratti, eventi, azioni e così via. Il processo che porta a concettualizzare questi aspetti della realtà come entità è detto reificazione. RDF: Statement reification and context Alcune implementazioni del modello RDF riconoscono che talvolta è utile raggruppare statements in accordo a criteri di tipo diverso, detti situations, contexts, or scopes. Per esempio uno statement può essere associato ad un contesto, identificato da un URI, in modo da asserire un "is true in" una specifica relazione. Analogamente è talvolta conveniente raggruppare gli statement in funzione della loro sorgente, che può essere identificata da un URI, ovvero come l’URI di un particolare documento RDF/XML. In tal caso, quando si fanno degli aggiornamenti sulle risorse, corrispondentemente si possono cambiare gli statement relativi nel modello. L’implementazione degli scopi non richiede necessariamente la piena reificazione negli statement. Alcune implementazioni permettono che un singolo identificatore di scopo sia associato con uno statement a cui non sia stato assegnato un URI. Analogamente named graphs in cui un set di triple identificato da un URI può rappresentare un contesto senza la necessità di reificare le triple. RDF: Query and inference languages The predominant query language for RDF graphs is SPARQL, an SQL -like language, and a recommendation of the W3C as of January 15, 2008 (recursive acronym: SPARQL Protocol and RDF Query Language. ) SPARQL allows for a query to consist of triple patterns, conjunctions, disjunctions and optional patterns. RDF: Query and inference languages An example of a SPARQL query to show country capitals in Africa PREFIX abc: <nul://sparql/exampleOntology#> . SELECT ?capital ?country WHERE { ?x abc:cityname ?capital ; abc:isCapitalOf ?y. ?y abc:countryname ?country ; abc:isInContinent abc:Africa. } Variables are indicated by a "?" or "$" prefix. Bindings for ?capital and the ?country will be returned. The SPARQL query processor will search for sets of triples that match these four triple patterns, binding the variables in the query to the corresponding parts of each triple. Important to note here is the "property orientation" (class matches can be conducted solely through class-attributes / properties RDF Schema (or RDFS) Il data model RDF permette di definire un modello semplice per descrivere le relazioni tra le risorse, in termini di proprietà (identificate da un nome) e relativi valori. Tuttavia, RDF data model non fornisce nessun meccanismo per dichiarare queste proprietà, né per definire le relazioni tra queste proprietà ed altre risorse. Per poter dichiarare un vocabolario (ontologia) è necessario definire classi e proprietà in un RDF-schema. RDF Schema (or RDFS) è un linguaggio per la rappresentazione della conoscenza che fornisce gli elementi fondamentali per la descrizione di ontologie (dette vocabolari RDF) che strutturano le risorse RDF. Main RDFS constructs Classes and subclasses • rdfs:Class allows to declare a resource as a class for other resources. Typical example of an rdfs:Class is foaf:Person in the FOAF vocabulary. An instance of foaf:Person is a resource linked to the class using an rdf:type predicate, such as in the following formal expression of the natural language sentence : 'John is a Person'. ex:John rdf:type foaf:Person The definition of rdfs:Class is recursive: rdfs:Class is the rdfs:Class of any rdfs:Class. • rdfs:subClassOf allows to declare hierarchies of classes. For example, the following declares that 'Every Person is an Agent': foaf:Person rdfs:subClassOf foaf:Agent Hierarchies of classes support inheritance of a property domain and range from a class to its subclasses Main RDFS constructs Property domain and range • rdfs:domain of an rdf:property declares the class of the subject in a triple using this property as predicate. • rdfs:range of an rdf:property declares the class or datatype of the object in a triple using this property as predicate. For example the following declarations are used to express that the property ex:employer is linking a subject which is a foaf:Person, to an object which is a foaf:Organization ex:employer rdfs:domain foaf:Person ex:employer rdfs:range foaf:Organization Given the previous declarations, in the following triple, ex:John is necessarily a foaf:Person, and ex:CompanyX is necessarily a foaf:Organization ex:John ex:employer ex:CompanyX Limiti di RDFS Poichè RDFS manca di una semantica formale: • Non si può distingue tra classi ed istanze • Non si possono determinare l’estensione del dominio ed eventuali vincoli • Non si può definire la cardinalità dei vincoli • Non si può lavorare con proprietà simmetriche, transitive ed inverse • Difficile il supporto al reasoning Inoltre RDFS è troppo debole per descrivere in sufficiente dettaglio le risorse OWL: Web Ontology Language Il Web Ontology Language (OWL) è un linguaggio di markup per rappresentare esplicitamente le ontologie (ovvero il significato dei termini e relazioni tra i termini). L'obiettivo è supportare l’elaborazione automatica del contenuto delle informazioni dei documenti scritti in OWL ed il reasoning su di essi. E’ un'estensione RDF. OWL è un linguaggio di rappresentazione della conoscenza (e non un semplice linguaggio per definire messaggi come è XML) OWL: Web Ontology Language Poichè OWL è dotato di una semantica formale: • Può specificare come derivare conseguenze logiche da fatti e relazioni esistenti • Può essere distributo tra più sistemi • E’ compatibile con gli standard Web • E’ estensibile OWL: Web Ontology Language XML fornisce una sintassi superficiale per documenti strutturati senza però imporre alcun vincolo semantico XML Schema restringe la struttura dei documenti XML mentre estende i datatype XML RDF è un datamodel per descrivere risorse e relazioni tra di esse e fornisce una semantica semplice per questo datamodel che può essere rappresentato nella sintassi XML RDF Schema è un vocabolario per descrivere proprietà e classi delle risorse RDF con una semantica associata alla generalizzazione delle gerarchie di tali classi e proprietà. OWL ha mggiori strumenti di RDF ed RDFS per esprimere significato e semantica (es. disgiunzione, cardinalità, eguaglianza , enumerabilità– classi- ) OWL Ontology I dati descritti da una ontologia OWL sono interpretati come un set di “individui” ed asserzioni di proprietà che correlano tra loro gli individui. Una ontologia OWL consiste di un set di assiomi che pongono vincoli su insiemi di individui (classi) e sui tipi di relazioni che sono ammesse su di loro. Gli assiomi supportano la semantica in quanto permettono ai sistemi di effettuare inferenze sui dati Esempio: ontologia descrittiva delle famiglie che includa assiomi che affermano che la proprietà "hasMother" si ha solo tra due individui quando è presente anche la proprietà "hasParent" ; individui della classe "HasTypeOBlood" non sono mai in relazione via "hasParent" con membri della classe "HasTypeABBlood“ . Così se viene affermato che l’istanza Harriet è in relazione "hasMother" con l’istanza Sue, e che Harriet è membro della classe "HasTypeOBlood", allora si può inferire che Sue non è membro di "HasTypeABBlood". OWL: Web Ontology Language OWL tries to avoid lack of clear definitions by having an explicit logical basis for the language, based on Description Logics (DLs) Description Logics are a family of logics that are decidable fragments of first-order logic. The semantics for OWL is given through translation to a particular DL. Therefore OWL is both a syntax for describing and exchanging ontologies, and has a formally defined semantics that gives the meaning. In addition, sound, complete, and terminating reasoners (i.e. systems which are guaranteed to derive every consequence of the knowledge in an ontology) exist for many DLs including those underlying OWL. OWL: Web Ontology Language • Sublanguages The W3C-endorsed OWL specification includes the definition of three variants of OWL, with different levels of expressiveness: OWL Lite was originally intended to support those users primarily needing a classification hierarchy and simple constraints OWL DL was designed to provide the maximum expressiveness possible while retaining computational completeness (all conclusions are guaranteed to be computed), decidability (all computations will finish in finite time), and the availability of practical reasoning algorithms OWL Full is based on a different semantics from OWL Lite or OWL DL, and was designed to preserve some compatibility with RDF Schema. OWL Full allows an ontology to augment the meaning of the pre-defined (RDF or OWL) vocabulary. OWL: Web Ontology Language Open World Assumption OWL adotta la Open World Assumption in contrasto con SQL e Prolog, che adottano la Closed World Assumption. Nell’ambito della Open World Assumption, se non si può provare che uno statement sia vero usando la conoscenza attuale, allora non si può arrivare alla conclusione che lo statement sia falso. Riferimenti • Arash Shaban-Nejad: tutorial on “Ontology: Foundation of Semantic Web”, 2004 • F. Bianchini, A.M. Gliozzo, M. Matteuzzi: “Instrumentum vocale: intelligenza artificiale e linguaggio”, Bononia University press, 2008 • G. Antoniou, F. van Harmlen: “A Semantic Web Primer”, MIT Press, 2008, cap.3,4 • http://en.wikipedia.org/wiki/Resource_Description_Framework • http://it.wikipedia.org/wiki/Resource_Description_Framework • http://en.wikipedia.org/wiki/RDF_schema • http://en.wikipedia.org/wiki/SPARQL • http://www.w3.org/TR/owl-features/