itemmirror, xml & the promise of information integration

75
Bringing our information together William Jones, Lizhang Sun, Cody Stebbins The Information School, University of Washington

Upload: keepingfoundthingsfound

Post on 26-Jun-2015

99 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ItemMirror, XML & The Promise of Information Integration

Bringing our information together

William Jones, Lizhang Sun, Cody Stebbins

The Information School,University of Washington

Page 2: ItemMirror, XML & The Promise of Information Integration

About the presentersWilliam Jones, Research Associate Professor at the University of Washington Manages the Keeping Found Things Found project

Lizhang Sun, MSIM (information management) program, 2nd year, graduating in June.

Cody Stebbins, junior, Informatics program.

Page 3: ItemMirror, XML & The Promise of Information Integration

A manifesto: Take back our information!

In better world, our information – content and structure – • has an integrated, unified existence

independent of any particular device or application.

• Just as we use a diversity of tools for the tending of a physical garden, we might then apply a diversity of tools (“the right tool for the right job”) as we tend our growing gardens of information.

Page 4: ItemMirror, XML & The Promise of Information Integration

The continual export/import of information is a cross we shouldn’t have to bear.

Page 5: ItemMirror, XML & The Promise of Information Integration

Export/import is troublesome…

Page 6: ItemMirror, XML & The Promise of Information Integration

Export/import is “lossy”

Image from http://chinesewhispersgame.blogspot.com/2010/06/so-whats-chinese-whisper.html

Page 7: ItemMirror, XML & The Promise of Information Integration

Structures in particular are distorted or left behind

Page 8: ItemMirror, XML & The Promise of Information Integration

And we’re left to wonder: Why must I choose?

“”I prefer zotero when I'm browsing the net and searching for papers, but I prefer a fully dedicated program like mendeley for later editing and browsing my own collection”. And, from another user on the same discussion board: “I don't want to be locked into using just Mendeley or Zotero”

Page 9: ItemMirror, XML & The Promise of Information Integration

The export/import model is a holdout from the days of desktop monoliths.

Page 10: ItemMirror, XML & The Promise of Information Integration

And what does export/import mean now when our information is everywhere on the Web?

Page 11: ItemMirror, XML & The Promise of Information Integration

Why can’t the applications come to our information instead of vice versa? • “application” as in “

the act of applying or laying on”. • We apply paint to a house; fertilizer to

a garden.

• Let the application be a thing we apply to our information rather than a thing we to which we “submit”.

Page 12: ItemMirror, XML & The Promise of Information Integration

But how?

Page 13: ItemMirror, XML & The Promise of Information Integration

But how?

• Wait for a new operating system to unify everything? Cairo? WinFS?• How quaint. Not in a Web-widened

world.

• Wait for a new standard?• How long?....

• Move all our information to a “vault” or a single store like Google Drive?• These are just another application.

Page 14: ItemMirror, XML & The Promise of Information Integration

But how?

An approach that is stealthy, sneaky, even … dare we say…subversive (literally “to underturn, turn from beneath”):

Take back our information even as we leave it where it is.

Page 15: ItemMirror, XML & The Promise of Information Integration

Taking back our information in 4 steps.

Step 1. Leave the information where it is (for now):

Page 16: ItemMirror, XML & The Promise of Information Integration

Taking back our information in 4 steps.

Step 1. Leave the information where it is (for now):

Step 2. Model the structure of this information using itemMirror objects.

Page 17: ItemMirror, XML & The Promise of Information Integration

Taking back our information in 4 steps.

Step 1. Leave the information where it is (for now):

Step 2. Model the structure of this information using itemMirror objects.

a. itemMIrror objects all support the same methods on the front-end but, on the back-end, these methods work with drivers specific to a given “storing” application and its API.b. These drivers provide read/write access to information structures that are otherwise “siloed” in the application

Page 18: ItemMirror, XML & The Promise of Information Integration

Taking back our information in 4 steps.

Step 1. Leave the information where it is (for now):

Step 2. Model the structure of this information using itemMirror objects.

Step 3. Now other applications working exclusively through these itemMirror objects might provide complementary ways of working with the information structures:

Page 19: ItemMirror, XML & The Promise of Information Integration

