NODAL: A Network-Oriented Document Abstraction Language

righteousgaggleData Management

Jan 31, 2013 (4 years and 4 months ago)

126 views

NODAL
:

A Filesystem for

Ubiquitous Collaboration


Lee Iverson

SRI International

leei@ai.sri.com


High
-
performance Teams

Teams should be more than sum of parts


Rapidly make decisions


Make the
right

decisions


Respond quickly to new tasks


Rapidly allocate resources


Reuse previous work in context


Integrate remote members effectively



Ubiquitous Collaboration


Development of rich, complete, adaptive,
exploitable
knowledge archive

for teams.


Facilitation
,
recording

and
indexing

of
dialogue and processes of decision making


What?


Who and when?


Why?

Barriers

High cost of entry


Extra work to get data into shared repository


Much relevant data is never entered


Failure to interoperate with legacy applications and
work models

High cost of exploitation


Inadequate search and reuse


Not integrated with tools


No support for dependencies/relationships

Example:

Software Development


Products:


Design documents


Source code


Documentation


Papers


Marketing documents


Discussion:


Email


Chat

Example:

Software Development


Relationships and dependencies are critical
but implicit


Maintaining dependencies requires great effort


Expensive, unreliable


Combination of products and discussions
form a knowledge base


Currently unexploitable

Example: Proposals


Products:


Background research


Proposal proper


Costing


Bios


Integrated, online product and knowledge
base more critical when collaborators
physically distributed

OHS/DKR


Open Hyperdocument System


Open standard


All kinds of documents


Tools for creating and manipulating…


Dynamic Knowledge Repositories


Recorded dialog


Collective IQ

OHS/DKR:

Proposed Organization

Data

Knowledge

Context

Brain metaphor


Filesystem & Database


Data Model for Documents


Content and Structure


Communication model(s)


Security/Privacy


Auditing & Attribution









Neurons


OHS/DKR: Data

Data

Knowledge

Context


OHS/DKR: Knowledge


Semantics


Explicit knowledge


RDF/DAML


Topic maps


Object models








Long term memory

Data

Knowledge

Context


OHS/DKR: Context


User interfaces


Perception and action


User modelling


Intention


Action


User adaptation





Short term memory, Perception

Data

Knowledge

Context

The Data Layer: Requirements


Distributed


network oriented


Application independence


Cross
-
platform


Cross
-
language


Cross
-
application


Shareable and reusable content


Built
-
in security/privacy model


Change attribution and auditing


Legacy document and application support

The Data Layer: Requirements


Flexible communication model


Synchronous


Asynchronous


Hyperlinking


To/from
any

context



Stability through changes


Rich search facilities

NODAL
: The Data Layer


Network
-
Oriented Data Abstraction
Language


Web
-
based filesystem and database


Granularity
below

file level


General, extensible data model


Fully addressable content


Inherent hyperlinking and reuse


Radical simplicity and generality

NODAL
: Filesystem


Traditional filesystem model


Hierarchical directories


Documents


Accessible by HTTP/S


Documents all typed (MIME)


Encoder/decoder


Type of root node of document data model

NODAL
: Type System


Atomic types:


boolean, integer, character, octet, float, double


Node types (collections):


Struct




like C struct


Sequence



indexible sequence


Map




extensible dictionary


Language for extending/composing types

NODAL
: Data Model


Document is graph of nodes


Accessible from root node


Nodes reusable


Within and between documents


String

is:

<sequence itemType=“character”>

NODAL
: Navigation


Every data item addressable by URI


Paths:


Document URI specifies root node


Path operators for moving through node graph


Every path expressible as URI


Hyperlinks (dependencies):


Any set of URIs can be linked


Embedded and external links managed

NODAL
: Metadata


Node is basic unit of granularity


Extend filesystem principles
inside

documents


Every node has:


Unique ID


Version and transaction history


Permission record

NODAL
: Communication


Local memory store (cache)


Storage interface (transactional)


Wire protocol(s)


XML
-
RPC


SOAP


OAA


SQL binding (PostgreSQL, Oracle, etc.)


Lightweight databases (Berkeley DB)

NODAL
: Search


Simple search language


SQL as model


Structure
and

content


Usable as content filter (views)


Always up
-
to
-
date


Possible integration with P2P search


Gnutella


NEVRLATE

NODAL
: Application Model


Design data model


Adopt/adapt document format


MIME type & encoding plugin


Build application on top of NODAL API


Object model > data model


A shared, collaborative application!

NODAL
: Legacy Applications


Filesystem interface via WebDAV


Traditional distributed filesystem over HTTP



COM+/CORBA applications expose
controls


Windows applications (Office) augmentable


Linux (GNOME/KDE) expose CORBA
controls

New capabilities


All

documents integrated into reusable
knowledge base


Live

collaboration recorded and integrated
into knowledge base


Dependencies easily tracked and
notifications processed


Automatic processes integrated with manual

Why Open Source?

Ubiquity:

Create an industry, not an application


Web model:


Simple, open standards


Open source implementations


Free, end
-
user applications

Open Source Funding?


Government funding


Agencies becoming more aware of the
advantages of open source efforts


Foundations


Mostly educational


Enlightened corporations


Sun, IBM, HP, MSDW, …


Venture capital?

Open Source Funding?


Service model


Companies pay for service and development of
open source technologies they depend on


Client has much greater control of development
process than with proprietary software


In
-
house developers can easily work with
others

“Given enough eyeballs, all bugs are shallow.”

Competition


None really.


Alternatives all smaller scope


Groove


Successor to Lotus Notes


Proprietary, Windows
-
specific


Integration of DB and UI


Must build new applications (SDK)

Competition


Subversion


Version control for software development


Purely asynchronous model


Incremental path from CVS


No direct access to document structure