SlideShare ist ein Scribd-Unternehmen logo
1 von 56
Downloaden Sie, um offline zu lesen
.
.
.
.
Ontop at Work
Mariano Rodríguez-Muro1,
Roman Kontchakov2
Michael Zakharyaschev2
1 Faculty of Computer Science, Free
University of Bozen-Bolzano, Italy
2 Department of Computer Science
and Information Systems,
Birkbeck, University of London, U.K.
May 22th, 2013
.
.
.
OBDA: What is it?
.
Loosely speaking...
.
.
.
Using ontologies to access of data.
Ontop at Work 2 / 29
.
.
.
OBDA: What is it?
.
Loosely speaking...
.
.
.
Using ontologies to access of data.
(Virtual) ABox
User
Query
Ontology
(TBox)
Mappings
OBDA System
RBMS
Data source
Ontop at Work 2 / 29
.
.
.
OBDA: What is it?
.
Loosely speaking...
.
.
.
Using ontologies to access of data.
(Virtual) ABox
User
Query
Ontology
(TBox)
Mappings
OBDA System
RBMS
Data source
Our focus are OWL 2 QL ontologies, since they are tailored to
handle very large amounts of data by means of query rewriting
techniques.
Ontop at Work 2 / 29
.
.
.
Query Answering by Query rewriting
.
Objective
.
.
.
Given a query Q over the ontology T derive a query Q′
over the database D that preserves the semantics of T.
Ontop at Work 3 / 29
.
.
.
Query Answering by Query rewriting
.
Objective
.
.
.
Given a query Q over the ontology T derive a query Q′
over the database D that preserves the semantics of T.
.
.
Consider a TBox T
Movie ≡ ∃title, Movie ⊑ ∃year,
Movie ≡ ∃cast, ∃cast−
⊑ Person
Actor ⊑ Person Actress ⊑ Person,
Producer ⊑ Person, Director ⊑ Person,
Writer ⊑ Person, Editor ⊑ Person.
Ontop at Work 3 / 29
.
.
.
Example
.
.
The Database D: Two DB relations title[m, t, y] and
castinfo[p, m, r].
Ontop at Work 4 / 29
.
.
.
Example
.
.
The Database D: Two DB relations title[m, t, y] and
castinfo[p, m, r].
The mapping M (logical form, think R2RML):
Movie(m) ← title(m, t, y), title(m, t) ← title(m, t, y),
year(m, y) ← title(m, t, y), cast(m, p) ← castinfo(p, m, r),
Person(p) ← castinfo(p, m, r),
Actor(p) ← castinfo(p, m, ”c1”) · · ·
Editor(p) ← castinfo(p, m, ”c6”).
Ontop at Work 4 / 29
.
.
.
The classic OBDA architecture
.
.
CQ q .
ontology T
. FO q′
.
mapping
. SQL
.
data D
.
ABox A
.
+
.
rewriting
. +
.
unfolding
.
+
.
ABox virtualisation
Stages in the classic OBDA approach:
. Rewriting w.r.t. T,
. Unfolding w.r.t. M,
. Execution over D.
Ontop at Work 5 / 29
.
.
.
The classic OBDA architecture
.
.
CQ q .
ontology T
. FO q′
.
mapping
. SQL
.
data D
.
ABox A
.
+
.
rewriting
. +
.
unfolding
.
+
.
ABox virtualisation
Stages in the classic OBDA approach:
. Rewriting w.r.t. T,
. Unfolding w.r.t. M,
. Execution over D.
.
.
Unfolding and Mappings are ignored in most OBDA literature
Ontop at Work 5 / 29
.
.
.
Example: Rewriting
Given the query Q
q(x) ← Person(x)
Gives the rewriting
q(x) ← Person(x)
q(x) ← cast(z, x)
q(x) ← Actor(x)
. . .
q(x) ← Editor(x)
Ontop at Work 6 / 29
.
.
.
Example: Unfolding
Given the query Q
q(x) ← Person(x)
Gives the rewriting
q(x1) ← castinfo(x1, m, r)
q(x2) ← castinfo(x2, m, r)
q(x3) ← castinfo(x3, m, ”c1”)
. . .
q(x8) ← castinfo(x8, m, ”c6”)
Ontop at Work 7 / 29
.
.
.
Issues
The issues with these rewritings are:
. Large size (n1 ∗ . . . ∗ n2)
. Largely redundant (w.r.t. query containment)
Ontop at Work 8 / 29
.
.
.
Issues
The issues with these rewritings are:
. Large size (n1 ∗ . . . ∗ n2)
. Largely redundant (w.r.t. query containment)
In the literature we find two solutions:
. Encoding the rewriting as a Datalog program. For example,
given the query:
q(x, y) ← Person(x), Person(y), cast(m, x), cast(m, z)
Ontop at Work 8 / 29
.
.
.
Issues
The issues with these rewritings are:
. Large size (n1 ∗ . . . ∗ n2)
. Largely redundant (w.r.t. query containment)
In the literature we find two solutions:
. Encoding the rewriting as a Datalog program. For example,
given the query:
q(x, y) ← Person(x), Person(y), cast(m, x), cast(m, z)
we generate the rewriting:
q(x, y) ← Person(x), Person(y), cast(m, x), cast(m, z)
Person(x) ← cast(m, x)
Person(x) ← Actor(x)
. . .
Person(x) ← Edtior(x)
Ontop at Work 8 / 29
.
.
.
Issues
The issues with these rewritings are:
. Large size (n1 ∗ . . . ∗ n2)
. Largely redundant (w.r.t. query containment)
In the literature we find two solutions:
. Encoding the rewriting as a Datalog program.
.
But...
.
.
.
The query still needs to be unfolded into an SQL query. There are
two choices here:
. Generate SQL queries with nested UNIONs. Very bad for
performance.
. Expand into a UCQ. Back to square 1.
Ontop at Work 9 / 29
.
.
.
Issues (cont.)
The issues with these rewritings are:
. Large size (n1 ∗ . . . ∗ n2)
. Largely redundant (w.r.t. query containment)
Ontop at Work 10 / 29
.
.
.
Issues (cont.)
The issues with these rewritings are:
. Large size (n1 ∗ . . . ∗ n2)
. Largely redundant (w.r.t. query containment)
. Using Query Containment to clean the output.
Ontop at Work 10 / 29
.
.
.
Issues (cont.)
The issues with these rewritings are:
. Large size (n1 ∗ . . . ∗ n2)
. Largely redundant (w.r.t. query containment)
. Using Query Containment to clean the output. For example,
to detect that this:
q(x1) ← castinfo(x1, m, r)
q(x2) ← castinfo(x2, m, r)
q(x3) ← castinfo(x3, m, ”c1”)
. . .
q(x8) ← castinfo(x8, m, ”c6”)
Ontop at Work 10 / 29
.
.
.
Issues (cont.)
The issues with these rewritings are:
. Large size (n1 ∗ . . . ∗ n2)
. Largely redundant (w.r.t. query containment)
. Using Query Containment to clean the output. For example,
to detect that this:
q(x1) ← castinfo(x1, m, r)
q(x2) ← castinfo(x2, m, r)
q(x3) ← castinfo(x3, m, ”c1”)
. . .
q(x8) ← castinfo(x8, m, ”c6”)
can be simplified to
q(x1) ← castinfo(x1, m, r)
Ontop at Work 10 / 29
.
.
.
Issues (cont.)
The issues with these rewritings are:
. Large size (n1 ∗ . . . ∗ n2)
. Largely redundant (w.r.t. query containment)
. Using Query Containment to clean the output.
.
But...
.
.
.
. Query containment is an extremely expensive operation.
. We are working with large sets of queries.
Ontop at Work 11 / 29
.
.
.
Roots of the problem
There are 3 main reasons for large CQ rewritings and unfoldings:
Ontop at Work 12 / 29
.
.
.
Roots of the problem
There are 3 main reasons for large CQ rewritings and unfoldings:
(E) Sub-queries of q with existentially quantified variables
can be folded in many different ways to match the
canonical model (existential trees), e.g.,
Person ⊑ ∃hasFather.Person
and the query
q(x) ← hasFather(x, y), hasFather(y, z)
Ontop at Work 12 / 29
.
.
.
Roots of the problem
There are 3 main reasons for large CQ rewritings and unfoldings:
(E) Sub-queries of q with existentially quantified variables
can be folded in many different ways to match the
canonical model (existential trees), e.g.,
Person ⊑ ∃hasFather.Person
and the query
q(x) ← hasFather(x, y), hasFather(y, z)
(H) The concepts and roles for atoms in q can have many
sub-concepts and sub-roles according to T,
Ontop at Work 12 / 29
.
.
.
Roots of the problem
There are 3 main reasons for large CQ rewritings and unfoldings:
(E) Sub-queries of q with existentially quantified variables
can be folded in many different ways to match the
canonical model (existential trees), e.g.,
Person ⊑ ∃hasFather.Person
and the query
q(x) ← hasFather(x, y), hasFather(y, z)
(H) The concepts and roles for atoms in q can have many
sub-concepts and sub-roles according to T,
(M) The mapping M can have multiple definitions of the
ontology terms,
Most of the proposed rewriting techniques try to tame (E).
Ontop at Work 12 / 29
.
.
.
More about (E)
More about (E)
. it is in theory incurable
. it is independent of (H) and (M)
Ontop at Work 13 / 29
.
.
.
More about (E)
More about (E)
. it is in theory incurable
. it is independent of (H) and (M)
However
. Rewriting algorithms deal with (E) and (H) at the same time
. Real-world Qs and T’s generate few queries when dealing with
(E) in isolation.
. Even artificially constructed Qs and T’s become simple.
Ontop at Work 13 / 29
.
.
.
More about (E)
More about (E)
. it is in theory incurable
. it is independent of (H) and (M)
However
. Rewriting algorithms deal with (E) and (H) at the same time
. Real-world Qs and T’s generate few queries when dealing with
(E) in isolation.
. Even artificially constructed Qs and T’s become simple.
.
.
The strongest issues in query rewriting are (H) and (M)
Ontop at Work 13 / 29
.
.
.
More about (E)
More about (E)
. it is in theory incurable
. it is independent of (H) and (M)
However
. Rewriting algorithms deal with (E) and (H) at the same time
. Real-world Qs and T’s generate few queries when dealing with
(E) in isolation.
. Even artificially constructed Qs and T’s become simple.
.
.
The strongest issues in query rewriting are (H) and (M)
In Ontop we deal with (H) and (M) separately from (E). We do it
through T-mappings and TreeWitness rewritings.
Ontop at Work 13 / 29
.
.
.
Dealing with (H) and (M): T-Mappings
A T-mapping MT is a transformation of M that enforces all (H)
entailments (H-completeness), formally,
M |= A(c) and T |= A ⊑ B → MT |= B(c)
Ontop at Work 14 / 29
.
.
.
Dealing with (H) and (M): T-Mappings
A T-mapping MT is a transformation of M that enforces all (H)
entailments (H-completeness), formally,
M |= A(c) and T |= A ⊑ B → MT |= B(c)
.
T-mapping example 1
.
.
.
Consider two DB relations title[m, t, y] and castinfo[p, m, r] and an
ontology MO describing the film domain as follows:
Movie ≡ ∃cast
Let M be the following mappings:
Movie(m) ← title(m, t, y),
cast(m, p) ← castinfo(p, m, r).
Ontop at Work 14 / 29
.
.
.
Dealing with (H) and (M): T-Mappings
A T-mapping MT is a transformation of M that enforces all (H)
entailments (H-completeness), formally,
M |= A(c) and T |= A ⊑ B → MT |= B(c)
.
T-mapping example 1 (domain/range)
.
.
.
Consider two DB relations title[m, t, y] and castinfo[p, m, r] and an
ontology MO describing the film domain as follows:
Movie ≡ ∃cast
Let M be the following mappings:
Movie(m) ← title(m, t, y),
cast(m, p) ← castinfo(p, m, r).
Movie(m) ← castinfo(p, m, r).
Ontop at Work 15 / 29
.
.
.
T-Mappings: Example 2
.
T-mappings example 2 (hierarchies)
.
.
.
Consider a TBox T
Actor ⊑ Person Actress ⊑ Person,
Producer ⊑ Person, Director ⊑ Person,
Writer ⊑ Person, Editor ⊑ Person.
The mapping M:
Actor(p) ← castinfo(p, m, ”c1”) · · ·
Editor(p) ← castinfo(p, m, ”c6”).
Ontop at Work 16 / 29
.
.
.
T-Mappings: Example 2
.
T-mappings example 2 (hierarchies)
.
.
.
Consider a TBox T
Actor ⊑ Person Actress ⊑ Person,
Producer ⊑ Person, Director ⊑ Person,
Writer ⊑ Person, Editor ⊑ Person.
The mapping M:
Person(p) ← castinfo(p, m, ”c1”) · · ·
Person(p) ← castinfo(p, m, ”c6”).
Ontop at Work 17 / 29
.
.
.
Optimising T-mappings
.
.
The objective of T-mapping allow to deal with hierarchical reasoning
(H) at the level of the unfolding. At this point, we can exploit
. DB dependencies and
. SQL expressivity to reduce and often the exponential growth
coming form (H) and (M).
Ontop at Work 18 / 29
.
.
.
Optimising with Dependencies
A first optimisation is Query Containment (w.r.t. dependencies)
Ontop at Work 19 / 29
.
.
.
Optimising with Dependencies
A first optimisation is Query Containment (w.r.t. dependencies)
.
Example
.
.
.
Consider the previous example, since T |= ∃cast ⊑ Movie, the
T-mapping contains:
Movie(m) ← title(m, t, y),
Movie(m) ← castinfo(p, m, r).
Ontop at Work 19 / 29
.
.
.
Optimising with Dependencies
A first optimisation is Query Containment (w.r.t. dependencies)
.
Example
.
.
.
Consider the previous example, since T |= ∃cast ⊑ Movie, the
T-mapping contains:
Movie(m) ← title(m, t, y),
Movie(m) ← castinfo(p, m, r).
The latter rule is redundant since IMDb contains the foreign key
title(m, t, y) ⇝ title(p, m, r)
This step is crucial to reduce the growth due to inferences related to
domain and range.
Ontop at Work 19 / 29
.
.
.
Optimising with SQL expressivity
Ontop at Work 20 / 29
.
.
.
Optimising with SQL expressivity
Observation. The only means for perfect reformulations to deal
with (H) is through disjunction (UNION). DBMS are not good
planning UNIONs.
Ontop at Work 20 / 29
.
.
.
Optimising with SQL expressivity
Observation. The only means for perfect reformulations to deal
with (H) is through disjunction (UNION). DBMS are not good
planning UNIONs.
However, At the level of the unfolding and mappings, we have full
SQL expressivity (e.g., Disjunction (OR), inequalities, etc.).
Ontop at Work 20 / 29
.
.
.
Optimising with SQL expressivity
Observation. The only means for perfect reformulations to deal
with (H) is through disjunction (UNION). DBMS are not good
planning UNIONs.
However, At the level of the unfolding and mappings, we have full
SQL expressivity (e.g., Disjunction (OR), inequalities, etc.).
.
Objective
.
.
.
Given a T-mapping, define mapping transformations that
entail the same ABox using less mappings while ensuring
that the encoding used is efficient during execution.
Ontop at Work 20 / 29
.
.
.
Optimising with SQL expressivity
Use OR and inequalities to re-express mappings for hierarchies and
discriminant columns.
Ontop at Work 21 / 29
.
.
.
Optimising with SQL expressivity
Use OR and inequalities to re-express mappings for hierarchies and
discriminant columns.
.
Dealing with discriminant columns
.
.
.
For example, the mapping M for IMDb and MO contains six rules
for sub-concepts of Person:
Person(p) ← castinfo(p, m, ”c1”)
· · ·
Person(p) ← castinfo(p, m, ”c6”)
Ontop at Work 21 / 29
.
.
.
Optimising with SQL expressivity
Use OR and inequalities to re-express mappings for hierarchies and
discriminant columns.
.
Dealing with discriminant columns
.
.
.
For example, the mapping M for IMDb and MO contains six rules
for sub-concepts of Person:
Person(p) ← castinfo(p, m, ”c1”)
· · ·
Person(p) ← castinfo(p, m, ”c6”)
These can be reduced to a single rule:
Person(p) ← castinfo(c, p, m, r), (r = c1) ∨ · · · ∨ (r = c6).
Ontop at Work 21 / 29
.
.
.
The architecture of Ontop
.
.
CQ q .
ontology T
. UCQ qtw
.
T-mapping
.
mapping M
.
dependencies Σ
. SQL
.
data D
.
ABox A
.
H-complete ABox A
.
+ .
tw-rewriting
. +
.
unfolding
.
+
.
ABox virtualisation
.
+
.
ABox virtualisation
.
+
.
ABox completion
.
+
.
completion
.
SQO
.
SQO
.
Highlights: (H) and (M) dealt with T-mappings, rewriting for
(H)-complete ABoxes, extensive use of SQO over the unfolding.
Ontop at Work 22 / 29
.
.
.
Other Optimisations in Ontop
We also apply other important optimisations during system setup
and at query time, the most important:
Equivalence Simplification Simplify the ontology vocabulary w.r.t.
equivalence (keep one representative of each
equivalence class).
Semantic Query Optimisation Optimise each query generated
individually... see next slides.
Emptiness indexes Keeping track of empty predicates
Ontop at Work 23 / 29
.
.
.
Results
A summary of the results we have observed using this architecture:
. Mappings per class/property are few
. Query rewritings are small
. SQL queries generated like this often correspond to what a
human expert would have generated.
. Query execution of SPARQL with entailments is fast, often
much faster than in triple stores.
.
.
Query rewriting can be done efficiently
Ontop at Work 24 / 29
.
.
.
Benchmarks
0.1	
  