Taking back our information in 4 steps.Step 1. Leave the information where it is (for now):

Step 2. Model the structure of this information using itemMirror objects.

Step 3. Now other applications working exclusively through these itemMirror objects might provide complementary ways of working with the information structures.

Step 4. itemMirror objects persist their “mirrors” of structure in synchronized XML fragments according to an “itemMirror” schema.

Page 20: ItemMirror, XML & The Promise of Information Integration

A spring quarter project:

Page 21: ItemMirror, XML & The Promise of Information Integration

A spring quarter project:

Build some HTML5 apps!

Page 22: ItemMirror, XML & The Promise of Information Integration

A spring quarter project:

Build some HTML5 apps! That all work “separately together” on the same

information

Page 23: ItemMirror, XML & The Promise of Information Integration

A spring quarter project:

Build some HTML5 apps! That all work “separately together” on the same

information - content _and_ structure -

Page 24: ItemMirror, XML & The Promise of Information Integration

A spring quarter project:

Build some HTML5 apps! That all work “separately together” on the same

information - content _and_ structure – as accessed by different users

Page 25: ItemMirror, XML & The Promise of Information Integration

A spring quarter project:

Build some HTML5 apps! That all work “separately together” on the same

information - content _and_ structure – as accessed by different users from different platforms (Windows, Mac, iPhone,

Android, Windows Phone, …)

Page 26: ItemMirror, XML & The Promise of Information Integration

Start with a folder structure in Dropbox

Page 27: ItemMirror, XML & The Promise of Information Integration

Model structure in itemMirror objects of JavaScript

Page 28: ItemMirror, XML & The Promise of Information Integration

Teams of MSIM students build HTML5 apps working exclusively with itemMirror objects

Page 29: ItemMirror, XML & The Promise of Information Integration

Interactions are two-way (write as well as read).

Page 30: ItemMirror, XML & The Promise of Information Integration

Objects persist their “mirrors” in synchronized XML fragments

Page 31: ItemMirror, XML & The Promise of Information Integration

1 2

3

4

Information “take back” in 4 steps!

Page 32: ItemMirror, XML & The Promise of Information Integration

Why HTML5?

Page 34: ItemMirror, XML & The Promise of Information Integration

A plan for the remainder this afternoon 65 minutes, Student team presentations

= 5 teams * (10 minute per presentation + 3 minutes commentary by judges afterwards).

5 minutes. Judges make overall comments, confer and vote

on 1st and 2nd place. (If deadlocked, Radek & William get to vote ).

10 minutes, “Our Space” demonstration of team apps working together.

Page 35: ItemMirror, XML & The Promise of Information Integration

Optional: Some more background…

7.5 minutes, Lizhang, Our XML schema & its two-way support

for extreme customizability through provision for…

1. app-specific namespace elements2. store-specific drivers.

7.5 minutes, Cody, itemMirror object & special

considerations, overall, in the use of JavaScript for HTML5 programming.

Page 36: ItemMirror, XML & The Promise of Information Integration

Optional: Hands-on use & … Happy Hour? 10 minutes or so…

Hands-on use of team HTML5 apps. What do you think?

6pm (or so). Happy hour (for survivors) at the

District Lounge (in Hotel Deca).

Page 37: ItemMirror, XML & The Promise of Information Integration

Scoring Guidelines (10 pts. possible) 3 points.  Basic function and approach. Is description of

the “what?” (essential app functions) and “who” (targeted users, competitors/similar apps, collaborators & possible acquiring companies) compelling?

5 points. The “how?” How compelling are scenarios of use? What is good and not-so-good in the user interface. How well does the presentation describe the process of developing the application and their use of underlying technologies (e.g., the itemMirror object/drivers, JavaScript, etc.)

2 points. Quality of the presentation itself. How clear? How effective at getting its points across? (alternatively, how hard did you need to work to understand?)

Page 38: ItemMirror, XML & The Promise of Information Integration

Also to consider…

Most students started the quarter with little or no background in HTML5 or JavaScript.

The quarter is only 10 weeks long and… Code for even the basics in the

itemMirror object was not available until week 4.

Page 39: ItemMirror, XML & The Promise of Information Integration

And consider…

