throbber
(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2007/0043687 A1
`(43) Pub. Date:
`Feb. 22, 2007
`Bodart et al.
`
`US 2007.0043687A1
`
`ASSISTANT
`VIRTUAL
`
`(52) U.S. Cl. .................................................................. 707/1
`
`(54)
`(75)
`
`(73)
`(21)
`(22)
`
`Inventors:
`
`Andrew J. Bodart, New York, NY
`(US); Chris Ernest Condon, Jesery
`City, NJ (US)
`Correspondence Address:
`BANNER & WITCOFF, LTD.
`ATTORNEYS FOR CLIENT NO. O05222
`10 S. WACKER DRIVE, 30TH FLOOR
`CHICAGO, IL 60606 (US)
`Assignee:
`Accenture LLP, Palo Alto, CA (US)
`Appl. No.:
`11/206,829
`Aug. 19, 2005
`
`Filed:
`
`(57)
`
`ABSTRACT
`
`Systems and methods for assisting a user with a variety of
`tasks are provided. A virtual assistant has access to a user's
`contacts, calendar, and location. The virtual assistant also is
`able to access information about weather, traffic, and mass
`transit, and is able to adjust the time of for alerting a user
`about an upcoming appointment. The virtual assistant also
`has a rules engine enabling a user to create rules for handling
`incoming calls and instant messages, rerouting calls based
`on their caller identification. The virtual assistant also has a
`query engine enabling a user to find a document and to work
`with it, including sending it to a contact in the user's address
`book. Interfaces to virtual assistant may include installed
`software client, web browser, SMS/instant message, as well
`as an interactive voice response system.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`G06F 17/30
`
`(2006.01)
`
`131
`
`c
`
`133
`
`85
`
`U101
`
`135
`
`e
`Go
`
`132
`
`an
`S- t s
`
`(SN
`VV
`
`134
`
`hus
`
`101
`
`FUNCTIONALITY 110
`RULES ENGINE
`111
`MESSAGE ICALL ROUTING
`112
`SPEECH PROCESSING
`113
`QUERY & RESPONSE
`114
`
`CALENDAR -
`121
`RULES
`122
`FILES
`123
`ACCOUNTS
`124
`
`USER INTERFACES 140
`
`
`
`141
`
`147
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 1 of 17
`
`

`

`Patent Application Publication Feb. 22, 2007 Sheet 1 of 7
`
`US 2007/0043687 A1
`
`
`
`101
`
`
`
`USER DATA 120
`
`CALENDAR -
`
`- CONTACTS -
`
`141
`
`147
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 2 of 17
`
`

`

`Patent Application Publication Feb. 22, 2007 Sheet 2 of 7
`
`US 2007/0043687 A1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CALL
`ROUTING
`202
`
`MESSAGE
`ROUTING
`214
`
`SPEECH
`AUDIO
`INTERFACE PROCESSING
`203
`204
`
`INSTANT
`MESSAGE
`205
`WEB
`SERVER
`206
`
`SOFTWARE
`CLIENT
`207
`
`IPTV
`INTERFACE
`208
`
`OTHER USER
`INTERFACES
`209
`
`PERSONAL
`NFORMATION
`MANAGER
`212
`
`
`
`VIRTUAL
`ASSISTANT
`101
`
`WEB
`SERVICES
`211
`
`
`
`213
`
`RULES
`ENGINE
`111
`
`FILES, PREFS
`ACCOUNTS
`210
`
`OUERY
`ENGINE
`114
`
`FIG. 2
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 3 of 17
`
`

`

`Patent Application Publication Feb. 22, 2007 Sheet 3 of 7
`
`US 2007/0043687 A1
`
`FIG. 3
`
`VIRTUAL
`ASSISTANT
`101
`
`
`
`
`
`
`
`
`
`START
`
`DETERMINE
`NITIAL
`ALARM TIME
`
`404
`
`ADJUST
`ALARM TIME
`FOR CALENDAR
`
`FIG. 4
`
`402
`
`
`
`405
`
`RECEIVE
`CONTEXT
`INFORMATION
`
`403
`
`ADJUST
`ALARM TIME
`FOR TIME ZONE
`
`
`
`
`
`
`
`RAVEL
`INVOLVED?
`
`
`
`
`
`
`
`
`
`ADJUST
`ALARM TIME
`FOR TRAFFIC,
`WEATHER, AND
`TRANSIT
`
`407
`
`TRIGGER
`ALARMAT
`ADJUSTED TIME
`
`
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 4 of 17
`
`

`

`Patent Application Publication Feb. 22, 2007 Sheet 4 of 7
`
`US 2007/0043687 A1
`
`
`
`VIRTUAL
`ASSISTANT
`101
`
`201
`
`
`
`RECEIVE
`INCOMING
`COMMUNICATION
`
`DETERMINE
`CONTACT
`PRIORITY
`
`PRIORITY?
`
`ROUTE TO
`APPROPRIATE
`DEVICE
`
`ALLOW TO
`LEAVE MESSAGE
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 5 of 17
`
`

`

`Patent Application Publication Feb. 22, 2007 Sheet 5 of 7
`
`US 2007/0043687 A1
`
`
`
`
`
`
`
`
`
`VIRTUAL
`ASSISTANT
`101
`
`215
`
`201
`
`
`
`
`
`
`
`
`
`RECEIVE
`SEARCH
`COMMAND
`
`SEARCH
`FOR FILE
`
`
`
`
`
`
`
`FIG. 8
`
`ALERT
`FILE SENT
`
`2
`
`705
`
`ALERT
`FILE FOUND
`
`RECEIVE
`SEND
`COMMAND
`
`SEND
`FILE TO
`CONTACT
`
`
`
`ALERT
`FILE NOT
`FOUND
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 6 of 17
`
`

`

`Patent Application Publication Feb. 22, 2007 Sheet 6 of 7
`
`US 2007/0043687 A1
`
`143
`
`Y
`
`201
`
`NY
`
`903
`
`FIG. 9
`
`VIRTUAL
`ASSISTANT
`101
`
`& S ASE
`A
`7,"
`
`4N
`
`as
`& 142
`
`F.G. 10
`
`2O1
`
`
`
`VIRTUAL
`ASSISTANT
`101
`
`
`
`
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 7 of 17
`
`

`

`Patent Application Publication Feb. 22, 2007 Sheet 7 of 7
`
`US 2007/0043687 A1
`
`
`
`PROCESSOR
`1202
`
`MEMORY
`1203
`
`NETWORK
`ADAPTER
`1205
`
`FIG. 12
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 8 of 17
`
`

`

`US 2007/0043687 A1
`
`Feb. 22, 2007
`
`VIRTUAL ASSISTANT
`
`FIELD OF THE INVENTION
`0001. The invention relates generally to personal produc
`tivity systems. More particularly, the invention provides for
`the integration of personal and public information to enable
`more productive individuals by automating routine tasks.
`
`BACKGROUND
`0002 Personal productivity software has helped to
`streamline and simplify the role of information workers.
`Beginning with basic email clients, productivity Software
`has grown to include a variety of other "desktop' applica
`tions, replacing paper calendars, rolodexes, and task lists
`with their software equivalents. Hybrid programs sometimes
`referred to as personal information managers (PIMs) have
`Succeeded somewhat in combining these disparate programs
`into a single interface. Not only are such applications able to
`track appointments, to do’s, contacts, and so forth, but they
`can combine the functions, such that setting up a meeting
`merely requires adding an appointment to your calendar and
`adding contacts to the appointment. Some applications have
`taken personal information managers a step further, enabling
`new interface methods. Such as having a user's email read to
`her by phone.
`0003 Having all this relevant information available in
`one place may have enhanced user productivity, but these
`PIMs have failed to take full advantage of the information.
`For example, when a user creates a new appointment, she
`must still discern how long of a lead time will be needed for
`a reminder, or provide one default value that is used for all
`reminders. Furthermore, if the user is not at her desk when
`the reminder is triggered, then she may forget the appoint
`ment, and the reminder is wasted. Alternatively, when mul
`tiple devices are synchronized, duplicative reminders may
`be unnecessarily sent, e.g., to a user's computer PIM (e.g.,
`Outlook(R) brand PIM), to a user's PDA PIM (e.g.,
`GoodLinkR) brand PIM), and to a user's watch PIM (e.g.,
`Microsoft Smart Watch). When a user receives an incoming
`message, she must decide whether to take the call or respond
`to the instant message based on whether she recognizes the
`identifying phone number or screen name. Such little deci
`sions and annoyances can be time consuming. Ultimately,
`PIMs and their users do not take full advantage of the
`information available to them to further enhance productiv
`1ty.
`
`SUMMARY
`0004 The following presents a simplified summary in
`order to provide a basic understanding of some aspects of the
`invention. The summary is not an extensive overview of the
`invention. It is neither intended to identify key or critical
`elements of the invention nor to delineate the scope of the
`invention. The following Summary merely presents some
`concepts of the invention in a simplified form as a prelude
`to the more detailed description below.
`0005. A first illustrative embodiment may be directed to
`a system having an information sources Software module for
`receiving data from a plurality of information providers. The
`system may also include a user interfaces software module
`for receiving input from and providing output to a plurality
`of heterogeneous user devices. A user data module may store
`
`data about a specific user, where the data about the specific
`user includes calendar appointment information, contact
`information, rules information, and preferences information.
`A functionality module may control overall operation of the
`system, and may include Submodules Such as a rules engine
`for analyzing and executing rules based on the rules infor
`mation, and a real-time communication component. The
`real-time communication component may direct an incom
`ing communication to the user. The routing may be deter
`mined at least in part based on a recognized contact status as
`determined by a comparison of a call identifier with the
`contact information, and optionally at least in part based on
`information received from one or more of the plurality of
`information providers via the information sources software
`module. The recognized contact status may recognize the
`caller as a human caller or an automated caller, such as a
`PIM associated with the user.
`
`OVERVIEW OF THE FIGURES
`0006. A more complete understanding of the present
`invention and the advantages thereof may be acquired by
`referring to the following description in consideration of the
`accompanying drawings, in which like reference numbers
`indicate like features, and wherein:
`0007 FIGS. 1 and 2 depict components of a virtual
`assistant according to one or more illustrative aspects of the
`invention;
`0008 FIG. 3 depicts a virtual assistant controlled alarm
`according to one or more illustrative aspects of the inven
`tion;
`0009 FIG. 4 is a flow chart illustrating a method for
`adjusting an alarm according to one or more illustrative
`aspects of the invention;
`0010 FIG. 5 depicts communication routing using a
`virtual assistant according to one or more illustrative aspects
`of the invention;
`0011 FIG. 6 is a flow chart illustrating a method for
`routing an incoming communication according to one or
`more illustrative aspects of the invention;
`0012 FIG. 7 depicts forwarding a file using a virtual
`assistant according to one or more illustrative aspects of the
`invention;
`0013 FIG. 8 is a flow chart illustrating a method for
`finding and forwarding a file according to one or more
`illustrative aspects of the invention;
`0014 FIG. 9 depicts controlling a virtual assistant using
`a remote controlled television according to one or more
`illustrative aspects of the invention;
`0015 FIG. 10 depicts sending data to an automobile
`using a virtual assistant according to one or more illustrative
`aspects of the invention;
`0016 FIG. 11 depicts controlling functions within a
`house according to one or more illustrative aspects of the
`invention; and
`0017 FIG. 12 is an illustrative operating environment in
`which one or more illustrative aspects of the invention may
`be implemented.
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 9 of 17
`
`