1	
  
10	
  
100	
  
1000	
  
10000	
  
100000	
  
1000000	
  
R1	
   R2	
   R3	
   R4	
   R5	
   Q1	
   Q2	
   Q3	
   Q4	
   Q5	
   Q6	
   V7	
   V8	
   V9	
   V10	
  
OWLIM	
  
STARDOG	
  
ONTOP	
  
Benchmark: LUBMex, 200 Unis (30M triples). Systems: OWLIM
(forward chaining), Stardog (rewriting), Ontop/DB2.
Ontop/DB2
. returns immediately for 5/15 queries,
. faster than the rest in 12/15 queries
Ontop at Work 25 / 29
.
.
.
Summary
Results so far
. Efficiently dealt with exponential growth from (H) and (M)
. Use of dependencies and CQC/SQO to minimise and optimise
mapping rules
. We exploit SQL expressivity to transform mappings to minimize
the number of mappings.
Ontop at Work 26 / 29
.
.
.
Summary
Results so far
. Efficiently dealt with exponential growth from (H) and (M)
. Use of dependencies and CQC/SQO to minimise and optimise
mapping rules
. We exploit SQL expressivity to transform mappings to minimize
the number of mappings.
.
.
OWL 2 QL query answering with query rewriting is efficient and
materialisation is not required.
Ontop at Work 26 / 29
.
.
.
Summary
Results so far
. Efficiently dealt with exponential growth from (H) and (M)
. Use of dependencies and CQC/SQO to minimise and optimise
mapping rules
. We exploit SQL expressivity to transform mappings to minimize
the number of mappings.
.
.
OWL 2 QL query answering with query rewriting is efficient and
materialisation is not required.
Ontop is available as an SPARQL end-point, OWLAPI and
Sesame library, and Protege 4 plugin. Many more features
(SPARQL, R2RML). Permanently under-development, however,
stable enough to be used seriously in many projects, incl. Optique.
Ontop at Work 26 / 29
.
.
.
Summary
Results so far
. Efficiently dealt with exponential growth from (H) and (M)
. Use of dependencies and CQC/SQO to minimise and optimise
mapping rules
. We exploit SQL expressivity to transform mappings to minimize
the number of mappings.
.
.
OWL 2 QL query answering with query rewriting is efficient and
materialisation is not required.
Ontop is available as an SPARQL end-point, OWLAPI and
Sesame library, and Protege 4 plugin. Many more features
(SPARQL, R2RML). Permanently under-development, however,
stable enough to be used seriously in many projects, incl. Optique.
Current work is applying these techniques to more expressive
settings, e.g., OWL + Rules, OWL 2 EL, OWL 2 RL, through an
hybrid approach.
Ontop at Work 26 / 29
.
.
.
Semantic Query Optimisation
Consider the query
q(t, y) ← Movie(m), title(m, t), year(m, y), (y > 2010)
By straightforwardly applying the unfolding to qtw and the
T-mapping M above, we obtain the query
q′
tw(t, y) ← title(m, t0, y0), title(m, t, y1), title(m, t2, y), (y > 2010),
which requires two (potentially) expensive Join operations.
However, by using the primary key m of title we obtain:
q′′
tw(t, y) ← title(m, t, y), (y > 2010).
.
.
.
Semantic Query Optmization
Semantic Query Optimisation (SQO) is a field from DB theory
focused on optimisation of queries w.r.t. dependencies.
Semantic Query Optimisations in DB and OBDA
. While some of SQO techniques reached industrial RDBMSs,
it never had a strong impact on the database community.
. In OBDA, in contrast, SQL queries are generated
automatically, and so SQO is the only tools to reach optimal
queries.
.
.
In practice, an OBDA system must implement at least SQO
w.r.t. primary keys and foreign keys to deal with the disparities
between RDF and relational.
.
.
.
Why does it work?
DBs are created through standard practices that generate features
that are the focus of the previous optimisations.
Starting from a rich conceptual schema, we encode it in a relational
schema by:
– amalgamating N-to-1 and 1-to-1 attributes of an entity to a
single n-ary relation with a primary key identifying the entity
(e.g., title with title and year),
– using foreign keys over attribute columns when a column refers
to the entity (e.g., name and castinfo),
– using type-discriminant columns to encode hierarchical
information (e.g., castinfo).
As this process is universal, the T-mappings created for the resulting
databases are dramatically simplified by the Ontop optimisations

