CC6202-1 L A W EB DE D ATOS P RIMAVERA 2015 Lecture 5: Web Ontology Language (II) Aidan Hogan

Slides:



Advertisements
Similar presentations
David Evans cs302: Theory of Computation University of Virginia Computer Science Lecture 17: ProvingUndecidability.
Advertisements

NP-Hard Nattee Niparnan.
CS211 Problems: unsolvable, unfeasible and unsolved Topic 2: Halting problem.
Lecture 19. Reduction: More Undecidable problems
Problem: Give as many proofs as you can for the Pythagorean Theorem. i.e., a 2 + b 2 = c 2 holds for any right triangle with sides a & b and hypotenuse.
The Recursion Theorem Sipser – pages Self replication Living things are machines Living things can self-reproduce Machines cannot self reproduce.
The Big Picture Chapter 3. We want to examine a given computational problem and see how difficult it is. Then we need to compare problems Problems appear.
Sets Lecture 11: Oct 24 AB C. This Lecture We will first introduce some basic set theory before we do counting. Basic Definitions Operations on Sets Set.
Of 27 lecture 7: owl - introduction. of 27 ece 627, winter ‘132 OWL a glimpse OWL – Web Ontology Language describes classes, properties and relations.
1 Undecidability Andreas Klappenecker [based on slides by Prof. Welch]
1 Introduction to Computability Theory Lecture15: Reductions Prof. Amos Israeli.
1 Introduction to Computability Theory Lecture12: Reductions Prof. Amos Israeli.
CPSC 411, Fall 2008: Set 12 1 CPSC 411 Design and Analysis of Algorithms Set 12: Undecidability Prof. Jennifer Welch Fall 2008.
Lecture 9 Recursive and r.e. language classes
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 20 Instructor: Paul Beame.
Lecture 8 Recursively enumerable (r.e.) languages
1 Undecidability Andreas Klappenecker [based on slides by Prof. Welch]
1 Lecture 7 Halting Problem –Fundamental program behavior problem –A specific unsolvable problem –Diagonalization technique revisited Proof more complex.
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 19 Instructor: Paul Beame.
1 Lecture 7 Halting Problem –Fundamental program behavior problem –A specific unsolvable problem –Diagonalization technique revisited Proof more complex.
1 Decidability continued. 2 Undecidable Problems Halting Problem: Does machine halt on input ? State-entry Problem: Does machine enter state halt on input.
1 Lecture 23 Decision problems about regular languages –Programs can be inputs to other programs FSA’s, NFA’s, regular expressions –Basic problems are.
1 Reducibility. 2 Problem is reduced to problem If we can solve problem then we can solve problem.
Cs3102: Theory of Computation Class 18: Proving Undecidability Spring 2010 University of Virginia David Evans.
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
MA/CSSE 474 Theory of Computation More Reduction Examples Non-SD Reductions.
Cs3102: Theory of Computation Class 24: NP-Completeness Spring 2010 University of Virginia David Evans.
Great Theoretical Ideas in Computer Science.
Naïve Set Theory. Basic Definitions Naïve set theory is the non-axiomatic treatment of set theory. In the axiomatic treatment, which we will only allude.
CS 3813: Introduction to Formal Languages and Automata Chapter 12 Limits of Algorithmic Computation These class notes are based on material from our textbook,
1 Turing’s Thesis. 2 Turing’s thesis: Any computation carried out by mechanical means can be performed by a Turing Machine (1930)
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
Practical RDF Chapter 12. Ontologies: RDF Business Models Shelley Powers, O’Reilly SNU IDB Lab. Taikyoung Kim.
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
CC L A W EB DE D ATOS P RIMAVERA 2015 Lecture 4: Web Ontology Language (I) Aidan Hogan
CSE 311 Foundations of Computing I Lecture 28 Computability: Other Undecidable Problems Autumn 2011 CSE 3111.
CompSci On the Limits of Computing  Reasons for Failure 1. Runs too long o Real time requirements o Predicting yesterday's weather 2. Non-computable.
CC L A W EB DE D ATOS P RIMAVERA 2015 Lecture 7: SPARQL (1.0) Aidan Hogan
Lecture 17 Undecidability Topics:  TM variations  Undecidability June 25, 2015 CSCE 355 Foundations of Computation.
Fundamentals of Informatics Lecture 12 The Halting Problem Bas Luttik.
1 Undecidability Andreas Klappenecker [based on slides by Prof. Welch]
Decidability Decidable/Undecidable problems. Jaruloj Chongstitvatana Decidability2 Accepting: Definition Let T = (Q, , , , s) be a TM. T accepts.
1 Chapter 9 Undecidability  Turing Machines Coded as Binary Strings  Universal Turing machine  Diagonalizing over Turing Machines  Problems as Languages.
The NP class. NP-completeness Lecture2. The NP-class The NP class is a class that contains all the problems that can be decided by a Non-Deterministic.
CompSci Today’s Topics Computer Science Noncomputability Upcoming Special Topic: Enabled by Computer -- Decoding the Human Genome Reading Great.
The Church-Turing Thesis Chapter Are We Done? FSM  PDA  Turing machine Is this the end of the line? There are still problems we cannot solve:
Algorithms and Flowcharts
Chapter Describing Individuals OWL Individuals ▫Ontological Primitive Layer  Mostly described with RDF ▫Instances of user-defined ontological.
Recursively Enumerable and Recursive Languages. Definition: A language is recursively enumerable if some Turing machine accepts it.
MA/CSSE 474 Theory of Computation Universal Turing Machine Church-Turing Thesis Delayed due dates for HWs See updated schedule page. No class meeting.
The NP class. NP-completeness
Set Operations CS 202, Spring 2008 Epp, chapter 5.
CIS Automata and Formal Languages – Pei Wang
CC La Web de Datos Primavera Lecture 3: RDF Schema and Semantics
Turing Machines Acceptors; Enumerators
CS154, Lecture 10: Rice’s Theorem, Oracle Machines
Busch Complexity Lectures: Undecidable Problems (unsolvable problems)
ece 720 intelligent web: ontology and beyond
CC La Web de Datos Primavera 2016 Lecture 7: SPARQL (1.0)
CSCE 411 Design and Analysis of Algorithms
CS154, Lecture 10: Rice’s Theorem, Oracle Machines
Aidan Hogan CC La Web de Datos Primavera 2017 Lecture 4: Web Ontology Language (OWL) [I] Aidan Hogan
Decidability Turing Machines Coded as Binary Strings
CC La Web de Datos Primavera Lecture 5: Web Ontology Language (II)
Decidability Turing Machines Coded as Binary Strings
Logics for Data and Knowledge Representation
CC La Web de Datos Primavera 2018 Lecture 8: SPARQL [1.1]
Subject Name: FORMAL LANGUAGES AND AUTOMATA THEORY
More Undecidable Problems
CIS Automata and Formal Languages – Pei Wang
Presentation transcript:

