30
Francesca Carmagnola [email protected] Ontological reasoning

Francesca Carmagnola [email protected] Ontological reasoning

Embed Size (px)

Citation preview

Page 1: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

Francesca Carmagnola

[email protected]

Ontological reasoning

Page 2: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

Ontologie come base di conoscenza avente dati strutturati

Cosa si può fare con le ontologie?

Estrazione dati Inferire nuova conoscenza

Ragionamento

Ragionamento automatico che sfrutta opportuni linguaggi di query per ontologie (SQL, SeRQL, SPARQL) per estrarre dati e rendere esplicita conoscenza implicita

Ragionamento inteso come inferenza finalizzato a produrre nuova conoscenza attraverso i linguaggi di reasoning dei SW (SWRL, RuleML, Fuzzy RuleML)

Query and Reasoning Tools (Sesame, Jena, Racer, …)

Page 3: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

Ontologia vs. Data Base

1. Concetti (o classi) del dominio

2. Proprietà (o slot) dei concetti

3. Restrizioni sulle proprietà

ENTITA’

ATTRIBUTI + RELAZIONI

VINCOLI

CORRISPONDENZE CON I DB

Interrogare un Db estrarre istanze, ovvero recuperare i dati memorizzati. Non vi e’ ragionamento automatico perchè i dati hanno legami con ridotto potere espressivo.

Interrogare un’ontologia estrarre dati mediante query logiche che sfruttano la struttura ontologica per ottenere dati in modo significativo

Page 4: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

Per ragionamento automatico si intende le capacità di elaborare una base di conoscenza secondo alcune regole in modo da validarla ed analizzarla.

Ragionamento automatico può avvenire:

solo sulle ontologie in quanto rappresentazione strutturata della conoscenza espresse in un in un linguaggio che usa gli operatori della logica descrittiva

RDF(S), OWL

mediante linguaggi di interrogazione capaci di supportare l’interrogazione su tali rappresentazioni

Page 5: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

I linguaggi di interrogazione sulle ontologieLinguaggi di query tradizionali non distinguono informazioni da data schema, sono stati sviluppati per interrogare semplici base di triple:

A livello di sintassi (alberi e non grafi, mentre l’rdf e’ un grafo. si perdono quindi le relazioni fra le risorse)[XQuery ]

A livello di struttura (si interrogano le triple sogg-predicato-oggetto direttamente a livello di data model, ma vengono recuperate dalla query solo asserzioni esplicite) [Squish ]

Necessità di interrogare a livello di semantica, cioè l’intera conoscenza contenuta nell’ontologia e non solo le asserzioni esplicite, ma anche quelle implicite.

Ragionamento automatico come esplicitazione di conoscenza implicita.

Page 6: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns="http://www.owl-ontologies.com/unnamed.owl#" xml:base="http://www.owl-ontologies.com/unnamed.owl"> <owl:Ontology rdf:about=""/> <owl:Class rdf:ID="maschio"> <owl:disjointWith> <owl:Class rdf:ID="femmina"/> </owl:disjointWith> <rdfs:subClassOf> <owl:Class rdf:ID="persona"/> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:about="#femmina"> <rdfs:subClassOf rdf:resource="#persona"/> <owl:disjointWith rdf:resource="#maschio"/> </owl:Class> <owl:ObjectProperty rdf:ID="amicoDi"> <rdfs:domain rdf:resource="#persona"/> <rdfs:range rdf:resource="#persona"/> </owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="ama"> <rdfs:domain rdf:resource="#persona"/> <rdfs:range rdf:resource="#persona"/> </owl:ObjectProperty> <persona rdf:ID="John"><amicoDi> <femmina rdf:ID="Susan"> <ama rdf:resource="#Andrea"/> </femmina> </amicoDi> </persona></rdf:RDF>

AMICIZIA(Femmina( AMARE Maschio))

John

<persona rdf:ID="John"> <amicoDi> <femmina rdf:ID =“Susan">

<femmina rdf:ID="Susan"><ama rdf:resource="#Andrea"/>

Page 7: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

i) Appartenenza alla classe (si può dedurre se un oggetto è un’istanza di una classe);

ii) Classificazione o sussunzione (si può dedurre tutte le relazioni tra le classi esistenti nelle ontologie);

iii) Equivalenza delle classi (si può dedurre se due classi sono equivalenti);

iv) Consistenza di una classe (si può verificare se un’asserzione soddisfa i vincoli di cardinalità, di tipo, etc.).

Ragionamento automatico sulle ontologie attraverso i linguaggi di interrogazione

Page 8: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

RQLLinguaggio dichiarativo che “cattura” la semantica dell’RDF(S).

Permette di:

estrarre classi e sottoclassi

estrarre proprietà

estrarre istanze di classi e di proprietà

query piu’ complesse (Select-from-where)

Nuovi linguaggi per interrogare le ontologie al livello della semantica:

RQL SeRQL SPARQL

Page 9: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

