Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoVittore Valle Modificato 10 anni fa
1
Seminario di Ingegneria del Software Studio di RacePro per fare delle interrogazioni in OWL-QL. In particolare dovrei cercare di esprimere delle conjunctive-queries interessanti. Alessio De Gaetanis
2
OBIETTIVI Analisi delle funzionalità del sistema RacerPro e dellapplicazione client RacerPorter. Definizione di una base di conoscenza in RacerPro Studio del linguaggio nRQL, che ci permetterà di esprimere delle conjunctive- queries su alcune basi di conoscenza.
3
Funzioni di RacerPro Sistema di Ragionamento Web Semantico: data unontologia OWL (OWL-Lite o OWL-DL), ne controlla la consistenza, trova relazioni di sottoclasse, i sinonimi e recupera le risorse. Sistema di logica descrittiva: sistema di rappresentazione della conoscenza che implementa il calcolo basato su tableau altamente ottimizzato per una logica descrittiva molto espressiva. Il sistema implementa la logica descrittiva ALCQHIR+. Data una: TBox determina la (in)consistenza, la sussunzioni, e le relazioni padre-figlio tra concetti. ABox controlla la sua consistenza, testa e recupera gli individui che soddisfano certe condizioni,…
4
RacerPorter State display: indica lo stato corrente del sistema, che indica loggetto corrente che si sta interrogando. Shell: permette di effettuare una query, il cui risultato sarà mostrato nellarea RacerPro Log. Taxonomy: una volta selezionato un concetto, si possono recuperare le sue istanze. Individuals: una volta selezionato un elemento puoi ottenere la lista di tutti i tipi ad esso associati premendo semplicemente il Pulsante Direct Types o All Types Network: visualizza la strutture dell ABox focalizzando lattenzione sullelemento selezionato Queries (Rules): si può selezionare una query (rule) dalla lista e poi usare i pulsanti per applicare un comando alla query (rule) selezionata.
5
KB in RacerPro – I Concetti Bisogna definire i termini di concetto complessi utilizzando: i termini booleani le qualified restriction (il riempitivo di ruolo deve essere di un certo concetto). le number restriction top e bottom i concetti di dominio concreto (restrizioni di predicato per i riempitivi degli attributi) Attributi interi min, max,equal Attributi reali >,>=, Predicato esistenziale: a o an Predicato di negazione: no
6
General concept inclusion: (implies C1 C2) Concept equation: (equivalent C1 C2) Concept disjointness axioms: (disjoint C1 … Cn) Primitive concept axioms: (define-primitive-concept CN C) Primitive concept axioms: (define-concept CN C) Possono essere ciclici Una TBox può contenere anche diversi assiomi per un singolo concetto. KB – Assiomi di Concetto e TBox
7
Linsieme dei ruoli (R) è costituito da due insiemi disgiunti: Features (F): ruoli funzionali. Ruoli transitivi (R+): ruoli transitivamente chiusi Sono permesse gerarchie di ruolo Per ogni ruolo bisogna definire :domain e il :range Si usa :inverse o (inv R) per riferirsi al ruolo inverso Possono essere definiti o nella signature o tramite: (define-primitive-role RN :domain C) (define-primitive-role RN :range D) KB – Dichiarazione di ruoli
8
KB – Dominio Concreto A ogni individuo può essere associato un oggetto (nome per il valore del dominio concreto) tramite i nomi dattributo. Linsieme A di tutti gli attributi deve essere disgiunto dallinsieme dei ruoli. Gli attributi sono considerati come typed (possono assumere valori di tipo cardinal, integer, real, complex o string ).
9
KB – Asserzioni e ABox UnAbox contiene asserzioni riguardo gli individui, il cui insieme deve essere disgiunto da quello dei nomi di concetto e da quello dei nomi di ruolo. I tipi di asserzioni sono: Asserzioni di concetto ( instance ) Asserzioni di ruolo ( related ) Asserzione dattributo ( constrained ) Vincoli con constraints Assunzione di nome unico: tutti i nomi di individui presenti in una ABox si riferiiscono a oggetti di dominio distinti.
10
KB - Esempio... (signature :atomic-concepts (... teenager) :roles (...) :attributes ((integer age) (real temperature-celsius) (real temperature-fahrenheit)) :individuals (eve doris) :objects (temp-eve temp-doris)... (equivalent teenager (and human (min age 16))) (equivalent old-teenager (and human (min age 18))) (equivalent human-with-fever (and human (>= temperature-celsius 38.5)) (equivalent seriously-ill-human (and human (>= temperature-celsius 42.0))) (constrained doris temp-doris temperature-celsius) (constraints (= temp-doris 39.5))... TBOX ABOX
11
Modellazione di logiche descrittive Racer Inf. indefinita Database Inf. definita Open World Assumption: ciò che non può essere provato esser vero, non vuol dire che sia falso. Racer permette di utilizzare anche la Local- Closed World Assumption (uso di NAF) RacerPro è in grado di leggere file RDF, RDFS e OWL.
12
nRQL-new Racer Query Language Linguaggio di query di ABox per DL espressive ALCQHI R+ (D-) Linguaggio di query RDF e OWL Permette di esprimere conjunctive query Le espressioni di base sono detti atomi unari (un oggetto) o binari (con due). Un oggetto può essere o un individuo o una variabile iniettiva o ordinaria. Semantica del dominio attivo: le variabili possono essere associate soltanto a individui modellati esplicitamente nella corrente ABox (senza un preciso ordinamento sulla loro consegna).
13
nRQL – Concept Query Atoms Atomi unari utili per recuperare tutti gli individui di un concetto o di una classe OWL. Esempio: (retrieve (?x) (?x woman)) > (((?X EVE)) ((?X DORIS)) ((?X ALICE)) ((?X BETTY))). Query head Query body Esempio: da un determinato documento OWL. (retrieve (?x) (?x (or |http://www.owl-ontologies.com/unnamed.owl#person| |http://www.owl-ontologies.com/unnamed.owl#book|))) > (((?X |http://www.owl-ontologies.com/unnamed.owl#michael|)) ((?X |http://www.owl-ontologies.com/unnamed.owl#michael|))) nRQL è più potente di qualsiasi altro linguaggio di query di documenti RDF Espressione di concetto complessa
14
nRQL- Role Query Atoms Atomi binari necessari per recuperare coppie dei riempitivi di ruolo contenuti in una ABox o coppie di individui OWL legati da un object properties. Esempio. (retrieve (?mother ?child) (?mother ?child has-child)) > (((?MOTHER BETTY) (?CHILD DORIS)) ((?MOTHER BETTY) (?CHILD EVE)) ((?MOTHER ALICE) (?CHILD BETTY)) ((?MOTHER ALICE) (?CHILD CHARLES))). Ruolo invertito: costruttore INV (retrieve (?mother ?child) (?child ?mother (inv has-child))) Ruolo negato: costruttore not ( non è supportato da altre DL ALCQHI R+ (D-)) (retrieve (?x) (?x (not mother))) > (((?X CHARLES)))
15
nRQL–Constraint Query Atoms Atomi binari utili per recuperare quelle coppie di individui della ABox (o OWL) il cui valore di certi attributi di dominio concreto soddisfa un vincolo. Esempio: dopo aver aggiunto letà per ogni individuo. (retrieve (?x) (?x (>= age 75))) > (((?X ALICE))). I singoli attributi, possono essere sostituiti da catena di ruoli di lunghezza arbitraria (terminanti con attributi) Esempio. (retrieve (?x) (?x ?x (constraint (has-father age) (has-mother age) >))).
16
nRQL – Auxiliary Query Atoms Atomi HAS-KNOWN-SUCCESSOR che permettono di recuperare gli individui che hanno un certo successore di ruolo modellato esplicitamente nellABox, ma non siamo interessati attualmente al recupero di questo successore. Esempio. (retrieve (?x) (?x (has-known-successor has-child))) > (((?X CHARLES)) ((?X BETTY)) ((?X ALICE))).
17
nRQL – Operatori Query Head Projection Recuperano: Oggetti del dominio concreto di individui dellABox e i loro valori Le datatype properties e le annotation properties di un individuo in un file OWL Esempio (retrieve (alice (age alice))(bind-individual alice)) > ((($?ALICE ALICE) ((AGE $?ALICE) (ALICE-AGE)))). (retrieve (alice (age alice) (told-value (age alice))) (bind-individual alice)) > ((($?ALICE ALICE) ((AGE $?ALICE) (HUHU ALICE-AGE) ((:TOLD-VALUE (AGE $?ALICE)) (:NO-TOLD-VALUE 80)))) Assicura che alice può essere limitato Solo allindividuo Alice dellABox
18
nRQL – Query Complesse (1/3) Possiamo costruire un body query più complesso con i seguenti operatori: AND: costruttore n-ario usato per formulare query congiuntive Esempio (retrieve (?x ?y) (and (?x mother) (?y man) (?x ?y has-child))) > (((?X ALICE) (?Y CHARLES))). Esempio: tutte le persone che hanno una mamma in comune (retrieve (?mother ?child1 ?child2) (and (?child1 human) (?child2 human) (?mother ?child1 has-child) (?mother ?child2 has-child))). congiunti
19
nRQL – Query Complesse (2/3) UNION: calcola lunione dei singoli insiemi di risposta (con stessa arità) dei corpi dei query argomento. Esempio: la prima query deve essere trasformata nella seconda. (retrieve (?x ?y) (union (?x ?y has-child) (?x man))) (retrieve (?x ?y) (union (?x ?y has-child) (and (?x man) (?y top)))). NEG: implementa la negazione come semantica di fallimento (NAF). Si può utilizzare anche per atomi di ruolo Esempio: complementare di (?x grandmother). (retrieve (?x) (neg (?x grandmother)))
20
INV: costruttore di ruoli inversi. PROJECT-TO: operatore di proiezione per body di query. Esempio: Data lABox (instance a c) (instance b d) (instance c top) (related a b r) Vogliamo recuperare quelle istanze C che non hanno successori noti R che sono istanze di D. In questo caso la risposta dovrebbe essere (((?X B)) ((?X C))). (retrieve (?x) (neg (project-to (?x) (and (?x c) (?x ?y r) (?y d))))) nRQL – Query Complesse (3/3) La proiezione deve essere effettuata prima della negazione
21
Modi di processamento Set at a time: computa la risposta in unico insieme ( retrieve ) Lazy mode: evita computazioni che non riguardano la query minimizza il tempo di computazione Eager mode: prima di rispondere alla query, classifica la TBox minimizza globalmente il tempo di processamento. Tuple at a time: le tuple vengono restituite una alla volta su richiesta del client. multi-processamento delle query: ognuna si contraddistingue dallidentificativo (id) Lazy mode: le prossime tuple non sono compuate fino alla richiesta del client il thread è in fase di waiting Eager mode: il thread continua a calcolare anche le tuple successive che vengono messe in coda per eventuali richieste.
22
Grado di completezza Modo completo Se il test di consistenza iniziale di una ABox è impossibile il ragionamento e i servizi di recupero sono indisponibili per lalta complessità Es. Non è possibile caricare unintera università dal LUBM (solo 5 dipartimenti anziché 14) Utilizziamo un modo incompleto per recuperare individui dallABox potrebbe risultare completo per alcune ABox strutturate in maniera semplice
23
Casi di Studio – Prima KB (1/4) a c d b (in-knowledge-base grafo grafo-node-egde) (signature :atomic-concepts (node redN blueN) :roles ((edge :inverse inverse-edge :domain node :range node)) :individuals (a b c d)) (implies *top* (and (all edge node) (all inverse-edge node))) (implies redN node) (implies blueN node) (implies redN (not blueN)) (implies node (or redN blueN)) (related a b edge) (related b c edge) (related c a edge) (related c d edge)
24
Prima query: q(x) :- y, z, w. edge(x,y) edge(y,z) edge(z,w) In nRQL: (RETRIEVE (?X) (AND (?X ?Y EDGE) (?Y ?Z EDGE) (?Z ?W EDGE))) > (((?X D)) ((?X A)) ((?X C)) ((?X B)) Casi di Studio – Prima KB (2/4) xyzx In ogni modello, esiste una catena di questo tipo a partire da ogni nodo a d b c (1) a b c d (2) c d b a (3) c d a b (4)
25
Seconda query: q(x,y,z) :- edge(x,y) edge(y,z) edge(z,x) In nRQL: (RETRIEVE (?X ?Y ?Z) (AND (?X ?Y EDGE) (?Y ?Z EDGE) (?Z ?X EDGE))) > (((?X A) (?Y B) (?Z C))(1) ((?X C) (?Y A) (?Z B))(2) ((?X B) (?Y C) (?Z A)))(3) Casi di Studio – Prima KB (3/4) xy z d a b c Il sistema fornisce tre liste di nodi differenti che soddisfano la query, che in realtà però individuano sempre lo stesso ciclo di nodi Terza query: q(x) :- edge(x,y) edge(y,z) edge(z,x) In nRQL: (RETRIEVE (?X) (AND (?X ?Y EDGE) (?Y ?Z EDGE) (?Z ?X EDGE))) > (((?X A)) ((?X C)) ((?X B))) xy z
26
Quarta query: q(x) :- y,z. edge(x,y) RedN(y) edge(y,z) BlueN(z) edge(z,x) In nRQL: (RETRIEVE (?X) (AND (?X ?Y EDGE) (?Y REDN) (?Y ?Z EDGE) (?Z BLUEN) (?Z ?X EDGE))) > NIL Casi di Studio – Prima KB (4/4) xy z In questo caso il sistema RacerPro non è in grado di dimostrare lesistenza di tale cammino. Infatti assegnando un colore ai nodi (in particolare al nodo c) a cui non è stato ancora associato, in tutte le possibili combinazione, possiamo osservare lesistenza di tale cammino in ognuna di esse (in ogni modello). d c b a d c a b
27
Casi di Studio – Seconda KB (1/2) a (in-knowledge-base grafoII grafoII-node-egde) (signature :atomic-concepts (node nodeRB) :roles ((edgeR :inverse inverse-edgeR :domain node :range node) (edgeB :inverse inverse-edgeB :domain node :range node)) :individuals (a)) (implies (some inverse-edgeR node) node) (implies (some edgeR node) node) (implies (some inverse-edgeB node) node) (implies (some edgeB node) node) (implies nodeRB (some edgeB node)) (implies nodeRB (some edgeR node)) (related a a edgeB) (instance a nodeRB)
28
Prima query q(x):- y, z. edgeB(x,y) edgeR(x,z) edgeR(y,z) In nRQL: (RETRIEVE (?X) (AND (?X ?Y EDGEB) (?X ?Z EDGER) (?Y ?Z EDGER))) > NIL Casi di Studio – Seconda KB(2/2) Neanche in questo caso il sistema è in grado di dimostrare che il nodo a soddisfa la query in ogni modello. Infatti il nodo a (a cui associamo la variabile x), essendo un nodeRB, deve avere un edgeB (lo ha già verso se stesso) e un edgeR verso un altro nodo (oppure anche verso se stesso). Quindi poiché anche y coincide con il nodo a, ledgeR condiviso da x e z, sarà condiviso anche da y e z, come è evidente in figura. z x y a
29
Casi di Studio Compito A del 19/12/2005
30
Prima query Per ogni schema concettuale che ha richiesto più di 30 giorni per lo sviluppo, si vogliono conoscere i dati relativi al progetto, al numero, e alla versione. > (((?X |http://www.owl-ontologies.com/unnamed.owl#Conceptual_12|) ((:TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#schemeNumber|?X))(234)) ((:TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#version| ?X) ("uml")) (?Y |http://www.owl-ontologies.com/unnamed.owl#Project_9|) ((:TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#identifyNumber|?Y))(456)) ((:TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#cost| ?Y)) (30000.0)) ((:TOLD-VALU (|http://www.owl-ontologies.com/unnamed.owl#duration|?Y))(16:27:26")))) (RETRIEVE (?X (TOLD-VALUE (|http://www.owl- ontologies.com/unnamed.owl#schemeNumber| ?X)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#version| ?X)) ?Y (TOLD-VALUE (|http://www.owl- ontologies.com/unnamed.owl#identifyNumber| ?Y)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#cost| ?Y)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#duration| ?Y))) (AND (?X |http://www.owl-ontologies.com/unnamed.owl#Conceptual|) (?X (min |http://www.owl- ontologies.com/unnamed.owl#developmentPeriod| 30)) (?X ?Y |http://www.owl-ontologies.com/unnamed.owl#related|))) (RETRIEVE (?X (TOLD-VALUE (|http://www.owl- ontologies.com/unnamed.owl#schemeNumber| ?X)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#version| ?X)) ?Y (TOLD-VALUE (|http://www.owl- ontologies.com/unnamed.owl#identifyNumber| ?Y)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#cost| ?Y)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#duration| ?Y))) (AND (?X |http://www.owl-ontologies.com/unnamed.owl#Conceptual|) (?X (min |http://www.owl- ontologies.com/unnamed.owl#developmentPeriod| 30)) (?X ?Y |http://www.owl-ontologies.com/unnamed.owl#related|))) (RETRIEVE (?X (TOLD-VALUE (|http://www.owl- ontologies.com/unnamed.owl#schemeNumber| ?X)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#version| ?X)) ?Y (TOLD-VALUE (|http://www.owl- ontologies.com/unnamed.owl#identifyNumber| ?Y)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#cost| ?Y)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#duration| ?Y))) (AND (?X |http://www.owl-ontologies.com/unnamed.owl#Conceptual|) (?X (min |http://www.owl- ontologies.com/unnamed.owl#developmentPeriod| 30)) (?X ?Y |http://www.owl-ontologies.com/unnamed.owl#related|))) (RETRIEVE (?X (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#schemeNumber| ?X)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#version| ?X)) ?Y (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#identifyNumber| ?Y)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#cost| ?Y)) (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#duration| ?Y))) (AND (?X |http://www.owl-ontologies.com/unnamed.owl#Conceptual|) (?X (min |http://www.owl-ontologies.com/unnamed.owl#developmentPeriod| 30)) (?X ?Y |http://www.owl-ontologies.com/unnamed.owl#related|))) Casi di Studio Compito A del 19/12/2005 (1/3)
31
Seconda query Per ogni schema logico di dimensione maggiore di 100, si vogliono conoscere il tempo di sviluppo, ed il costo del relativo progetto. Casi di Studio Compito A del 19/12/2005 (2/3) RETRIEVE (?X (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#developmentPeriod|?X)) ?Y (TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#cost| ?Y)))) (AND (?X |http://www.owl-ontologies.com/unnamed.owl#Logical|) (?X (MIN |http://www.owl-ontologies.com/unnamed.owl#size| 100)) (?X ?Y |http://www.owl-ontologies.com/unnamed.owl#related|))) > (((?X |http://www.owl-ontologies.com/unnamed.owl#Logical_10|) ((:TOLD-VALUE(|http://www.owl-ontologies.com/unnamed.owl#developmentPeriod| ?X)) (24)) (?Y |http://www.owl-ontologies.com/unnamed.owl#Project_3|) ((:TOLD-VALUE (|http://www.owl-ontologies.com/unnamed.owl#cost| ?Y))(15000.0))))
32
Terza query Fornire la lista dei progetti per i quali è stato prodotto almeno uno schema logico implementato in un DBMS per il quale almeno un committente del relativo progetto non ha la licenza. (RETRIEVE (?X) (AND (?X |http://www.owl-ontologies.com/unnamed.owl#Logical|) (?X ?Y |http://www.owl-ontologies.com/unnamed.owl#layout|) (?X ?Z |http://www.owl-ontologies.com/unnamed.owl#related|) (?W ?Z |http://www.owl-ontologies.com/unnamed.owl#order|) (NEG (?W ?Y |http://www.owl-ontologies.com/unnamed.owl#permission|)))) > (((?X |http://www.owl-ontologies.com/unnamed.owl#Logical_13|))) Casi di Studio Compito A del 19/12/2005 (3/3) Quarta query Produrre la lista di tutti i progetti il cui costo è inferiore al compenso totale che hanno determinato per l'azienda, dove il compenso totale che un progetto determina per l'azienda è semplicemente la somma dei compensi erogati dai relativi committenti per quel progetto. Non è possibile calcolare il compenso totale di un determinato progetto.
33
Conclusioni RacerPro processa documenti OWL-DL (completezza computazionale e decidibilità) implementa la DL ALCQHIR+ nRQL permette di esprimere le conjunctive query e query complesse a partire da semplici atomi. supporta due tipi di negazione: classica negazione del vero e NAF (non supportata da nessun linguaggio di query OWL). supporta ricerche complesse sui valori degli attributi di un individuo (dominio concreto). supporta unoperatore di proiezione proiect-to. è un potente linguaggio di query OWL e RDF.
34
Conclusioni (2/2) Grande potere espressivo Limitato potere computazionale: nei casi di studio abbiamo osservato che il sistema non è in grado di dimostrare dei fatti che sono veri in ogni modello della KB. Il test di consistenza iniziale dellABox limita il sistema, che non è in grado di utilizzare delle KB molto grandi (non più di 10.000 individui).
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.