CC L A W EB DE D ATOS P RIMAVERA 2015 Lecture 5: Web Ontology Language (II) Aidan Hogan

PREVIOUSLY ON “LA WEB DE DATOS”

RDF: Resource Description Framework

RDF Schema … (an example)

ex:Carme la ex:Vito ex:Sonny ex:Conni e ex:Fredo ex:Micha el ex:Vince nt ex:Mary Modelling family relations with OWL

ex:Carme la owl:TransitiveProperty ex:Carmela :ancestorOf ex:Michael. ex:Michael :ancestorOf ex:Mary. :ancestorOf rdf:type owl:TransitiveProperty. ⇒ ex:Carmela :ancestorOf ex:Mary. ex:Mary ex:Micha el :ancestorOf

? owl:someValuesFrom ( ∃ ) [ii] ∃ ex:Carmela rdf:type :Parent. :Parent rdfs:subClassOf [ owl:someValuesFrom :Person ; owl:onProperty :hasChild ]. ⇒ ex:Mary :hasChild _:someone. _:someone rdf:type :Person. :Person :hasChild. ? :hasChild rdf:type ex:Carmel a :Parent ⊑ rdf:type

TODAY’S TOPIC …

An ontology is just some definitions … :hasDaughter rdfs:subPropertyOf :hasChild. :hasChild rdf:type owl:AsymmetricProperty ; owl:inverseOf :hasParent ; rdfs:subPropertyOf :ancestorOf. :ancestorOf rdf:type owl:TransitiveProperty. ex:Carmela :hasChild ex:Michael. ex:Michael :hasDaughter ex:Mary. ex:Mary a :Person. :Person owl:equivalentClass [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Person ]. … but what do they mean? … and what can we do with ontologies?