`

`US 2007/0043687 A1
`
`Feb. 22, 2007
`
`DETAILED DESCRIPTION
`0018. In the following description of the various embodi
`ments, reference is made to the accompanying drawings,
`which form a part hereof, and in which is shown by way of
`illustration various embodiments in which the invention
`may be practiced. It is to be understood that other embodi
`ments may be utilized and structural and functional modi
`fications may be made without departing from the scope and
`spirit of the present invention.
`0019. Throughout this description, various components
`and functional blocks are described as being connected to or
`in communication with each other. It should be understood
`that these components and functional blocks may be either
`directly or indirectly connected and may be in communica
`tion through any one of many methods, including wireless
`and/or wired technologies.
`0020 FIG. 1 depicts one possible set of components of a
`virtual assistant 101 according to one or more aspects of the
`invention. The term virtual assistant 101 is used to describe
`Software designed to simplify, streamline and enhance the
`often repetitive activities which occupy the daily lives of
`many people. Such software may interact with a user via any
`number of interfaces 140. Furthermore, such software is able
`to retrieve data from a variety of information sources 130, in
`part to augment its ability to make decisions on the user's
`behalf. Virtual assistant 101 software further may include
`the ability to access user data 120, combined with technical
`functionality 110, to assist the user and make the most
`accurate decisions possible. The functionality depicted in
`FIG. 1 need not necessarily be part of a single device or
`system. Virtual assistant 101 functions may be performed by
`multiple devices in communication with each other.
`0021. User data 120 may be available to virtual assistant
`101 either through its own user interface and data storage, or
`by electronic interface with the data and functions of other
`existing Software packages. For example, user calendar 121
`may be a component built into virtual assistant 101, or it may
`be a separate program (e.g., Microsoft Outlooks) which
`stores a user's calendar information and with which virtual
`assistant 120 can interface. Other user data may include
`contact information 125, the equivalent of a software rolo
`dex, where users can store contact email addresses and
`phone numbers, along with other information. User data 120
`may include a set of rules for use with rules engine 111,
`setting forth the logic used by virtual assistant to aid the user.
`In addition, there may be preference 126 data for individual
`application or operating system features. These preferences
`126 may include preference settings for the virtual assistant
`Software, or may include preferences for any other number
`of Software programs or websites.
`0022. User data 120 may also include a collection of user
`files 123, possibly including documents, presentations, pho
`tographs, web pages, and so forth. These files may be
`designated by a user, or may include all the files on a local
`computer system. Furthermore, user data 120 may include
`the emails 127 that a user has received or sent. Accounts 124
`may include personal financial account information for the
`user, possibly including bank login information. Accounts
`124 may also include information for other types of user
`accounts, including email passwords, website passwords,
`and so forth. Finally, user data 120 may include any voice
`mail messages 128 left for or sent by a user.
`
`0023. As discussed, each of these types of user data 120
`may be accessed and stored directly using specialized soft
`ware components (e.g., interfaces and/or objects) which may
`be a part of virtual assistant 101. Alternatively, different user
`data 120 may be manipulated or created using software
`which is not a part of virtual assistant 101, and then be
`Subsequently accessed by virtual assistant 101. Accessing
`data from other applications may require interfacing directly
`with another piece of Software (e.g., through an application
`programming interface or API). It also may require access
`ing the data directly through files stored in a memory,
`whether volatile (e.g., dynamic random access memory or
`DRAM) or non-volatile (e.g., a hard drive). The types of
`user data 120 displayed in the figure is not exhaustive and
`other data may be made available to virtual assistant 101.
`0024 Rules engine 111 is one portion of the functionality
`found in virtual assistant 101. A rules engine may be
`compared with a software compiler which translates user
`input (i.e. computer source code) into a series of instructions
`which a computer processor can understand (i.e. computer
`object code). Rules engine 111 takes user-created rules,
`which may be represented as a series of textual if-then-else
`statements, and translates them into a series of actions. Like
`computer Source code, the rules created for rules engine 111
`may be portable and translatable on multiple computer
`platforms. Rules engine 111 may additionally infer new
`rules based on the rules already in place.
`0025 Message & call routing 112 is another portion of
`the functionality found in virtual assistant 101. Technologies
`such as voice over internet protocol (VoIP) may enable call
`routing functionality 112, where telephone conversations are
`converted to binary data which can be routed via a computer
`network Such as the Internet. Message & call routing 112
`may enable virtual assistant 101 to intercept incoming
`telephone calls, instant messages, and other real time com
`munication requests. Based on the rules set forth for rules
`engine 111, calls may be selectively routed to a user based
`on the current context of date, time, user location, and so
`forth.
`0026 Speech processing 113 functionality can enable
`virtual assistant 101 to comprehend spoken language com
`mands. Interactive voice response (IVR) technologies may
`enable speech processing 113 abilities for virtual assistant
`101. Using this functionality, a remote user can call into his
`or her virtual assistant and provide Voice commands. These
`can be interpreted into commands which control the func
`tioning of virtual assistant 101.
`0027 Query and response 114 abilities may further
`enhance virtual assistant 101. Using a keyboard or speech
`processing, a user may query virtual assistant with regard to
`various aspects of user data 120 and/or information sources
`130. For example, a user may request that virtual assistant
`find a particular contact, by typing or saying, "Find Contact
`John Doe.” Based on the result of a query, virtual assistant
`101 may provide a response (e.g., whether the contact was
`found) as an audible or visual message. Similar queries may
`search user files 123, emails 127, calendar 121 appoint
`ments, and so forth. Additional functionality 110 may be
`implemented as a part of virtual assistant 101, including for
`example, the ability to initiate telephone calls and fax calls.
`0028. In addition to utilizing user data 120, virtual assis
`tant 101 may receive information from various sources 130
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 10 of 17
`
`

`

`US 2007/0043687 A1
`
`Feb. 22, 2007
`
`using one or more computer networks. Each information
`source may provide different specialized data for use by
`query & response 114, rules engine 111, and other software
`components. These information sources 130 may reside on
`computer servers located within the same entity housing
`virtual assistant 101, or they may reside on remote networks,
`interconnected for example, via the Internet. Information
`may be pushed by the information sources 110 to virtual
`assistant 101, or it may be received in response to a request.
`The format used to send information may vary by informa
`tion source, or sources may use a common format, Such as
`extensible markup language (XML) or really simple syndi
`cation (RSS).
`0029. Among information sources 130, individual
`Sources of information may include date & time information
`131, weather information 132, user geographic location
`information 133, road traffic information 134, mass transit
`information 135, and finance information 136. Each of these
`information Sources may supply timely information about
`their respective categories of data. Virtual assistant 101
`receiving information from these sources 130 may utilize the
`information in combination with user data 120 and rules
`engine 111 to make decisions on behalf of a user. Examples
`of these types of decisions are set forth in some detail below.
`Other information sources may also or alternatively be used.
`0030. Other components of virtual assistant 101 include
`one or more user interfaces 140 which allow a user to
`interact with virtual assistant 101. These may include a
`home interface 141 (e.g., a home wired for digital control),
`an auto interface 142 (e.g., a navigation system), interactive
`television 143, computer 144, cell phone 145 and/or per
`Sonal digital assistant (not shown), a conventional telephone
`146, and even an alarm clock 147. Each interface may be
`directly associated with the equipment within which virtual
`assistant 101 is housed, or may be remotely located and in
`communication with virtual assistant 101 using a computer
`network or other electronic communication scheme. Via
`user interfaces 140, the virtual assistant 101 can communi
`cate with many different types of heterogeneous user
`devices, and the virtual assistant is not limited to commu
`nication with a homogenous set of devices. Other interfaces
`may also or alternatively be used.
`0031
`FIG. 2 depicts one possible component configura
`tion of a virtual assistant 101 according to one or more
`aspects of the invention. The configuration may include the
`same or similar components as those shown in FIG. 1. The
`functional blocks present one possible implementation of
`virtual assistant 101. Components may be removed, rear
`ranged, and other components may be added.
`0032 Here, virtual assistant 101 is comprised of a num
`ber of functional components which enable the overall
`functionality described. Each component may work in con
`cert directly with the other components, or virtual assistant
`101 may be developed using software so as to integrate the
`functions. For example, virtual assistant 101 may be prima
`rily written in the computer language Java, and designed to
`interact with and integrate the various components, each of
`which may also share a public interface using Java, or some
`interface definition language (IDL).
`0033) User 201 may interact with virtual assistant 101
`through one of many interfaces, as previously described.
`Interfaces may require Some combination of visual, touch, or
`
`audible communications between user 201 and virtual assis
`tant 101. For example, a user may control virtual assistant
`101 using an audio interface 203 using a conventional
`telephone, a cell phone, or even a microphone and speaker
`attached to a computer. A user may use push button tones or
`another audio electronic interface to make selections from a
`menu. A user may also use natural language and/or spoken
`commands via audio interface 203. Speech processing 204
`may then process spoken commands and translate them into
`text or another format which virtual assistant 101 can
`understand. Software components or systems which perform
`Such speech processing may be referred to as interactive
`voice response (IVR) systems.
`0034) A visual interface may include those provided by
`instant messenger 205, web server 206, software client 207,
`or any other electronic interface. User 201 may interact
`using a computer, cell phone, or any other device which can
`receive and send commands. For instant message interface
`205, a user may be able to send messages using an instant
`message client Such as America Online (AOL) Instant
`Messenger, Microsoft Network (MSN) Messenger, and so
`forth. Alternatively, using a cell phone, user 201 may send
`messages using Short Message Service (SMS), multimedia
`message service (MMS) or some other message standard.
`Commands may be sent to virtual assistant 101 and
`responses received by the user using the same interface.
`Using the example of a virtual assistant 101 implemented
`using Java, SMS messages may be received and sent using
`a Java SMS Software Development Kit (SDK), or another
`set of software classes which ease the development process
`of SMS communications. Other programming languages
`may have similar SDKs to enable easy programming with
`SMS.
`0035) A web server 206 may supply an interface from
`virtual assistant 101 to any computer, cell phone, or other
`electronic device having a web browser via a computer
`network Such as the Internet. Such an interface may provide
`pages formatted using Hypertext Markup Language
`(HTML) or Some other markup language to provide infor
`mation to user 201, and also to receive information from the
`user. The HTML pages may be created using a standard
`programming language such as Java Servlets or Java Server
`Pages (JSPs), Microsoft .NET, PHP, and so forth.
`0036) An installed software client 207 may provide a
`more rich and customizable interface for user 201. Such an
`interface may be an add-on to an existing piece of software
`(e.g., Microsoft Outlook), or a standalone computer appli
`cation. Such an interface may be written using any number
`of programming languages, and may be installed on the
`same computer as virtual assistant 101 or communicate with
`the virtual assistant via a network connection.
`0037 Another alternative interface for virtual assistant
`101 is an Internet Protocol Televeision (IPTV) interface 208.
`IPTV is not a particular standard and rather is a term used
`to refer generally to interactive services delivered to users
`over television broadband networks. IPTV may require that
`the user have a separate set top box connected to a television,
`although the functionality may be included as part of a
`television, or other video component. User 201 may receive
`information from virtual assistant 101 through her televi
`Sion. Likewise, user 201 may access and control virtual
`assistant 101 using a television remote or other input device.
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 11 of 17
`
`

`