Weitere ähnliche Inhalte

Was ist angesagt?

Monad presentation scala as a category
Monad presentation   scala as a categoryMonad presentation   scala as a category
Monad presentation scala as a categorysamthemonad
 
On First-Order Meta-Learning Algorithms
On First-Order Meta-Learning AlgorithmsOn First-Order Meta-Learning Algorithms
On First-Order Meta-Learning AlgorithmsYoonho Lee
 
Dancing Links: an educational pearl
Dancing Links: an educational pearlDancing Links: an educational pearl
Dancing Links: an educational pearlESUG
 
Scala. Introduction to FP. Monads
Scala. Introduction to FP. MonadsScala. Introduction to FP. Monads
Scala. Introduction to FP. MonadsKirill Kozlov
 
SPIRE2015-Improved Practical Compact Dynamic Tries
SPIRE2015-Improved Practical Compact Dynamic TriesSPIRE2015-Improved Practical Compact Dynamic Tries
SPIRE2015-Improved Practical Compact Dynamic TriesAndreas Poyias
 
New Insights and Perspectives on the Natural Gradient Method
New Insights and Perspectives on the Natural Gradient MethodNew Insights and Perspectives on the Natural Gradient Method
New Insights and Perspectives on the Natural Gradient MethodYoonho Lee
 