Trying to give a taste of OWL

MODELS …

Models of ontologies A model is any world that an ontology might describe :hasDaughter rdfs:subPropertyOf :hasChild. :hasChild rdfs:subPropertyOf :ancestorOf. :ancestorOf rdf:type owl:TransitiveProperty. ex:Carmela :hasChild ex:Michael. ex:Michael :hasDaughter ex:Mary. … not a model, since Carmela would need to be an ancestor of Mary

Models of ontologies A model is any world that an ontology might describe … a model (leaving aside things like OWL definitions, reflexive owl:sameAs, etc.) :hasDaughter rdfs:subPropertyOf :hasChild. :hasChild rdfs:subPropertyOf :ancestorOf. :ancestorOf rdf:type owl:TransitiveProperty. ex:Carmela :hasChild ex:Michael. ex:Michael :hasDaughter ex:Mary.

Models of ontologies A model is any world that an ontology might describe … also a model (Under Open World Assumption, Ontology can describe part of the world) :hasDaughter rdfs:subPropertyOf :hasChild. :hasChild rdfs:subPropertyOf :ancestorOf. :ancestorOf rdf:type owl:TransitiveProperty. ex:Carmela :hasChild ex:Michael. ex:Michael :hasDaughter ex:Mary.

Models of ontologies A model is any world that an ontology might describe … also a model (Since we don’t know what ex:Cake, ex:Carmela, etc., actually refer to) :hasDaughter rdfs:subPropertyOf :hasChild. :hasChild rdfs:subPropertyOf :ancestorOf. :ancestorOf rdf:type owl:TransitiveProperty. ex:Carmela :hasChild ex:Michael. ex:Michael :hasDaughter ex:Mary.

Mapping of names to things part of model (Different names to different things means a different model!)

ENTAILMENT …

Ontology O entails O′ (O ⊧ O′) ex:Michael :hasParent ex:Carmela. ex:Michael :hasChild ex:Mary. ex:Carmela :ancestorOf ex:Mary. :hasDaughter rdfs:subPropertyOf :hasChild. :hasChild rdf:type owl:AsymmetricProperty ; owl:inverseOf :hasParent ; rdfs:subPropertyOf :ancestorOf. :ancestorOf rdf:type owl:TransitiveProperty. ex:Carmela :hasChild ex:Michael. ex:Michael :hasDaughter ex:Mary. ex:Mary a :Person. :Person owl:equivalentClass [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Person ]. Any model of O is a model of O′ (O′ forms part of the models of O) (O′ says nothing new over O)

Entailment symbol: ⊧

Ontology Entailment ex:Carmela :ancestorOf ex:Mary. ex:Mary :likes ex:Cake. ex:Michael :hasParent ex:Carmela. ex:Michael :hasChild ex:Mary. ex:Carmela :ancestorOf ex:Mary. No! There are models of O that are not of O′ … Mary doesn’t like cake here Does O entail O′ (O ⊧ O′)?

REASONING TASKS …

