Sei sulla pagina 1di 12

5.

Jerrold

Kaplan,
Mitchell
Richard
A. LandSman,

D. KapOr.
Edward
J. Belove,
and Todd
R. Drake

A PERSONAL
INFORMATION
MANAGER
The free-form,
evolving,
personal
information
that people deal with in
the course of their daily
activities
requires
more
flexible
data structures
and data management
systems
than
tabular
data structures
provide.
A tool for managing
personal information
must
conveniently
handle freetextual
data; allow for
structure to evolve gracefully
as the database
grows; represent
unnormalized data; and support data entry through
database views. We have
designed
a new type of
IIC interactive,
single-use
database that serves these
format of personal c:ompui
called an item/
needsers has spawnecl applica
lions quite diflerent
i
category
databasecharacter loom mainfram
and realized this design
applications.
Like main
m
in a commercial
personal
franics, personal computers can selv
the needs of an organization
in area
computer
software prodsuch as accounting, billing, or invcl
uct named
tory. Unlike
typical mainframe:
-. Agenda.
Y;1!1!11l
;\c:.\q
llll111-~lix1/!Il~/lli~lo-(1111
Sl..W however, they also serve person;

needs, such as preparing


memos,
dcvclopiiig linancial project ions, and
planning prqjects.
Iho of the three ma.jor personal
computer
applications-spreadsheets and word processing-are
priularily
used
as pi:rsonaJ procluctivily tools 1.1~individuals.
7%~: third
major application-database
managemcnt systems-is
cliffcrent. It is
used almost exclusively as a scalecldown version
of its mainframe
counterpart.
Mainframe
database
management
systems do ml typically serve the individuals needs, but
rather the organizations
needs.
Dots this mean that individuals do
not neecl to store, organize, r&eve,
and otherwise manage information?
No, they certainly do. But their needs
-and
the character of their dataarc: quite cliffcrcnt from CJrgaIliZational needs and data.
Personal
lniocmation
In the course of their activities, professionals and nianagcrs encounter a
variety of information
that can be
conveniently
expressed as a short
piece of test, that we call an &7fL An
item might represent (for example)
an idea, task, reminder, or fact. rypically, an item consisls of a single
phrase or a scntencc and has little OI
no formal internal structure.
Some examples of items are:
l

Call Fred on Tuesday about staff


meeting.
Hotel Konadvcnture
guaranteed
late arrival
2/31 confirniatioll

#1487L9. Mt*ct Mr. Silver andJoh


IdI 6:30 in lobby, dinner at Chez
Albert 735.
Consider new approach to pricing--book
club
model with
giveaways.
Expect sales rep011 liom Sally next
Wed.
Clcancrs: pick up three shirts, drop
blue suit.
*John Milton believed that li-cc will
esisted so lhal loving God would be
meariingfiil.

An individual
may handle several
items in a single day and have hundreds or even thousands of active:
items that rlecd
lo tw stored, organized, ad sc:ariIiccl
rquhly
[8-i.
While niucl~
of the information
that individuals
nt~ecl to nlanagc
is
shorl and self-generated,
sometimes
the granularity
is larger and ccmlcs
from other sources. An illdiviclual
may need to index or or~ganizc largeer
bodies of test such as II~CIIIOS,
reports, messages. or news slories. It is
useful to associate such ob.jects with
items, whcrc: the item may be a topic,
summary. source. or htwllinr describing the test. WC call such bodies of
text nofr:c.
To cope with the task olorganizing
items arid notes, individuals
group
them into sets--typically
in the form
of an ordered list or file. The items/
noles then can he manipulated
convcnicntly as a unit. WC call these sets
cateprirs
and say that the items/notes
are assigned to categories.
A representative
range ofcategories for one individual
is:
l
l
l
l
l
l
l
l
l

l
l
l
l
l

Phone calls
Things to read
Errands
Special dates and birthdays
Bring from home to of&x
IEEE speech notes
Proposed picnic dates
Program bugs
A~:coI~lplishn~crlts
for next performance appraisal
Major upcoming expenses
High priority
Fred Smith
Pricing pO]iCy commitlee
Important
concepls of Western
philosophy

When many categories are dcfined, the categories take on special


signilicancc:
they provide the conccpls for orqanizing
and uildcrstandc
irig tlic information al higher lcvcls ot
abstraction. lhc set IMI~~S
becomc
the zewrd~ of ;I language, which can
describe the inli)rmntion
and its interrelatiollships.
This ln~~gnagc~
can
c:apturc salient fixtures ol the univcrsc of the inlhrmation,
reflecting
the rral wxxld from which they arc
drawn.
When itcrns/notcs can be ;lssigIlecl
lo Iriultiple categories, an iudividual
can alter his or her Iocus to rcflcct difiixcnt perspectives by organizing
the
salnc infixma1ion
in multiple ways.
We call CYKII such organization
a
oifnr. This is difficult
to accomplish
with physical storage melhods (such
as paper in liles), whcrc: rach item 01
nole
exists in ii unique place.
Most
pwple are unaware of the
volume of information
they manage
011 a regular
basis, because they USC
a variety of mechanisms for this purpose. The style of management
is
highly individual.
but often includes
such aids as note cards, rolodcxcs,
yellow Posted notes, while-you-wcrcout messages, and lists on paper that
are recopied on a regular basis. In
general, personal inl&mation
is too
ad hoc and poorly structured to warrant putting it into a record-oriented
on-lint: database
Database
mmanamement
Paradigms
In the lOGOs, mainframe computers
were owned primarily by large organizations and businesses ancl were
applied to their problems.
lhcsc
consisted mainly of clerical database tasks. which usually
involved
filing, rctricving, sorting, processing,
and reporting data. For these applications, the computer
represented
several advantages over the corresponding manual processes:
l

Speed-data
could be rctricvcd
much faster than through nlimual
nlcthods.
Accuracy-calculations
and 11Ianipulations
(such as sorting) could
be perfbrmed ztm-c accurately.
Density-data
could be stored in

magnetic

forI

(IIliiiIlly

tap)

Inorc

coml)actly than in physical files.


Utility-lhe
data could be prcsented in different formats for differciit purposcts.