The development environment is still minimal (but rapidly improving).

In particular, students could not take advantage of a shared UI framework that includes basics such as… a folder select dialog.

Page 40: ItemMirror, XML & The Promise of Information Integration

Team presentations

Let the judging begin!

Page 41: ItemMirror, XML & The Promise of Information Integration

Demo (Lichen, Chia-Ching)

Page 42: ItemMirror, XML & The Promise of Information Integration

Our XML schema (Lizhang Sun)

Page 43: ItemMirror, XML & The Promise of Information Integration

The itemMirror schema

43

• An XML schema that supports a bundling of attributes used to describe a “grouping item”• (e.g. folder, tag, label, “album”, etc.).

• Based on the “noodle” structure: nodes + outgoing links.

• Allows for modular, distributed, simple representations of structure.

Page 44: ItemMirror, XML & The Promise of Information Integration

We need a unit of structure that is…• Modular• Work on the part (the unit) separate

from the whole.

• Small• As small as possible. For speed

• Well-defined• You and I should agree.

• Fully-expressive in aggregate• Units combine to form the whole.

Page 45: ItemMirror, XML & The Promise of Information Integration

Grouping Item

grouping item is an information item whose primary purpose is to form a grouping of other information items• (some of which themselves might be

grouping items). • vary with the “storing” app: folders, tags,

labels, albums, headings, section tabs…

Page 46: ItemMirror, XML & The Promise of Information Integration

Fragment

• The metadata schema is modular – one “fragment” of metadata per grouping item

• Each fragment represents a node and its links (associations).

• Fragments collectively define a directed graph (a multidigraph).

• Tools knit fragments together on-demand (“lazily”) to create a coherent view (a “document”)

Page 47: ItemMirror, XML & The Promise of Information Integration

Attributes1. Common Attributes: pre-defined

attributes such as displayText2. Namespace specific Attributes: App’s

own attributes• iCal: dueDate, flickr: location

A. Fragment Level: Metadata describing the node

B. Association Level: Metadata describing the links

Page 48: ItemMirror, XML & The Promise of Information Integration

Bundles of common and Namespace-specific attributes at both the fragment level

04/13/2023 48

Page 49: ItemMirror, XML & The Promise of Information Integration

And for each of a fragment’s associations

04/13/2023 49

Page 50: ItemMirror, XML & The Promise of Information Integration

Noteworthy details

• Only a few Common AttributesFragment• schemaVersion, schemaLocation• itemDescribed, displayName• syncDriver, fragmentDriver, itemDriver• GUIDGeneratedonLastWriteAssociation• ID, displayText, AssocaitedItem

• Allows Namespace Specific Elements• Extensible Schema:

• Including optional “extras” commonly used across apps(to provide more information and for logging).

Page 51: ItemMirror, XML & The Promise of Information Integration

itemMirror (Cody Stebbins)

Page 52: ItemMirror, XML & The Promise of Information Integration

Object Model

ItemMirror

ItemDriver

Read/Write for Items

FragmentDriver

Read/Write and Manipulation for

Fragments

SyncDriver

Updates Fragments to

Reflect Underlying Structure

Page 53: ItemMirror, XML & The Promise of Information Integration

Responsibilities of the Drivers

• ItemDriver• Responsible for creating, reading,

deleting, and updating items.• Example: DropboxItemDriver

• Create/read/delete/update folders and files

• Accessed via AJAX calls to Dropbox REST API

• Items stored on Dropbox servers

Page 54: ItemMirror, XML & The Promise of Information Integration

Responsibilities of the Drivers

• FragmentDriver• Create, read, delete, update of XML

fragments• Example: DropboxFragmentDriver

• Stores fragments in JS DOM• Manipulate using DOM

• Persists fragments via AJAX and Dropbox

Page 55: ItemMirror, XML & The Promise of Information Integration

Responsibilities of the Drivers

• SyncDriver• Updates fragments to reflect

underlying structure.• Example: DropboxSyncDriver

• Removes associations for deleted items• Creates associations for added items

Page 56: ItemMirror, XML & The Promise of Information Integration

Motivations behind Object Model

• Transitions between different storage applications are seamless

• Avoiding “lock in” of data and logic

• Adapt to changes and scale