Materialisation: Write down entailments ex:Michael :hasParent ex:Carmela. ex:Michael :hasChild ex:Mary. ex:Carmela :ancestorOf ex:Mary. … :hasDaughter rdfs:subPropertyOf :hasChild. :hasChild rdf:type owl:AsymmetricProperty ; owl:inverseOf :hasParent ; rdfs:subPropertyOf :ancestorOf. :ancestorOf rdf:type owl:TransitiveProperty. ex:Carmela :hasChild ex:Michael. ex:Michael :hasDaughter ex:Mary. ex:Mary a :Person. :Person owl:equivalentClass [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Person ]. Any problems with this?

Materialisation: Write down entailments ex:Michael :hasParent ex:Carmela. ex:Michael :hasChild ex:Mary. ex:Carmela :ancestorOf ex:Mary. … :hasDaughter rdfs:subPropertyOf :hasChild. :hasChild rdf:type owl:AsymmetricProperty ; owl:inverseOf :hasParent ; rdfs:subPropertyOf :ancestorOf. :ancestorOf rdf:type owl:TransitiveProperty. ex:Carmela :hasChild ex:Michael. ex:Michael :hasDaughter ex:Mary. ex:Mary a :Person. :Person owl:equivalentClass [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Person ]. ex:Mary :hasParent _:parent1. _:parent1 a :Person. ex:Mary :hasParent _:parent2. _:parent2 a :Person. _:parent1 :hasParent _:parent11. _:parent11 a :Person. _:parent2 :hasParent _:parent12. _:parent12 a :Person....

Materialisation: Write down entailments ex:Michael :hasParent ex:Carmela. ex:Michael :hasChild ex:Mary. ex:Carmela :ancestorOf ex:Mary. … :hasDaughter rdfs:subPropertyOf :hasChild. :hasChild rdf:type owl:AsymmetricProperty ; owl:inverseOf :hasParent ; rdfs:subPropertyOf :ancestorOf. :ancestorOf rdf:type owl:TransitiveProperty. ex:Carmela :hasChild ex:Michael. ex:Michael :hasDaughter ex:Mary. ex:Mary a :Person. :Person owl:equivalentClass [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Person ]. :Person rdfs:subClassOf [ owl:maxQualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Person ]. :Person rdfs:subClassOf [ owl:maxQualifiedCardinality 3 ; owl:onProperty :hasParent ; owl:onClass :Person ]....

Entailments are infinite … … which makes it tricky to write them all down … Materialisation: Write down entailments

Ontology Satisfiability: Does O have a “model”? :Person owl:equivalentClass [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Person ]. :FirstPerson a :Person, [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Ape ]. So does O have a model? YES! Ontology O is Satisfiable!

Ontology Satisfiability: Does O have a “model”? :Person owl:equivalentClass [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Person ]. :FirstPerson a :Person, [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Ape ]. :Ape owl:disjointWith :Person. So does O have a model now? YES! Ontology O is still Satisfiable!

Ontology Satisfiability: Does O have a “model”? :Person owl:equivalentClass [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Person ]. :FirstPerson a :Person, [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Ape ]. :Ape owl:disjointWith :Person. What more would we have to add to O to make it Unsatisfiable? :Person rdfs:subClassOf [ owl:cardinality 2 ; owl:onProperty :hasParent ]. :Person owl:equivalentClass [ owl:allValuesFrom :Person ; owl:onProperty :hasParent ]. :FirstPerson a :Ape. :FirstPerson a owl:Nothing. OR OR …

Ontology Satisfiability: Does O have a “model”? :Person owl:equivalentClass [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Person ]. :FirstPerson a :Person, [ owl:qualifiedCardinality 2 ; owl:onProperty :hasParent ; owl:onClass :Ape ]. :Ape owl:disjointWith :Person. What more would we have to add to O to make it Unsatisfiable? :Person rdfs:subClassOf [ owl:cardinality 2 ; owl:onProperty :hasParent ]. :Person owl:equivalentClass [ owl:allValuesFrom :Person ; owl:onProperty :hasParent ]. :FirstPerson a :Ape. :FirstPerson a owl:Nothing. OR OR … An unsatisfiable ontology cannot model any world! It is inconsistent!