Approximate Bayesian computation for the Ising/Potts model
Approximate Bayesian computation for the Ising/Potts modelApproximate Bayesian computation for the Ising/Potts model
Approximate Bayesian computation for the Ising/Potts modelMatt Moores
 
Lecture 3 - Introduction to Interpolation
Lecture 3 - Introduction to InterpolationLecture 3 - Introduction to Interpolation
Lecture 3 - Introduction to InterpolationEric Cochran
 
k-MLE: A fast algorithm for learning statistical mixture models
k-MLE: A fast algorithm for learning statistical mixture modelsk-MLE: A fast algorithm for learning statistical mixture models
k-MLE: A fast algorithm for learning statistical mixture modelsFrank Nielsen
 
Influence of the sampling on Functional Data Analysis
Influence of the sampling on Functional Data AnalysisInfluence of the sampling on Functional Data Analysis
Influence of the sampling on Functional Data Analysistuxette
 
CPM2013-tabei201306
CPM2013-tabei201306CPM2013-tabei201306
CPM2013-tabei201306Yasuo Tabei
 
Addendum to ‘Monads do not Compose’
Addendum to ‘Monads do not Compose’ Addendum to ‘Monads do not Compose’
Addendum to ‘Monads do not Compose’ Philip Schwarz
 
Accelerating Metropolis Hastings with Lightweight Inference Compilation
Accelerating Metropolis Hastings with Lightweight Inference CompilationAccelerating Metropolis Hastings with Lightweight Inference Compilation
Accelerating Metropolis Hastings with Lightweight Inference CompilationFeynman Liang
 
Introduction to NumPy for Machine Learning Programmers
Introduction to NumPy for Machine Learning ProgrammersIntroduction to NumPy for Machine Learning Programmers
Introduction to NumPy for Machine Learning ProgrammersKimikazu Kato
 
Finding root of equation (numarical method)
Finding root of equation (numarical method)Finding root of equation (numarical method)
Finding root of equation (numarical method)Rajan Thakkar
 
VAE-type Deep Generative Models
VAE-type Deep Generative ModelsVAE-type Deep Generative Models
VAE-type Deep Generative ModelsKenta Oono
 
A new approach in specifying the inverse quadratic matrix in modulo-2 for con...
A new approach in specifying the inverse quadratic matrix in modulo-2 for con...A new approach in specifying the inverse quadratic matrix in modulo-2 for con...
A new approach in specifying the inverse quadratic matrix in modulo-2 for con...Anax Fotopoulos
 

Was ist angesagt? (20)

Monad presentation scala as a category
Monad presentation   scala as a categoryMonad presentation   scala as a category
Monad presentation scala as a category
 
On First-Order Meta-Learning Algorithms
On First-Order Meta-Learning AlgorithmsOn First-Order Meta-Learning Algorithms
On First-Order Meta-Learning Algorithms
 
Dancing Links: an educational pearl
Dancing Links: an educational pearlDancing Links: an educational pearl
Dancing Links: an educational pearl
 
Scala. Introduction to FP. Monads
Scala. Introduction to FP. MonadsScala. Introduction to FP. Monads
Scala. Introduction to FP. Monads
 
SPIRE2015-Improved Practical Compact Dynamic Tries
SPIRE2015-Improved Practical Compact Dynamic TriesSPIRE2015-Improved Practical Compact Dynamic Tries
SPIRE2015-Improved Practical Compact Dynamic Tries
 
New Insights and Perspectives on the Natural Gradient Method
New Insights and Perspectives on the Natural Gradient MethodNew Insights and Perspectives on the Natural Gradient Method
New Insights and Perspectives on the Natural Gradient Method
 
Approximate Bayesian computation for the Ising/Potts model
Approximate Bayesian computation for the Ising/Potts modelApproximate Bayesian computation for the Ising/Potts model
Approximate Bayesian computation for the Ising/Potts model
 
Lecture 3 - Introduction to Interpolation
Lecture 3 - Introduction to InterpolationLecture 3 - Introduction to Interpolation
Lecture 3 - Introduction to Interpolation
 
Algorithm Homework Help
Algorithm Homework HelpAlgorithm Homework Help
Algorithm Homework Help
 
k-MLE: A fast algorithm for learning statistical mixture models
k-MLE: A fast algorithm for learning statistical mixture modelsk-MLE: A fast algorithm for learning statistical mixture models
k-MLE: A fast algorithm for learning statistical mixture models
 
Volume computation and applications
Volume computation and applications Volume computation and applications
Volume computation and applications
 
Influence of the sampling on Functional Data Analysis
Influence of the sampling on Functional Data AnalysisInfluence of the sampling on Functional Data Analysis
Influence of the sampling on Functional Data Analysis
 
CPM2013-tabei201306
CPM2013-tabei201306CPM2013-tabei201306
CPM2013-tabei201306
 
Addendum to ‘Monads do not Compose’
Addendum to ‘Monads do not Compose’ Addendum to ‘Monads do not Compose’
Addendum to ‘Monads do not Compose’
 
Accelerating Metropolis Hastings with Lightweight Inference Compilation
Accelerating Metropolis Hastings with Lightweight Inference CompilationAccelerating Metropolis Hastings with Lightweight Inference Compilation
Accelerating Metropolis Hastings with Lightweight Inference Compilation
 
Introduction to NumPy for Machine Learning Programmers
Introduction to NumPy for Machine Learning ProgrammersIntroduction to NumPy for Machine Learning Programmers
Introduction to NumPy for Machine Learning Programmers
 
Finding root of equation (numarical method)
Finding root of equation (numarical method)Finding root of equation (numarical method)
Finding root of equation (numarical method)
 
NUMPY
NUMPY NUMPY
NUMPY
 
VAE-type Deep Generative Models
VAE-type Deep Generative ModelsVAE-type Deep Generative Models
VAE-type Deep Generative Models
 
A new approach in specifying the inverse quadratic matrix in modulo-2 for con...
A new approach in specifying the inverse quadratic matrix in modulo-2 for con...A new approach in specifying the inverse quadratic matrix in modulo-2 for con...
A new approach in specifying the inverse quadratic matrix in modulo-2 for con...
 

Andere mochten auch

Andere mochten auch (10)

Presentación Expenta
Presentación ExpentaPresentación Expenta
Presentación Expenta
 
Planning for Rapid Growth and Economic Uncertainty
Planning for Rapid Growth and Economic UncertaintyPlanning for Rapid Growth and Economic Uncertainty
Planning for Rapid Growth and Economic Uncertainty
 
320week5
320week5320week5
320week5
 
Metodología Petigris vs Munari
Metodología Petigris vs MunariMetodología Petigris vs Munari
Metodología Petigris vs Munari
 
私の人形
私の人形私の人形
私の人形
 
Is your website ready? Five Things You MUST Check
Is your website ready? Five Things You MUST CheckIs your website ready? Five Things You MUST Check
Is your website ready? Five Things You MUST Check
 
Copy of 320week2
Copy of 320week2Copy of 320week2
Copy of 320week2
 
Policy and legislation presentation
Policy and legislation presentationPolicy and legislation presentation
Policy and legislation presentation
 
SWT Lecture Session 2 - RDF
SWT Lecture Session 2 - RDFSWT Lecture Session 2 - RDF
SWT Lecture Session 2 - RDF
 
SWT Lecture Session 5 - RDFS
SWT Lecture Session 5 - RDFSSWT Lecture Session 5 - RDFS
SWT Lecture Session 5 - RDFS
 

Ähnlich wie OXFORD'13 Optimising OWL 2 QL query rewriring

Computational Complexity: Introduction-Turing Machines-Undecidability
Computational Complexity: Introduction-Turing Machines-UndecidabilityComputational Complexity: Introduction-Turing Machines-Undecidability
Computational Complexity: Introduction-Turing Machines-UndecidabilityAntonis Antonopoulos
 