SeRQL (Sesame RDF Query Language)Nuovo linguaggio di query su RDF(S) e OWL che combina alcune caratteristiche di altri linguaggi di query (RQL, RDQL, N-Triples) aggiungendovene alcune. Funzionalità per la navigazione della gerarchie di

classi/proprietà;

Funzionalità per interrogare asserzioni reificate;

Operatori per comparazione di valori;

Operatori per gestire valori opzionali.

Due tipologie di query:

1. Query di selezione che restituisce una tabella di valori (SeRQL-S)

2. Trasformazioni in grafi, subgrafo del grafo interrogato (SeRQL-C)

Page 10: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

SeRQL (Sesame RDF Query Language)

5 condizioni: SELECT, FROM, WHERE, LIMIT, OFFSET

SELECT-FROM

In una query di select –from si specificano quali valori devono essere restituiti, da dove e in quale ordine.

WHERECondizione opzionale che specifica i paths del grafo RDF

che sono rilevanti nella query

select Churchfrom {Place} test:has_place_name {Church};[test:has_style {Style}]where Style like "Baroque"using namespace mis = <http://www.di.unito.it/~carmagno/mis.txt>

Page 11: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

SeRQL (Sesame RDF Query Language)

5 condizioni: SELECT, FROM, WHERE, LIMIT, OFFSET

LIMIT

Condizione opzionale che specifica il numero massimo di risultati nella query

OFFSET

Condizione opzionale che specifica quale risultato della query deve essere restituito per primo

Page 12: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

_:a test:place_name “San Lorenzo” “GAM"

_:b mis:place_name “San Pietro"

SELECT Place_Name

FROM {Place} test:has_place_name {Place_Name}UNIONSELECT Place_NameFROM {Place} mis:has_place_name {Place_Name}

SeRQL offre operatori per combinare i risultati delle query

Operatore UNION

Consente di ottenere come risultato della query l’unione di più statements aventi namespaces diversi (quindi da ontologie diverse)

Page 13: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

_:a rdf:type test:User

_:b rdf:type test:Writer

SELECT user_nameFROM {} rdf:type {test:User};test:has_user_name {user_name}WHERE user_name IN ( SELECT n FROM {} rdf:type {test:Writer}; test:has_user_name{n})

Operatore IN

Consente di estrarre le istanze appartenti contemporamente a piu’ statements

Page 14: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

SELECT Place_Name

FROM {Place} test:has_place_name {Place_Name}

MINUS

SELECT Place_Name

FROM {Place} test:has_place_name {Place_Name}

WHERE Place_Name like "GAM"

Operatore MINUS

Consente di estromettere dalla query una o più istanze specifiche

Page 15: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

SPARQLLinguaggio di query su RDF(S) e OWLStandard W3C SPARQL adotta la sintassi Turtle, un'estensione di N-Triples, alternativa estremamente sintetica e intuitiva al tradizionale RDF/XMLLe query SPARQL si basano sul meccanismo del "pattern matching" e in particolare su un costrutto, il "triple pattern", che ricalca la configurazione a triple delle asserzioni RDF fornendo un modello flessibile per la ricerca di corrispondenze. 5 condizioni: SELECT, FROM, WHERE, LIMIT, OFFSETNon ha operatori per combinare i risultati delle querySPARQL in Protégé-OWL

Page 16: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

SPARQL in Protégé-OWL ( version 3.2 o superiori)

Page 17: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

RAGIONAMENTO COME INFERENZA

Ragionamento su una ontologia viene implementato attraverso regole di inferenza finalizzate a produrre nuova conoscenza

NELL’ONTOLOGIA E’ PRESENTE LA CLASSE UOMO CHE HA COME ISTANZA SOCRATE

DEDUZIONE E AUMENTO DELL’ONTOLOGIAMortale(Socrate)

“Tutti gli uomini sono mortali.”

(Artistotele)

ESEMPIO: SILLOGISMO

Uomo(Socrate)

Uomo(x) => Mortale(x)

Page 18: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

Per effettuare inferenza su ontologie occorre:

1) Linguaggio che “leghi” gli elementi dell’ontologia nella regola [v. linguaggi a regole del Semantic Web (SWRL, RuleML, Fuzzy RuleML)]

2) Motore inferenziale (semantic reasoner) che faccia “girare” la regola sulla ontologia

IF <owl:Class rdf:ID=“uomo"> THEN <owl:Class rdf:ID=“mortale">

{Socrate}FEMMINA MASCHIO

UOMO MORTALE {Socrate}

… … …

… …

THING

Page 19: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

SWRL (Semantic Web Rule Language)

● Recente proposta nella comunità del Semantic Web per integrare le regole con OWL

● Regole espresse in termini di concetti OWL (classi, proprietà, istanze)

● Le espressioni SWRL sono archiviate all'interno di modelli OWL (salvate come parte dell’ontologia)

● SWRL Editor: SWRL Tab Plugin che permette l’editing di regole SWRL

Page 20: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

● Regole nella forma di implicazione antecedente e conseguente. ● Sono regole SWRL espressioni del tipo (gli esempi non usanola sintassi formale):

ESEMPIO:

