Specialized Mimir page layout

pull/1/head
Oliver Kennedy 2015-12-10 20:56:57 -05:00
parent f4c3a9f04e
commit b33421bf5a
10 changed files with 321 additions and 131 deletions

View File

@ -111,12 +111,22 @@ var metalsmith = Metalsmith(__dirname)
}))
)
// Render HTML
.use(branch()
.pattern('**/*.html')
.use(branch('**/*.html')
// Render LaTeX inlined into the HTML
.use(renderTeX())
// Assign a mimir-specific layout to the mimir subdirectory
.use(branch('research/mimir/*.html')
.use(function(files, smith, done) {
for(i in files){ files[i].layout = 'mimir.hbs' }
done();
})
)
// Render outer layouts
.use(layouts({
engine: "handlebars",
default: "default.hbs"
default: "default.hbs",
directory: "layouts",
partials: "partials"
}))
)
// Validate

View File

@ -1,58 +1,45 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>The ODIn Lab: {{ title }}</title>
{{! Files will be fingerprinted for cache busting }}
{{! Access their filenames with the fingerprint variable }}
<link rel="stylesheet" href="{{{rootPath}}}{{ fingerprint.[css/index.css] }}">
</head>
<body>
<div class="header_logo">
<div class="segment">
<a href="http://www.buffalo.edu">
<img src="{{{rootPath}}}assets/logos/ub_logo_1line_white.png"
height="20"
style="float: left; margin-top:8px"
/></a>
<a href="{{{rootPath}}}index.html">
<img src="{{{rootPath}}}assets/logos/lab_logo_1line_white.png"
height="35"
style="float: right"/></a>
</div>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>The ODIn Lab: {{ title }}</title>
{{! Files will be fingerprinted for cache busting }}
{{! Access their filenames with the fingerprint variable }}
<link rel="stylesheet" href="{{{rootPath}}}{{ fingerprint.[css/index.css] }}">
</head>
<body>
{{> ubheader}}
<div class="header_menu">
<li class="first"><a href="{{{rootPath}}}people/index.html">People</a></li>
<li><a href="{{{rootPath}}}research/index.html">Projects</a></li>
<li><a href="{{{rootPath}}}teaching/index.html">Teaching</a></li>
<li><a href="{{{rootPath}}}papers/index.html">Publications</a></li>
<li><a href="{{{rootPath}}}grants/index.html">Funding</a></li>
<li><a href="http://gitlab.odin.cse.buffalo.edu/odin-lab/documentation/wikis/home">Wiki</a></li>
</div>
<div class="segment">
<div class="left_menu">
<h1>Services</h1>
<li><a href="http://dubstep.odin.cse.buffalo.edu">DubStep (CSE4/562)</a></li>
<li><a href="http://gitlab.odin.cse.buffalo.edu">GitLab (Research)</a></li>
<li><a href="https://github.com/ubodin">GitHub (Software)</a></li>
<li><a href="https://ubodin.slack.com">Slack (Comm)</a></li>
<li><a href="https://piazza.com">Piazza (Coursework)</a></li>
<h1>News</h1>
{{#each news}}
<li class="article"><a href="{{{../rootPath}}}{{{paths.dir}}}/{{{paths.base}}}">{{title}}</a></li>
{{/each}}
<h1>Rants</h1>
{{#each rants}}
<li class="article"><a href="{{{../rootPath}}}{{{paths.dir}}}/{{{paths.base}}}">{{title}}</a></li>
{{/each}}
</div>
<div class="header_menu">
<li class="first"><a href="{{{rootPath}}}people/index.html">People</a></li>
<li><a href="{{{rootPath}}}research/index.html">Projects</a></li>
<li><a href="{{{rootPath}}}teaching/index.html">Teaching</a></li>
<li><a href="{{{rootPath}}}papers/index.html">Publications</a></li>
<li><a href="{{{rootPath}}}grants/index.html">Funding</a></li>
<li><a href="http://gitlab.odin.cse.buffalo.edu/odin-lab/documentation/wikis/home">Wiki</a></li>
<div class="content">
{{{ contents }}}
</div>
<div class="segment">
<div class="left_menu">
<h1>Services</h1>
<li><a href="http://dubstep.odin.cse.buffalo.edu">DubStep (CSE4/562)</a></li>
<li><a href="http://gitlab.odin.cse.buffalo.edu">GitLab (Research)</a></li>
<li><a href="https://github.com/ubodin">GitHub (Software)</a></li>
<li><a href="https://ubodin.slack.com">Slack (Comm)</a></li>
<li><a href="https://piazza.com">Piazza (Coursework)</a></li>
<h1>News</h1>
{{#each news}}
<li class="article"><a href="{{{../rootPath}}}{{{paths.dir}}}/{{{paths.base}}}">{{title}}</a></li>
{{/each}}
<h1>Rants</h1>
{{#each rants}}
<li class="article"><a href="{{{../rootPath}}}{{{paths.dir}}}/{{{paths.base}}}">{{title}}</a></li>
{{/each}}
</div>
<div class="content">
{{{ contents }}}
</div>
</div>
</body>
</html>
</div>
</body>
</html>

21
layouts/mimir.hbs Normal file
View File

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>The ODIn Lab: {{ title }}</title>
{{! Files will be fingerprinted for cache busting }}
{{! Access their filenames with the fingerprint variable }}
<link rel="stylesheet" href="{{{rootPath}}}{{ fingerprint.[css/mimir.css] }}">
</head>
<body>
{{> ubheader}}
<div class="header_menu" id="top">
<li class="first"><a href="{{{rootPath}}}index.html">The ODIn Lab</a></li>
{{#each pageLinks}}
<li><a href="#{{id}}">{{title}}</a></li>
{{/each}}
</div>
<div class="content">
{{{contents}}}
</body>
</html>

13
partials/ub_header.hbs Normal file
View File

@ -0,0 +1,13 @@
<div class="header_logo">
<div class="segment">
<a href="http://www.buffalo.edu">
<img src="{{{rootPath}}}assets/logos/ub_logo_1line_white.png"
height="20"
style="float: left; margin-top:8px"
/></a>
<a href="{{{rootPath}}}index.html">
<img src="{{{rootPath}}}assets/logos/lab_logo_1line_white.png"
height="35"
style="float: right"/></a>
</div>
</div>

14
partials/ubheader.hbs Normal file
View File

@ -0,0 +1,14 @@
<div class="header_logo">
<div class="segment">
<a href="http://www.buffalo.edu">
<img src="{{{rootPath}}}assets/logos/ub_logo_1line_white.png"
height="20"
style="float: left; margin-top:8px"
/></a>
<a href="{{{rootPath}}}index.html">
<img src="{{{rootPath}}}assets/logos/lab_logo_1line_white.png"
height="35"
style="float: right"/></a>
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

112
src/css/mimir.css Normal file
View File

@ -0,0 +1,112 @@
@font-face{font-family:'DINWebRegular';src:url(fonts/DINWeb.eot);src:local('☺'),url(fonts/DINWeb.woff) format('woff'),url(fonts/dinpro-regular-webfont.ttf) format('truetype'),url(fonts/dinpro-regular-webfont.svg#webfontvugT94qN) format('svg');font-weight:normal;font-style:normal}
@font-face{font-family:'DINWebLight';src:url(fonts/DINWeb-Light.eot);src:local('☺'),url(fonts/DINWeb-Light.woff) format('woff'),url(fonts/dinpro-light-webfont.ttf) format('truetype'),url(fonts/dinpro-light-webfont.svg#webfontaaHewQlQ) format('svg');font-weight:normal;font-style:normal}
@font-face{font-family:'DINWebBold';src:url(fonts/DINWeb-Bold.eot);src:local('☺'),url(fonts/DINWeb-Bold.woff) format('woff'),url(fonts/dinpro-bold-webfont.ttf) format('truetype'),url(fonts/dinpro-bold-webfont.svg#webfontOQQc9qcQ) format('svg');font-weight:normal;font-style:normal}
.header_menu a, .header_menu a:hover, .header_menu a:visited,
.left_menu a, .left_menu a:hover, .left_menu a:visited {
color: inherit;
text-decoration: inherit;
}
body {
padding: 0px;
margin: 0px;
background-color: white;
min-height: 100%;
}
.header_logo {
background-color: #041a9b;
width: 100%;
height: 42px;
position: fixed;
left: 0px;
top: 0px;
margin: 0px;
color: #ffffff;
border-bottom-style: solid;
border-bottom-color: white;
border-bottom-width: 1px;
}
.header_logo img {
padding-left: 8px;
padding-right: 8px;
padding-top: 4px;
}
.header_menu {
width: 100%;
height: 34px;
position: fixed;
left: 0px;
top: 42px;
text-align: center;
background-image:linear-gradient(#777 20%, #445 100%);
vertical-align: bottom;
box-shadow: 2px 2px 5px #666;
margin-bottom: 0px;
}
.header_menu li {
padding-top: 4px;
padding-bottom: 8px;
padding-left: 20px;
padding-right: 20px;
font-family: DinWebLight, 'Trebuchet MS', sans-serif;
font-size: 12pt;
font-style: normal;
font-variant: normal;
font-weight: normal;
color: white;
display: inline-block;
text-shadow: 2px 0px 5px black;
}
h1 h2 h3 h4 h5 h6 {
font-family: DINWebBold, 'Trebuchet MS', sans-serif;
font-weight: bold;
}
h1 {
padding-top: 100px;
margin-top: 100px;
font-size: 50px;
}
h2 {
margin-top: 60px;
margin-bottom: 30px;
font-size: 35px;
}
.header_menu li:hover {
background-image:linear-gradient(#ccd 20%, #90add4 100%);
color: black;
}
.content {
width: 100%;
text-align: center;
font-size: 20px;
font-family: 'DINWebRegular', 'Trebuchet MS', sans-serif;
margin-bottom: 50px;
}
.content p {
margin-left: auto;
margin-right: auto;
min-width: 200px;
max-width: 600px;
text-align: justify;
}
.content img {
margin-left: auto;
margin-right: auto;
}
.content dl dt {
margin-top: 20px;
font-family: DINWebBold, 'Trebuchet MS', sans-serif;
font-weight: bold;
}

View File

@ -0,0 +1,105 @@
---
title: Mimir
pageLinks:
- id: what
title: What is Mimir?
- id: how
title: Using Mimir
- id: who
title: Who Are We?
- id: downloads
title: Downloads
- id: research
title: For Researchers
---
<img src="../../assets/logos/mimir_logo_final.png" alt="mimir_logo_final" style="margin-top: 200px; margin-bottom: 80px" width="1078" height="429" />
<h1 id="what">What is Mimir?</h1>
<p>
A lot of analytics is based on information that starts off incomplete, is inconsistent, or is simply used incorrectly. Although people find ways of coping with these sources of uncertainty, those ways usually require lots of pain, effort and suffering before the data can be used, even when using automation.
</p><p>
Mimir is a database wrapper that helps you to embrace uncertainty rather than trying to fight it. Mimir attaches to a database of your choice using JDBC and provides a suite of lightweight, easy-to-use data cleaning and data analysis tools.
</p><p>
Unlike other automated data cleaning systems, Mimir doesn't claim that it will clean your data correctly. Instead, whenever you query data cleaned by Mimir, Mimir helps you to understand the choices it had to make, how they could impact your query results, and how confident it is in those results.
</p><p>
If you want more reliable results, no problem! Mimir streamlines the process of manual curation, focusing you on those parts of the data that need it most.
</p>
<h1 id="how">Using Mimir</h1>
<div>
<p style="display: inline-block; vertical-align: middle;">Documentation will be posted soon.</p>
<img src="screenshots/Mimir_Screenshot.png" alt="Mimir_Screenshot" width="500" height="438" style="display: inline-block; vertical-align: middle; margin-left: 40px;" />
</div>
<h1 id="who">Who Are We?</h1>
<dl>
<dt>Students</dt>
<dd>{{list projectStudents.mimir}}</dd>
<dt>Faculty</dt>
<dd>Oliver Kennedy, Boris Glavic, Jan Chomicki</dd>
<dt>Industry Advisors</dt>
<dd>Ronny Fehling, Dieter Gawlick, Zhen Hua Liu</dd>
</dl>
<h1 id="downloads">Downloads</h1>
<a class="download" href="https://github.com/UBOdin/mimir">
<img src="{{{rootPath}}}assets/logos/GitHub-Mark.png" /><br/>
Fork me on GitHub
</a>
<h2>Publications</h2>
<ul>
{{#each projectPubs.mimir}}
<div class="pub"><strong>{{title}}</strong>&nbsp;&nbsp;&nbsp;<i>{{venue}}</i>&nbsp;&nbsp;&nbsp; {{{resourcesFormat}}}</div>
{{/each}}
</ul>
<h2>Presentations</h2>
<div class="presentation"><a href="https://www.youtube.com/watch?v=jow4JmDOxPs">Video Demo</a> (2015)</div>
<div class="presentation"><a href="http://odin.cse.buffalo.edu/slides/talks/2015-2-Mimir">Overview Slides</a> (2015)</div>
<div class="presentation"><a href="{{rootPath}}rants/2015-08-13-incorrect-dbs.html">Rant: What if Databases Could Answer Incorrectly</a> (2015)</div>
<h1 id="research">Active Research</h1>
<h2>On-Demand Data Certainty</h2>
<p>
Curating data, or making sure that it is correct, consistent, and complete
can be very slow and expensive. Most of this effort is often wasted, since
only a small portion of the curated data will ever be relevant to analysts
using it. Unfortunately, without basing an analysis on trustworthy, curated
data, it's currently foolish to trust the analysis' results. Our
on-demand certainty effort links query results to potential sources of
uncertainty that could affect them using a provenance model called Virtual
C-Tables. Seeing the impact of uncertainty can help analysts to evaluate
the quality and trustworthiness of those results.
</p>
<h2>Transparent Probabilistic Databases</h2>
<p>
Mimir is built around a probabilistic database system. Classical
deterministic databases assume that all of your data is fixed: Every
cell has exactly one value, and every table has a fixed set of rows in it.
Probabilistic databases instead track multiple possibilities: for example
the results of OCR software parsing a glyph as being either a 4 or a 9.
That could be useful, but no one really wants to move their data to an
entirely new database system. We're exploring ways to enable probabilistic
database functionality within existing deterministic database engines,
allowing legacy database applications to transparently co-exist with
probability-aware applications.
</p>
<h2>Sensitivity Analysis</h2>
<p>
Quantitative metrics like standard deviations and probabilities help to
measure how reliable query results are, but don't really provide a good
sense of why the results aren't reliable or what can be done to fix them.
Mimir can provide users with a list of explanations of why a particular
result is uncertain, and rank that list in order of relevance. We are
exploring what contextual cues make an explanation relevant, and ways of
efficiently ranking explanations in bulk.
</p>

View File

@ -1,72 +0,0 @@
---
title: Mimir
---
<img src="../../assets/logos/mimir_logo_final.png" alt="mimir_logo_final" width="539" height="214" />
__Students:__ {{list projectStudents.mimir}}
_(Mimir is supported by gifts from Oracle University Relations, and is being developed in collaboration with Ronny Fehling, Dieter Gawlick, Zhen Hua Liu, Boris Glavic, and Jan Chomicki)_
<img src="screenshots/Mimir_Screenshot.png" alt="Mimir_Screenshot" width="500" height="438" />
Many analytics tasks are based on information that is initially incomplete, inconsistent, or simply used incorrectly. Although a variety of strategies exist to help people cope with these sources of uncertainty, they often require users to undertake heavyweight upfront organizationational tasks (i.e., tagging, data-cleaning, or modeling) before the data can be used.  Automated techniques exist, but typically introduce their own forms of uncertainty.
Mimir takes a step back and accepts that uncertainty is a fact of life.  Rather than trying to fight it, Mimir embraces uncertainty, and helps users to understand it better.  Combining automated data cleaning and data analysis techniques, Mimir's goal is to help users clean and query uncertain data, and to understand the impact of that uncertainty on the results of their analyses.
------
## Active Research Efforts
### On-Demand Data Certainty
Curating data, or making sure that it is correct, consistent, and complete
can be very slow and expensive. Most of this effort is often wasted, since
only a small portion of the curated data will ever be relevant to analysts
using it. Unfortunately, without basing an analysis on trustworthy, curated
data, it's currently foolish to trust the analysis' results. Our
on-demand certainty effort links query results to potential sources of
uncertainty that could affect them using a provenance model called Virtual
C-Tables. Seeing the impact of uncertainty can help analysts to evaluate
the quality and trustworthiness of those results.
### Transparent Probabilistic Databases
Mimir is built around a probabilistic database system. Classical
deterministic databases assume that all of your data is fixed: Every
cell has exactly one value, and every table has a fixed set of rows in it.
Probabilistic databases instead track multiple possibilities: for example
the results of OCR software parsing a glyph as being either a 4 or a 9.
That could be useful, but no one really wants to move their data to an
entirely new database system. We're exploring ways to enable probabilistic
database functionality within existing deterministic database engines,
allowing legacy database applications to transparently co-exist with
probability-aware applications.
### Sensitivity Analysis
Quantitative metrics like standard deviations and probabilities help to
measure how reliable query results are, but don't really provide a good
sense of why the results aren't reliable or what can be done to fix them.
Mimir can provide users with a list of explanations of why a particular
result is uncertain, and rank that list in order of relevance. We are
exploring what contextual cues make an explanation relevant, and ways of
efficiently ranking explanations in bulk.
{{!
### Consistent Query Semantics
Minor differences in data semantics can easily combine to produce subtle errors in the correctness of a query. For example, when a table listing historical orders is joined with a table of current currency conversions, the result may be inaccurate (depending on what the user's intent is): The exchange rate listed will be valid as of today, and not when the order was placed. Unfortunately, detecting these errors is difficult, as it is not generally possible to gauge user intent, or to ask users to provide such fine-grained semantic information about data. Using a combination of natural language processing, and usage modeling, we instead seek to answer a simpler, though closely related question: "Will the answer to my query be the same if I ask it tomorrow?"
}}
------
## Software
<ul>
<li><a href="https://github.com/UBOdin/mimir">Mimir on GitHub</a></li>
</ul>
## Publications
{{#each projectPubs.mimir}}
* __{{title}}__ <br/> _{{venue}}_ {{{resourcesFormat}}}
{{/each}}
## Presentations
* <a href="https://www.youtube.com/watch?v=jow4JmDOxPs">Video Demo</a> (2015)
* <a href="http://odin.cse.buffalo.edu/slides/talks/2015-2-Mimir">Overview Slides</a> (2015)
* <a href="{{rootPath}}rants/2015-08-13-incorrect-dbs.html">Rant: What if Databases Could Answer Incorrectly</a> (2015)