throbber
(12) United States Patent
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket