preface demo a quick thank you how did we do it?
TRANSCRIPT
A New Approach to Exploring Information on the WebGary William Flake, Ph.D.Technical FellowLive Labs
VTL05
Preface
A Reintroduction to Live Labs
> You may already know our work (Seadragon, Photosynth, Deepfish, …)
> Everything we do is an experiment:> Some experiments fail (but we learn)> Some experiments succeed (and make
our products better)> Today: our most ambitious experiment
ever> You can take part in the experiment
Framing this Presentation
> Challenges> The Web is growing in complexity and
size > Users view dozens of items for but one
insight> Data and user models not always aligned
> Opportunities> Treat the Web more holistically> Create an interaction model designed for
the modern internet > Focus more on the data and less on the
pages where the data resides
Introducing Pivot
> Pivot is fundamentally about:> Visualizing collections of objects> Revealing hidden patterns within data> Acting on discovered insights
> You’ll probably compare Pivot to: > File explorers > Search engines> Web browsers > Spreadsheets, or
DBs> We think that Pivot suggests an
entirely new application category
Demo
A Technical Introduction
How Did We Do It?
Technical Introduction
> Basic application architecture> Backend basics:
> Deep Zoom items> Deep Zoom collections> Collection XML (CXML)
> Backend design patterns:> Simple collections> Linked collections
Application Architecture
Rich Local Client Back End Service
.Net Client
Seadragon
Trident / IE
Request
Response
as HTTP GET File,Web,and/or
DBServer
DZC
CXML
DZI
DZI
DB
as XML and images
…
Technical Introduction
> Basic application architecture> Backend basics:
> Deep Zoom items> Deep Zoom collections> Collection XML (CXML)
> Backend design patterns:> Simple collections> Linked collections
Deep Zoom Items (DZI)Pyramid, levels, tiles, images
> Each tile is an image file> Each level is a set of
image files in a folder> Each pyramid is a set of
folders with image tiles for each level
> A simple XML file describes the size of the image
> Images can have only some tiles (sparse images)
> Pyramid 1.4x original size
> 10Mpixels converts in 0.5s
Deep Zoom Items (DZI)XML manifest
<?xml version="1.0" encoding="UTF-8"?><Image TileSize="254" Overlap="1" Format="jpg" xmlns="http://schemas.microsoft .com/deepzoom/2008"><Size Width="7530" Height="9155"/></Image>
Deep Zoom Collections (DZC)Pyramid, levels, tiles, files
> Thumbnails are packed into shared tiles
> Loading 100’s of images requires loading few tiles
> Patented Morton layout makes adding items O(1)
> No more than one tile per level is not full
> Optimizes rendering by sharing textures
> Storage is roughly one thumbnail per image
Deep Zoom Collections (DZC)XML manifest
<?xml version="1.0" encoding="UTF-8"?><Collection MaxLevel="8" TileSize="256“ Format="jpg“
Quality="0.95" NextItemId="5" xmlns="http://schemas.Microsoft.com/deepzoom/2008">
<Items> <I Id="0" N="0" IsPath="1" Source="NA_images/Const1.dzi"> <Size Width="7258" Height="8785"/> </I> <I Id="1" N="1" IsPath="1“ Source="NA_images/Const2.dzi"> <Size Width="7330" Height="8904"/> </I> ... </Items></Collection>
Collection XML (CXML)Facets as property / value pairs
> Enumerates facet category / facet value pairings mapped to items
> Can contain detailed information for each item (for info pane)
> Can be split in parts to allow for incremental loading
Facets
Items
FacetCategories
Collection XML (CXML)Preamble, facet categories, and closing
<?xml version="1.0" encoding="utf-8"?><Collection Name="People Collection" SchemaVersion="1"
xmlns="http://schemas.microsoft.com/livelabs /pivot/collection/2009">
<FacetCategories> <FacetCategory Name="Nickname" Type="String" /> <FacetCategory Name="Weight" Type="Number" /> <FacetCategory Name="Birthday" Type="DateTime" /> </FacetCategories> <Items ImgBase="SomePeople.dzc">
...
</Items></Collection>
Collection XML (CXML)Items
<Item Img="#0" Id="0“ Name="Alice“ Href="http://fabrikam.com/person/Alice"> <Description>This is a description of Alice</Description> <Facets> <Facet Name="Nickname"><String Value="Ali" /></Facet> <Facet Name="Weight"><Number Value="123" /></Facet> <Facet Name="Birthday"> <DateTime Value="1982-02-10T14:51:00" /> </Facet> </Facets></Item>...
Technical Introduction
> Basic application architecture> Backend basics:
> Deep Zoom items> Deep Zoom collections> Collection XML (CXML)
> Backend design patterns:> Simple collections> Linked collections
Simple Collections
> Up to 5,000 items> Metadata is static
and loaded all at once
> Visuals are static and contained in one DZC
> Examples:> Dog Breeds> Sport Illustrated
Covers
Collection is stored as static
files and a single logical
unit
Linked Collections
> Limited only by storage complexity
> Metadata is static and loaded in parts
> Visuals are static and contained in multiple DZCs
> Examples:> Pro Sports> AMG Movies
Collection is stored as static files and multiple
logical units
File Server
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
Static Architecture
Web ServerRequest
Response
as HTTP GET
as XML and images
DZC CXML
One More Demo
Dynamic Collections
> Unbounded in size> Metadata is
dynamic and loaded in parts
> Visuals are partially dynamic and contained in dynamic DZCs
> Examples:> Wikipedia
Collection is dynamically generated
at each view
File Server
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
DZI
Dynamic Architecture
Web Server
Response
Request at query
as HTTP GET
as XML and images
DB Server
DBDZC CXML
Putting it All Together
> Pivot is backward compatible with the Web> Requests are http get’s> Results are plain files returned over http
> The schema is application neutral> Compelling scenarios can be realized
with nothing more than data (no code) > Adding a proxy layer to dynamically
translate data into CXML allows for nearly unlimited use cases
You’re invited to download Pivot!
Announcing
Limited Invites for PDC Attendees
> Download cards available after this session.> Each code is good for 10 installs
> What you will get:> Client bits> Access to sample collections> White papers describing solutions> A tool for authoring simple collections
> In return, we want you to surprise us with some new and novel uses for Pivot.
Some Challenges to Entice You
> Front end to desktop search> Front end to Sharepoint> Publically available government data> Collections from existing online
services> Data sets from biology> Books from the Internet Archive> Data from Microsoft Codename
“Dallas”> Surprise us!
Explore, Relate, Search, Discover
> Search takes us from many things to one
> Browsing moves from one thing to another
> Exploration exposes serendipitous relations
> Today, we treat these as separate activities
> Can we do better by making these part of a more unified experience?
Why We Think this is Exciting
Web Experience> Focus: you look at only
one thing at a time> Navigation: you move
from one page to another
> Relations: links embedded within single pages
> Experience: akin to reading a flat document
Pivot Experience> Focus: you look at many
things at once> Navigation: you move
from one to many, many to one
> Relations: patterns viewable across a collection
> Experience: akin to swimming through a network of information
Thanks!
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.