lhcsc
advantages of computerized
databases over manual
processes
prompted
both database theorists
and practitioners
to focus on the cfficicnt, reliable manipulation
of large
volumes of data. It was rccongized,
early on, that understanding
and
dcscrihing the structure of the data in
advance (i.e., at database design
time) was a major advantage. Most
olthc data being manipulated
had a
repeating, record-oriented
structure
that could bc used to improve processing and storage etlicicncy. ThereI&e, relatively little attention
was
paid to providing richer data description languages or designing systems
with more flexible data structures.
As a result, the dominant database
management paradigms arc not well
suited for managing
personal data.
They are oriented toward the storage
and retrieval oflarge volumes of data
with a known, repetitive structure.
These databases arc mainly used for
keeping corporate records and communicating
within an organization.
Personal data has different characteristics: it is often of relatively limited volume;
its structure
is not
known in advance and evolves over
time. It contains heterogeneous
data
types. This information
may be gcnerated and managed directly by an
individual
or may bc some body of
data that is indexed or acccsscd according to some idiosyncratic
needs.
Therefore, mainframe databases and
their personal
computer
counterparts are not very useful for personal
data, where discovering, presenting.
or modifying
the structure
of information is more important.
A diffcrcnt data management
paradigm
is required.
Many programs designed to manage personal data have adopted a
completely unstructured
approach,
treating all data as ,@x fext that is
searched and displayed in response to
ad hoc keyword queries. This approach confuses the lack of a fixed

structure with no slructure