`US 2007/0043687 A1
`
`Feb. 22, 2007
`
`0038. Additional user interfaces 209 may interact with
`the devices mentioned, or with other devices and systems.
`For example, an interface may enable virtual assistant 101 to
`communicate with a home automation system 141 over an
`existing network connection. As another example, virtual
`assistant 101 may communicate using a wireless network
`with an automobile system 142 (e.g., a navigation system).
`Another example of a possible interface is virtual assistant
`101 communicating with a user by controlling an alarm
`clock 147 connected to a home network. For each interface,
`an existing networking standard (e.g., HTML, XML, SMS,
`etc.) may be customized to enable communication with the
`appropriate device, and using the appropriate Software calls.
`0.039
`Virtual assistant 101 includes a rules engine 111 as
`described above, capable of providing a user a simple way
`to automate the control of virtual assistant. One possible
`implementation of rules engine 111 is the use of the Java Jess
`application programming interface (API). Jess provides a
`generalized format for creating rules in a portable format,
`essentially a high-level declarative programming language.
`These rules can be run based on information from the
`various interfaces and information sources accessible by
`virtual assistant 101. The rules may be stored as user data
`and transported between multiple systems. Other types of
`rules engines may be used, each of which provides a way to
`make conclusions and inferences based on user data and
`contextual information.
`0040. A personal information manager (PIM) may form
`the basis of user data to be used by virtual assistant 101.
`Well-known PIMs include Microsoft Outlook, Microsoft
`Entourage, Lotus Notes, ACT, GoodLink, and so forth.
`Virtual assistant 101 may use the data associated with each
`of these well-known applications, or alternatively, virtual
`assistant may provide its own PIM functionality and store
`the data in a format of its choosing. The user data to which
`a PIM may provide access includes calendar appointments,
`address book contacts, to do list items, email messages,
`notes, and so forth. As opposed to one single application,
`each of these types of PIM data may alternatively be
`managed by individual applications (e.g., iCal. Address
`Book, and Mail on an Apple Computer). In either case,
`virtual assistant 101 may access each type of PIM data for
`use by user 201.
`0041 Web services 211 provide virtual assistant 101 a
`method of providing up-to-date contextual information for
`purposes of evaluating rules and responding to queries,
`among other uses. Web services may pull information from
`the Internet 213, including weather, traffic, mass transit, user
`location (e.g., via GPS in a user's cell phone), and so forth.
`This information may be provided using a simple request
`and response format, possibly polled on an hourly basis.
`Alternatively, the information may be requested on a “when
`needed' schedule, or the information may be pushed by
`outside servers when updated rather than awaiting a request.
`The data may be stored on a single server or on multiple
`servers throughout the Internet. In addition, virtual assistant
`101 may pull the same information from multiple sources in
`order to average or otherwise determine the most correct
`information. Information may be pulled using XML or RSS,
`or some other standard or non-standard data format. Alter
`natively, information may be “scraped from standard
`HTML web pages, where virtual assistant 101 may know
`exactly what part of a page contains the information needed.
`
`0042 Virtual assistant 101 may also access user files,
`preferences and account information 210 stored either
`locally on the same machine, or on remote servers and
`devices. Access may simply involve access to the item when
`a directory location or namespace is known, or it may
`include access to all the contents of all the items, possibly in
`the form of a complete index of item contents. Preferences
`may include application or operating system preferences,
`which may be transportable to other computers accessible to
`virtual assistant 101. Accounts may include passwords for
`specific websites, or possibly to bank accounts and the like.
`Information Such as account balances (when authorized)
`may be useful in the types of decisions that virtual assistant
`101 may make.
`0043 Virtual assistant 101 may include query engine
`114, which may or may not work in conjunction with rules
`engine 111. Query engine 114 provides virtual assistant a
`method for finding files, items, data, and so forth within the
`realm of information available, including data gathered via
`web services 211. Query engine 114 may search an index
`structure for text matching a particular string or combination
`of strings. Query engine 114 may also perform natural
`language queries, which do not necessarily require a specific
`Syntax or lexicon of commands. The responses provided by
`query engine may similarly be in the form of natural
`language rather than structured and limited. Speech process
`ing 204 and audio interface 203 may work in conjunction
`with query engine 114 to provide a spoken input ability for
`queries. Furthermore, responses may be provided using
`audio interface 203 to produce a spoken output.
`0044) Virtual assistant 101 may include the ability to
`receive and direct calls and messages directed to user 201.
`Such ability includes call routing 202 where an incoming
`telephone call from contact 215 is routed based on the user's
`current status as well as whether or not the person making
`the call is recognized. Likewise, incoming messages includ
`ing instant messages and/or SMS messages, and even email
`messages, may similarly be routed using message routing
`214. By routing calls and messages, user 201 does not have
`to screen her calls. Rather, virtual assistant 101 is able to
`recognize an identity of the sender (via caller ID or some
`other identification method) and decide whether or not to
`route the call to voice mail 128 or some other system. Using
`speech processing 204, virtual assistant 101 may further
`translate a voice mail into a text message to be stored or
`forwarded to user 201.
`0045 FIG. 3 depicts an alarm controlled by virtual assis
`tant 101 according to one or more aspects of the invention.
`Although a conventional bedside alarm clock 302 is
`depicted here, any sort of audible, visual, or other alarm may
`be utilized in this fashion, including a computer alarm, a cell
`phone alarm, and so forth. Virtual assistant 101 may be
`incorporated into alarm 302, or it may be remotely located,
`utilizing a network or direct data connection in order to
`inform the alarm when to alert user 201. Virtual assistant 101
`may have access to the location of user 302 via a cell phone
`or other location sensor. By knowing the user's location,
`virtual assistant 101 can automatically adjust the time Zone
`and, if necessary, any calendar appointments for the user.
`Also, by having access to the calendar of user 201, virtual
`assistant can adjust an alarm (e.g., a wake-up alarm) based
`on any impending appointments.
`
`Ex. 1005
`CISCO SYSTEMS, INC. / Page 12 of 17
`
`

`

`US 2007/0043687 A1
`
`Feb. 22, 2007
`
`0046) If virtual assistant 101 not only knows the calendar
`of user 201, but also the current location of user 201, and the
`location of the next appointment on the calendar, virtual
`assistant may calculate a length of time for user 201 to travel
`between her current location and her destination, and also
`send the alarm to the proper location (e.g., when the user
`owns multiple devices capable of producing an alarm). By
`calculating this time (e.g., by using a

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