Aggregation computation over distributed data streams(the final version)
Aggregation computation over distributed data streams(the final version)Aggregation computation over distributed data streams(the final version)
Aggregation computation over distributed data streams(the final version)Yueshen Xu
 
CORCON2014: Does programming really need data structures?
CORCON2014: Does programming really need data structures?CORCON2014: Does programming really need data structures?
CORCON2014: Does programming really need data structures?Marco Benini
 
Introduction to complexity theory assignment
Introduction to complexity theory assignmentIntroduction to complexity theory assignment
Introduction to complexity theory assignmenttesfahunegn minwuyelet
 
Cuckoo Search Algorithm: An Introduction
Cuckoo Search Algorithm: An IntroductionCuckoo Search Algorithm: An Introduction
Cuckoo Search Algorithm: An IntroductionXin-She Yang
 
An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...
An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...
An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...Joe Andelija
 
Programming modulo representations
Programming modulo representationsProgramming modulo representations
Programming modulo representationsMarco Benini
 
ML+Hadoop at NYC Predictive Analytics
ML+Hadoop at NYC Predictive AnalyticsML+Hadoop at NYC Predictive Analytics
ML+Hadoop at NYC Predictive AnalyticsErik Bernhardsson
 
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...cseiitgn
 
Programming modulo representations
Programming modulo representationsProgramming modulo representations
Programming modulo representationsMarco Benini
 
Computational Complexity: Oracles and the Polynomial Hierarchy
Computational Complexity: Oracles and the Polynomial HierarchyComputational Complexity: Oracles and the Polynomial Hierarchy
Computational Complexity: Oracles and the Polynomial HierarchyAntonis Antonopoulos
 
Sienna 2 analysis
Sienna 2 analysisSienna 2 analysis
Sienna 2 analysischidabdu
 
Workload-aware materialization for efficient variable elimination on Bayesian...
Workload-aware materialization for efficient variable elimination on Bayesian...Workload-aware materialization for efficient variable elimination on Bayesian...
Workload-aware materialization for efficient variable elimination on Bayesian...Cigdem Aslay
 
lecture 11
lecture 11lecture 11
lecture 11sajinsc
 
Fosdem 2013 petra selmer flexible querying of graph data
Fosdem 2013 petra selmer   flexible querying of graph dataFosdem 2013 petra selmer   flexible querying of graph data
Fosdem 2013 petra selmer flexible querying of graph dataPetra Selmer
 

Ähnlich wie OXFORD'13 Optimising OWL 2 QL query rewriring (20)

Computational Complexity: Introduction-Turing Machines-Undecidability
Computational Complexity: Introduction-Turing Machines-UndecidabilityComputational Complexity: Introduction-Turing Machines-Undecidability
Computational Complexity: Introduction-Turing Machines-Undecidability
 
Aggregation computation over distributed data streams(the final version)
Aggregation computation over distributed data streams(the final version)Aggregation computation over distributed data streams(the final version)
Aggregation computation over distributed data streams(the final version)
 
CORCON2014: Does programming really need data structures?
CORCON2014: Does programming really need data structures?CORCON2014: Does programming really need data structures?
CORCON2014: Does programming really need data structures?
 
Theory of computing
Theory of computingTheory of computing
Theory of computing
 
Introduction to complexity theory assignment
Introduction to complexity theory assignmentIntroduction to complexity theory assignment
Introduction to complexity theory assignment
 
Cuckoo Search Algorithm: An Introduction
Cuckoo Search Algorithm: An IntroductionCuckoo Search Algorithm: An Introduction
Cuckoo Search Algorithm: An Introduction
 
An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...
An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...
An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...
 
Programming modulo representations
Programming modulo representationsProgramming modulo representations
Programming modulo representations
 
ML+Hadoop at NYC Predictive Analytics
ML+Hadoop at NYC Predictive AnalyticsML+Hadoop at NYC Predictive Analytics
ML+Hadoop at NYC Predictive Analytics
 
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...
 
Q
QQ
Q
 
Programming modulo representations
Programming modulo representationsProgramming modulo representations
Programming modulo representations
 
Computational Complexity: Oracles and the Polynomial Hierarchy
Computational Complexity: Oracles and the Polynomial HierarchyComputational Complexity: Oracles and the Polynomial Hierarchy
Computational Complexity: Oracles and the Polynomial Hierarchy
 
Big o
Big oBig o
Big o
 
Sienna 2 analysis
Sienna 2 analysisSienna 2 analysis
Sienna 2 analysis
 
Workload-aware materialization for efficient variable elimination on Bayesian...
Workload-aware materialization for efficient variable elimination on Bayesian...Workload-aware materialization for efficient variable elimination on Bayesian...
Workload-aware materialization for efficient variable elimination on Bayesian...
 
APPLICATION OF NUMERICAL METHODS IN SMALL SIZE
APPLICATION OF NUMERICAL METHODS IN SMALL SIZEAPPLICATION OF NUMERICAL METHODS IN SMALL SIZE
APPLICATION OF NUMERICAL METHODS IN SMALL SIZE
 
lecture 11
lecture 11lecture 11
lecture 11
 
Fosdem 2013 petra selmer flexible querying of graph data
Fosdem 2013 petra selmer   flexible querying of graph dataFosdem 2013 petra selmer   flexible querying of graph data
Fosdem 2013 petra selmer flexible querying of graph data
 
Unit 3
Unit 3Unit 3
Unit 3
 

Mehr von Mariano Rodriguez-Muro

SWT Lecture Session 9 - RDB2RDF direct mapping
SWT Lecture Session 9 - RDB2RDF direct mappingSWT Lecture Session 9 - RDB2RDF direct mapping
SWT Lecture Session 9 - RDB2RDF direct mappingMariano Rodriguez-Muro
 
SWT Lecture Session 8 - Inference in jena
SWT Lecture Session 8 - Inference in jenaSWT Lecture Session 8 - Inference in jena
SWT Lecture Session 8 - Inference in jenaMariano Rodriguez-Muro
 
SWT Lecture Session 7 - Advanced uses of RDFS
SWT Lecture Session 7 - Advanced uses of RDFSSWT Lecture Session 7 - Advanced uses of RDFS
SWT Lecture Session 7 - Advanced uses of RDFSMariano Rodriguez-Muro
 
SWT Lecture Session 6 - RDFS semantics, inference techniques, sesame rdfs
SWT Lecture Session 6 - RDFS semantics, inference techniques, sesame rdfsSWT Lecture Session 6 - RDFS semantics, inference techniques, sesame rdfs
SWT Lecture Session 6 - RDFS semantics, inference techniques, sesame rdfsMariano Rodriguez-Muro
 
SWT Lecture Session 4 - SW architectures and SPARQL
SWT Lecture Session 4 - SW architectures and SPARQLSWT Lecture Session 4 - SW architectures and SPARQL
SWT Lecture Session 4 - SW architectures and SPARQLMariano Rodriguez-Muro
 

Mehr von Mariano Rodriguez-Muro (20)

SWT Lab 3
SWT Lab 3SWT Lab 3
SWT Lab 3
 
SWT Lab 5
SWT Lab 5SWT Lab 5
SWT Lab 5
 
SWT Lab 2
SWT Lab 2SWT Lab 2
SWT Lab 2
 
SWT Lab 1
SWT Lab 1SWT Lab 1
SWT Lab 1
 
SWT Lecture Session 11 - R2RML part 2
SWT Lecture Session 11 - R2RML part 2SWT Lecture Session 11 - R2RML part 2
SWT Lecture Session 11 - R2RML part 2
 
SWT Lecture Session 10 R2RML Part 1
SWT Lecture Session 10 R2RML Part 1SWT Lecture Session 10 R2RML Part 1
SWT Lecture Session 10 R2RML Part 1
 