at all.
Personal clara has structure, hi1 ils
slruclure
is fluid,
cliangiiig
in
response to cvolviiig iiccds.
Hypertext
systems,
such as
Hypercarcl for rhc Apple Macintosh,
provide a simple structuring
mcchanism-links
bctwccn dala elements
-which
allows the user to create a
topological
spClce of adjact:nt clcmcnls. Hpwevcr, snxcturc arises out
of the grouping of similar items and
relarionships
definccl aiiiong hose
groups, nol the simple linking
of
individual
items togerhcr.
Most
liypcrtest systems assume that the information
of inleresl resides exlusivcly in the data rather. than in the
slructure. They do not provirlc the
user with the incans lo view and
nianipulale
structure i&for
create
relationships
among groups of (lata

rile:

Junm

spuk

to
l

fiaop

*il

p=oduot~on

l lb8tLtoto
l mumblo

From the users perspective,


Agenda
consists of a few simple
elements that are used lo incrmimtally dcfinc and populate a database.
The first of these is the itcrn, as

OF

TREACM: J,,,, ,N,li,u,.:;3.N,,i

clue-r

thm

JOff

It

not6

would

also,apuk

utiDf8ation

8urvmY

rwult*

&out

for

aut

th

fuaaday.

inorum5ng
pwduotioa of tha sparklm
the
and or u-r
to 3000 unita
per -la.
with
odltou
of 9adocout0f
uguina
on
l
dnlfot
tha M
Spultl~
md op+rad
in M-t.
mt.ho&
of tkn ao8t
dryu
ha affaatd
if
the UWaiiukl8
l muabla
frtaAlAaa
io+tlw**

by
rwt

fnr

1 A Simple

ICURE

A Personal
Manager

c011tc!11t.

COMMUNICATIONS

to

diohwuho+
. Jtun
will

Lttatdwad

The user must bc able to easily


enter, edit, and manipulate
fix!c
teslual items without conccrri fix
the underlying
slruclure
of the
database
The user must no1 be required to
specili lhe structure oflhe
data
in
advance and must be able to modify the dalabase structure
as il
cvolvcs without
losing data or
reorganizing
the database.
The user must be able to define
rcporls in idiosyncratic
Iormats.
Ihrough
thcsc reports, the USCI
musl be able to create ant1 nmdify both database structure and

w+&d

2paYk2~dbhw8DhuuuIwilrprawrttbe

To study the requirenlcnts


of pcrsonal rlalahnse
nianagcnicnt,
wc
constructed
several prototype
systems,
culniinaling
in a program suitable for release as a commercial
product.
This program,
named
Lotus Agenda," meets scvcral dcsign recluiremcnts fi.)r managing personal information.
These arc:
l

hu

02:36

lQ/25/01

VUIU

&111e11ts.

Agenda:
lniormation

c:\yarm\P-2
Initial
vhw

View:

for:
.ppm.r

to

lmdnud8y
lm

Yapa?

View

Call

Jeff

that

Jilna

in Agenda

vm

- rho

dut

xm

may

th.
-r

RCD

mt

h8rr

non

h++.

for
th
cutront

Note

Dryor

Line
o=ms:
ptoject.

figurm*.

Haa tha manporr porhapa undanotimat~d?


Yrut justify upurs.s.
G+ misd
foncasta
l xl chack out thoroughly....

L
FIGURE

2 Attached

Note

for

an Item

described above. Items arc> the conlenl of the database and can consist
of up to scvcral lines (350 charactars) of text. Items in Agenda arc
assigned to or filed in categories.
Categories provide the structure 01
the database and arc usctl to organize
items and display
them convcnienlly. Like items, the categories
are not prc-dcfincd--the
user
crcatcs.
deletes ., and modifies
categories as necessary in order to
manage the items.
Each category defines a subse( of
those items assigned to it. Altcr-

natively, catcgorics can be understood as one-place prcdicales defined


over the universe ofitcms. Given the
categories delined earlier, tlic useI
might assign an item Call Fred nest
Tuesday about pricing policy plans
to several categories: Phone calls,
Fred Smith, a11c1 lricing
policy
committee.
Figure 1 shows a simple list of
items in Agenda assigned fo a catcgory callcrl Tasks. A bar cursol
scrvcx as a pointer, highlighting
the
current itcni or category in reverse
video. In the example, the cursor is

107

on item Call Jeff about the K&D


budget.
Both items and categories can optionally have an attachctl body of text
called a clots Notes can be up to about
10,000 characters in length and may
be internal to an Agcmda database or
contained in a separate ASCII tile.
Notes arc easily accessible fi-om an
item or category by placing the bar
cursor on the item or category and
pressing a function key.
Figure ILillustrates a note attached
to item Call Jeff about the K&D
budget. Typically, notes are used to
capture some further detail or some
secondary information about an item
or category. Another USC of an item
and its note is to make the note a
short document and use the item itself as a title. Notes on categories are
often used to document the intent
behind the category, i.e., what sorts of
items should be assigned there.
The categories are organized into
a tree structure called the category
hierarchy. Ihe purpose of the hierarchy is to conveniently describe two
fundamental
structuring
principles:
subsumnption am1 n~utual e.&.sion. Items
that are assigned to a category in the
hierarchy are also implicitly assigned
to the parent of that category in the
hierarchy, i.e., a parent category subsumes its children. A category in the
hierarchy
can bc optionally
designated as exclusive, indicating that no
item can bc assigned to more than
one child in the categorys subtree.
Figure 3 is a typical category hierarchy display. The brackets around
the children of Priority
indicate
that Priority
is exclusive.
Since
Priority is a parent of High,
any
item assigned to High is implicitly
assigned to Priority as well.
Subsumption
and mutual cxclusion, defined through this tree structure, implement
a limited class of
logical implications:
A implies B
(subsumption);
and A implies not B
(mutual exclusion).
Advanced Ieaturcs called conditions and actions allow
users to define more complex logical
interrelationships
between catcgories, including
a form of declarative
if-then rules. Automatic assignment
and other forms ofinte/ligmt behavior

are implemented
in part by enforcing
these relationships.
views
Items arc entered and displayed in
Agenda through
viezca. A view is
analogous
to a report in a typical
database manap;ement
system, except that it is dynamic: it is modified
automatically
when items or categories change. Ihe user typically dclines a number o:idilYerent views and
can quickly
switch among them.
Iiezta allow the user to focus on dill
fercnt aspects ul the database for
ditlerent purposes by varying the
content or format of the display. For
example, when deciding what to do
next, the user might consult a view
listing items by priority; in cast a colleague drops in, another view might
provide only the items that relate to
that person, organized by topic.
The user constructs views visually
by arranging categories into (possibly
irregular) row and column structures
on the display. Formally, views are
defined via three mechanisms:
l

hierarchy subtree of the selected


category are then displayed in the
colu~m~.
Note that a column may
contain multiple entries for a single
item, i.e., the information
need not
be normalized.
The columns also
c:an be different for each section in
a view.
Figure 4 is an example of a complex view including
many sections
and columns. Iivo sections are visible, one headed by the category
Gust
Clothes
Dryer
and one
headed by the category Sparklc
Dishwasher
which is incomplete on
the screen. A column headed by
Priority
is to the left of the item
text in both sections, while a column
headed by Department
is present
only in the lirst section. The People column displays which category
in the People
hierarchy the items
are assigned to. Note that one item
has multiple assignments within the
People
hierarchy.
Notic:c that all important
aspects
of a view arc defined by selecting
categories. In addition to providing
a simple, visually oriented definition
method for the user, this allows the
program to modify the view structures gracefully as the database structure evolves.
In summary, an Agenda database
consists of four basic elements. Items
and notes provide the content; categories organized
into a hierarchy
provide the structure; and views provide the data entry and reporting
(output) mechanism.

Selection-A
query, called criteria,
caii be specified to select a subset of
items to be displayed. The basis
for the selection is assignment (or
non-assignmenl)
of the item 10
categories.
Demarcation--Once
a set of items
is selected, they are organized for
display into a collection
01 lists
called sections. Each section is
headed by a category. The user
defines the sections that are to appear and indicates their order by
Updating
Databases
selecting a category to head each
ThrOugh
VleWS
The power of Agenda comes primarsection. Within a section, the items
appear as bullets and are wrapped
ily from the users ability to update
the database implicitly
through the
to fit onto the display as necessary.
Annotation-Further
information
views. By manipulating
items and
categories in a view, the user can
about the items that appear in each
section can be optionally displayed
make changes to the underlying
database
that are immediately
in columm tither to the right or left
ofthe items in each section. The in- ~ reflected in other views, without concern for the internal organization
or
formation displayed in the columns
are other categories that the items
storage of the information.
While this facility is a significant
are assigned to. The user specifies
a family of inibrmation
to be disadvantage to the user, it presents a
played in a column simply by secomplex implementation
problem.
lecting a category to head that
Theoretically,
updating
a database
column;
only categories
in the
through
a view is not always well

defined IG, 71.Specifically, an aclion


may be ambiguous
or evm contradictory to interpret in the underlying
database 141. Agenda LSCS a variety
of formal methods and heuristics to
interpret these actions in a rcasonable way and affect reasonable
changes to the database.
A normal suite ofscreen-oriented
commands is provided to the user in
order to manipulate
the objects visible in the view: insert, delete, move,
copy, edit, or replace. Ihe system interprets these commands by making
the simplest change to the underlying
database, which results in the literal
change to the display indicated by the
command. As a result, the actual intcrprctation
of a command is highly
conte.xt sensitive.
Some simple examples are:
l

I
NAIN

"Untitled-l"
ovmrview
Dmpartmmnt:Dept
mginwting
Nsrluting
Production
Sal*8
People...
kwiopl*...
Projmts
PX+CtS

Gust
Clothos
Dz'yW;Gust
Sparkle
Dishwashsr;Sparkl~

FIN CURE

Pila:
viw:

Inserting a new item into a section


assigns that item to the category
that heads the section.
Deleting an item from a section
removes the item from the category
that heads the section. For convenience, a separate command called
discard removes an item or category
from the database completely.
Copying an item into a se&on
assigns the item to the category
that heads that section and removes the item from any category
that is mutually exclusive with it.

'riority
High

0FTE

ACM/July

l!llO/V,,l.:33.

So

3 Typical

Category

Medium

Gust

Clothas

Narksting

.spOak
1988
Iwdit

Dryer

Depwztaant
.Narkoting

r8vb.d
I will

*Jaff

-Production

amlysim
drop

*Nika

*Ilarkmting

0x1 a low-and
entry
usingGusttwhr.olqy.
must work
011 "sys
to up salm
dryer
to 4OOO/month
by tha
and

-N.ik*

~nBrketing

.NikO

' Sales
Narksting

&a#

*Have
Ni.h
mime
by next
weok
to

at i&w

iutI'mdryermark&,
eNike
and DSW

'riority
iligh

Nadium

ccqdetinp
for

Ml.ka

for

tha

to be suppo*ed
him to diws88
tha

Gustdryarm.

l-ger~mntlng.

tha
tak.

Gust

the

braak-

stool

prim

th
Gust
Nww&o~.

itea

Uikm

Sparkls

DAVO

Diishrasher
Jeff
about
iacr~sing
produotion
of
thm Sparklm
dimhmahet
by thm aad of N-r
to 3000 wits
par month.
l ltmdw
tdavision
s&
frca
JUXW for thm n."
Sparkle.

l 8pe8k

aooouut.

*Look

of
of

cot .ppasr
IIe.t
with

People

02:31

-Xike

strstopy suggested
by

to Jaff
bout
production
plan
bytheJan.

into
Low

Display

10/2J/Bf

this tomorrow.
nigh

Hierarchy

c:\AGumA\PRo.nCT2
owta**
- uxgwt

Gust drysr
by tho,rasar&.

Catcgorics can appear in a view in


three contexts-as
a section heading,
a column heading, or in association
with an item such as the contents of
a column. By far the most common
operations on categories in a view are
insert and replace, which involve the
selection of a category for display in
one of these three contexts.
One approach to allowing the usei
to select categories to define a view is
to present the category hierarchy and
allow the user to select the desired
categories. Experience
with users,
however, revealed that it was disconcerting to keep switching back and
forth between
the partially
constructcd view and a display of the
category hierarchy. WC choose an
alternative
approach,
allowing
the
user to simply position the cursor on
the screen and type the name of the

COMMUNICATIONS

to

Paoplm
'Joif
. June

J
CURE

4 Example

of a complex

der ;ired catc<gory.


The goal of thcsc methods is to
logically consisma Ike the minimal
ten II change to the database that will
pr( educe the change to the view indicat ed by the user. This often causes
Ott ier views to be modilied
implic citly as well. When the user makes
aC hange to a view that is ambiguous
wil :h rcspcct to a database (i.e.,
thz tt has multiple
interpretations),
enda
selects
the
interpretation
that
AS
cat rses the minimal
disruption
to
Ott ier views. If this heuristic
provides
no guidance for resolving the am-

View

biguity, Agenda examines assignments of similar items and categories


in the vicinity of the users change.
While these techniques
do not
always yield an optimal result, they
arc quite satisfactory in the majority
of cases. The residual cases are minor
annoyances, more than offset by the
convenience
of updating
through
views.
This introduces some ambiguities
in interpreting
the users intent. Is
the user creating a new category OI
trying to select an existing one? What
if there are multiple categories with

109

2 IMtChiXUJ

1 Of

Current

CAt9qOriaS.

choice:

Jdf

SXh

j
Priority
. aiqll

Gust

Cl&has
Dryer
Narkmtinq
l trateqy
l
Gust
dryar
doaa not
by tha raaearch.
t&et
tbia
tomarror.
z+Spmak to Jmff about
1988 production
plan
mad
it by thm Jan.

. aiqa

~bh3h18

*Ilava
Nika
ravine
by nrrt.
rsrlr
to

into
.LOW

Priority
*Riqh

qqmtad
appear
with

by llike
for
h aupportad
him to diaoum

to

Complatinq
for
Gust
Gust

thm

of

the

of

No-r.

Gust

from
market,
mat

dzyaz

wilu

Agenda

to

Example

of

a special

*Production
Salma

*lU.ka

.Markdtinq

*Nika

~lhrketinq

*Nile

. Sales

incorporates

display

a concep

appears

production
and of N-I:

Dam

Marketinq

People
*Jeff

of

Matching

Category

c&d category matching, illustrated


in Figure 5. When rhe user begins to
type,

. Dave

drop

. low-and
entry
Gust
twbnoloqy.
ay
to up *alma
4000/month
by tha l nd

the siu~ic iiiunc iii diffcrcnt parts of


the hierarchy? lb rcsolvc: thcsc. qucs[ions,

analytic
pticm

on
using
work
on

Sparkle
Dishwasher
*Speak
to Jeff
about
increaainq
tba
Sparkla
dishwasher
by tha
to 3000
unita
per month.

Departamnt
*Mark&inq

mm&inq.

breakwan

atmel

Peoplm
.Nikm

account.

*Look
at idmaa
in tha
dryer
Nikm
and Da4

FIGURE

the
zmviamd
4xymrs.
I will

1 mumqmr.

tha
taka

tha

at the

top of the screen, which indicates


how many catcgorics in the hierarchy
llli~t(ll
the: string bciiig
critcrcd and
displays the lirst of thcsc (in hicrarthy display order). While typing lhc
string, the user can use arrow keys lo
display other matches, pop up ;I display box conraining the WlWilIlt
parCons of the hierarchy, accept the
currcritly displayed category, or crcate a new category simply by typing
a uriiquc string.
This process has several advantagcs. In most contexts, the user only
types a few characters to sclccl ii
category without sacrificing the ability to make a sclcction horn the entire hierarchy when desired. Also,
new catcgorics can bc created without special
c:oriiiriaritls-iricrcmentally extending the structure of
the clatabase.
Perhaps the most powerful asp3
olupdaling
through views is the role
oicritcria (qucrics). When an item is
entrrecl into a view for which a critcria selection is specified, it follows
that the item is intended 10 satisfy the
current criteria. Agxda iricorporatcs
3 special rcvcrsc query evaluation

technique that can force a new iter n


ro satisfy a given set ofcrirrria.
Thu 5,
ciitcring a new item into a view th; it
displays only items associated wit 11
a palYlclrla

I projwl

or

chc

(Ihr

c? i-

ariipk:) will assign that item to th; It


project or dale.
In soiric casc:i, tlicrc arc: niultipl Ic
ways that a new item could satisfy th If2
criteria. When such arribiguitics
0~ ._
cur, the context ofsurrounding
itclr IS
in the view arc uscrl to sclcct a sing1 lc
interpretation.
Automatic

Assignment

and Implicit
Actions
Entering and categorizing
data in a
personal clalalxisc
can
Ix: ii chart :.
Ideally, a personal database systcl 11
should aid the user in this proces: 5.
f\,genda uses 3 wide variety of cut 2s
and contextual information
to hcl P
the user properly categorize
ilen- IS
ad
manage: the database. Updatin S
the database through views is 011 le
nspcct ofthis process. Another meet lanism allows the user to pwgm VI
automnlir
assignments and implic il
act1ons.

In addilion lo serving 3s the stru( ._


turc of the database, the categor Y
hierarchy
embodies
a declaraliv e
program
that is executed again: jl
changed itcrns. I21c:h time a new iter
is cntcrcd or an old one is modifiec ;
it is placed on a C~LI~YK, which is pro-

cessed in the background


when no
other actions are pending. The proccssing for each item takes place scqucntially through rhe categories of
the hierarchy in depth-first order (the
order in which the hierarchy
is
displayed).
The user can associate with each
category in the hierarchy a set ofcondilions and a scl of actions, assembled from a restricted \:ocabulary
available for this purpose. The conditions are evalualcrl each time an
item is chnng~l, and ifthe conditions
arc met, the changed item is automatically assigned to this category.
Whcncvcr an assignmcnl is inatlc to
a category (including
an explicit
assignment by lhc user), any aclions
the user has dcfincd for that catcgor)
are immediately
taken.
lhcrc arc three types of conditions rhac can be tested for each
category. These are called string
conditions,
profile conditions.
and
date conditions.
(1) String
conditions
perform
a
match between the content ofrhe
item and the content of the category (i.e., the category name),
with the goa of computing
a
measure of semantic overlap betwccn the two. This is done by
comparing
the words appearing
in each after stripping
suflises.
looking
for certain
common
identifiable
data types (such as
proper names, dates, tirncs, and
numbers), and performing
limited syntactic analysis. (lhe details of this process are beyond
the scope of this article.)
(2) Profile condilions
apply a set of
criteria to the item that is identical in form to the view criteria
describccl above. If the categorization
of the item meets the
criteria, the condition succeeds.

(3)

Date conditions
test one of the
three intrinsic dates associated
with an item (entry date, complction date, and user-assigned calcndar date) for inclusion
in a
specified date range. Tfthe items
date falls inside the range the
condition
succeeds.

Unless the user explicitly defines a


profile condition or a date condition,
a category has only a string condition
associated with it, since it exists implicitly by virtue of the categorys
name. This is by far the most common situation, as it does not require
any special action on the part of the
user. Indeed, the user does not even
need to know about the subtleties of
automatic assignment in order to
benefit from string conditions.
In the simplest case, items will get
assigned to categories that match one
or more words in the item. For instance, an item call Mr. Smith
about the policy meeting
might
match the string conditions of categories calls, John Smith, policy
committee,
and meetings
and
hence be automatically
assigned to
them.
A set of special symbols can be
embedded into a category name to
gain additional
control of string
matching. These provide for alternative descriptions of the category
(called aliases); requiring
precise
matches; accepting any substrings;
and fixing the order of matched
words or case sensitivity.
A global setting called 1&i&e
determines how strong a match must
be in order for the string conditions
to succeed. By varying the initiative,
the user can control how freely the
program will accept matches between items and categories.
Another
global setting, called
Authority,
determines
whether
matches over the initiative threshold
are carried out immediately
or are
put in a special queue of suggested
categorizations to be reviewed with the
user. This technique,
sometimes
called mixed initiative [2,3,10], allows
the program to engage the user in
a clarification
dialog for weak or
potentially
spurious automatic assignments. When this queue is nonempty, a special ? symbol appears at
the upper right of the screen. The
user begins the dialog by selecting a
menu item questions, after which
the program presents its pending
assignments and the strength of the
evidence for them.
Profile conditions are used for im-

Couw,C~r,CsCFTEliCY/July

199O/Vol.33,

No.7

plementing ad hoc logical implications.


For example,
any item
assigned to both John Smith and
policy committee
should be assigned to discuss with manager.
They are also handy for implementing default assignments,
such as
classifying any bug not already
assigned to a classification
as
serious.
Date conditions are mainly used to
define calendar views-views
in which
the items are displayed in sections according to dates. Using date conditions, it is possible to construct a daily
calendar, weekly calendar, or any
other desired arrangement.
Date
conditions are also useful for changing an items assignments based on
some time-sensitive conditions. For
example, an item that becomes overdue can be automatically assigned to
a late category, or one due within
three days can be moved into a high
priority
category.
Date conditions work in conjunction with a natural language date
parser that extracts English date expressions from items and assigns the
appropriate date. This grammar can
correctly interpret expressions such
as two weeks from last Tuesday,
the day after tomorrow, and the
last week in June, as well as standard
American
date formats such as
May 25, 1989 and 2/5/87.
Actions are somewhat simpler
than conditions in that they are taken
immediately whenever assignments
occur. They can be used to date an
item (date actions), pwh an item
onto one or more other categories
(profile actions), or execute a limited
set of special actions such as to discard the item from the database.
Note that any change to an item
that results from a successful condition or an action will place the item
back onto the queue of changed
items, causing it to be processed
again through the hierarchy. Programs of considerable complexity
can be constructed by cascading sequences of conditions and actions
throughout the hierarchy, In effect,
the hierarchy is a declarative program that is run against each
changed item.

Ellmlnatlnm
DIstInctIons

FleldNalue

There are several structuring principles that are inherent in tabular


database organization, but that seem
alien to personal data. Forcing users
to consider them inhibits their ability to organize their data.
The most important of these is a
fixed field/value
distinction.
In a
tabular database, the fields (column
headings), and possibly the set of
legal values that can appear in a field
defined in
(data>, are normally
advance-when
the database is
designed. The organization
into
fields and values, however, is not a
characteristic of the data itself, but a
representational
convenience;
the
same information can be represented
in different tabular forms.
For example, the employment
status information in Figure 6a is
represented in a different field/value
format in 6b, by elevating the value
full-time to a binary (yes/no) field.
The same information appears in a
different format in 6c, where the divisions have been represented
as
separate fields in the database, with
their departments as values. Explicitly representing the implication that
the departments belong to the divisions could be accomplished by normalizing the information
into two
tables, such as in 6d.
In general, the fields represent the
fixed information about what can be
in the domain, while the values indicate the changing
information
about what Zs.The distinction is not
inherent in the data, but rather
reflects how the data may change
over time.
While data from a traditional
database system could be transformed and presented in any of these
formats, it would be quite difficult
to allow arbitrary
updates to the
transformed data, as this may require extensive internal reorganization. By not presuming a particular
field/value
orientation
at the
database level, Agenda can present
the data in any such format and support updates in real time.
In Agenda, both fields and values
are represented by the more general

111

Banking

Software

Banking

Software

DEPARTMENT
Sales
Development
cust.
support

DIVXSION
_ITest Equip.
Bankin&
Sbftware
Banking
Software

DEPARTMENT
Sales
Development
cust.
support

DIVXSION
-Test ECIU~D.
- _

PERSON
Fred Smith
Sally
Jones
Bill
Harris
...
FBGURE

6a

PERSON
Fred Smith
Sally
Jones
Bill
Harris
...
FlGURE

TES!C EQUIP.

SOETW. DIV.

Smith
Jones
Harris

DEPARTKENT
-sales
Development
cust.
support

NO

Yes
Yes

DXVISION
-T(?st Equip.
Banking
Software
Banking
Software

6d

PStX+OIl
DivisiodRqat.
Test

lcquip.

sa1.s
E Banking SoftwaEm
Dstrr1oFalult
cust. support
aqrloynvnt
st*tus
full-tinu
c part-tims

ULIUL
112

Yes
Yes

PULL-TIME

Vimv:Psrson

FIGURE

FULL-TIME
NO

Development
cust.
support

DEPARTUENT
Sales
Development
cust. support
...
FlCURE

BANKING

DIV.

Sales

6C

PERSON

Fred
Sally
Bill
...

FULL-TIME
NO
Yes
Yes

6 b

PERSON
Fred Smith
Sally
Jones
Bill
Harris
...
FBGURE

FX?LOYlG?.NT STATUS
part-time
full-time
full-time

7 Ca&gory

Hierarchy

by Divisicm

concept of category. Whether


a
category serves as a field or a value
depends on its use in a given context
-what role it plays in a view. For example, the structural information in
Figure 6 might be represented in
Agenda as the category hierarchy in
Figure 7. This information could be
presented in different forms in different views, as shown in Figure 8a,
b, c, and d.
Views a, b, and c in Figure 8
display the data in a form similar to
the corresponding tables in Figure 6.
The Agenda database is identical in
each case, but the views are formatted to reflect different field/value
distinctions.
In this database, the
people are treated as items.
View 8a uses the same category
(Division/Dept)
to head two columns. One column uses a child format, however, to display only the
immediate children of the column
heading (the divisions), while the
other uses an actual format to display
the departments. View 8b shows a
column headed by the full-time
category instead of the employment
status category, with a Y/N format. View 8c selects Test Equip.
and Banking Software as column
headings.
While it is possible in Agenda to
create a multi-table
structure as in
Figure 6d by adding an additional
section to the view, it is misleading to
do so in this instance.
Agenda
databases
can contain
multiple
record types, as in a multi-table
database; however, only a limited
form ofjoin is possible. In a typical
tabular database, each table contains
one or more distinguished
fields
constituting
a unique key for each
entry. The corresponding concept in
Agenda is the item itself, while the
categories correspond to fully indexed non-key fields. Some relational
database joins implicitly alter the interpretation of a given field from being a key to a non-key field. In this
example, one might expect to join the
two tables in 6d on DEPARTMENT,
yielding a table as in 6b. However,
a conversion
of
this implies
DEPARTMENT
from a key to a
non-key field. The corresponding

JulymxxV1.33,
No7,COYYWIC*TIONSOICTE~~Y

FlCURE

8C

operation in Agenda requires converting an item to a category, which


is not a view-level operation.
Nonetheless, the referential integrity [l] implied by the decomposition of the data into two tables in
Figure 6 is enforced in Agenda.
Specifically, an individual could not
be assigned to a department inconsistent with his or her division. In
Figure 8a, for example, the user
could position
the cursor over
Sales and type Development,
thereby reassigning Fred Smith to
Development,
as in 8d. Subsumption in the category hierarchy insures
that Fred Smith is now assigned to
Banking Software and, further, is
removed from Test Equip. through
mutual exclusion.
Modiiylng

EtrucCure

Daeabase
DynamIcally

In a conventional
database, the
tabular structure is fixed in advance

and the content varies over time.


When dealing with personal data,
users must be able to reorganize their
databases on-the-fly. The basic problem is that the structure of a personal
database may not be known in advance and, indeed, may continuously
evolve over time as the nature of the
information or the context changes.
For example, consider the problem
of organizing a new project to be
undertaken. As the project begins to
take shape, it becomes necessary to
organize the mass of ideas, tasks, and
information
into categories
or
classifications so that the project can
be understood and managed at an
appropriate level of abstraction. A
limited amount of detail can be
handled at a time, and the structure
provides the means to focus on
manageable sub-tasks or aggregate
the information
into a meaningful
big picture. The complexity of the
structure is often dictated by the

volume of information that needs to


be handled. The amount of information can vary dramatically
as the
project actually unfolds over time
-and
therefore the structural requirements change as well.
In this context, the ratio of items
to categories becomes important. Experience with Agenda suggests that
personal information
tends to be
organized into a relatively
small
number of categories, each of which
typically contains multiple items. If
the items are too numerous, the user
tends to reline the categories; if they
are too few, the user tends to aggregate them. The purpose of this
process seems to be to maintain this
ratio at a comfortable level. This requirement is in contrast to recordoriented databases, where the ratio of
items to categories is typically either
one-to-one-such
as each person
having a unique address-or
verymany-to-one-such
as all people be-

categories. This allows Agenda to


modify the views as the database
structure changes. Since categories
II
WAXY
are the vocabulary for defining the
Parson
elements
of a view (criteria, sections,
Divisionbept
.
and columns), the program can rezest Icquip.
Sale8
spond intelligently to changes in the
[ Banking
software
category hierarchy.
Lkmelopment
cust.
support
For example, deleting a category
lmp1opent
status
need not make a view obsolete-it
full-tizra
may just remove a section or columns
hourly
c salaried
from a view or modify the selection
pa*-the
criteria. Similarly, simple heuristics
can be used to augment a view when
new categories are added. For example, adding a new category as a child
of the Division/Dept
category
would add a new section to a view in
which all the existing
divisions
already appear as sections.
FIGURE
s Refinement of Full-Time Categ0I-V
Perhaps the most complex adjustment required when the category
gory hierarchies, as shown in Fii
hierarchy changes is the reinterpretaing assigned to either male or female.
ure 9. The role of full-time
as
tion of queries (criteria). In Agenda,
We have also found that a single
binary-valued field in Figure 8c coul
the user does not directly specify a
item tends to be filed in a relatively
boolean expression in order to select
be easily modified to show the tw
small number of places. This is why
new children in the column. Altel
the items that will appear in a view.
filing cabinets-where
an item can
natively, hourly
and salaried
Rather,
the user identifies
the
be filed at most once--work acceptcategories of interest,
indicating
could be treated as a value of En
ably, but do not provide the conveployment Status in Figure 8a. C:,
whether items assigned to that catenience or flexibility
of a personal
information
manager. There is a course, existing items in the databar ;e gory are to be included or excluded,
and the system synthesizes an apwould have to be recategorized fror n
definite departure point in power-a
full-time
into hourly
an d propriate boolean expression.
significant step up in utility-when
salaried. But in the interim, the :Y
This expression is not a simple
items can be conveniently assigned to
can remain assigned directly to thte conjunction of the categories indimultiple categories.
non-terminal
full-time
category
cated-complex
expressions of logical
The evolution of personal dataTwo design considerations al10 W
ANDs, ORs, and NOTs often result.
base structure often follows a parAgenda to provide this flexibilit Y. The heuristics for formulating these
ticular pattern. Users seem to like
First, the physical storage of the iten 1S expressions derive from a simple obserregular, normalized
data. As they
vation: the user would never intend
does not depend on the structure (,f
discover and refine the structure of
a query that would necessarily result
the database. Thus, no reformattinl 5
their data, however, it passes through
reorganization,
or indexing again iFit in a null set of selected items [4].
non-standard states and in fact may
the physical level is required to implc be only partially
normalized
in
For example, if a group of catement a change to the category hiera:
gories are selected that are exclusteady state.
thy. Second, no distinction is mad L
sive, i.e., an item can appear in one
To address the need for dynamic
internally between terminal and nor lof them, at most, these categories
modification
of the database structerminal categories in the hierarch Y will be ORed in the query, since conture, Agenda category hierarchies
can be modified incrementally withConsequently,
an item can be a:S- joining them could never result in a
signed to categories anywhere in thke non-empty set of items. While this
out making the database, defined
views, or other program structures
approach limits the users flexibility
hierarchy, including the root cats:obsolete.
gory. To refine the categorization fcx- for specifying arbitrary queries, the
almost
As an example, suppose a user of a set of items, the user moves thbe query synthesis algorithm
the database of Figure 8 decided it items assignments further down thle
always produces the desired result in
:r
would be handy to know which fullhierarchy;
to aggregate, the USC
practice. Most queries are actually
moves the items assignments up thle quite simple and follow the heuristic
time employees are paid on an hourly
basis and which are paid a salary.
hierarchy.
rules used in the program. When a
As noted earlier, most aspect ts category is deleted, queries in the sysThis is easily accomplished by inserting two child categories into the cate- of a view are defined by selecting
tem are resynthesized when they are

A-IL
...+*-+
VIEW
Sir

cm

Aa

DIP

SIP

:ategory

Mgpr.

Current

rext conditions

Visr:Person

by

Division

July 199O/Vo1.33,N~.~/cOYIIUNICITIOWSOCT"S~~CY

next needed, to reflect the change.


Inter-Database
communication

Evolving databases create another


challenge. How do you move data
from one database to another? In a
database where the structure is defined in advance, it is possible
(though a bit tedious) to write a program that picks up information from
one database, re-formats it, and
copies it into another database. In
an Agenda database, such a program is in constant danger of becoming obsolete, as the category
hierarchies of the source and destination database continue to evolve.
At the core of this problem is the
indeterminacy of the translation [9].
From a linguistic
perspective, an
item and a category assignment form
a declarative proposition: the item
is the subject, and the category assignment is a statement about that
subject. For example, an item Write
Agenda press release may be assigned to a category Fred Smith,
which has a parent category Task
assignments, representing the proposition that Fred Smith is responsible
for writing a press release about
Agenda. Each database contains a
vocabulary
of categories that, in
their context, make assertions about
the items.
While items can be transferred
easily, it is difficult to determine how
an items assignments in one database should be interpreted in another
database. When is a category in one
database the same as a category in
another? What if there are multiple
categories in the destination database
that match a category in the source
database?
Our approach to this problem is to
use partial match algorithms that attempt to find similarities between the
structure of two databases. Moving
data from one database to another
involves assigning the data as similarly as possible in the destination
database to its category assignments
in the source database.
Two basic measures are used in the
partial match process-comparing
the category names (i.e., a string

CCYYWlCATlCYICFTE

ACM/July

199O/Vo1.33, No.7

comparison) and comparing


category hierarchy
structures in the
vicinity of the categories being compared. When an item is exported from
me database to another, information
is carried along with it indicating not
only the specific category assignments in the source database, but
certain information
about the context of those categories
in the
lategory hierarchy. In the destination
database, the hierarchy is searched
for matching categories, and if these
are found, the item is assigned to
them. If no matching categories are
found, an optional attempt is made
to locate an appropriate place in the
Sestination category hierarchy for the
orphaned category, and a corresponding category is created.
This approach to inter-database
communication
serves several purposes in addition to the immediate
requirement to move items around.
It allows databases with similar, but
not necessarily identical, structures
to remain related, even though each
may evolve differently over time. For
a
example, many users maintain
shadow database of completed action items as a separate Agenda
database. By exporting items from
one or more primary databases to
this database, the structure is incrementally relined as necessary to
reflect changes in the category hierarchies of the primary databases.
A similar benefit accrues to shared
databases. Members of a work group
may communicate
by exporting
items to each other or to a common
shared database, which is consulted
periodically. This can be used to accumulate changes to track progress
on a project, or simply to send
messages back and forth.
Transferring
items from one
database to another is reminiscent of
the transfer
of DNA
in living
organisms. An agent carries with it a
genetic description that, in a suitably
related environment, can serve to integrate the agent into this new
environment.
Under some conditions, the invading agent not only
becomes integrated into the host, but
transforms the basic structure of the
host to accommodate it.

eoncluslons

The development
of Agenda
spanned approximately
two and a
half years from conception
to
scheduled product release. During
this time, many novel and interesting
concepts were developed that were
not ultimately incorporated into the
product and may form the basis for
future versions or other products.
User and market testing occurred
throughout the final 12 months of
this process. The development team
was often surprised by the range of
novel applications
discovered by
users. Several of these involved the
analysis of existing bodies of text
or information
that was drawn in
real-time
from external
sources.
These included:
l

l
l

l
l

Tracking events around the world


to help predict the availability and
price of oil.
Automatic
classification
of UP1
business stories according
to
qualitative measures (i.e., whether
the news was positive, negative,
etc.).
Managing
takeover rumors at a
brokerage house.
Planning office space and moves.
Sharing experience and information among telephone product
support personnel.
Tabulating survey responses.
Selecting relevant precedents for
legal cases.

Because Agenda
incorporates
a variety of heuristic methods for
taking actions without an explicit
command (such as automatic assignments),
it requires a subtle
paradigm shift on the part of the user.
Few computer users are accustomed
to programs that interpret intentions
in addition to simply executing commands. We found that people were
quite willing to accept this sharing
of control, tolerating occasional mistakes in the programs judgment
in return for the benefits of improved personal organization
and
effectiveness. The results of cascading program-initiated
actions
often surprise even experienced
users, who continually fine-tune their
databases to more closely mirror

115

CROSS-REF EdiUngF
Instantly recall ycur c

staticand gkbal function

symbd definitions by
hitting a hot-kzyinside
any editod
Along with standard
CCBIDER features like
Scarce view. Edit and

pmtdype #include files


and a detailed log file
daumentln]?
all your
symbds plus where and
how the+
used. Uses
orpanded memay for
fastsou~e a-de analysis!

~$~~;;;,?&~

OukkHd/q, tool

Scarce Browse mode that


lets you walk thru+
all

uslp d * symbd in your


code fu on-line hypcrtuf
cmss-nfmncing
as ycel
editymdrprqnaml

FuncUon Prototupcr!
Build a database d us&d
infamatioo
for your C
cede with CCSYh4, a
paverful bxwm co&
mtalyurwhich
generater
a wealth d useful output,
like fully cemented

CCSYM can also create *

helpdatabruforycw
grogrnntwhich
is
ccmpattble with
Miaosohs help sytem,
QwLwldp. All symbds in
ycurappllcatico
a10
accessible from
zk/;$;zz;;;j
lurromaticnllyfnnl
your
original mnme code.
wd3wJlAwc,*
MtmsoWZ~rlnd
FREE DEMO

C.

their own judgment.


From a users perspective, item/
category databases are tools for controlling complexity. They make it
possible to organize volumes of detail
far greater than manual methods
allow; quickly shift Derspective in 1
response to immediate
demands;
centralize
disparate notes, ideas,
reminders, lists, and tasks; and get
the big picture by examining inforI
mation from multiple viewpoints and
at varying levels of detail. Personal
information
managers provide a
means for coping with the heterogeneous, evolving, free-form information
that individuals
must
manage on a continuing basis. (3
*

References
1. Date, CJ. Referential
integrity.
In Proceedings
of the &m&h
Inlernationnl
Conference on Very Large
Data Barer (Cannes,
France,
Sept. g-11). IEEE,
New Jersey, 1981, pp. Z-12.
2. Ehrenreich,
S.L. Query
languages:
Design
recommendations
derived from the human
factors
literature.
Human Factors 23, 6 (Dec. 1981).

Circle #21 on Reader Service

Card

3. Gershman,
A., and Wolf, T. The dynamics
of
man-machine
interaction
in a conversational
advisory system. In Pmceedingr ofthe Internalional
Con&xce
on Systems, Man, and Cybernelics. IEEE, New
Jersey, 1986.
4. Kaplan,
S.J. Cooperative
table natural
language query
2 (Oct. 1982), 165-187.

responses from a porsystem. Artif: In&l. 19,

5. Kaplan,
SJ. and Davidson,
J.E. Interpreting
natural
language
database updates. In Proceedings o/
the 19th Me&g
of Ihe Association for Computalion
Lingui&s
(Stanford,
Ca., June).
1981.
6. Keller, A.M.
Role of semantics
view updates.
IEEE
Compul. 19,
63-73.

in translating
1 uan.
1986),

7. Larson,
P.A., and Yang,
J.Z.
Computing
queries from derived relations.
In Proceedings of Ihe
11th Inlernntional
Conference on Very Large Data Barer.
IEEE, New Jersey, 1985, pp. 259-269.

[Information
Systems
Applications]:
MiscclIXleOUS.
General
Terms:
Human
Factors
Additional
Key Words and Phrases: Automatic
classification,
database
view
update,
flexible
databases,
personal
information
management,
semantic
data models, textual
databases
About
the Author:
S. JERROLD
KAPLAN
is currently
President and
CEO of GO Corporation.
His research interests are
in hardware
and software
research
and development. Authors
present address: GO Corporation.
950 Tower Lane Suite 140, Foster City, CA 94404.
MITCHELL
D. KAPOR
is currently
Chairman
of the Board of ON Technology,
Inc. His current
research interests
are in software design. Authors
present
address:
ON Technology,
Incorporated,
One Cambridge
Center,
Cambridge,
MA 02142.
EDWARD
J. BELOVE
is currently
Vice President
of Corporate
Research and Development
at Lotus
Development
Corporation.
His current
research
interests include multimedia
sage in productivity
application,
direct manipulation
user interfaces,
and new designs for analytical
software.
Authors
present address: Lotus Development
Corporation,
55 Cambridge
Parkway,
Cambridge,
MA 02142.
RICHARD
A. LANDSMAN
is currently
a System
Architect
at Lotus Development
Corporation.
His
current
research
interests
include
workgroup
technologies
and their applicability
to spreadsheet
products.
Authors
present address: Lotus Development Corporation,
55 Cambridge
Parkway,
Cambridge, MA 02142.

TODD
R. DRAKE
is currently
a Senior Software
Engineer
at Lotus Development
Corporation.
His
current
research
interests
include
dynamic
hypermedia,
information
retrieval,
intelligent
interfaces,
and the cognitive
and social aspects of
computing.
Authors
present
address:
Lotus
Develop&nt
Corporation,
55 Cambridge
Parkway,
Cambridge,
MA 02142.

Permission
to copy without
fee all or part of this
material
is granted provided
that the copies are not
made or distributed
for direct commercial
advantage, the ACM copyright
notice and the title ofthe
publication
and its date appear, and notice is given
that copying is by permission
ofthe Association
for
Computing
Machinery.
To copy otherwise,
or to
republish,
requires a fee and/or specific permission.

8. Lyngbaek,
P, and McLeod,
D. A personal data
manatp.
In Proceedings of Ihe 10th International
Conference on V5y Large Data Bases. IEEE, New Jersey,
1984, pp. 14-25.
9. Quine,
WV. Indeterminancy
again.J.
Philos. 84, 1 (1987), 5-10.

of translation

10. Whalen,
T. A linguistic
inference
system
with mixed-initiative
dialog.
In Proceeding5 of the
North American Fuzzy Information
Processing Society
(New Orleans,
La.). 1986.
CR Categories
and Subject
Descriptors:
D.4.3
[Operating
Systems]:
File Systems Managementdirectory strulures;
distributedfile
systenu; E.5 [Data]:
Files-orsunitation/slruclure;
F.2.2 [Analysis
of
Algorithms
and Problem
Complexity]:
Nonnumeical
Algorithms
and Problems--pa&m
matching; H.1.2 [Models
and Principles]:
User/Machine
Systems-human
informationprocessing;
H.2.1 [Database
Management]:
Logical
Design;
H.2.5
[Information
Storage and Retriwal]:
Information
Search and Retrieval-clwleri
queryjormula&m;
relrieual models; search process; selection process; H.4.m

Circle #22 on Reader Service

Card

July 199O/Vol.33,

N~.~ICOMMUNICATIOWS

OF TM ACM

Potrebbero piacerti anche