`Katz et al.
`
`US006496872B1
`US 6,496,872 B1
`*Dec. 17, 2002
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`(54)
`
`(75)
`
`COMPUTER SYSTEM FOR
`AUTOMATICALLY INSTANTIATING TASKS
`DESIGNATED BY A USER
`
`Inventors: Glenn Katz, Campbell, CA (US);
`Michael Gough, Ben Lomond, CA
`(US); Josh Jacobs, Berkeley, CA (US);
`John Powers, Monte Sereno, CA (US);
`Patricia Coleman, Montara, CA (US);
`James Miyake, San Jose, CA (US);
`Greg Ames, Redwood City, CA (US);
`Jon Kalb, Pleasanton, CA (US)
`
`(73)
`
`Assignee: Apple Computer, Inc., Cupertino, CA
`(Us)
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`This patent is subject to a terminal dis
`claimer.
`
`(21)
`(22)
`(51)
`(52)
`(58)
`
`(56)
`
`Appl. No.: 08/242,957
`Filed:
`May 16, 1994
`
`Int. Cl.7 .............................................. .. G06F 17/330
`
`US. Cl. ..................................................... .. 709/318
`
`Field of Search ................ .. 395/650; 709/310—320,
`709/328, 329; 345/762, 763
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,317,688
`5,367,635
`5,404,532
`5,421,013
`5,423,043
`5,485,618
`5,546,519
`5,790,116
`5,794,001
`
`* 5/1994 Watson et al. ............ .. 345/337
`* 11/1994 Bauer et al. .... ..
`709/221
`* 4/1995 Allen et al.
`713/200
`* 5/1995 Smith ................ ..
`709/107
`* 6/1995 Fitzpatrick et al. ..
`709/317
`* 1/1996 Smith ................ ..
`395/700
`* 8/1996 Berry ......... ..
`345/763
`8/1998 Malone et al.
`345/763
`8/1998 Malone et al. ............ .. 345/762
`
`OTHER PUBLICATIONS
`
`Moskowitz, David & David Kerr, “OS/2 2.1 Unleashed”,
`Sams Publishing Company. pp. 606—608, 1993*
`Moskowitz, David, et al, “OS/2 2.1 Unleashed”, Sams
`Publishing, pp. 606—608, 1993.
`Schindler, Esther, “Organize Your Life”, OS/2 Magazine,
`vol. 1, No. 1, Dec. 1993, pp. 64—68.
`Hesketh, Richard, “Perly—UNIX with Buttons”, Software
`Practice & Experience, 21(1991) Nov., No. 11, pp.
`1165—1187.
`Stearns, Glenn R., “Agents and the HP NewWave Applica
`tion Program Interface”, Hewlett—Packard Journal, Aug.
`1989, pp. 32—37.
`
`* cited by examiner
`
`Primary Examiner—St. John Courtenay, III
`(74) Attorney, Agent, or Firm—Burns, Doane, Swecker &
`Mathis, LLP
`(57)
`
`ABSTRACT
`
`Acomputer-user interface facilitates interaction between the
`user and the computer in a manner which enables the
`computer to assist the user in accomplishing desired goals.
`Based upon a particular task to be performed, the computer
`interviews the user to obtain the information pertinent to that
`particular task. Once the information is provided to the
`computer, it works with the user to automatically perform
`desired tasks in response to triggering events designated by
`the user. In addition, the computer can notify the user
`whenever a task is being carried out. Any executable func
`tion can be designated by the user as the object of a task. The
`initiation of this task can be carried out in response to any
`programmatically detectable event, or trigger, which is also
`designated by the user. As a further feature, the user has the
`ability to select from among a number of different types of
`noti?cation to be provided whenever the task is being
`performed. With the ?exibility offered by this arrangement,
`he user can customize the operation of a computer to suit his
`or her particular needs.
`
`5 Claims, 18 Drawing Sheets
`
`IDLE PULSE
`
`90
`
`BEHA V/OR INSTANCE
`
`CHECK B/T
`
`TRIGGER FIRES
`
`/N VOK E NOT/E/CA T/ON
`
`lN VOK E LAUNCHER
`
`TASK COMPLU E
`
`TR/GGER INSTANCE
`as 1'
`
`SEND EVENT
`
`LA UNCHER INS TANCE
`
`NOT/FICA T/ON INS TANC E
`
`194
`
`Petitioner Apple Inc. - Exhibit 1006, p. 1
`
`
`
`U.S. Patent
`
`Dec. 17,2002
`
`Sheet 1 of 18
`
`US 6,496,872 B1
`
`(3 File
`
`Edit
`
`Special
`
`12
`[f
`
`[2] E
`
`E1 "~14
`
`E3 "114
`
`m
`/f@
`14
`
`/
`To)
`
`16
`
`FIG. 1A
`
`r'72
`
`16’1'
`
`Petitioner Apple Inc. - Exhibit 1006, p. 2
`
`
`
`US. Patent
`
`eD
`
`6946,SU
`
`1B2
`
`7mm8,onmm
`2SE:8.38Eu::0SEEmwEEELo2:0cc:
`93%>E=an2833m...omcoEDMinm528w0E%EczemaDm>=cozcE8=o
`7,_ov20:DME033a38:0:2:.mmEfiax25.N
`
`68ocan:ax26.—
`
`Fm.
`
`mmWfist
`
`oncoE9682>
`
`9300:8320:
`
`bommoa
`
`8.00
`
`uczow
`
`Lo.._x03x09:833
`
`«8:0:0“6BEES05cc:
`
`Em:ca:30
`
`2:8969.3%;EmEEme.5:;523;
`
`women9:aciusum
`
`
`
`223035mm
`
`$19302
`
`Petitioner Apple Inc. - Exhibit 1006, p. 3
`
`Petitioner Apple Inc. - Exhibit 1006, p. 3
`
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 3 of 18
`
`US 6,496,872 B1
`
`l]
`Please backup my files
`
`E]
`
`36
`This Assistant sets up a task
`that will automatically W’
`backup your files at regular
`intervals.
`
`3a-/
`
`Click the right arrow to begin.
`
`? E]
`'
`
`1
`
`.
`
`,4
`/<
`42
`
`D:
`L
`40
`
`FIG. 3A
`
`El
`Please backup my files
`
`Select the disk containing the files to backup:
`
`El
`
`1:: My Hard Disk _
`I: Laura's Disk
`
`Do this step, then click the right arrow to continue.
`
`[E @
`
`FIG. 3B
`
`< 2 >
`L
`
`40
`
`Petitioner Apple Inc. - Exhibit 1006, p. 4
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 4 of 18
`
`US 6,496,872 B1
`
`El
`Please backup my ?les
`
`Which ?les should be included in the backup?
`
`l;l
`
`ll] Documents
`[1 Applications
`|___| System Software
`
`Do this step, then click the right arrow to continue.
`[E]
`
`43>
`
`FIG. 30
`
`El
`Please backup my files
`
`Select the destination disk from the list below:
`
`El
`
`E3 My Hard Disk
`I: Laura's Disk
`
`Do this step, then click the right arrow to continue.
`‘BEE
`
`MD
`
`FIG. 30
`
`Petitioner Apple Inc. - Exhibit 1006, p. 5
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 5 of 18
`
`US 6,496,872 B1
`
`[I
`Please backup my files
`
`When:
`
`[ Scheduled ‘lime
`
`VI
`
`44
`
`E]
`
`~L43
`
`5:00
`
`FM VJ
`
`Time:
`N48
`45/_’'
`s MT WT F s
`Ddys=UlIllIllIIllIlBZlEl
`
`Do this step, then click the right arrow to continue.
`
`@[E]
`
`45%
`
`FIG. 4A
`
`E]
`Please backup my files
`
`When:
`
`El
`
`'
`
`ldle
`Keyboard Shortcut
`M v
`Launch Application Z]
`\/ Scheduled lime
`Shutdown
`Startup
`
`F 3
`T
`U [2] [1
`
`Do this step, then click the right arrow to continue.
`
`[2E]
`
`<15»
`
`FIG. 4B
`
`Petitioner Apple Inc. - Exhibit 1006, p. 6
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 6 6f 18
`
`US 6,496,872 B1
`
`El
`Please backup my files
`
`E1
`
`Notify me by: Saying Message
`
`v
`
`Message to read:
`
`Backing up "My Hard Disk"
`
`'
`
`56
`
`VIE Log this notification
`Do this step, then click the right arrow to continue.
`[1E]
`
`FIG. 5A
`
`El
`Please backup my files
`
`Notify me by:
`
`'L 54
`
`46>
`
`E1
`
`"\I 52
`Skn
`
`Message t9 re
`
`Dlsplaylng Message
`Flashing Icon
`Playlng Sound
`,/ Saying Message
`1
`l2] Log this noti?cation
`Do this step, then click the right arrow to continue.
`
`@[E
`
`46D
`
`FIG. 5B
`
`Petitioner Apple Inc. - Exhibit 1006, p. 7
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 7 of 18
`
`US 6,496,872 B1
`
`E]
`
`II
`Please backup my fiies
`This is the task the assistant will perform. Click the
`text to change it.
`Backup documents on "My Hard Disk” to
`"Laura's Disk”
`
`What
`
`When
`
`Every Friday at 5:00 PM
`
`Notify
`
`Say message "Backing up ‘My Hard Disk'"
`
`Create ‘A’ 58
`
`If you are satisfied with the task, click create.
`
`FIG. 6
`
`ACCESS
`WINDOW
`
`60 2
`
`ASSISTANT
`
`i
`507,
`ASSISTANT
`
`60
`1,
`ASSISTANT
`
`55
`I’
`
`i
`
`t
`
`\ i
`
`- INTERVIEW
`I
`PAN/55‘
`52
`1
`
`SCRIPT
`/
`F/LE “r55
`
`53-1,- TR/GGERS
`
`’\, 64
`NOTIFICATIONS
`
`FIG. 7
`
`Petitioner Apple Inc. - Exhibit 1006, p. 8
`
`
`
`US. Patent
`
`Dec. 17, 2002
`
`Sheet 8 0f 18
`
`US 6,496,872 B1
`
`:2NE.—«a
`
`a}.2:
`uflmano\/
`
`95239:..650:23
`
`536L282:as?
`
`da<mEmmmuoi
`
`$28Fe205::
`
`wBBm853m
`EzouéozI
`
`“on;D
`
`xmohI
`
`958go:
`
`5NB62}.E83328\,
`hasE:22.
`
`omommoExom
`
`a:9.225..
`
`2n.86232¢bm>m
`
`comycoEzoou920an
`=v_m_om.o.50|_=3.329E:5.
`
`
`L038u..
`
`a:N801me
`
` Eu:notm®585sa}.2:
`83358\,
`
`0389:xoamaz<ooKgonzo:
`
`9589:>2;.2;Nbo>o569
`522nos>8v.85
`:0.axomzo2:5cam:3nounsmac;
`:6:L3
`orN80;isEu:
`
`mm.
`
`Petitioner Apple Inc. - Exhibit 1006, p. 9
`
`Petitioner Apple Inc. - Exhibit 1006, p. 9
`
`
`
`US. Patent
`
`Dec. 17, 2002
`
`Sheet 9 0f 18
`
`US 6,496,872 B1
`
`fishI
`
`38%
`
`uofiocm
`
`8502502I
`
`“655U
`
`952$95ho50:33
`
`games_82:an?
`
`da<96802;
`
`228he282::
`
`_2<NT:Ho5}.2:
`
`8339.00
`
`inN0069}.E833800
`
`2;some8a}.2:
`anEEoo
`
`a:$81me
`
`
`
`Eu::otm
`
`958go:
`
`m.GE
`
`\/
`
`9589:>2;.8;Nbo>oSE5
`
`628get>Ex85
`
`$396
`
`825mmEr:5:L8
`
`®
`
`omommoE>oEmE2<comm$225:
`
`:05:852:5Si
`a:Boon.meEu:
`
`EmaEu:>2.%9.289ESun2mmommmE
`xom32¢bmfi
`
`:omEoanou928m
`.wEo9833..3wasBa:x?
`
`
`0
`
` o.00eoo oo 0
`O9
`0
`o
`
` .099‘0.0..
`..oo
`1.6.0..
`3030. . . A
`
`Petitioner Apple Inc. - Exhibit 1006, p. 10
`
`Petitioner Apple Inc. - Exhibit 1006, p. 10
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 10 of 18
`
`US 6,496,872 B1
`
`— Reporter
`
`72
`78
`> f
`[ii] [:1
`
`Backing up documents on "My Hard Disk"
`to "Louro‘s Disk". .
`.
`
`FIG. 10
`
`[:I —— Reporter
`
`Bockup documents on "My Hard Disk" to "Louro’s Disk”
`Completed Fri, 4/15 at 5:32 PM
`
`x
`
`K 76
`
`E]
`
`A
`5
`
`Run \?rus Checker on Hard Disk PCeez HD
`Error: Hard Disk PCeez HD not found, Mon 4/18 at 7:00 A
`
`Adjust the color depth to millions of colors
`Completed Thu 4/21 at 11:21 AM (Launch of image Proce
`Check my drop foider for new things odded to it
`Completed Thu 4/21 at 6:00 PM
`
`80,)”
`
`V
`
`T— — _
`
`n
`
`I E I
`
`Q Bocking up documents on My Hord Dlsk
`to "Louro's Disk". .
`.
`
`n
`
`1
`
`II
`
`FIG. 11
`
`Petitioner Apple Inc. - Exhibit 1006, p. 11
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 11 0f 18
`
`US 6,496,872 B1
`
`65
`
`66
`
`@édQ
`Trigger
`6%
`Launcher
`Behavior Objects O
`
`Task Files 0
`
`BA CK GROUND
`PROCESS
`
`66
`
`FIG. 12
`
`SCHEDULED ITEMS
`
`Petitioner Apple Inc. - Exhibit 1006, p. 12
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 12 of 18
`
`US 6,496,872 B1
`
`TRIGGER
`DA TA
`
`LAUNCHER
`DA TA
`
`N 0 T/E/ CA T/ON
`DATA
`
`'beha asst trig ap/s MPNT laun oa/l noz‘i spek "all
`done'“
`
`IDLE PULSE
`
`90k BEHAVIOR INSTANCE
`1 [7
`
`CHECK BIT
`
`TRIGGER FIRES
`
`INVOK E NONE/CA T/ON
`
`INVOKE LAUNCHER
`
`TASK COMPLE/ E
`
`SEND EVENT
`
`TRIGGER INS TANCE
`
`881'
`
`TANC E
`LA UNC HE R INS TA NCE N0 TIP/CA T/ON lNS
`
`‘94
`
`Petitioner Apple Inc. - Exhibit 1006, p. 13
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 13 0f 18
`
`US 6,496,872 B1
`
`BE GIN
`MAIN
`
`lN/T/AL/ZE
`(IN/T)
`
`GET AN EVENT FROM
`THE EVENT OUEUE
`
`L132
`
`IS THIS
`EVENT A F/LE
`SYSTEM
`NO T/F/CA T/ON
`
`N136
`
`PROCESS FILE SYSTEM EVENT
`(FILE SYSTEM EVENT)
`
`f 740
`
`PROCESS OU/ T EVENT
`
`1T42
`
`1144
`
`PROCESS OTHER EVENT
`
`CALL THE IDLE ROUTINE
`FOR EACH TRIGGER
`INSTANCE //v THE
`TRIGGER INSTANCE L/ST
`(IDLE EACH)
`
`FIG. 15
`
`Petitioner Apple Inc. - Exhibit 1006, p. 14
`
`
`
`US. Patent
`
`mn,
`
`m
`
`4,6SU
`
`1B2m
`
`
`
`
`
`E05:E35:XEmiSEB2%V583Emma:Smkame$3
`
`33d
`
`%,9GE
`
`
`wESE%EMQNQKMkmvnQlfivgbkbflxkafimQufiwxégkb.
`
`mESEmxmfiSEEK?
`
`NSmE3St52mEm8mi3ES
`
`
`
`20R$$<Qh$§QquRvGEbQEQZDMUSE
`
`
`
`mmMIRQQKtEEQ::mem.3E
`
`
`
`MIR1.5kzmhb<miREWGMQ
`
`Petitioner Apple Inc. - Exhibit 1006, p. 15
`
`Petitioner Apple Inc. - Exhibit 1006, p. 15
`
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 15 0f 18
`
`US 6,496,872 B1
`
`BE GIN
`LOAD
`
`708
`
`OPEN THE TASK FILE
`
`READ PERSIS TENT
`TRIGGER INS TANCE
`DATA FROM TASK FILE
`110*!
`
`)/I I2
`EXTRACT CLASS NAME
`OF TRIGGER INS TANCE
`FROM PERSISTENT TRIGGER
`INSTANCE DATA
`
`I14
`
`SOFTWARE
`COMPONENT FOR
`THIS CLASS NAME
`ALREADY
`LOADED?
`
`I
`SEARCH SOFTWARE
`COMPONENT REGISTRY
`FOR CLASS NAME
`
`NAME FOUND
`IN REGISTRY?
`
`ERROR: SOI-TWARE N120
`COMPONENT FOR THIS
`TR/CCER INSTANCE
`NOT AVAILABLE
`_____l
`
`TRIGGER /NsTANC
`
`CLOSE TASK F/LE
`
`LOAD SOI-7'WARE
`COMPONENT FOR
`THIS CLASS NAME
`L 7 18
`
`CR54TE AN INSTANCE
`OF THE SOI-TWARE
`COMPONENT sPEC/F/EO
`BY THE CLASS NAME
`122 ’“ r---|
`LOAD TR/CCER INSTANCE'S
`PERS/STENT STA TE FROM THE
`PERS/STENT TR/CCER INSTANCE
`124 f‘
`OATA
`
`‘
`
`CALL TR/GGER'S PROCEOuRE
`TO sET TR/CCER TO AN
`ARMEO STA TE
`726 J
`sTORE A REFERENCE TO THE
`NEW SOI-TWARE COMPONENT
`INSTANCE /N THE TR/CCER
`/NsTANCE LIST
`|
`
`L 728
`
`FIG. 17
`
`Petitioner Apple Inc. - Exhibit 1006, p. 16
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 16 0f 18
`
`US 6,496,872 B1
`
`BE GIN FILE
`SYSTEM
`EVENT
`
`IS
`THIS FILE
`SYSTEM EVENT A
`FILE DELETED
`EVENT?
`
`IS
`THIS FILE
`SYSTEM EVENT A
`F/LE CREATED
`EVENT?
`
`IS
`THIS FILE
`SYSTEM EVENT A
`F/LE MOVED
`EVENT?
`
`PROCESS FILE DELETED EVENT
`
`PROCESS FILE CREATED EVENT
`
`‘ PROCESS FILE MOVED EVENT
`
`PROCESS OTHER FILE SYSTEM EVENT
`
`END
`
`k
`
`FIG. 18
`
`Petitioner Apple Inc. - Exhibit 1006, p. 17
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 17 of 18
`
`US 6,496,872 B1
`
`146
`
`f 748
`
`MORE TRIGGER
`INS TANCES IN TRIGGER
`INSTANCE LIST TO
`BE IDLED?
`
`CALL THE IDLE PROCEDURE
`FOR THE NEXT TRIGGER IN
`THE TRIGGER INSTANCE LIST (IDLE)
`
`FIG. 19A
`
`152
`
`CONDITION
`FOR FIRING
`TRUE?
`
`754 r
`SET THE TRIGGER
`TO A D/SARMED
`STATE
`756
`L———‘
`f
`CALL THE ASSISTANCE MANAGER
`ROUTINE THAT SIGNALS THAT THIS
`TRIGGER HAS FIRED (FIRED)
`
`FIG. 19B
`
`IS
`TRIGGER INS TANCE
`ARMED?
`
`758
`f
`PERFORM ANY IDLE
`PROCESSING NOT RELATED ‘
`TO TRIGGER FIRING
`
`Petitioner Apple Inc. - Exhibit 1006, p. 18
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 18 0f 18
`
`US 6,496,872 B1
`
`BE GIN
`FIRED
`
`'50
`
`/5 THE
`PROGRAM THAT
`HANDLES THE TASK
`FILE CORRESPONDING T0
`THIS TRIGGER
`INS TANGE
`RUNNING?
`
`762 f
`LAUNCH THE PROGRAM THAT
`HANDLES THE TASK FILE
`CORRESPONDING TO THIS
`TRIGGER INSTANCE
`
`764
`2”
`SEND A MESSAGE TO THE
`PROGRAM TO TELL IT TO OPEN
`THE TASK FILE FOR EXECUTION
`
`RE-ARM THE TRIGGER INSTANCE
`THAT FIRED BY CALLING ITS
`ARM PROCEDURE
`L 766
`
`FIG. 20
`
`774
`
`k?
`
`L170
`
`DOCUM NT ,I’I
`
`772
`
`FIG. 21
`
`Petitioner Apple Inc. - Exhibit 1006, p. 19
`
`
`
`US 6,496,872 B1
`
`1
`COMPUTER SYSTEM FOR
`AUTOMATICALLY INSTANTIATING TASKS
`DESIGNATED BY A USER
`
`FIELD OF THE INVENTION
`The present invention is directed to the interface betWeen
`a computer and a an user of that computer, and more
`particularly to an interface Which provides the user With the
`ability to automatically accomplish tasks With the computer.
`BACKGROUND OF THE INVENTION
`Typically, most personal computers are employed as
`passive tools. Users of the computers are required to directly
`manipulate interface elements in order to accomplish desired
`tasks. Often, the discovery of neW features and services
`available through a computer only takes place through trial
`and error. As a result, the computers are not being utiliZed in
`the most ef?cient manner, because the users do not under
`stand hoW to take advantage of the poWer that is available to
`them. In other Words, the vast potential of the computer
`often goes unrealiZed, because users are unfamiliar With all
`of the capabilities at their disposal or unable to employ them
`effectively.
`In order to increase the ef?ciency With Which computers
`are used, it is desirable to revise the fundamental manner in
`Which users interact With their computers. More particularly,
`rather than using the computer as a passive tool that is
`directly manipulated by the user, it is preferable to employ
`the computer as a cooperative partner that assists in accom
`plishing the tasks desired by the user. To this end, it is
`desirable to provide a mechanism by Which computers can
`be set up to accomplish tasks automatically, Without requir
`ing the user to instruct or otherWise manipulate the computer
`each time the task is to be performed.
`Some computer programs provide certain capabilities in
`this regard. For example, some electronic mail programs
`contain a scheduling feature by Which a server computer is
`automatically accessed at predetermined times of the day to
`determine Whether the user has any incoming mail. If so, that
`mail is doWnloaded to the user’s computer, and the connec
`tion With the server computer is then terminated. Other
`application programs also offer an automatic scheduling
`feature.
`As another example, most operating systems provide the
`capability to have certain actions carried out upon startup.
`For example, the user can designate that certain programs be
`launched and running When the computer is ?rst started. In
`a similar manner, some applications programs can be con
`?gured to automatically open a particular ?le When they are
`launched.
`While these various features provide the user With the
`ability to automate certain tasks, they are each limited in
`their applicability. More particularly, the scheduling feature
`of the electronic mail program is hard coded into the
`softWare for that program, and therefore only available
`Within the context of that particular program. Furthermore,
`the program must be running in order for the scheduled tasks
`to be carried out. This requirement may be undesirable since
`the program Will use some of the computer’s memory While
`it is running, thereby reducing the amount available for other
`programs. It also places a practical limit on the number of
`different tasks that can be set up, since each different
`program that has a scheduled task must be running in
`memory in order for its task to be implemented.
`Similarly, the ability to launch applications upon startup
`is limited to that one particular instance. It does not provide
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`2
`the user With the capability to have tasks automatically
`carried out at other times or in response to other events.
`It is desirable, therefore, to provide a mechanism for
`con?guring a computer to automatically carry out any task
`that may be desired by a user in response to a variety of
`different events or at any desirable time, Without requiring
`the user to have any familiarity With the programming of
`computers. To have applicability to any of the variety of
`tasks that might be desired by a user, such a mechanism
`should preferably function at the level of the computer’s
`operating system, rather than be tied to speci?c applications
`programs or the like.
`
`BRIEF STATEMENT OF THE INVENTION
`In pursuit of this objective, the present invention provides
`a computer-user interface that facilitates interaction betWeen
`the user and the computer in a manner Which enables the
`computer to assist the user in accomplishing desired goals.
`Through the medium of this interface, the user describes the
`goals and the tasks to be accomplished. Based upon a
`particular action to be performed, the computer intervieWs
`the user to obtain the information pertinent to that particular
`task. Once the information is provided to the computer, it
`Works With the user to create a task that automatically
`performs the desired actions in response to triggering events
`designated by the user. In addition, the task noti?es the user
`Whenever the action is being carried out.
`The computer-human interface has an open architecture
`Which provides the user a great deal of ?exibility in the
`creation of automated tasks. Generally speaking, any execut
`able function can be designated by the user as the subject of
`a task. The initiation of this task can be carried out in
`response to any programmatically detectable event, or
`trigger, Which is also designated by the user. As a further
`feature, the user has the ability to select from among a
`number of different types of noti?cation to be provided
`Whenever the task is being performed. With the ?exibility
`offered by this arrangement, the user can customiZe the
`operation of a computer to suit his or her particular needs.
`Each of the elements of a task, eg the action to be
`performed, the trigger and the noti?cation, is stored as a
`separate object at the operating system level. These various
`objects can be selected by the user and associated With a ?le
`to add behavior to the ?le. Since these elements are operated
`upon at the system level, they can be activated at any time
`in response to the triggering event, even though the associ
`ated ?le is itself dormant. Furthermore, the ?le itself need
`not have any aWareness of the scheduling of the task. Thus,
`no customiZation of the ?le itself, e.g. added code, is
`required to enable that ?le to be associated With a task.
`The overall effect of the present invention, therefore, is to
`enable the user to concentrate on the accomplishment of
`goals, rather than focus upon hoW to use a computer. Further
`features of the invention, and the advantages offered thereby,
`are described in detail hereinafter With reference to embodi
`ments of the invention illustrated in the accompanying
`?gures.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1A is an illustration of a desktop display containing
`a button for accessing automatic task building features in
`accordance With the present invention;
`FIG. 1B is an enlarged vieW of the assist button;
`FIG. 2 is an illustration of an access WindoW;
`FIGS. 3A—3D, 4A—4B, 5A—5B and 6 are illustrations of
`intervieW panels for setting up an automated task;
`
`Petitioner Apple Inc. - Exhibit 1006, p. 20
`
`
`
`US 6,496,872 B1
`
`3
`FIG. 7 is a block diagram illustrating the architecture of
`the assistant portion of the interface for creating an auto-
`mated task;
`FIGS. 8 and 9 are illustrations of a task system window;
`FIGS. 10 and 11 are illustrations of a reporter window in
`an intermediate and a fully-open state, respectively;
`FIG. 12 is a general block diagram of the architecture for
`controlling the instantiation of tasks;
`FIG. 13 is an example of a behavior resource data string;
`FIG. 14 is a block diagram of the architecture of a
`behavior instance;
`FIGS. 15—20 are flowcharts illustrating the operation of
`the background process for controlling the instantiation of
`automated tasks; and
`FIG. 21 is an illustration of an icon which includes a
`behavior indicator.
`
`DETAILED DESCRIPTION
`
`The present invention provides an interface that enables
`computer users to automate the operation of their computer
`to replay sequences of actions, as well as to delegate the
`performance of tasks to the computer so that they are carried
`out upon the occurrence of certain triggering events or at
`certain times. To facilitate an understanding of the invention,
`specific examples are described hereinafter with reference to
`their implementation on a Macintosh® brand computer
`manufactured by Apple Computer,
`Inc.
`It will be
`appreciated, however, that the practical applications of the
`invention are not
`limited to this particular embodiment.
`Rather, the application of the invention to other types of
`computers and operating systems will become readily appar-
`ent to those of ordinary skill in the art.
`Basically speaking, the computer-human interface of the
`present invention provides a vehicle through which the user
`can configure a computer to carry out desired tasks. This
`functionality can be implemented in the context of a more
`general interface that assists the user in understanding the
`operation of his or her computer, and the manner in which
`to control it to perform desired objectives. In this regard,
`such an interface preferably contains features which address
`the needs of a wide variety of users, from the novice to the
`advanced user. With reference to the novice user, the inter-
`face can provide information that enables the user to carry
`out basic operations necessary to the proper functioning of
`the computer. For the more advanced user,
`the interface
`enables the user to automatically set up tasks to be per-
`formed. In general, therefore, the interface provides assis-
`tance to users so that they can utilize their computers more
`effectively.
`One example of such an interface within which the
`principles of the present invention can be implemented is
`known as Apple Guide. This interface provides a help
`system that guides the user in a step-by-step manner to
`accomplish desired operations. For further information
`regarding this interface, reference is made to commonly
`assigned, copending applications Ser. No. 08/010,063, filed
`Jan. 27, 1993, Ser. No. 08/056,367, filed Apr. 30, 1993, and
`Ser. No. 08/059,542, filed May. 10, 1993, the disclosures of
`which are incorporated herein by reference. Preferably, the
`features of the present invention are incorporated into a
`interface of the type disclosed in these applications.
`To provide ease of use for all types of computer users,
`access to the features provided by the present invention can
`be provided through a simple interface object. One example
`of such an object is illustrated in FIG. 1A. Referring thereto,
`
`4
`this figure illustrates a display screen of the type that is
`typically presented to a user by an interface which employs
`a desktop metaphor to represent objects stored in the com-
`puter. As shown in FIG. 1A, the major portion of the screen
`comprises an area that is known as the desktop 10. Located
`at the upper portion of the desktop is a menu bar 12 which
`provides the user with access to basic functions for control-
`ling the operation of the computer. Various icons 14 on the
`desktop represent objects accessible by the computer user,
`such as disk drives, folders, files and application programs.
`As is well known in this art, access to the menu items and
`icons can be provided by means of a cursor that is controlled
`by a suitable input device manipulated by the user, such as
`mouse, pen or the like.
`Also illustrated on the desktop is an assist button 16,
`which is shown in an enlarged view in FIG. 1B. This button
`provides the user with access to the guidance and assistance
`features of the interface. Preferably, this button is situated on
`a palette that floats above all other objects on the desktop,
`such as windows and icons, so that it is always accessible by
`the user. To permit the user to remove the button from the
`desktop, the palette can be provided with a close button 18,
`which functions in a well-known manner to remove the
`
`display of that feature. Once the button has been closed,
`access to it can be gained through an item on the menu bar
`12, such as a help menu.
`To call up the assistance features of the interface, the user
`actuates the assist button 16, for example, by clicking a
`mouse button while a cursor pointer is positioned over the
`assist button. Upon doing so, an access window, such as that
`shown in FIG. 2, is presented to the user. The access window
`is also a system window that floats above all application
`windows and icons on the desktop when it is called by the
`user.
`
`The access window presents a list of predefined questions,
`problems and tasks that are appropriate to the context within
`which the computer is being used. Thus, for example, when
`the user is working on the desktop itself, the contents of the
`access window may relate to basic functions associated with
`the operation of a computer, such as those illustrated in FIG.
`2. On the other hand,
`if the user is working within a
`particular application, such as a word processing program,
`the contents of the access window can pertain to functions
`associated with that particular application. This information
`can be provided as part of the program, for example in a help
`file. Thus, the contents of the access window are always
`context sensitive.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`In the specific example illustrated in FIG. 2, the upper
`region of the access window contains three buttons 20—24
`which enable the user to switch between different search
`
`55
`
`60
`
`65
`
`modes. A first button 20, which is illustrated as being
`highlighted in FIG. 2, enables the user to select areas of
`inquiry by general topics. The middle button 22 causes
`information to be presented to the user alphabetically, or in
`some other indexed fashion. The rightmost button 24
`enables the user to input a particular query upon which the
`computer conducts a search to locate topics related thereto.
`The middle portion of the access window contains two
`panes of information. The left pane 26 presents the infor-
`mation defined by the particular one of the three search
`mode buttons actuated by the user. Thus, in the example of
`FIG. 2, the left pane contains a listing of the various topics
`about which the user can obtain information. The user can
`
`select one of the topics identified in this pane. In response
`thereto, the right pane 28 presents a list of tasks that match
`the selected topic. In the particular example of FIG. 2, the
`
`Petitioner Apple Inc. - Exhibit 1006, p. 21
`
`Petitioner Apple Inc. - Exhibit 1006, p. 21
`
`
`
`US 6,496,872 B1
`
`5
`user has selected the topic “files and disks.” In response
`thereto, the right pane presents the user with a choice of
`more specific items of information under this general topic.
`For further information regarding the functionality of these
`features of the access window, reference is made to the
`patent applications identified previously.
`The bottom of the access window contains three user-
`assistance mode buttons. The rightmost button 30, labeled
`“Guide Me,” leads the user through step-by-step instructions
`for performing a particular task, such as those provided by
`the Apple Guide system described in the aforementioned
`patent applications. This type of operation is appropriate
`when the users want to learn how to accomplish that task.
`The middle button 32, labeled “Do It For Me,” leads the user
`through a path that provides as much automation of the task
`as possible, streamlining the steps that are required to
`complete the task. This mode is appropriate when a user
`wants to get a particular task accomplished, without desiring
`to learn how it is done. Upon actuation of this button, the
`task is carried out one time. Before implementing the task,
`it may be necessary for the computer to solicit information
`from the user regarding the parameters of the task. For
`example,
`if the requested task is to back up files,
`the
`computer can request the user to specify the files to be
`backed up, and the destination disk onto which they are to
`be copied. Upon entry of this information, the computer
`carries out the task without further input by the user.
`The third button 34, labeled “Automate It”, enables the
`user to automate the performance of repetitive tasks. When
`it is actuated, it causes the system to create an automated
`task that is carried out whenever a specified trigger condition
`occurs. Similar to the “Do It For Me” operation, the type of
`assistance provided by this button carries out an interview
`sequence with the user, to obtain the necessary information
`regarding the task. However, in this case additional choices
`are presented which allow the user to specify a triggering
`condition for the initiation of the task, and a notification or
`logging that is provided when the task occurs.
`The automated task feature of the interface is based upon
`three main concepts, namely tasks, triggers and assistants.
`Tasks are actions or sequences of actions that can be
`programmatically launched at some time specified by the
`user. Atask is composed of three items of information which
`specify
`what is to be done, (ii) when it is to be done and
`(iii) how the user should be notified. The “what” specifica-
`tion for a task describes the variables that make the task
`
`unique. These variables might include the names of folders
`or directories whose contents should be backed up, the name
`of a folder to look for on a network, or the list of people
`whose electronic mail addresses are considered to be
`
`important, for example. The “when” specification for a task
`describes a time or event condition that triggers the perfor-
`mance of an automated task. The “notification” specification
`describes user preferences regarding how they want to be
`notified when the task is running, and whether the notifica-
`tion should be logged for later review.
`A trigger is any event
`that can be programmatically
`detected and used to initiate the performance of an auto-
`mated task. For example, a time-based trigger can specify a
`single time or a repeating time interval. Other, more com-
`plicated triggers can be based upon specific events, such as
`system start-up, system shut-down, or the launch of an
`application. They can also be based upon complex condi-
`tions to be monitored. For example, the trigger can monitor
`the amount of free space on a hard disk, and initiate a task
`when the available space drops below a specified threshold.
`Other triggers can detect specific keystroke combinations, or
`wait until another task has been completed.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`A third feature of automated tasks, i.e., an assistant, is a
`collection of one or several templates of potential automated
`tasks and interview sequences to collect
`the parameters
`needed to specify instances of these tasks. Each task tem-
`plate represents a skill or a service that the assistant is
`capable of providing. When an assistant is called by a user,
`it displays its available skills, and allows the user to create
`automated tasks by specifying the required what, when and
`notification information for each task, by means of an
`interview. Each assistant can create many instances of the
`automated task that it is designed to set up. In other words,
`an assistant is a collection of skills, which can be multiply
`instantiated to produce any number of task instances.
`The assistant collects the parameters needed to define a
`task