SWT Lecture Session 9 - RDB2RDF direct mapping
SWT Lecture Session 9 - RDB2RDF direct mappingSWT Lecture Session 9 - RDB2RDF direct mapping
SWT Lecture Session 9 - RDB2RDF direct mapping
 
SWT Lecture Session 8 - Rules
SWT Lecture Session 8 - RulesSWT Lecture Session 8 - Rules
SWT Lecture Session 8 - Rules
 
SWT Lecture Session 8 - Inference in jena
SWT Lecture Session 8 - Inference in jenaSWT Lecture Session 8 - Inference in jena
SWT Lecture Session 8 - Inference in jena
 
SWT Lecture Session 7 - Advanced uses of RDFS
SWT Lecture Session 7 - Advanced uses of RDFSSWT Lecture Session 7 - Advanced uses of RDFS
SWT Lecture Session 7 - Advanced uses of RDFS
 
SWT Lecture Session 6 - RDFS semantics, inference techniques, sesame rdfs
SWT Lecture Session 6 - RDFS semantics, inference techniques, sesame rdfsSWT Lecture Session 6 - RDFS semantics, inference techniques, sesame rdfs
SWT Lecture Session 6 - RDFS semantics, inference techniques, sesame rdfs
 
SWT Lecture Session 4 - SW architectures and SPARQL
SWT Lecture Session 4 - SW architectures and SPARQLSWT Lecture Session 4 - SW architectures and SPARQL
SWT Lecture Session 4 - SW architectures and SPARQL
 
SWT Lecture Session 4 - Sesame
SWT Lecture Session 4 - SesameSWT Lecture Session 4 - Sesame
SWT Lecture Session 4 - Sesame
 
SWT Lecture Session 3 - SPARQL
SWT Lecture Session 3 - SPARQLSWT Lecture Session 3 - SPARQL
SWT Lecture Session 3 - SPARQL
 
7 advanced uses of rdfs
7 advanced uses of rdfs7 advanced uses of rdfs
7 advanced uses of rdfs
 
5 rdfs
5 rdfs5 rdfs
5 rdfs
 
4 sw architectures and sparql
4 sw architectures and sparql4 sw architectures and sparql
4 sw architectures and sparql
 
4 sesame
4 sesame4 sesame
4 sesame
 
SWT Lecture Session 1 - Introduction
SWT Lecture Session 1 - IntroductionSWT Lecture Session 1 - Introduction
SWT Lecture Session 1 - Introduction
 
ontop: A tutorial
ontop: A tutorialontop: A tutorial
ontop: A tutorial
 

Kürzlich hochgeladen

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 

Kürzlich hochgeladen (20)

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 

