Reasoning about Disclosure in Data Integration in the Presence of Source Constraints DIG Seminar 21/11/19 Michael Benedikt Pierre Bourhis Louis Jachiet Micha¨ el Thomazo Louis JACHIET 1 / 32
Motivations Louis JACHIET 2 / 32
Motivations Schema+Constraints Louis JACHIET 2 / 32
Motivations → ֒ publication Louis JACHIET 2 / 32
Motivations → ֒ publication Secret Louis JACHIET 2 / 32
Motivations → ֒ publication Secret Secret leaked? Louis JACHIET 2 / 32
Motivations → ֒ Safe publication? Secret Secret leaked? Louis JACHIET 2 / 32
Example: Hospital setting P atients D octors B uildings S pecialties O pen hours Louis JACHIET 3 / 32
Example: Hospital setting PatBldg PatSpec DocBldg PatDoc IsOpen DocSpec Louis JACHIET 4 / 32
Example Database schema Predicate Meaning IsOpen ( b , t ) Building b is open on Date t PatBdlg ( p , b ) Patient p is present in Building b PatSpec ( p , s ) Patient p was treated for Specialty s PatDoc ( p , d ) Patient p was treated by Doctor d DocBldg ( d , b ) Doctor d is associated with Building b DocSpec ( d , s ) Doctor d is associated with Specialty s Louis JACHIET 5 / 32
Example Views OpenHours ( b , t ) = IsOpen ( b , t ) VisitingHours ( p , t ) = PatBdlg ( p , b ) ∧ IsOpen ( b , t ) DocList ( d , s , b ) = DocSpec ( d , s ) ∧ DocBldg ( d , b ) Louis JACHIET 6 / 32
Example Views OpenHours ( b , t ) = IsOpen ( b , t ) VisitingHours ( p , t ) = PatBdlg ( p , b ) ∧ IsOpen ( b , t ) DocList ( d , s , b ) = DocSpec ( d , s ) ∧ DocBldg ( d , b ) Constraints PatDoc ( p , d ) → ∃ s PatSpec ( p , s ) ∧ DocSpec ( d , s ) PatBdlg ( p , b ) → ∃ d PatDoc ( p , d ) ∧ DocBldg ( d , b ) Louis JACHIET 6 / 32
Example Views OpenHours ( b , t ) = IsOpen ( b , t ) VisitingHours ( p , t ) = PatBdlg ( p , b ) ∧ IsOpen ( b , t ) DocList ( d , s , b ) = DocSpec ( d , s ) ∧ DocBldg ( d , b ) Constraints PatDoc ( p , d ) → ∃ s PatSpec ( p , s ) ∧ DocSpec ( d , s ) PatBdlg ( p , b ) → ∃ d PatDoc ( p , d ) ∧ DocBldg ( d , b ) Secret ∃ p , s PatSpec ( p , s )? Louis JACHIET 6 / 32
Example OpenHour DocList B 1 Tuesday Alice Cancer B 1 B 2 Every day 10-17h Alice Cancer B 2 Bob Radiology B 2 VisitingHours Daniel Cancer B 1 Charline Tuesday Views OpenHours ( b , t ) = IsOpen ( b , t ) VisitingHours ( p , t ) = PatBdlg ( p , b ) ∧ IsOpen ( b , t ) DocList ( d , s , b ) = DocSpec ( d , s ) ∧ DocBldg ( d , b ) Louis JACHIET 7 / 32
Example OpenHour DocList B 1 Tuesday Alice Cancer B 1 B 2 Every day 10-17h Alice Cancer B 2 Bob Radiology B 2 VisitingHours Daniel Cancer B 1 Charline Tuesday Views OpenHours ( b , t ) = IsOpen ( b , t ) VisitingHours ( p , t ) = PatBdlg ( p , b ) ∧ IsOpen ( b , t ) DocList ( d , s , b ) = DocSpec ( d , s ) ∧ DocBldg ( d , b ) Louis JACHIET 7 / 32
Example OpenHour DocList B 1 Tuesday Alice Cancer B 1 B 2 Every day 10-17h Alice Cancer B 2 Bob Radiology B 2 VisitingHours Daniel Cancer B 1 Charline Tuesday Constraints PatBdlg ( p , b ) → ∃ d PatDoc ( p , d ) ∧ DocBldg ( d , b ) Views OpenHours ( b , t ) = IsOpen ( b , t ) VisitingHours ( p , t ) = PatBdlg ( p , b ) ∧ IsOpen ( b , t ) DocList ( d , s , b ) = DocSpec ( d , s ) ∧ DocBldg ( d , b ) Louis JACHIET 7 / 32
Example OpenHour DocList B 1 Tuesday Alice Cancer B 1 B 2 Every day 10-17h Alice Cancer B 2 Bob Radiology B 2 VisitingHours Daniel Cancer B 1 Charline Tuesday Constraints PatBdlg ( p , b ) → ∃ d PatDoc ( p , d ) ∧ DocBldg ( d , b ) Views OpenHours ( b , t ) = IsOpen ( b , t ) VisitingHours ( p , t ) = PatBdlg ( p , b ) ∧ IsOpen ( b , t ) DocList ( d , s , b ) = DocSpec ( d , s ) ∧ DocBldg ( d , b ) Louis JACHIET 7 / 32
Example OpenHour DocList B 1 Tuesday Alice Cancer B 1 B 2 Every day 10-17h Alice Cancer B 2 Bob Radiology B 2 VisitingHours Daniel Cancer B 1 Charline Tuesday Constraints PatBdlg ( p , b ) → ∃ d PatDoc ( p , d ) ∧ DocBldg ( d , b ) PatDoc ( p , d ) → ∃ s PatSpec ( p , s ) ∧ DocSpec ( d , s ) Views OpenHours ( b , t ) = IsOpen ( b , t ) VisitingHours ( p , t ) = PatBdlg ( p , b ) ∧ IsOpen ( b , t ) DocList ( d , s , b ) = DocSpec ( d , s ) ∧ DocBldg ( d , b ) Louis JACHIET 7 / 32
Formalism Data represented by databases R (1 , 17) , R (2 , 42) , S (23 , 45) , . . . Louis JACHIET 8 / 32
Formalism Data represented by databases R (1 , 17) , R (2 , 42) , S (23 , 45) , . . . → + secret Mappings and secrets are CQ ֒ V ( x , z ) := R ( x , y ) ∧ S ( y , z ) Louis JACHIET 8 / 32
Formalism Data represented by databases R (1 , 17) , R (2 , 42) , S (23 , 45) , . . . → + secret Mappings and secrets are CQ ֒ V ( x , z ) := R ( x , y ) ∧ S ( y , z ) Constraints are TGD R ( x , y ) → ∃ z , S ( y , z ) Louis JACHIET 8 / 32
Safe publication → ֒ Secret Louis JACHIET 9 / 32
Safe publication → ← ֒ ֓ Secret No secret Louis JACHIET 9 / 32
Safe publication → ← ֒ ֓ Secret No secret View Problem Given (schema, constraints C , views V , secret S , visible ) do we have such that C ( ), V ( ) = and ¬S ( )? Louis JACHIET 9 / 32
Safe publication → ← ֒ ֓ Secret No secret Schema Problem Given (schema, constraints C , views V , secret S ) do we have for all an instance such that C ( ), V ( ) = V ( ) and ¬S ( )? Louis JACHIET 9 / 32
Which configurations are decidable/tractable for the schema problem? Louis JACHIET 10 / 32
Which configurations are decidable/tractable for the schema problem? Secrets Views Constraints Louis JACHIET 10 / 32
Which configurations are decidable/tractable for the schema problem? Secrets Views Constraints CQ Louis JACHIET 10 / 32
Which configurations are decidable/tractable for the schema problem? Secrets Views Constraints CQ CQ Louis JACHIET 10 / 32
Which configurations are decidable/tractable for the schema problem? Secrets Views Constraints CQ CQ ProjMap AtomMap GuardedMap CQMap Louis JACHIET 10 / 32
Which configurations are decidable/tractable for the schema problem? Secrets Views Constraints CQ CQ Let’s talk about constraints... ProjMap AtomMap GuardedMap CQMap Louis JACHIET 10 / 32
Ontologies
Ontologies in a few words An ontology represents entities and their relationship to each other. Louis JACHIET 11 / 32
Ontologies in a few words An ontology represents entities and their relationship to each other. Ontologies can be seen as a sort of expressive schema. Louis JACHIET 11 / 32
Ontologies in a few words An ontology represents entities and their relationship to each other. Ontologies can be seen as a sort of expressive schema. Ontologies allows to enrich data by inferring new facts from existing ones. Louis JACHIET 11 / 32
An example of ontology With plain words: All cats are mammals. All mammals are animals. Louis JACHIET 12 / 32
An example of ontology With plain words: All cats are mammals. All mammals are animals. With Tuple Generating Dependencies: CAT ( x ) → MAMMAL ( x ) MAMMAL ( x ) → ANIMAL ( x ) Louis JACHIET 12 / 32
An example of ontology With plain words: All cats are mammals. All mammals are animals. Database: { CAT ( ) } Louis JACHIET 12 / 32
An example of ontology With plain words: All cats are mammals. All mammals are animals. Database: { CAT ( ) } Query: Are there animals? ( ∃ X , ANIMAL ( X )?) Louis JACHIET 12 / 32
An example of ontology With plain words: All cats are mammals. All mammals are animals. Database: { CAT ( ) } Query: Are there animals? ( ∃ X , ANIMAL ( X )?) Answer: Yes: CAT ( ) ⇒ MAMMAL ( ) ⇒ ANIMAL ( ) Louis JACHIET 12 / 32
More complex ontological rules Foreign key constraint: SEMINAR ( team , speaker , room , date ) → ∃ pers , RESERVED ( room , date , pers ) Louis JACHIET 13 / 32
More complex ontological rules Foreign key constraint: SEMINAR ( team , speaker , room , date ) → ∃ pers , RESERVED ( room , date , pers ) Even more complex constraints: SEMINAR ( team , speaker , room , date ) → ∃ pers , RESERVED ( room , date , pers ) ∧ MEMBER ( pers , team ) Louis JACHIET 13 / 32
More complex ontological rules Foreign key constraint: SEMINAR ( team , speaker , room , date ) → ∃ pers , RESERVED ( room , date , pers ) Even more complex constraints: SEMINAR ( team , speaker , room , date ) → ∃ pers , RESERVED ( room , date , pers ) ∧ MEMBER ( pers , team ) MEMBER ( person , team ) → ∃ date , room , SEMINAR ( team , person , room , date ) Louis JACHIET 13 / 32
Tuple Generating Dependencies ϕ ( � X , � ψ ( � Y , � ∀ � X , � ⇒ ∃ � Y ) Z ) Y Z Louis JACHIET 14 / 32
Tuple Generating Dependencies ϕ ( � X , � ψ ( � Y , � ∀ � X , � ⇒ ∃ � Y ) Z ) Y Z Often Omitted Louis JACHIET 14 / 32
Tuple Generating Dependencies Body Head ϕ ( � X , � ψ ( � Y , � ⇒ ∃ � Y ) Z ) Z Louis JACHIET 14 / 32
Tuple Generating Dependencies ϕ ( � X , � ψ ( � Y , � ⇒ ∃ � Y ) Z ) Z Frontier Louis JACHIET 14 / 32
Open World Query Answering
Recommend
More recommend