hasParent(?x1,?x2) hasBrother(? x2,?x3) hasUncle(?x1,?x3)

In una sintassi SWRL astratta, la regola può essere così scritta:

Implies(Antecedent(hasParent(I-variable(x1) I-variable(x2)) hasBrother(I-variable(x2) I-variable(x3)))

Consequent(hasUncle(I-variable(x1) I-variable(x3))))

Page 21: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning
Page 22: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

RuleML

Rule Markup Language (RuleML) è un linguaggio sviluppato per esprimere sia regole forward e backward.

Combina caratteristiche di XML e RDF.

<imp> <_head> conclusion </_head> <_body> <and> premise1…premiseN</and> </_body> </imp>

L’head della regola costituisce il conseguente, mentre il body costituisce le precondizioni.

Page 23: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

<_head> <atom> <_opr> <rel> <ind>Book2003</ind> </rel> </_opr> <_slot name="publicationYear"> <ind>2003</ind> </_slot> <_slot name="publicationTitle"> <var type="single">V</var> </_slot> </atom> </_head>

<_body> <atom> <_opr> <rel> <ind>Book</ind> </rel> </_opr> <_slot name="publicationYear"> <ind>2003</ind> </_slot> <_slot name="publicationTitle"> <var type="single">V</var> </_slot> </atom> </_body>

If a Book was published in 2003 and the Book’s name is V, Then the class Book2003 is created, with instances all books which were published in 2003

Page 24: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

Fuzzy RuleML

• Necessità di gestione dell’incertezza nel Semantic Web.

• In Fuzzy RuleML, si specifica nei fatti un “grado di importanza” (peso) degli antecedenti in relazione al conseguente.

Esempio:

Ricchezza (? p) 0.5 ^ Salute (? p) 0.9 -> Felicità (? p),

dove Ricchezza , Salute e Felicità sono predicati fuzzy.

Page 25: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

Existing Semantic reasoners (query + rules)•Bossam, a RETE-based rule engine with native supports for reasoning over

OWL ontologies, SWRL rules, and RuleML rules. Queries in Buchingae language;•Hoolet, an implementation of an OWL-DL reasoner (rules encoded in SWRL); •Pellet, an open-source Java OWL DL reasoner (rules encoded in SWRL, queries in SPARQL); •KAON2 is an infrastructure for managing OWL-DL, SWRL, and F-Logic ontologies (rules encoded in SWRL, queries in SPARQL); •FaCT, a description logic (DL) classifier e FaCT++, the new generation of FaCT OWL-DL reasoner; •SweetRules, an integrated set of tools for Semantic web rules and

ontologies (rules encoded in SWRL);RACER PRO , a semantic web reasoning system and information repository; Jena (framework), an open source semantic web framework for Java; Sesame an open source semantic web framework for Java.

Page 26: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

A framework for storage, querying and inferencing of RDF and RDF Schema. It can be deployed on top of a variety of storage systems (relational databases, in-memory, filesystems, keyword indexers, etc.)It offers:

a database server for the persistent storage of RDF(S) data,

export of repository contents in RDF(S) format data,

flexible access API, which supports both local and remote (through HTTP or RMI) access,

SESAME

Page 27: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

Light-weight yet powerful Java API for storing, accessing, querying RDF(S) repositories

Highly expressive RQL-like query engine allowing expressive queries trough: SeRQL SPARQL

Reasoning support RDF Schema reasoner OWL DLP (OWLIM) domain reasoning (custom rule engine)

Rio Toolkit: parsers and writers for different RDF syntaxes:RDF/XML, Turtle, N3, N-Triples

Page 28: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

JENA

Jena is a Java framework providing a programmatic environment for RDF, OWL, SPARQL and includes a rule-based inference engine.

The Jena Framework includes:

a RDF and OWL API

reading and writing RDF and OWL in RDF/XML, N-Triples, SPARQL

SPARQL query engine

Generic rule based inference engine together with configured rule sets for RDFS and for the OWL/Lite subset of OWL Full.

Page 29: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

RACERPro (Renamed A-Box and Concept Expression Reasoner):

Ragionatore basato su Lisp in grado di processare KBs espresse in OWL, in particolare, in OWL-Lite e OWL-DL,

Fornisce alcuni servizi, quali:

- il controllo di consistenza di un’ontologia OWL e di un insieme di descrizioni di dati,

-possibilità di interrogazioni con SPARQL

- la ricerca di relazioni di sussunzione indotte dalle asserzioni dell’ontologia,

- un HTTP client per la restituzione di risorse importate dal Web

- motore inferenziale per regole SWRL

Page 30: Francesca Carmagnola carmagnola@di.unito.it Ontological reasoning

SESAME vs. JENA vs. RacerPro

Jena Supports OWL RacerPro Supports OWL Sesame Supports RDF Schema

Jena Expressive query with SPARQL RacerPro Expressive query with SPARQL Sesame More expressive query with SeRQL. It allows using different query languages (RQL, RDQL, SeRQL, SPARQL )

Jena Powerful rule-based inference engineRacerPro Powerful rule-based inference engine Sesame Weak reasoning support