Entailment checking: Does O entail O′? ex:Michael :hasParent ex:Carmela. ex:Michael :hasChild ex:Mary. ex:Carmela :ancestorOf ex:Mary. :hasDaughter rdfs:subPropertyOf :hasChild. :hasChild rdf:type owl:AsymmetricProperty ; owl:inverseOf :hasParent ; rdfs:subPropertyOf :ancestorOf. :ancestorOf rdf:type owl:TransitiveProperty. ex:Carmela :hasChild ex:Michael. ex:Michael :hasDaughter ex:Mary. Alternatively: Are all models of O models of O′ too?

REASONING …

How can we perform reasoning? Does Ontology O entail O′? Could instead ask: is “O ∪ ¬O′” unsatisfiable? Can reduce entailment to unsatisfiability! ex:Michael :hasChild ex:Mary. :hasDaughter rdfs:subPropertyOf :hasChild. ex:Michael :hasDaughter ex:Mary. :hasDaughter rdfs:subPropertyOf :hasChild. ex:Michael :hasDaughter ex:Mary. [] owl:sourceIndividual ex:Michael ; owl:assertionProperty :hasChild ; owl:targetIndividual ex:Mary.

So how do we test unsatisfiability then? (Audrey was clearly not a Computer Scientist)

UNDECIDABILITY …

A simple Java program … Does this Java program terminate on all possible (positive) inputs? In: (end)

A simple Java program … Collatz conjecture: an unsolved problem in mathematics If we knew that this program terminates or does not terminate on all natural numbers (not just int s), this problem would be solved!

Halting Problem Input: a program and an input to that program Output: –true if the program halts on that input –false otherwise UNDECIDABLE: a general algorithm to solve the Halting Problem does not exist! – It will not halt for all program–input pairs! – It may halt for some program–input pairs

A quick sketch of Halting Problem proof

Problem: Consecutive ‘1’s in π Input: A natural number n Output: –true if π contains n consecutive ‘1’s –false otherwise Is this problem DECIDABLE or UNDECIDABLE? … i.e., does there exist a program that halts (with the correct answer) for all n? What if we knew the maximum sequence of consecutive ‘1’s in π? if (n ≤ MAX) return true; else return false; there must exist a MAX sequence of consecutive ‘1’s in π (even if it’s ∞) ∴ there must exist a correct program that halts (even if we don’t know its details) ∴ problem is DECIDABLE!

Problem: Collatz Halting Problem Input: [none] Output: –true if Collatz program halts on all inputs –false otherwise Is this problem DECIDABLE or UNDECIDABLE? (P1) return true; either (P1) or (P2) must be correct ∴ there must exist a correct program that halts (even if we don’t know it) ∴ problem is DECIDABLE! Halting Problem UNDECIDABLE in the general case (for all programs and inputs) (P2) return false;

Domino Tiling Problem Input: A set of Dominos (like D) Output: –true if there exists a valid infinite tiling (like t) –false otherwise Is this problem DECIDABLE or UNDECIDABLE?

Can reduce from Halting to Tiling It has been shown that there exists a program that can reduce any Halting problem instance into a Domino Tiling problem instance Reduction Now is the Domino Tiling problem DECIDABLE or UNDECIDABLE? halts(p,in) { D = reduce(p,in); return hasTiling(D); } reduce(p,in) is DECIDABLE ∴ if hasTiling(D) were DECIDABLE, then halts(p,in) would be DECIDABLE but halts(p,in) is UNDECIDABLE ∴ hasTiling(D) must be UNDECIDABLE! If we have a decidable reduction from an UNDECIDABLE problem A to another problem B, then B must be UNDECIDABLE

Reduce from Tiling to OWL entailment? Reduction Does D have an infinite tiling? Does OWL ontology O entail O′? How can we encode a Domino Tiling question into an OWL ontology entailment question? If we could do this, we could save ourselves trying to code a program to implement OWL entailment since we would know it was UNDECIDABLE