OXFORD'13 Optimising OWL 2 QL query rewriring

  • 1. . . . . Ontop at Work Mariano Rodríguez-Muro1, Roman Kontchakov2 Michael Zakharyaschev2 1 Faculty of Computer Science, Free University of Bozen-Bolzano, Italy 2 Department of Computer Science and Information Systems, Birkbeck, University of London, U.K. May 22th, 2013
  • 2. . . . OBDA: What is it? . Loosely speaking... . . . Using ontologies to access of data. Ontop at Work 2 / 29
  • 3. . . . OBDA: What is it? . Loosely speaking... . . . Using ontologies to access of data. (Virtual) ABox User Query Ontology (TBox) Mappings OBDA System RBMS Data source Ontop at Work 2 / 29
  • 4. . . . OBDA: What is it? . Loosely speaking... . . . Using ontologies to access of data. (Virtual) ABox User Query Ontology (TBox) Mappings OBDA System RBMS Data source Our focus are OWL 2 QL ontologies, since they are tailored to handle very large amounts of data by means of query rewriting techniques. Ontop at Work 2 / 29
  • 5. . . . Query Answering by Query rewriting . Objective . . . Given a query Q over the ontology T derive a query Q′ over the database D that preserves the semantics of T. Ontop at Work 3 / 29
  • 6. . . . Query Answering by Query rewriting . Objective . . . Given a query Q over the ontology T derive a query Q′ over the database D that preserves the semantics of T. . . Consider a TBox T Movie ≡ ∃title, Movie ⊑ ∃year, Movie ≡ ∃cast, ∃cast− ⊑ Person Actor ⊑ Person Actress ⊑ Person, Producer ⊑ Person, Director ⊑ Person, Writer ⊑ Person, Editor ⊑ Person. Ontop at Work 3 / 29
  • 7. . . . Example . . The Database D: Two DB relations title[m, t, y] and castinfo[p, m, r]. Ontop at Work 4 / 29
  • 8. . . . Example . . The Database D: Two DB relations title[m, t, y] and castinfo[p, m, r]. The mapping M (logical form, think R2RML): Movie(m) ← title(m, t, y), title(m, t) ← title(m, t, y), year(m, y) ← title(m, t, y), cast(m, p) ← castinfo(p, m, r), Person(p) ← castinfo(p, m, r), Actor(p) ← castinfo(p, m, ”c1”) · · · Editor(p) ← castinfo(p, m, ”c6”). Ontop at Work 4 / 29
  • 9. . . . The classic OBDA architecture . . CQ q . ontology T . FO q′ . mapping . SQL . data D . ABox A . + . rewriting . + . unfolding . + . ABox virtualisation Stages in the classic OBDA approach: . Rewriting w.r.t. T, . Unfolding w.r.t. M, . Execution over D. Ontop at Work 5 / 29
  • 10. . . . The classic OBDA architecture . . CQ q . ontology T . FO q′ . mapping . SQL . data D . ABox A . + . rewriting . + . unfolding . + . ABox virtualisation Stages in the classic OBDA approach: . Rewriting w.r.t. T, . Unfolding w.r.t. M, . Execution over D. . . Unfolding and Mappings are ignored in most OBDA literature Ontop at Work 5 / 29
  • 11. . . . Example: Rewriting Given the query Q q(x) ← Person(x) Gives the rewriting q(x) ← Person(x) q(x) ← cast(z, x) q(x) ← Actor(x) . . . q(x) ← Editor(x) Ontop at Work 6 / 29
  • 12. . . . Example: Unfolding Given the query Q q(x) ← Person(x) Gives the rewriting q(x1) ← castinfo(x1, m, r) q(x2) ← castinfo(x2, m, r) q(x3) ← castinfo(x3, m, ”c1”) . . . q(x8) ← castinfo(x8, m, ”c6”) Ontop at Work 7 / 29
  • 13. . . . Issues The issues with these rewritings are: . Large size (n1 ∗ . . . ∗ n2) . Largely redundant (w.r.t. query containment) Ontop at Work 8 / 29
  • 14. . . . Issues The issues with these rewritings are: . Large size (n1 ∗ . . . ∗ n2) . Largely redundant (w.r.t. query containment) In the literature we find two solutions: . Encoding the rewriting as a Datalog program. For example, given the query: q(x, y) ← Person(x), Person(y), cast(m, x), cast(m, z) Ontop at Work 8 / 29
  • 15. . . . Issues The issues with these rewritings are: . Large size (n1 ∗ . . . ∗ n2) . Largely redundant (w.r.t. query containment) In the literature we find two solutions: . Encoding the rewriting as a Datalog program. For example, given the query: q(x, y) ← Person(x), Person(y), cast(m, x), cast(m, z) we generate the rewriting: q(x, y) ← Person(x), Person(y), cast(m, x), cast(m, z) Person(x) ← cast(m, x) Person(x) ← Actor(x) . . . Person(x) ← Edtior(x) Ontop at Work 8 / 29
  • 16. . . . Issues The issues with these rewritings are: . Large size (n1 ∗ . . . ∗ n2) . Largely redundant (w.r.t. query containment) In the literature we find two solutions: . Encoding the rewriting as a Datalog program. . But... . . . The query still needs to be unfolded into an SQL query. There are two choices here: . Generate SQL queries with nested UNIONs. Very bad for performance. . Expand into a UCQ. Back to square 1. Ontop at Work 9 / 29
  • 17. . . . Issues (cont.) The issues with these rewritings are: . Large size (n1 ∗ . . . ∗ n2) . Largely redundant (w.r.t. query containment) Ontop at Work 10 / 29
  • 18. . . . Issues (cont.) The issues with these rewritings are: . Large size (n1 ∗ . . . ∗ n2) . Largely redundant (w.r.t. query containment) . Using Query Containment to clean the output. Ontop at Work 10 / 29
  • 19. . . . Issues (cont.) The issues with these rewritings are: . Large size (n1 ∗ . . . ∗ n2) . Largely redundant (w.r.t. query containment) . Using Query Containment to clean the output. For example, to detect that this: q(x1) ← castinfo(x1, m, r) q(x2) ← castinfo(x2, m, r) q(x3) ← castinfo(x3, m, ”c1”) . . . q(x8) ← castinfo(x8, m, ”c6”) Ontop at Work 10 / 29
  • 20. . . . Issues (cont.) The issues with these rewritings are: . Large size (n1 ∗ . . . ∗ n2) . Largely redundant (w.r.t. query containment) . Using Query Containment to clean the output. For example, to detect that this: q(x1) ← castinfo(x1, m, r) q(x2) ← castinfo(x2, m, r) q(x3) ← castinfo(x3, m, ”c1”) . . . q(x8) ← castinfo(x8, m, ”c6”) can be simplified to q(x1) ← castinfo(x1, m, r) Ontop at Work 10 / 29
  • 21. . . . Issues (cont.) The issues with these rewritings are: . Large size (n1 ∗ . . . ∗ n2) . Largely redundant (w.r.t. query containment) . Using Query Containment to clean the output. . But... . . . . Query containment is an extremely expensive operation. . We are working with large sets of queries. Ontop at Work 11 / 29
  • 22. . . . Roots of the problem There are 3 main reasons for large CQ rewritings and unfoldings: Ontop at Work 12 / 29
  • 23. . . . Roots of the problem There are 3 main reasons for large CQ rewritings and unfoldings: (E) Sub-queries of q with existentially quantified variables can be folded in many different ways to match the canonical model (existential trees), e.g., Person ⊑ ∃hasFather.Person and the query q(x) ← hasFather(x, y), hasFather(y, z) Ontop at Work 12 / 29
  • 24. . . . Roots of the problem There are 3 main reasons for large CQ rewritings and unfoldings: (E) Sub-queries of q with existentially quantified variables can be folded in many different ways to match the canonical model (existential trees), e.g., Person ⊑ ∃hasFather.Person and the query q(x) ← hasFather(x, y), hasFather(y, z) (H) The concepts and roles for atoms in q can have many sub-concepts and sub-roles according to T, Ontop at Work 12 / 29
  • 25. . . . Roots of the problem There are 3 main reasons for large CQ rewritings and unfoldings: (E) Sub-queries of q with existentially quantified variables can be folded in many different ways to match the canonical model (existential trees), e.g., Person ⊑ ∃hasFather.Person and the query q(x) ← hasFather(x, y), hasFather(y, z) (H) The concepts and roles for atoms in q can have many sub-concepts and sub-roles according to T, (M) The mapping M can have multiple definitions of the ontology terms, Most of the proposed rewriting techniques try to tame (E). Ontop at Work 12 / 29
  • 26. . . . More about (E) More about (E) . it is in theory incurable . it is independent of (H) and (M) Ontop at Work 13 / 29
  • 27. . . . More about (E) More about (E) . it is in theory incurable . it is independent of (H) and (M) However . Rewriting algorithms deal with (E) and (H) at the same time . Real-world Qs and T’s generate few queries when dealing with (E) in isolation. . Even artificially constructed Qs and T’s become simple. Ontop at Work 13 / 29
  • 28. . . . More about (E) More about (E) . it is in theory incurable . it is independent of (H) and (M) However . Rewriting algorithms deal with (E) and (H) at the same time . Real-world Qs and T’s generate few queries when dealing with (E) in isolation. . Even artificially constructed Qs and T’s become simple. . . The strongest issues in query rewriting are (H) and (M) Ontop at Work 13 / 29
  • 29. . . . More about (E) More about (E) . it is in theory incurable . it is independent of (H) and (M) However . Rewriting algorithms deal with (E) and (H) at the same time . Real-world Qs and T’s generate few queries when dealing with (E) in isolation. . Even artificially constructed Qs and T’s become simple. . . The strongest issues in query rewriting are (H) and (M) In Ontop we deal with (H) and (M) separately from (E). We do it through T-mappings and TreeWitness rewritings. Ontop at Work 13 / 29
  • 30. . . . Dealing with (H) and (M): T-Mappings A T-mapping MT is a transformation of M that enforces all (H) entailments (H-completeness), formally, M |= A(c) and T |= A ⊑ B → MT |= B(c) Ontop at Work 14 / 29
  • 31. . . . Dealing with (H) and (M): T-Mappings A T-mapping MT is a transformation of M that enforces all (H) entailments (H-completeness), formally, M |= A(c) and T |= A ⊑ B → MT |= B(c) . T-mapping example 1 . . . Consider two DB relations title[m, t, y] and castinfo[p, m, r] and an ontology MO describing the film domain as follows: Movie ≡ ∃cast Let M be the following mappings: Movie(m) ← title(m, t, y), cast(m, p) ← castinfo(p, m, r). Ontop at Work 14 / 29
  • 32. . . . Dealing with (H) and (M): T-Mappings A T-mapping MT is a transformation of M that enforces all (H) entailments (H-completeness), formally, M |= A(c) and T |= A ⊑ B → MT |= B(c) . T-mapping example 1 (domain/range) . . . Consider two DB relations title[m, t, y] and castinfo[p, m, r] and an ontology MO describing the film domain as follows: Movie ≡ ∃cast Let M be the following mappings: Movie(m) ← title(m, t, y), cast(m, p) ← castinfo(p, m, r). Movie(m) ← castinfo(p, m, r). Ontop at Work 15 / 29
  • 33. . . . T-Mappings: Example 2 . T-mappings example 2 (hierarchies) . . . Consider a TBox T Actor ⊑ Person Actress ⊑ Person, Producer ⊑ Person, Director ⊑ Person, Writer ⊑ Person, Editor ⊑ Person. The mapping M: Actor(p) ← castinfo(p, m, ”c1”) · · · Editor(p) ← castinfo(p, m, ”c6”). Ontop at Work 16 / 29
  • 34. . . . T-Mappings: Example 2 . T-mappings example 2 (hierarchies) . . . Consider a TBox T Actor ⊑ Person Actress ⊑ Person, Producer ⊑ Person, Director ⊑ Person, Writer ⊑ Person, Editor ⊑ Person. The mapping M: Person(p) ← castinfo(p, m, ”c1”) · · · Person(p) ← castinfo(p, m, ”c6”). Ontop at Work 17 / 29
  • 35. . . . Optimising T-mappings . . The objective of T-mapping allow to deal with hierarchical reasoning (H) at the level of the unfolding. At this point, we can exploit . DB dependencies and . SQL expressivity to reduce and often the exponential growth coming form (H) and (M). Ontop at Work 18 / 29
  • 36. . . . Optimising with Dependencies A first optimisation is Query Containment (w.r.t. dependencies) Ontop at Work 19 / 29
  • 37. . . . Optimising with Dependencies A first optimisation is Query Containment (w.r.t. dependencies) . Example . . . Consider the previous example, since T |= ∃cast ⊑ Movie, the T-mapping contains: Movie(m) ← title(m, t, y), Movie(m) ← castinfo(p, m, r). Ontop at Work 19 / 29
  • 38. . . . Optimising with Dependencies A first optimisation is Query Containment (w.r.t. dependencies) . Example . . . Consider the previous example, since T |= ∃cast ⊑ Movie, the T-mapping contains: Movie(m) ← title(m, t, y), Movie(m) ← castinfo(p, m, r). The latter rule is redundant since IMDb contains the foreign key title(m, t, y) ⇝ title(p, m, r) This step is crucial to reduce the growth due to inferences related to domain and range. Ontop at Work 19 / 29
  • 39. . . . Optimising with SQL expressivity Ontop at Work 20 / 29
  • 40. . . . Optimising with SQL expressivity Observation. The only means for perfect reformulations to deal with (H) is through disjunction (UNION). DBMS are not good planning UNIONs. Ontop at Work 20 / 29
  • 41. . . . Optimising with SQL expressivity Observation. The only means for perfect reformulations to deal with (H) is through disjunction (UNION). DBMS are not good planning UNIONs. However, At the level of the unfolding and mappings, we have full SQL expressivity (e.g., Disjunction (OR), inequalities, etc.). Ontop at Work 20 / 29
  • 42. . . . Optimising with SQL expressivity Observation. The only means for perfect reformulations to deal with (H) is through disjunction (UNION). DBMS are not good planning UNIONs. However, At the level of the unfolding and mappings, we have full SQL expressivity (e.g., Disjunction (OR), inequalities, etc.). . Objective . . . Given a T-mapping, define mapping transformations that entail the same ABox using less mappings while ensuring that the encoding used is efficient during execution. Ontop at Work 20 / 29
  • 43. . . . Optimising with SQL expressivity Use OR and inequalities to re-express mappings for hierarchies and discriminant columns. Ontop at Work 21 / 29
  • 44. . . . Optimising with SQL expressivity Use OR and inequalities to re-express mappings for hierarchies and discriminant columns. . Dealing with discriminant columns . . . For example, the mapping M for IMDb and MO contains six rules for sub-concepts of Person: Person(p) ← castinfo(p, m, ”c1”) · · · Person(p) ← castinfo(p, m, ”c6”) Ontop at Work 21 / 29
  • 45. . . . Optimising with SQL expressivity Use OR and inequalities to re-express mappings for hierarchies and discriminant columns. . Dealing with discriminant columns . . . For example, the mapping M for IMDb and MO contains six rules for sub-concepts of Person: Person(p) ← castinfo(p, m, ”c1”) · · · Person(p) ← castinfo(p, m, ”c6”) These can be reduced to a single rule: Person(p) ← castinfo(c, p, m, r), (r = c1) ∨ · · · ∨ (r = c6). Ontop at Work 21 / 29
  • 46. . . . The architecture of Ontop . . CQ q . ontology T . UCQ qtw . T-mapping . mapping M . dependencies Σ . SQL . data D . ABox A . H-complete ABox A . + . tw-rewriting . + . unfolding . + . ABox virtualisation . + . ABox virtualisation . + . ABox completion . + . completion . SQO . SQO . Highlights: (H) and (M) dealt with T-mappings, rewriting for (H)-complete ABoxes, extensive use of SQO over the unfolding. Ontop at Work 22 / 29
  • 47. . . . Other Optimisations in Ontop We also apply other important optimisations during system setup and at query time, the most important: Equivalence Simplification Simplify the ontology vocabulary w.r.t. equivalence (keep one representative of each equivalence class). Semantic Query Optimisation Optimise each query generated individually... see next slides. Emptiness indexes Keeping track of empty predicates Ontop at Work 23 / 29
  • 48. . . . Results A summary of the results we have observed using this architecture: . Mappings per class/property are few . Query rewritings are small . SQL queries generated like this often correspond to what a human expert would have generated. . Query execution of SPARQL with entailments is fast, often much faster than in triple stores. . . Query rewriting can be done efficiently Ontop at Work 24 / 29
  • 49. . . . Benchmarks 0.1   1   10   100   1000   10000   100000   1000000   R1   R2   R3   R4   R5   Q1   Q2   Q3   Q4   Q5   Q6   V7   V8   V9   V10   OWLIM   STARDOG   ONTOP   Benchmark: LUBMex, 200 Unis (30M triples). Systems: OWLIM (forward chaining), Stardog (rewriting), Ontop/DB2. Ontop/DB2 . returns immediately for 5/15 queries, . faster than the rest in 12/15 queries Ontop at Work 25 / 29
  • 50. . . . Summary Results so far . Efficiently dealt with exponential growth from (H) and (M) . Use of dependencies and CQC/SQO to minimise and optimise mapping rules . We exploit SQL expressivity to transform mappings to minimize the number of mappings. Ontop at Work 26 / 29
  • 51. . . . Summary Results so far . Efficiently dealt with exponential growth from (H) and (M) . Use of dependencies and CQC/SQO to minimise and optimise mapping rules . We exploit SQL expressivity to transform mappings to minimize the number of mappings. . . OWL 2 QL query answering with query rewriting is efficient and materialisation is not required. Ontop at Work 26 / 29
  • 52. . . . Summary Results so far . Efficiently dealt with exponential growth from (H) and (M) . Use of dependencies and CQC/SQO to minimise and optimise mapping rules . We exploit SQL expressivity to transform mappings to minimize the number of mappings. . . OWL 2 QL query answering with query rewriting is efficient and materialisation is not required. Ontop is available as an SPARQL end-point, OWLAPI and Sesame library, and Protege 4 plugin. Many more features (SPARQL, R2RML). Permanently under-development, however, stable enough to be used seriously in many projects, incl. Optique. Ontop at Work 26 / 29
  • 53. . . . Summary Results so far . Efficiently dealt with exponential growth from (H) and (M) . Use of dependencies and CQC/SQO to minimise and optimise mapping rules . We exploit SQL expressivity to transform mappings to minimize the number of mappings. . . OWL 2 QL query answering with query rewriting is efficient and materialisation is not required. Ontop is available as an SPARQL end-point, OWLAPI and Sesame library, and Protege 4 plugin. Many more features (SPARQL, R2RML). Permanently under-development, however, stable enough to be used seriously in many projects, incl. Optique. Current work is applying these techniques to more expressive settings, e.g., OWL + Rules, OWL 2 EL, OWL 2 RL, through an hybrid approach. Ontop at Work 26 / 29
  • 54. . . . Semantic Query Optimisation Consider the query q(t, y) ← Movie(m), title(m, t), year(m, y), (y > 2010) By straightforwardly applying the unfolding to qtw and the T-mapping M above, we obtain the query q′ tw(t, y) ← title(m, t0, y0), title(m, t, y1), title(m, t2, y), (y > 2010), which requires two (potentially) expensive Join operations. However, by using the primary key m of title we obtain: q′′ tw(t, y) ← title(m, t, y), (y > 2010).
  • 55. . . . Semantic Query Optmization Semantic Query Optimisation (SQO) is a field from DB theory focused on optimisation of queries w.r.t. dependencies. Semantic Query Optimisations in DB and OBDA . While some of SQO techniques reached industrial RDBMSs, it never had a strong impact on the database community. . In OBDA, in contrast, SQL queries are generated automatically, and so SQO is the only tools to reach optimal queries. . . In practice, an OBDA system must implement at least SQO w.r.t. primary keys and foreign keys to deal with the disparities between RDF and relational.
  • 56. . . . Why does it work? DBs are created through standard practices that generate features that are the focus of the previous optimisations. Starting from a rich conceptual schema, we encode it in a relational schema by: – amalgamating N-to-1 and 1-to-1 attributes of an entity to a single n-ary relation with a primary key identifying the entity (e.g., title with title and year), – using foreign keys over attribute columns when a column refers to the entity (e.g., name and castinfo), – using type-discriminant columns to encode hierarchical information (e.g., castinfo). As this process is universal, the T-mappings created for the resulting databases are dramatically simplified by the Ontop optimisations