a high performance semantic web query answering engine · dl ’05, 28th july 2005, michael wessel...
TRANSCRIPT
![Page 1: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/1.jpg)
PSfr
agre
plac
emen
ts � �
A High PerformanceSemantic Web Query
Answering EngineDescription Logic Workshop ’05
Michael Wessel and Ralf Moller
Software Systems Group (STS)
Hamburg University of Technology (TUHH)
Hamburg, Germany
{mi.wessel | r.f.moeller}@tuhh.de
DL ’05, 28th July 2005, Michael Wessel – p.1/43
![Page 2: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/2.jpg)
PSfr
agre
plac
emen
ts � �Overview of Talk
• Background & Requirements• The nRQL Query Language
• Introductory examples• Syntax (query atoms, variables, . . . )• Querying OWL Documents• Semantics
• The nRQL Query Processing Engine• Incremental Query Processing• Configurable Completeness• Simple Rules• Query Reasoning, Optimization
• Outlook & ConclusionDL ’05, 28th July 2005, Michael Wessel – p.2/43
![Page 3: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/3.jpg)
PSfr
agre
plac
emen
ts � �Background & Requirements
• Racer(Pro) is an ABox DL reasoner forALCQHIR+(D−) aka SHIQ(D−)
• Expressive ABox queries demanded by users• Question: how to design a query language which
• satisfies these user requests• offers “full query access” to all Racer features
(e.g., concrete domain)• allows to query OWL documents (datatype &
annotation properties, . . . )• can be implemented efficiently• has a simple orthogonal syntax and semantics
⇒ nRQL has been “tailored” for Racer
DL ’05, 28th July 2005, Michael Wessel – p.3/43
![Page 4: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/4.jpg)
PSfr
agre
plac
emen
ts � �. . . what’s new since DL ’04
• more language features (e.g., a projectionoperator)
• serious implementation of query answeringengine (concurrency control, thread pooling, . . . )
• (preliminary) GUI support• tools for manipulating and inspecting the
states of queries (RacerPorter)• life cycle management of queries
• (very) simple rules• additional representation layers for Racer for
storing data (rationale? see below)• nRQL access to these additional layers
DL ’05, 28th July 2005, Michael Wessel – p.4/43
![Page 5: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/5.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Overview
• compositional syntax and semantics• compound/complex queries build from query
atoms, using boolean connectors• allows for arbitrary shaped conjunctive queries• Query atoms contain variables and individuals• variables: ?x, $?x; individuals: betty
(retrieve (?x (told-value (age ?x)))
(and (?x (and woman (an age)))
(?x ?y has-child)
(?y ?y (constraint
(has-father age)
(has-mother age)
(> age-1 (+ age-2 8)))))
(((?x betty) ((told-value (age ?x)) 45))
((?x diana) ((told-value (age ?x)) 55))...
)
DL ’05, 28th July 2005, Michael Wessel – p.5/43
![Page 6: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/6.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Overview
• compositional syntax and semantics• compound/complex queries build from query
atoms, using boolean connectors• allows for arbitrary shaped conjunctive queries• Query atoms contain variables and individuals• variables: ?x, $?x; individuals: betty
(((?x betty) ((told-value (age ?x)) 45))
((?x diana) ((told-value (age ?x)) 55))...
)
DL ’05, 28th July 2005, Michael Wessel – p.5/43
![Page 7: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/7.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Example
"Betty"
45 20 55
PSfrag replacements
��
Abstract Domain
Concrete Domain
has_child
has_child has_father
has_motherbetty
betty-agebetty-name= ”Betty”
charles-agejane-age
= 45
= 20
= 55
charles
jane
ageageagename
?x?y
λ(age1, age2).age2 + 8 < age1
((?x betty) ((age ?x) betty-age))
((?x betty) ((told-value (age ?x)) 45))
True in all I
(?x (and woman
(an age)))
(?x ?y has-child)
(?y ?y
(constraint
(has-father age)
(has-mother age)
(> age-1
(+ age-2 8))))
(retrieve
(?x
(age ?x)) ...)
(retrieve
(?x
(told-value
(age ?x))) ...)
DL ’05, 28th July 2005, Michael Wessel – p.6/43
![Page 8: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/8.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Example
PSfrag replacements
��
Abstract Domain
Concrete Domain
has_child
has_child has_father
has_motherbetty
betty-age
betty-name= ”Betty”
charles-agejane-age
= 45 = 20 = 55
charles
jane
ageageagename
?x?y
λ(age1, age2).age2 + 8 < age1
((?x betty) ((age ?x) betty-age))
((?x betty) ((told-value (age ?x)) 45))
True in all I
(?x (and woman
(an age)))
(?x ?y has-child)
(?y ?y
(constraint
(has-father age)
(has-mother age)
(> age-1
(+ age-2 8))))
(retrieve
(?x
(age ?x)) ...)
(retrieve
(?x
(told-value
(age ?x))) ...)DL ’05, 28th July 2005, Michael Wessel – p.6/43
![Page 9: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/9.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Example
"Betty"
45 20 55
PSfrag replacements
��
Abstract Domain
Concrete Domain
has_child
has_child has_father
has_motherbetty
betty-agebetty-name= ”Betty”
charles-agejane-age
= 45
= 20
= 55
charles
jane
ageageagename
?x
?yλ(age1, age2).age2 + 8 < age1
((?x betty) ((age ?x) betty-age))
((?x betty) ((told-value (age ?x)) 45))
True in all I
(?x (and woman
(an age)))
(?x ?y has-child)
(?y ?y
(constraint
(has-father age)
(has-mother age)
(> age-1
(+ age-2 8))))
(retrieve
(?x
(age ?x)) ...)
(retrieve
(?x
(told-value
(age ?x))) ...)
DL ’05, 28th July 2005, Michael Wessel – p.6/43
![Page 10: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/10.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Example
"Betty"
45 20 55
PSfrag replacements
��
Abstract Domain
Concrete Domain
has_child
has_child has_father
has_motherbetty
betty-agebetty-name= ”Betty”
charles-agejane-age
= 45
= 20
= 55
charles
jane
ageageagename
?x
?y
λ(age1, age2).age2 + 8 < age1
((?x betty) ((age ?x) betty-age))
((?x betty) ((told-value (age ?x)) 45))
True in all I
(?x (and woman
(an age)))
(?x ?y has-child)
(?y ?y
(constraint
(has-father age)
(has-mother age)
(> age-1
(+ age-2 8))))
(retrieve
(?x
(age ?x)) ...)
(retrieve
(?x
(told-value
(age ?x))) ...)
DL ’05, 28th July 2005, Michael Wessel – p.6/43
![Page 11: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/11.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Example
"Betty"
45 20 55
PSfrag replacements
��
Abstract Domain
Concrete Domain
has_child
has_childhas_father
has_motherbetty
betty-agebetty-name= ”Betty”
charles-agejane-age
= 45
= 20
= 55
charles
jane
ageageagename
?x
?y
λ(age1, age2).age2 + 8 < age1
((?x betty) ((age ?x) betty-age))
((?x betty) ((told-value (age ?x)) 45))
True in all I
(?x (and woman
(an age)))
(?x ?y has-child)
(?y ?y
(constraint
(has-father age)
(has-mother age)
(> age-1
(+ age-2 8))))(retrieve
(?x
(age ?x)) ...)
(retrieve
(?x
(told-value
(age ?x))) ...)
DL ’05, 28th July 2005, Michael Wessel – p.6/43
![Page 12: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/12.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Example
"Betty"
45 20 55
PSfrag replacements
��
Abstract Domain
Concrete Domain
has_child
has_childhas_father
has_motherbetty
betty-agebetty-name= ”Betty”
charles-agejane-age
= 45
= 20
= 55
charles
jane
ageageagename
?x
?y
λ(age1, age2).age2 + 8 < age1
((?x betty) ((age ?x) betty-age))
((?x betty) ((told-value (age ?x)) 45))
True in all I
(?x (and woman
(an age)))
(?x ?y has-child)
(?y ?y
(constraint
(has-father age)
(has-mother age)
(> age-1
(+ age-2 8))))(retrieve
(?x
(age ?x)) ...)
(retrieve
(?x
(told-value
(age ?x))) ...)
λ(age1, age2).45 + 8 < 55 ⇒ �
DL ’05, 28th July 2005, Michael Wessel – p.6/43
![Page 13: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/13.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Example
"Betty"
45 20 55
PSfrag replacements
��
Abstract Domain
Concrete Domain
has_child
has_child has_father
has_motherbetty
betty-agebetty-name= ”Betty”
charles-agejane-age
= 45
= 20
= 55
charles
jane
ageageagename
?x
?yλ(age1, age2).age2 + 8 < age1
((?x betty) ((age ?x) betty-age))
((?x betty) ((told-value (age ?x)) 45))
True in all I
(?x (and woman
(an age)))
(?x ?y has-child)
(?y ?y
(constraint
(has-father age)
(has-mother age)
(> age-1
(+ age-2 8))))(retrieve
(?x
(age ?x)) ...)
(retrieve
(?x
(told-value
(age ?x))) ...)
DL ’05, 28th July 2005, Michael Wessel – p.6/43
![Page 14: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/14.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Example
"Betty"
20 55
PSfrag replacements
��
Abstract Domain
Concrete Domain
has_child
has_child has_father
has_motherbetty
betty-agebetty-name= ”Betty”
charles-agejane-age
= 45
= 45
= 20
= 55
charles
jane
ageageagename
?x
?yλ(age1, age2).age2 + 8 < age1
((?x betty) ((age ?x) betty-age))
((?x betty) ((told-value (age ?x)) 45))
True in all I
(?x (and woman
(an age)))
(?x ?y has-child)
(?y ?y
(constraint
(has-father age)
(has-mother age)
(> age-1
(+ age-2 8))))
(retrieve
(?x
(age ?x)) ...)
(retrieve
(?x
(told-value
(age ?x))) ...)
DL ’05, 28th July 2005, Michael Wessel – p.6/43
![Page 15: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/15.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Syntax
• Queries have a head and a body:(retrieve <head> <body>)
• Syntax for <head>head := (head_entry∗)
head_entry := object | head_projection_operator
object := variable | individual
variable := a symbol beginning with “?”
individual := a symbol
head_projection_operator :=
(cd_attribute object) |
(told-value (cd_attribute object)) |
(told-value (datatype_property object)) |
(annotations (annotation_property object))
DL ’05, 28th July 2005, Michael Wessel – p.7/43
![Page 16: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/16.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Syntax (2)
• Syntax for <body>
body := atom | ( {and | union} body∗) | ( { neg | inv} body ) |
(project-to (object∗) body)
atom := (object concept_expr) | (object object role_expr) |
(object object (constraint chain chain constraint_expr)) |
(same-as variable individual)
chain := (role_expr∗ cd_attribute)
concept_expr := a Racer concept, with some extensions for OWL
role_expr := a Racer role | (inv role_expr) | (not role_expr)
constraint_expr := a Racer concrete predicate
cd_attribute := a Racer concrete domain attribute
datatype_property := a Racer role used as OWL datatype property
annotation_property := a Racer role used as OWL annotation property
DL ’05, 28th July 2005, Michael Wessel – p.8/43
![Page 17: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/17.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Syntax (2)
• Syntax for <body>body := atom | ( {and | union} body∗) | ( { neg | inv} body ) |
(project-to (object∗) body)
atom := (object concept_expr) | (object object role_expr) |
(object object (constraint chain chain constraint_expr)) |
(same-as variable individual)
chain := (role_expr∗ cd_attribute)
concept_expr := a Racer concept, with some extensions for OWL
role_expr := a Racer role | (inv role_expr) | (not role_expr)
constraint_expr := a Racer concrete predicate
cd_attribute := a Racer concrete domain attribute
datatype_property := a Racer role used as OWL datatype property
annotation_property := a Racer role used as OWL annotation property
DL ’05, 28th July 2005, Michael Wessel – p.8/43
![Page 18: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/18.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Syntax (2)
• Syntax for <body>body := atom | ( {and | union} body∗) | ( { neg | inv} body ) |
(project-to (object∗) body)
atom := (object concept_expr) | (object object role_expr) |
(object object (constraint chain chain constraint_expr)) |
(same-as variable individual)
chain := (role_expr∗ cd_attribute)
concept_expr := a Racer concept, with some extensions for OWL
role_expr := a Racer role | (inv role_expr) | (not role_expr)
constraint_expr := a Racer concrete predicate
cd_attribute := a Racer concrete domain attribute
datatype_property := a Racer role used as OWL datatype property
annotation_property := a Racer role used as OWL annotation property
DL ’05, 28th July 2005, Michael Wessel – p.8/43
![Page 19: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/19.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Syntax (2)
• Syntax for <body>body := atom | ( {and | union} body∗) | ( { neg | inv} body ) |
(project-to (object∗) body)
atom := (object concept_expr) | (object object role_expr) |
(object object (constraint chain chain constraint_expr)) |
(same-as variable individual)
chain := (role_expr∗ cd_attribute)
concept_expr := a Racer concept, with some extensions for OWL
role_expr := a Racer role | (inv role_expr) | (not role_expr)
constraint_expr := a Racer concrete predicate
cd_attribute := a Racer concrete domain attribute
datatype_property := a Racer role used as OWL datatype property
annotation_property := a Racer role used as OWL annotation property
DL ’05, 28th July 2005, Michael Wessel – p.8/43
![Page 20: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/20.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Syntax (2)
• Syntax for <body>body := atom | ( {and | union} body∗) | ( { neg | inv} body ) |
(project-to (object∗) body)
atom := (object concept_expr) | (object object role_expr) |
(object object (constraint chain chain constraint_expr)) |
(same-as variable individual)
chain := (role_expr∗ cd_attribute)
concept_expr := a Racer concept, with some extensions for OWL
role_expr := a Racer role | (inv role_expr) | (not role_expr)
constraint_expr := a Racer concrete predicate
cd_attribute := a Racer concrete domain attribute
datatype_property := a Racer role used as OWL datatype property
annotation_property := a Racer role used as OWL annotation property
DL ’05, 28th July 2005, Michael Wessel – p.8/43
![Page 21: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/21.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Syntax (2)
• Syntax for <body>body := atom | ( {and | union} body∗) | ( { neg | inv} body ) |
(project-to (object∗) body)
atom := (object concept_expr) | (object object role_expr) |
(object object (constraint chain chain constraint_expr)) |
(same-as variable individual)
chain := (role_expr∗ cd_attribute)
Example concept query atoms
• (?x woman)
• (betty woman)
concept expr := a Racer concept, with some extensions for OWL
role expr := a Racer role | (inv role expr) | (not role expr)
constraint expr := a Racer concrete predicate
cd attribute := a Racer concrete domain attribute
datatype property := a Racer role used as OWL datatype property
annotation property := a Racer role used as OWL annotation property
DL ’05, 28th July 2005, Michael Wessel – p.8/43
![Page 22: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/22.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Syntax (2)
• Syntax for <body>body := atom | ( {and | union} body∗) | ( { neg | inv} body ) |
(project-to (object∗) body)
atom := (object concept_expr) | (object object role_expr) |
(object object (constraint chain chain constraint_expr)) |
(same-as variable individual)
chain := (role_expr∗ cd_attribute)
Example role query atoms
• (?x ?y has-child)
• (betty ?child-of-betty has-child)
• (?x ?y (inv has-child))
• (?x ?y (not has-father))
concept expr := a Racer concept, with some extensions for OWL
role expr := a Racer role | (inv role expr) | (not role expr)
constraint expr := a Racer concrete predicate
cd attribute := a Racer concrete domain attribute
datatype property := a Racer role used as OWL datatype property
annotation property := a Racer role used as OWL annotation property
DL ’05, 28th July 2005, Michael Wessel – p.8/43
![Page 23: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/23.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Syntax (2)
• Syntax for <body>body := atom | ( {and | union} body∗) | ( { neg | inv} body ) |
(project-to (object∗) body)
atom := (object concept_expr) | (object object role_expr) |
(object object (constraint chain chain constraint_expr)) |
(same-as variable individual)
chain := (role_expr∗ cd_attribute)
Example constraint query atoms• (?x ?y (constraint (has-mother age)
(has-father age) <))
• (?x ?y (constraint (has-brother age)
(age)
(= age-1 (+ 8 age-2))))
concept expr := a Racer concept, with some extensions for OWL
role expr := a Racer role | (inv role expr) | (not role expr)
constraint expr := a Racer concrete predicate
cd attribute := a Racer concrete domain attribute
datatype property := a Racer role used as OWL datatype property
annotation property := a Racer role used as OWL annotation property
DL ’05, 28th July 2005, Michael Wessel – p.8/43
![Page 24: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/24.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Syntax (2)
• Syntax for <body>body := atom | ( {and | union} body∗) | ( { neg | inv} body ) |
(project-to (object∗) body)
atom := (object concept_expr) | (object object role_expr) |
(object object (constraint chain chain constraint_expr)) |
(same-as variable individual)
chain := (role_expr∗ cd_attribute)
Example same-as query atoms
• (same-as ?x betty)
concept expr := a Racer concept, with some extensions for OWL
role expr := a Racer role | (inv role expr) | (not role expr)
constraint expr := a Racer concrete predicate
cd attribute := a Racer concrete domain attribute
datatype property := a Racer role used as OWL datatype property
annotation property := a Racer role used as OWL annotation property
DL ’05, 28th July 2005, Michael Wessel – p.8/43
![Page 25: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/25.jpg)
PSfr
agre
plac
emen
ts � �nRQL Language – Syntax (2)
• Syntax for <body>body := atom | ( {and | union} body∗) | ( { neg | inv} body ) |
(project-to (object∗) body)
atom := (object concept_expr) | (object object role_expr) |
(object object (constraint chain chain constraint_expr)) |
(same-as variable individual)
chain := (role_expr∗ cd_attribute)
concept_expr := a Racer concept, with some extensions for OWL
role_expr := a Racer role | (inv role_expr) | (not role_expr)
constraint_expr := a Racer concrete predicate
cd_attribute := a Racer concrete domain attribute
datatype_property := a Racer role used as OWL datatype property
annotation_property := a Racer role used as OWL annotation property
DL ’05, 28th July 2005, Michael Wessel – p.8/43
![Page 26: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/26.jpg)
PSfr
agre
plac
emen
ts � �nRQL Variables
• Variables can only be bound to ABox individuals,not to concrete domain objects or even concretedomain values
• nRQL offers two kinds of variables: ?x, $?x• ?x prohibits binding to individuals which are
already bound by other variables, e.g. ?y(mapping must be injective)
• “UNA” for variables? (retrieve (?x ?y) (and (?x man) (?y man)))
> NIL
? (retrieve ($?x $?y) (and ($?x man)
($?y man)))
> ((($?X CHARLES) ($?Y CHARLES)))
DL ’05, 28th July 2005, Michael Wessel – p.9/43
![Page 27: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/27.jpg)
PSfr
agre
plac
emen
ts � �Complex nRQL Queries
• Compound nRQL queries are defined inductively• Every query atom ai is a body.• If a1 ...an are query bodies, then the
following expressions are also bodies• (neg ai)• (inv ai)• (and a1 ...an)• (union a1 ...an)• (project-to (objects-in-ai) ai)
• Each variable creates a new axis in ann-dimensional tuple space
• A projection (specified by <head>) is madebefore that set is returned.
DL ’05, 28th July 2005, Michael Wessel – p.10/43
![Page 28: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/28.jpg)
PSfr
agre
plac
emen
ts � �Illustration of Semantics
(retrieve (?x)
(and ( ?x woman)
( ?y man)
(?x ?y has-child)))
PSfrag replacements
��
Step1
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.11/43
![Page 29: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/29.jpg)
PSfr
agre
plac
emen
ts � �Illustration of Semantics
(retrieve (?x)
(and (?x woman)
(?y man)
(?x ?y has-child)))
PSfrag replacements
��
Step1
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.11/43
![Page 30: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/30.jpg)
PSfr
agre
plac
emen
ts � �Illustration of Semantics
(retrieve (?x)
(and (and (?x woman) (?y top))
(?y man)
(?x ?y has-child)))
PSfrag replacements
��
Step1
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.11/43
![Page 31: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/31.jpg)
PSfr
agre
plac
emen
ts � �Illustration of Semantics
(retrieve (?x)
(and (and (?x woman) (?y top))
(?y man)
(?x ?y has-child)))
PSfrag replacements
��
Step1
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.11/43
![Page 32: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/32.jpg)
PSfr
agre
plac
emen
ts � �Illustration of Semantics
(retrieve (?x)
(and (and (?x woman) (?y top))
(and (?x top) (?y man))
(?x ?y has-child)))
PSfrag replacements
��
Step1
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.11/43
![Page 33: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/33.jpg)
PSfr
agre
plac
emen
ts � �Illustration of Semantics
(retrieve (?x)
( and (and (?x woman) (?y top))
(and (?x top) (?y man))
(?x ?y has-child)))
PSfrag replacements
��
Step1
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.11/43
![Page 34: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/34.jpg)
PSfr
agre
plac
emen
ts � �Illustration of Semantics
(retrieve (?x)
(and (and (?x woman) (?y top))
(and (?x top) (?y man))
(?x ?y has-child) ))
PSfrag replacements
��
Step1
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.11/43
![Page 35: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/35.jpg)
PSfr
agre
plac
emen
ts � �Illustration of Semantics
(retrieve (?x)
( and (and (?x woman) (?y top))
(and (?x top) (?y man))
(?x ?y has-child)))
PSfrag replacements
��
Step1
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.11/43
![Page 36: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/36.jpg)
PSfr
agre
plac
emen
ts � �Illustration of Semantics
(retrieve (?x)
(and (and (?x woman) (?y top))
(and (?x top) (?y man))
(?x ?y has-child)))
PSfrag replacements
��
Step1
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.11/43
![Page 37: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/37.jpg)
PSfr
agre
plac
emen
ts � �Negation in nRQL
• nRQL offers NAF with neg• Semantics: simple set complement
• well-defined for concept and role query atoms• well-defined for compound queries
(DeMorgan etc.)• some “tricks” are needed for same-as andconstraint query atoms
• Classical DL-like negation• obviously, in concept query atoms• but also in role query atoms(?x ?y (not has-father))
DL ’05, 28th July 2005, Michael Wessel – p.12/43
![Page 38: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/38.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
(and (?x woman)
(?y man)
(?x ?y has-child)))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 39: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/39.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
(neg (and (?x woman)
(?y man)
(?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 40: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/40.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
(union (neg (?x woman))
(neg (?y man))
(neg (?x ?y has-child)) ))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 41: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/41.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
(union (neg (?x woman))
(neg (?y man))
(neg (?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 42: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/42.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
(union (neg (?x woman))
(and (?x top) (neg (?y man)))
(neg (?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 43: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/43.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
(union (?x woman)
(and (?x top) (neg (?y man)))
(neg (?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 44: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/44.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
(union (and (neg (?x woman) (?y top)))
(and (?x top) (neg (?y man)))
(neg (?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 45: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/45.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
( union (and (neg (?x woman) (?y top)))
(and (?x top) (neg (?y man)))
(neg (?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 46: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/46.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
(and (?x woman)
(?y man)
(?x ?y has-child)))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 47: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/47.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
( neg (and (?x woman)
(?y man)
(?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 48: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/48.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
(neg (and (?x woman)
(?y man)
(?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 49: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/49.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
(retrieve (?x)
(and (?x woman)
(?y man)
(?x ?y has-child)))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 50: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/50.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg
( NEG (retrieve (?x)
(and (?x woman)
(?y man)
(?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 51: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/51.jpg)
PSfr
agre
plac
emen
ts � �Illustration of neg(retrieve (?x)
(neg (project-to (?x)
(and (?x woman) (?y man)
(?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.13/43
![Page 52: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/52.jpg)
PSfr
agre
plac
emen
ts � �Queries with Individuals
? (retrieve (betty)
(betty woman))
> ((($?BETTY BETTY)))
• Explanation: query is rewritten into
(AND (SAME-AS $?BETTY BETTY)
($?BETTY WOMAN))
• $?BETTY is a variable that does not obey theunique name assumption for variables
• (SAME-AS $?BETTY BETTY) enforces binding of$?BETTY to BETTY
DL ’05, 28th July 2005, Michael Wessel – p.14/43
![Page 53: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/53.jpg)
PSfr
agre
plac
emen
ts � �Semantic Consequences
• “NAF” for atoms with individuals can be tricky
(retrieve (betty)
(neg (betty woman)))
=
(retrieve ($?betty)
(neg (and ($?betty woman)
(same-as $?betty betty))))
=
(retrieve ($?betty)
(UNION (neg ($?betty woman))
(neg (same-as $?betty betty))))
• one must define the semantics in such a way if theorthogonality of the language shall be preserved!
DL ’05, 28th July 2005, Michael Wessel – p.15/43
![Page 54: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/54.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator• We can retrieve all woman having children with(retrieve (?x)
(and (?x woman) (?x ?y has-child)))
• How can we retrieve woman which have no(known) children?
? (retrieve (?x)
(?x (and woman (all has-child bottom))))
? (retrieve (?x)
(and (?x woman)
(neg (?x ?y has-child))))
? (retrieve (?x)
(neg (and (?x woman) (?x ?y has-child))))DL ’05, 28th July 2005, Michael Wessel – p.16/43
![Page 55: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/55.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator (2)Q1: (retrieve (?x)
(and (?x woman)
(neg (?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.17/43
![Page 56: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/56.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator (2)Q1: (retrieve (?x)
(and (?x woman)
(neg (?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.17/43
![Page 57: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/57.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator (2)Q1: (retrieve (?x)
(and (?x woman)
(neg (?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.17/43
![Page 58: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/58.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator (2)� Q1: (retrieve (?x)
(and (?x woman)
(neg (?x ?y has-child)))) �
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.17/43
![Page 59: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/59.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator (2)Q2: (retrieve (?x)
(neg (and (?x woman)
(?x ?y has-child))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.17/43
![Page 60: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/60.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator (2)� Q2: (retrieve (?x)
(neg (and (?x woman)
(?x ?y has-child)))) �
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.17/43
![Page 61: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/61.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator (2)Q3: (retrieve (?x)
(and (?x woman)
(neg (project-to (?x)
(?x ?y has-child) ))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.17/43
![Page 62: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/62.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator (2)Q3: (retrieve (?x)
(and (?x woman)
(neg ( project-to (?x)
(?x ?y has-child)))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.17/43
![Page 63: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/63.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator (2)Q3: (retrieve (?x)
(and (?x woman)
(neg (project-to (?x)
(?x ?y has-child)))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.17/43
![Page 64: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/64.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator (2)Q3: (retrieve (?x)
(and (?x woman)
( neg (project-to (?x)
(?x ?y has-child)))))
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.17/43
![Page 65: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/65.jpg)
PSfr
agre
plac
emen
ts � �The Projection Operator (2)Q3: (retrieve (?x)
(and (?x woman)
(neg (project-to (?x)
(?x ?y has-child)))))�
PSfrag replacements
��
?x
?y
DL ’05, 28th July 2005, Michael Wessel – p.17/43
![Page 66: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/66.jpg)
PSfr
agre
plac
emen
ts � �. . . Some Syntactic Sugar
• Due to the new projection operator, some “specialsyntax” from the older nRQL (DL ’04) can nowbe expressed
• (?x (has-known-successor has-child))= (project-to (?x) (?x ?y has-child))
• (?x NIL has-child) (borrowed from LOOM)= (neg(?x (has-known-successor has-child)))
= (neg(project-to (?x) (?x ?y has-child)))
• now expressible in terms of project-to
DL ’05, 28th July 2005, Michael Wessel – p.18/43
![Page 67: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/67.jpg)
PSfr
agre
plac
emen
ts � �Querying OWL KBs
• OWL datatype properties:
<owl:Class rdf:ID="Person">
<rdfs:label>person</rdfs:label>
</owl:Class>
<owl:DatatypeProperty rdf:ID="age">
<rdfs:domain rdf:resource="#Person" />
<rdfs:range rdf:resource=
"http://www.w3.org/2001/XMLSchema#integer" />
</owl:DatatypeProperty>
<Person rdf:about="http://www.test.com/michael">
<age>34</age>
</Person>
DL ’05, 28th July 2005, Michael Wessel – p.19/43
![Page 68: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/68.jpg)
PSfr
agre
plac
emen
ts � �nRQL & Datatype Properties
• Idea: handle OWL DTP like concrete domainattributes
? (retrieve
(?x
(datatype-fillers
(|http://www.test.com/test.owl#age| ?x)))
(?x (some |http://www.test.com/test.owl#age|
(and (min 30) (max 35)))))
> (((?X |http://www.test.com/michael|)
((:TOLD-VALUE
(|http://www.test.com/test.owl#age| ?X)) (34))))
• Extended Racer concept syntax (expressions like(and (min 30) (max 35)) only recognized bynRQL)
DL ’05, 28th July 2005, Michael Wessel – p.20/43
![Page 69: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/69.jpg)
PSfr
agre
plac
emen
ts � �nRQL & Annotation Properties<owl:AnnotationProperty rdf:ID="my-comment">
<rdf:type rdf:resource=
"http://www.w3.org/2002/07/owl#DatatypeProperty"/>
<rdfs:domain rdf:resource="#person"/>
</owl:AnnotationProperty>
<person rdf:ID="i">
<my-comment rdf:datatype=
"http://www.w3.org/2001/XMLSchema#string"
>My comment</my-comment>
</person>
• A special head projection operator annotations(told-value) is provided by nRQL
• Similar to querying for datatype propertiesDL ’05, 28th July 2005, Michael Wessel – p.21/43
![Page 70: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/70.jpg)
PSfr
agre
plac
emen
ts � �Expressivity Problems
• Access to “data values” in OWL docs (fillers ofdatatype/annotation properties) is restricted
• from the DL perspective, only the (extended)Racer concept expression language can be used
• How to retrieve all individuals which have (CDattribute or DTP) fillers containing substring x?
• Solution: maintain a data substrate in parallel toan ABox
• the data substrate is used to automatically“mirror” the ABox
• offer query access to this substrate by means of ahybrid query language - nRQL
DL ’05, 28th July 2005, Michael Wessel – p.22/43
![Page 71: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/71.jpg)
PSfr
agre
plac
emen
ts � �Hybrid Queries
(retrieve (?x ?*name ?*age)
(and (?x (and |http://...#person|
(an |http://...#age|)))
(?*x ?*name |http://...#name|)
(?*name ( (:predicate (search "wessel"))
((:predicate (search "michael"))
(:predicate (search "achim")))))
(?*x ?*age |http://...#age|)
(?*age ((:predicate (< 40))))))
• New sort of variables: *?x (*$?x), ranging over data nodes
• Data nodes can also be data values in OWL documents
• Data nodes/edges have descriptive labels: kind, role, property, . . .
• Notion of entailment for labels of nodes/edges
• Data query atoms are in pos. CNF & contain literals and predicates.
DL ’05, 28th July 2005, Michael Wessel – p.23/43
![Page 72: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/72.jpg)
PSfr
agre
plac
emen
ts � �Formal Semantics - Auxiliaries
• The projection
T ′ =def { 〈ti1 , . . . , tim〉 | 〈t1, . . . , tn〉 ∈ T } = π〈i1,...,im〉(T ) of T
to the components mentioned in the index vector 〈i1, . . . , im〉.
Example:
π〈1,3〉{〈1, 2, 3〉 , 〈2, 3, 4〉} = {〈1, 3〉 , 〈2, 4〉}.
• If~b is a bit vector which contains exactly m ones, and B is a set, T is a
set of m-ary tuples, then
the n-dimensional extension T ′ of T w.r.t. B and~b is defined as T′ =def
{ 〈i1, . . . , in〉 | 〈j1, . . . , jm〉 ∈ T , 1 ≤ l ≤ m, 1 ≤ k ≤ n
with ik = jl if bk = 1, and bk is the lth one (1) in ~b,
otherwise, ik ∈ B }
.
and denoted by χB,〈b1,...,bn〉(T ).
Example:
χ{a,b},〈0,1,0,1〉({〈x, y〉}) =
{〈a, x, a, y〉 , 〈a, x, b, y〉 , 〈b, x, a, y〉 , 〈b, x, b, y〉}.DL ’05, 28th July 2005, Michael Wessel – p.24/43
![Page 73: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/73.jpg)
PSfr
agre
plac
emen
ts � �Formal Semantics - Atoms
(q ′xi
concept_expr)E =def
χIndsA,~1n,{i}
(concept_instances(A, concept_expr))
(q ′xi
q ′xj
rolen_expr)E =def
χIndsA,~1n,{i,j}
(role_pairs(A, role_expr)), if i 6= j
(q ′xi
q ′xi
role_expr)E =def
χIndsA,~1n,{i}
(role_pairs(A, role_expr) ∩ ID2,IndsA)
(same-as q ′xi
ind)E =def
χIndsA,~1n,{i}
({ind})
(q ′xi
q ′xj
(constraint attrib1 attrib2 P))E =def
χIndsA,~1n,{i,j}
(predicate_pairs(A, attrib1, attrib2, P )), if i 6= j
(q ′xi
q ′xi
(constraint attrib1 attrib2 P))E =def
χIndsA,~1n,{i}
(predicate_pairs(A, attrib1, attrib2, P ) ∩ ID2,IndsA)
DL ’05, 28th July 2005, Michael Wessel – p.25/43
![Page 74: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/74.jpg)
PSfr
agre
plac
emen
ts � �Formal Semantics - Bridge2DL
• Semantics of DL standard ABox retrievalfunctions (“Bridge to Racer’s basic ABoxretrieval functions”)
concept_instances(A, concept_expr) =def
{ i | i ∈ IndsA, (A, TA) |= concept_expr(i) }
role_pairs(A, role_expr) =def
{ 〈i, j〉 | i, j ∈ IndsA, (A, TA) |= role_expr(i, j) }
predicate_pairs(A, attrib1, attrib2, P ) =def
{ 〈i, j〉 | i, j ∈ IndsA, (A, TA) |=
∃x, y : attrib1(i, x) ∧ attrib2(j, y) ∧ P (x, y) }
DL ’05, 28th July 2005, Michael Wessel – p.26/43
![Page 75: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/75.jpg)
PSfr
agre
plac
emen
ts � �Formal Semantics - Bodies
(and q1 . . . qi)E =def
⋂1≤j≤i qEj
(union q1 . . . qi)E =def
⋃1≤j≤i qEj
(neg q)E =def (IndsA)n \ qE
(inv q)E =def inv(qE), where inv
reverses all tuples
(project-to (xi1,q . . . xik,q) q)E =def π〈i1,...,ik〉(qE)
• Claim: the given semantics is easy to catch
• only basic set-theory required
• easy to visualize
⇒ good for users
DL ’05, 28th July 2005, Michael Wessel – p.27/43
![Page 76: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/76.jpg)
PSfr
agre
plac
emen
ts � �Features of the nRQL Engine
• Integral part of RacerPro
⇒ no communication overhead with Racer (an“external” query answering engine would have tocommunicate a lot with Racer, performancecomparable to nRQL’s performance would beunachievable)
• “Multi-query” answering (multi-threaded)• Different query processing modes• Degree of completeness configurable• Non-recursive defined queries (macro queries)• Simple rule engine• Semantic & cost-based Query Optimizer
DL ’05, 28th July 2005, Michael Wessel – p.28/43
![Page 77: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/77.jpg)
PSfr
agre
plac
emen
ts � �Query Processing Modes
• Set-at-a-time mode• synchronous mode of interaction, call toretrieve blocks until answer is computed,returned as a bunch
• Tuple-at-a-time mode• asynchronous mode of interaction, call toretrieve returns immediately with queryidentifier
• query thread works in the background• get-next-tuple <id> returns next
tuple of query <id>• Lazy: compute next tuple if requested• Eager: precompute next tuple(s)
DL ’05, 28th July 2005, Michael Wessel – p.29/43
![Page 78: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/78.jpg)
PSfr
agre
plac
emen
ts � �Degree of Completeness
• Mode 0: syntactic told information is used forquery answering
• Mode 1: Mode 0 + exploited TBox information• Mode 3: complete Racer ABox retrieval
(expensive!)• 3 × #{set_at_a_time,tuple_at_a_time} = 6
• Variations: realize ABox / classify TBox (or not)• Even more modes: “two-phase query processing”
• Phase 1: deliver cheap tuples (incomplete)• Warn user; then, if next tuple requested, start• Phase 2: use full ABox reasoning to deliver
remaining tuples (complete)DL ’05, 28th July 2005, Michael Wessel – p.30/43
![Page 79: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/79.jpg)
PSfr
agre
plac
emen
ts � �Two-Phase Query Processing
TBox: ABox :
person v > spouse(doris)
man v person spouse(betty)
woman v person man(adam)
spouse.= woman u woman(eve)
(∃married_to.man) maried_to(eve, adam)
• (retrieve (?x) (?x spouse))
⇒ (:QUERY-1 :RUNNING)
• (get-next-tuple :query-1)
⇒ ((?X DORIS))DL ’05, 28th July 2005, Michael Wessel – p.31/43
![Page 80: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/80.jpg)
PSfr
agre
plac
emen
ts � �Two-Phase Query Processing (2)
TBox: ABox :
person v > spouse(doris)
man v person spouse(betty)
woman v person man(adam)
spouse.= woman u woman(eve)
(∃married_to.man) maried_to(eve, adam)
• (retrieve (?x) (?x spouse))
⇒ (:QUERY-1 :RUNNING)
• (get-next-tuple :query-1)
⇒ ((?X BETTY))DL ’05, 28th July 2005, Michael Wessel – p.32/43
![Page 81: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/81.jpg)
PSfr
agre
plac
emen
ts � �Two-Phase Query Processing (3)
TBox: ABox :
person v > spouse(doris)
man v person spouse(betty)
woman v person man(adam)
spouse.= woman u woman(eve)
(∃married_to.man) maried_to(eve, adam)
• (retrieve (?x) (?x spouse))
⇒ (:QUERY-1 :RUNNING)
• (get-next-tuple :query-1)
⇒ :WARNING-EXPENSIVE-PHASE-TWO-STARTSDL ’05, 28th July 2005, Michael Wessel – p.33/43
![Page 82: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/82.jpg)
PSfr
agre
plac
emen
ts � �Two-Phase Query Processing (4)
TBox: ABox :
person v > spouse(doris)
man v person spouse(betty)
woman v person man(adam)
spouse.= woman u woman(eve)
(∃married_to.man) maried_to(eve, adam)
• (retrieve (?x) (?x spouse))
⇒ (:QUERY-1 :RUNNING)
• (get-next-tuple :query-1)
⇒ ((?X EVE))DL ’05, 28th July 2005, Michael Wessel – p.34/43
![Page 83: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/83.jpg)
PSfr
agre
plac
emen
ts � �Two-Phase Query Processing (5)
TBox: ABox :
person v > spouse(doris)
man v person spouse(betty)
woman v person man(adam)
spouse.= woman u woman(eve)
(∃married_to.man) maried_to(eve, adam)
• (retrieve (?x) (?x spouse))
⇒ (:QUERY-1 :RUNNING)
• (get-next-tuple :query-1)
⇒ :EXHAUSTEDDL ’05, 28th July 2005, Michael Wessel – p.35/43
![Page 84: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/84.jpg)
PSfr
agre
plac
emen
ts � �Two-Phase Query Processing (6)
TBox: ABox :
person v > spouse(doris)
man v person spouse(betty)
woman v person man(adam)
spouse.= woman u woman(eve)
(∃married_to.man) maried_to(eve, adam)
• (retrieve (?x) (?x spouse))
⇒ (:QUERY-1 :RUNNING)
• (get-answer :query-1)
⇒ (((?X DORIS)) ((?X BETTY)) ((?X EVE)))DL ’05, 28th July 2005, Michael Wessel – p.36/43
![Page 85: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/85.jpg)
PSfr
agre
plac
emen
ts � �Optimization & Caching
• Caching of Racer results (cache consistency, . . . )• Lots of index structures (must be maintained, . . . )• Cost-based optimizer (reordering of conjuncts
and marking variables as non-generators, e.g. ?yin (retrieve (?x) (?x ?y has-child)))
• Reasoning with Queries (optional, incomplete)• Query consistency check• Query entailment check (subsumption)
⇒ maintenance of a “Query repository” DAG(similar to a taxonomy)
• Query “realization” (adds implied conjunctsto enhance informdness of backtrackingsearch)
DL ’05, 28th July 2005, Michael Wessel – p.37/43
![Page 86: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/86.jpg)
PSfr
agre
plac
emen
ts � �Defined Queries
• nRQL offers a simple macro-mechanism
(defquery mother-of-child
(?x ?y)
(and (?x woman)
(?x ?y has-child)))
(defquery mother-of-son
(?x ?child)
(and (?x ?child mother-of-child)
(?child man)))
• no cyclic definitions allowed
DL ’05, 28th July 2005, Michael Wessel – p.38/43
![Page 87: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/87.jpg)
PSfr
agre
plac
emen
ts � �Simple Rules
• nRQL offers a simple rule mechanism
(defrule
(and (?x woman) (?y man) (?x ?y married))
(neg (?x (has-known-successor has-child)))
((instance (new-ind child-of ?x ?y) human)
(instance ?x mother)
(instance ?y father)
(related (new-ind child-of ?x ?y) ?x
has-mother)
(related (new-ind child-of ?x ?y) ?y
has-father)))
• Rule antecedence is a query body; consequence isa list of generalized ABox assertions
• rules must be fired manuallyDL ’05, 28th July 2005, Michael Wessel – p.39/43
![Page 88: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/88.jpg)
PSfr
agre
plac
emen
ts � �Complex TBox Queries
• “What are the child (parent, descendant, ancestor)concepts of the concept woman”?
• Idea: view the taxonomy of a TBox as a relationalstructure (a DAG), stored as a “data substrate”
• use nRQL to query this structure withtbox-retrieve:
? (tbox-retrieve (?x ?y)
(and (?x woman)
(?x ?y has-child)))
> (((?X WOMAN) (?Y SISTER))
((?X WOMAN) (?Y AUNT))
((?X WOMAN) (?Y *BOTTOM*))
((?X WOMAN) (?Y MOTHER))
((?X WOMAN) (?Y GRANDMOTHER)))DL ’05, 28th July 2005, Michael Wessel – p.40/43
![Page 89: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/89.jpg)
PSfr
agre
plac
emen
ts � �Query Processing
• In principle, nRQL uses top-down queryevaluation strategy:• each query evaluation plan determines the
role of an atom as a generator or tester• optimizer: try to minimize required generators
• in the presence of project-to, this becomesmore involved• sub-queries must be evaluated first, e.g., in
case of (neg (project-to ...))
⇒ bottom-up-top-down mixture of query evaluation• continuation-style implementation, can be
compiled (see implementations of Prolog in Lisp)DL ’05, 28th July 2005, Michael Wessel – p.41/43
![Page 90: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/90.jpg)
PSfr
agre
plac
emen
ts � �Related Activities & Conclusion
• Benchmarking nRQL: wait for Ralf’s talk• nRQL as a basis for a subset of OWL-QL: Atila’s
& Jan’s Poster• “nRQL tab” for Protégé (Kruthi & Volker)• RacerPorter supports life-cycle management and
inspection of nRQL queries and rules• only nRQL implementation: 29.553 LOC• Future plans
• rolling-up (support OWL-QLs “do-not-bindvariables” for acyclic conjunctive queries)
• better index structures for data substrate layer• database access
DL ’05, 28th July 2005, Michael Wessel – p.42/43
![Page 91: A High Performance Semantic Web Query Answering Engine · DL ’05, 28th July 2005, Michael Wessel – p.1/43. PSfrag replacements Overview of Talk Background & Requirements The nRQL](https://reader035.vdocuments.net/reader035/viewer/2022063011/5fc65e2744f6402af4572728/html5/thumbnails/91.jpg)
PSfr
agre
plac
emen
ts � � Thanks
for your
attention!
DL ’05, 28th July 2005, Michael Wessel – p.43/43