Some Description Logic symbols ⊑ : sub-class/-property ≡: equivalent class/property ⊔ : union ⊓ : intersection ⊤ : top (class of everything) ⊥ : bottom (empty class) ∃ : exists ( someValuesFrom / hasValue ) ∀ : for all ( allValuesFrom ) ¬: not (complement, negation) – (superscript minus): inverse property {}: enumeration ( owl:oneOf ) Self, Trans, Dom, etc.: where symbols not available ∘ : property chain C(x): class membership P(x,y): a triple (x,P,y)

Can reduce from OWL entailment to Tiling 1.Each tile must be a domino – Define dominos as a class D, a union of classes for each domino type: Now what else do we need to encode?

Can reduce from OWL entailment to Tiling 1.Each tile must be a domino – Define dominos as a class D, a union of classes for each domino type: 2.Each tile can only be one domino type How can we encode this in OWL?

Can reduce from OWL entailment to Tiling 1.Each tile must be a domino – Define dominos as a class D, a union of classes for each domino type: 2.Each tile can only be one domino type – Define dominos types as pairwise disjoint: What else do we need to encode?

Can reduce from OWL entailment to Tiling 1.Each tile must be a domino – Define dominos as a class D, a union of classes for each domino type: 2.Each tile can only be one domino type – Define dominos types as pairwise disjoint: 3.Each tile must have a tile to the right and above How can we encode this?

Can reduce from OWL entailment to Tiling 1.Each tile must be a domino – Define dominos as a class D, a union of classes for each domino type: 2.Each tile can only be one domino type – Define dominos types as pairwise disjoint: 3.Each tile must have a tile to the right and above – Define that a domino has some values from domino for right/above: Are we there yet?

Can reduce from OWL entailment to Tiling 4.Tiles to the right and tiles above must match colour – Define that a domino has all values from matching tiles right/above: Are we there yet?

What condition are we missing? So far we could still have trees as models Need to state: Tile above and to the right = Tile to the right and above How can we encode this?

Can reduce from OWL entailment to Tiling 5.Tile right then above = Tile above then right – Define diagonal tile using two property chains (above-right/right-above) – Declare functional (a tile can only have one such diagonal tile) Are we there yet?

What’s the entailment question? ??? What should we put in O′? Goal: Ontology O entails O′ if and only if D has an infinite tiling

What’s the entailment question? Goal: Ontology O entails O′ if and only if D has an infinite tiling If D has any member (a “tile”), it must have an infinite tiling! If D has no member, it must not have an infinite tiling.

Could also use satisfiability Ontology O is satisfiable if and only if D has an infinite tiling Here, x is an arbitrary fresh term

OWL satisfiability/entailment is powerful OWL satisfiability/entailment also undecidable! Otherwise could be used to solve Domino Tiling problem … … and the Halting problem … … and (given enough time), the Collatz conjecture … … and a bunch of other stuff Reduction

PRACTICAL REASONING

Options … Accept incomplete reasoners that halt – You may not get all the entailments … so what entailments do you get? Accept complete reasoners that may not halt – Java is a language that lets you write programmes that may not halt Restrict OWL so we can’t solve Halting/Tiling – Main problem tackled in Description Logics field: find decidable sublanguages of OWL without turning off too many features (and allowing efficient algorithms) More next week … Well great. What are we supposed to do now?

RECAP

OWL Definitions Models – A world that the ontology could be true for … and a mapping from the terms of the ontology to that world – Not necessarily the real world (just a consistent world) – Can be much larger than the ontology describes – The more detailed the ontology, the fewer its models Entailment – An ontology O entails another ontology O′ if any model of O is a model of O′ … in which case O′ adds no new information to O … in which case O′ follow from O

OWL Reasoning Tasks Materialisation – Write down all the entailments from O′ Unfortunately, they are infinite Satisfiability – Does an ontology have any model? If not, it is inconsistent/unsatisfiable Unfortunately, satisfiability is undecidable Entailment (checking) – Does an ontology O entail another ontology O′? If so, O′ follows as a consequence of O Can be reduced to satisfiability Unfortunately, entailment checking is also undecidable

Questions?