In progress

This commit is contained in:
Oliver Kennedy 2017-10-01 09:57:58 -04:00
parent 3dbff2ed78
commit c10ca4f522

View file

@ -304,6 +304,7 @@
<section>
<h2>The database is in the way</h2>
<h3 class="fragment">Why?</h3>
</section>
<section>
@ -395,266 +396,350 @@
</section>
<section>
<h3>On representing incomplete information in a relational data base</h3>
<h4>T. Imielinski &amp; W. Lipski Jr.<span style="margin-left: 40px">(<i>VLDB <span class="fragment highlight-current-red" data-fragment-index="1">1981</span></i>)</span></h4>
<p class="fragment" data-fragment-index="1" style="margin-top: 60px">
Incomplete and Probabilistic Databases<br/>have existed since the 1980s
</p>
<section>
<h3>On representing incomplete information in a relational data base</h3>
<h4>T. Imielinski &amp; W. Lipski Jr.<span style="margin-left: 40px">(<i>VLDB <span class="fragment highlight-current-red" data-fragment-index="1">1981</span></i>)</span></h4>
<p class="fragment" data-fragment-index="1" style="margin-top: 60px">
Incomplete and Probabilistic Databases<br/>have existed since the 1980s
</p>
</section>
<section>
<svg width="800" height="500">
<g transform="translate(150,0)">
<image
xlink:href="graphics/db.svg"
width="93" height="103"
x="0" y="10"
/>
<g class="fragment" data-fragment-index="1">
<image
xlink:href="graphics/db.svg"
width="93" height="103"
x="0" y="130"
/>
<image
xlink:href="graphics/db.svg"
width="93" height="103"
x="0" y="250"
/>
<image
xlink:href="graphics/db.svg"
width="93" height="103"
x="0" y="370"
/>
</g>
</g>
<g
transform="translate(250, 0)"
class="fragment" data-fragment-index="2"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<polyline
points="0,60 220,60 200,50 220,60 200,70 220,60 0,60"
transform="translate(0,0)"
/>
<text x="60" y="50">Q(D)</text>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="230" y="15"
/>
<g class="fragment" data-fragment-index="3">
<polyline
points="0,60 220,60 200,50 220,60 200,70 220,60 0,60"
transform="translate(0,120)"
/>
<polyline
points="0,60 220,60 200,50 220,60 200,70 220,60 0,60"
transform="translate(0,240)"
/>
<polyline
points="0,60 220,60 200,50 220,60 200,70 220,60 0,60"
transform="translate(0,360)"
/>
<text x="60" y="170">Q(D)</text>
<text x="60" y="290">Q(D)</text>
<text x="60" y="410">Q(D)</text>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="230" y="135"
/>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="230" y="255"
/>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="230" y="375"
/>
</g>
</g>
<g
transform="translate(0, 0)"
class="fragment" data-fragment-index="7"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(0,200) rotate(-60)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(-15,200) rotate(-20)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(25,170) rotate(20)"
/>
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(102,220) rotate(60)"
/>
<text x="40" y="250">?</text>
</g>
<g
transform="translate(540, 0)"
class="fragment" data-fragment-index="4"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(102,30) rotate(60)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(0,120) rotate(20)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(-40,240) rotate(-20)"
/>
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(0,390) rotate(-60)"
/>
<text x="120" y="230">Probab.</text>
<text x="120" y="280">Cert. A.</text>
<polyline
points="110,270 240,270"
style="stroke: red;"
class="fragment" data-fragment-index="5"
/>
<g class="fragment" data-fragment-index="8">
<image
xlink:href="graphics/dagobert83-female-user-icon-800px.png"
width="100" height="100"
x="110" y="180"
/>
</g>
</g>
</svg>
<p class="fragment" data-fragment-index="6" style="font-size: smaller">
We've gotten good at query processing on uncertain data.<br/>
<span class="fragment" data-fragment-index="7">But not at "sourcing" uncertain data
<span class="fragment" data-fragment-index="8">... or communicating results.</span></span>
</p>
</section>
<section>
<h3>Challenges</h3>
<ul>
<li>Where do Probabilities/Possible Worlds Come From?</li>
<li>How do I use the output of a probablistic DB query?</li>
<li>Probablistic DB queries are sloooooow.</li>
</ul>
<p class="fragment" style="font-size: smaller;">A small shift in how we think about PDBs addresses all three points.</p>
</section>
</section>
<section>
<svg width="800" height="500">
<g transform="translate(150,0)">
<section>
<h3>It's not the data that's uncertain,<br/>it's the interpretation</h3>
</section>
<section>
<table>
<tr>
<th>Time</th><th>Sensor Reading</th><th class="fragment" data-fragment-index="2">Temp Around Sensor</th>
</tr>
<tr><td>1</td><td>31.6</td><td class="fragment" data-fragment-index="2">Roughly 31.6˚C</td></tr>
<tr><td>2</td><td>-999</td><td class="fragment" data-fragment-index="2">Around 30˚C?</td></tr>
<tr><td>4</td><td>28.1</td><td class="fragment" data-fragment-index="2">Roughly 28.1˚C?</td></tr>
<tr><td>3</td><td>32.2</td><td class="fragment" data-fragment-index="2">Roughly 32.2˚C</td></tr>
</table>
<p class="fragment" data-fragment-index="1">The <i>reading</i> is deterministic</p>
<p class="fragment" data-fragment-index="2">... but what we care about is what the reading measures</p>
</section>
<section>
<svg width="650" height="500">
<image
xlink:href="graphics/db.svg"
width="93" height="103"
x="0" y="10"
x="0" y="190"
/>
<g class="fragment" data-fragment-index="1">
<g
transform="translate(30, 0)"
class="fragment" data-fragment-index="2"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(0,170) rotate(-60)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(-15,170) rotate(-20)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(25,185) rotate(20)"
/>
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(102,240) rotate(60)"
/>
<text x="150" y="70" >Q<tspan style="font-size: smaller">1</tspan>(D)</text>
<text x="150" y="190">Q<tspan style="font-size: smaller">2</tspan>(D)</text>
<text x="150" y="310">Q<tspan style="font-size: smaller">3</tspan>(D)</text>
<text x="150" y="430">Q<tspan style="font-size: smaller">4</tspan>(D)</text>
</g>
<g transform="translate(500,0)"
class="fragment" data-fragment-index="1"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<image
xlink:href="graphics/db.svg"
width="93" height="103"
x="0" y="130"
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="0" y="15"
/>
<image
xlink:href="graphics/db.svg"
width="93" height="103"
x="0" y="250"
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="0" y="135"
/>
<image
xlink:href="graphics/db.svg"
width="93" height="103"
x="0" y="370"
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="0" y="255"
/>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="0" y="375"
/>
</g>
</g>
<g
transform="translate(250, 0)"
class="fragment" data-fragment-index="2"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<polyline
points="0,60 220,60 200,50 220,60 200,70 220,60 0,60"
transform="translate(0,0)"
/>
<text x="60" y="50">Q(D)</text>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="230" y="15"
/>
<g class="fragment" data-fragment-index="3">
<g transform="translate(260,0)"
class="fragment" data-fragment-index="2"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<polyline
points="0,60 220,60 200,50 220,60 200,70 220,60 0,60"
points="30,60 220,60 200,50 220,60 200,70 220,60"
transform="translate(0,0)"
/>
<polyline
points="30,60 220,60 200,50 220,60 200,70 220,60"
transform="translate(0,120)"
/>
<polyline
points="0,60 220,60 200,50 220,60 200,70 220,60 0,60"
points="30,60 220,60 200,50 220,60 200,70 220,60"
transform="translate(0,240)"
/>
<polyline
points="0,60 220,60 200,50 220,60 200,70 220,60 0,60"
points="30,60 220,60 200,50 220,60 200,70 220,60"
transform="translate(0,360)"
/>
<text x="60" y="170">Q(D)</text>
<text x="60" y="290">Q(D)</text>
<text x="60" y="410">Q(D)</text>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="230" y="135"
/>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="230" y="255"
/>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="230" y="375"
/>
</g>
</g>
<g
transform="translate(0, 0)"
class="fragment" data-fragment-index="5"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(0,200) rotate(-60)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(-15,200) rotate(-20)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(25,170) rotate(20)"
/>
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(102,220) rotate(60)"
/>
<text x="40" y="250">?</text>
</g>
<g
transform="translate(540, 0)"
class="fragment" data-fragment-index="6"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(102,30) rotate(60)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(0,120) rotate(20)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(-40,240) rotate(-20)"
/>
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(0,390) rotate(-60)"
/>
<image
xlink:href="graphics/dagobert83-female-user-icon-800px.png"
width="100" height="100"
x="110" y="180"
/>
<text x="180" y="190">?</text>
</g>
</svg>
<p class="fragment" data-fragment-index="4" style="font-size: smaller">
We've gotten good at query processing on uncertain data.<br/>
<span class="fragment" data-fragment-index="5">But not at "sourcing" uncertain data
<span class="fragment" data-fragment-index="6">... or communicating results.</span></span>
</p>
</section>
</section>
</svg>
<p style="font-size: smaller; margin-bottom: 0px; margin-top: 0px;"><b>Insight:</b> Treat data as 100% deterministic.</p>
<p
style="font-size: smaller; margin-top: 0px;"
class="fragment" data-fragment-index="2"
>Instead, queries propose alternative interpretations.</p>
</section>
<section>
<section>
<h3>It's not the data that's uncertain,<br/>it's the interpretation</h3>
</section>
<section>
<table>
<tr>
<th>Time</th><th>Sensor Reading</th><th class="fragment" data-fragment-index="2">Temp Around Sensor</th>
</tr>
<tr><td>1</td><td>31.6</td><td class="fragment" data-fragment-index="2">Roughly 31.6˚C</td></tr>
<tr><td>2</td><td>-999</td><td class="fragment" data-fragment-index="2">Around 30˚C?</td></tr>
<tr><td>4</td><td>28.1</td><td class="fragment" data-fragment-index="2">Roughly 28.1˚C?</td></tr>
<tr><td>3</td><td>32.2</td><td class="fragment" data-fragment-index="2">Roughly 32.2˚C</td></tr>
</table>
<p class="fragment" data-fragment-index="1">The <i>reading</i> is deterministic</p>
<p class="fragment" data-fragment-index="2">... but what we care about is what the reading measures</p>
</section>
<section>
<svg width="650" height="500">
<image
xlink:href="graphics/db.svg"
width="93" height="103"
x="0" y="190"
/>
<g
transform="translate(30, 0)"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(0,170) rotate(-60)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(-15,170) rotate(-20)"
/>
<polyline
points="70,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(25,185) rotate(20)"
/>
<polyline
points="20,60 140,60 120,50 140,60 120,70 140,60"
transform="translate(102,240) rotate(60)"
/>
<text x="150" y="70" >Q<tspan style="font-size: smaller">1</tspan>(D)</text>
<text x="150" y="190">Q<tspan style="font-size: smaller">2</tspan>(D)</text>
<text x="150" y="310">Q<tspan style="font-size: smaller">3</tspan>(D)</text>
<text x="150" y="430">Q<tspan style="font-size: smaller">4</tspan>(D)</text>
</g>
<g transform="translate(500,0)"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="0" y="15"
/>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="0" y="135"
/>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="0" y="255"
/>
<image
xlink:href="graphics/jean-victor-balin-icon-table.svg"
width="96" height="96"
x="0" y="375"
/>
</g>
<g transform="translate(260,0)"
style="
fill: rgba(200, 50, 50, 0);
stroke-width: 4;
stroke: rgba(150, 150, 150, 1);
">
<polyline
points="30,60 220,60 200,50 220,60 200,70 220,60"
transform="translate(0,0)"
/>
<polyline
points="30,60 220,60 200,50 220,60 200,70 220,60"
transform="translate(0,120)"
/>
<polyline
points="30,60 220,60 200,50 220,60 200,70 220,60"
transform="translate(0,240)"
/>
<polyline
points="30,60 220,60 200,50 220,60 200,70 220,60"
transform="translate(0,360)"
/>
</g>
</svg>
<p class="fragment" style="font-size: smaller;"><b>Insight 1:</b> Treat data as 100% deterministic. <br/>Instead, queries propose alternative interpretations.</p>
<section>
<h3>Effects</h3>
<ol>
<li class="fragment" style="margin-top: 30px;">It's clear where uncertainty comes from.</li>
<li class="fragment" style="margin-top: 30px;">Results can be communicated through provenance.</li>
<li class="fragment" style="margin-top: 30px;">Query evaluation is decoupled from physical layout.</li>
</ol>
</section>
</section>
<section>
<section>
<h3>Non-Deterministic Queries</h3>
</section>
<section>
<p></p>
</section>
</section>
<section>
<section>
<h3>Uncertainty as Provenance</h3>
<p>
Introduce Best-Guess queries and the idea of explanations. Key points:
<ul>
<li>Best-guess queries</li>
<li>Generating explanations</li>
<li>Ranking explanations</li>
</ul>
</p>
</section>
<section>
<img src="graphics/mimir_logo_final.png">
<h2>Demo</h2>
</section>
</section>
<section>
<section>
<h3>Virtualized Uncertainty</h3>
<p>
Optimizing sampling-based query evaluation
</p>
</section>
</section>
<section>
<section>
<h3>Schema-Level Uncertainty</h3>
</section>
</section>
</div></div>