Page 57: ItemMirror, XML & The Promise of Information Integration

Motivations behind Object Model

• Transitions between different storage applications are seamless• Loading new drivers via HTTP• Swapping drivers based on the

drivers in the Fragment

Page 58: ItemMirror, XML & The Promise of Information Integration

Motivations behind Object Model

• Avoiding “lock in” of data and logic• For users: data isn’t siloed by an

application• For organizations: avoid technology

lock in forcing costly rewrites, expensive contracts

Page 59: ItemMirror, XML & The Promise of Information Integration

Motivations behind Object Model

• Adapt to changes and scale• Storage medium, caching

strategies, etc are isolated to Drivers.

• Drivers change with demands of the application, logic remains static.

• For organizations: avoid costly rewrites to business logic for changing demand

• For developers: work at a higher level of abstraction, separate problem into layers

Page 60: ItemMirror, XML & The Promise of Information Integration

Why JavaScript?

• JavaScript is the programming language of client side HTML5 apps.

• Runs on a wide variety of platforms• “Much easier to extend JavaScript,

than replace it” – Brandon Eich, Designer of JavaScript, CTO Mozilla

Page 61: ItemMirror, XML & The Promise of Information Integration

Release information for ItemMirror

ItemMirror is quickly approaching stability in public interface

If you are interested in working with ItemMirror please contact [email protected], or talk to us after

Page 62: ItemMirror, XML & The Promise of Information Integration
Page 63: ItemMirror, XML & The Promise of Information Integration

William, Conclusions & Discussion

Page 64: ItemMirror, XML & The Promise of Information Integration

Lessons learned

A shared framework and design guidelines for user interface would have been very useful.

And …??

Page 65: ItemMirror, XML & The Promise of Information Integration

By mirroring we might begin to separate…

Surface

Structure & Content

Store (saving, synching, sharing)

PIM tools mix & match

Standard formats for structure & content

Pick & choose providers

Page 66: ItemMirror, XML & The Promise of Information Integration

A 3-way win

For developers apps, written once, can work across a

range of storing apps such as Dropbox, Google Drive, SkyDrive or even Facebook and Flickr

Page 67: ItemMirror, XML & The Promise of Information Integration

A 3-way win

For developers apps, written once, can work across a range of storing

apps such as Dropbox, Google Drive, SkyDrive or even Facebook and Flickr

For storing app providers itemMirror drivers to encourage

development to their platforms

Page 68: ItemMirror, XML & The Promise of Information Integration

A 3-way win

For developers apps, written once, can work across a range of storing

apps such as Dropbox, Google Drive, SkyDrive or even Facebook and Flickr

For storing app providers itemMirror drivers to encourage development to their

platforms

For users might freely switch between any

number of “itemMirror apps”, applied to the same information

Page 69: ItemMirror, XML & The Promise of Information Integration

Tell your story in tenses future, present & past

Uses different tools for each “telling”.Future tense

What do you want to do? What will you do?tools for brainstorming, planning, making reservations.

(Extended) present tenseWhat do you need to do now?tools for time, task and to-do management.

Past tenseWhat happened? What did you do? tools to organize photographs, create reports, post for different audiences.

Page 70: ItemMirror, XML & The Promise of Information Integration

Next stepsMore drivers

Google Drive, SkyDrive… Facebook?

Beyond the folder modelXMLFragments in a simple key / value database

Shared namespace elements for metadata standardsiCalendar – task management applications.Dublin Core – for reference managers like Zotero &

Mendeley

“Phantom” summarizing fragments

Support for migration and multi-saves

Page 71: ItemMirror, XML & The Promise of Information Integration

A Vision

One structure.A large directed graph.

Used in many ways.Labeling and placing.Navigation and searchAs a basis for caching and backup.

Through many tools.Non-disruptive innovation

71

Page 72: ItemMirror, XML & The Promise of Information Integration

Our information…

Page 73: ItemMirror, XML & The Promise of Information Integration

Our information…

Together at last.

Page 74: ItemMirror, XML & The Promise of Information Integration

Next steps(for you)

Try itemMirror [email protected]

Ask questions…

Thank you!

Page 75: ItemMirror, XML & The Promise of Information Integration