throbber
I lllll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111
`US007552124B2
`
`c12) United States Patent
`Dru kin
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,552,124 B2
`Jun.23,2009
`
`(54) NATURAL LANGUAGE FOR
`PROGRAMMING A SPECIALIZED
`COMPUTING SYSTEM
`
`(75)
`
`Inventor: Vladimir Drukin, Raanana (IL)
`
`(73) Assignee: IXI Mobile (R&D), Ltd. (IL)
`
`( *) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 560 days.
`
`(21) Appl. No.: 10/872,289
`
`(22) Filed:
`
`Jun.17,2004
`
`(65)
`
`(51)
`
`(52)
`
`(58)
`
`(56)
`
`Prior Publication Data
`
`US 2005/0283467 Al
`
`Dec. 22, 2005
`
`Int. Cl.
`G06F 17130
`(2006.01)
`U.S. Cl. ......................... 707/10; 707/100; 707/101;
`707/102
`Field of Classification Search . ... ... ... ... .. .. 7071200,
`707/100, 101, 10; 717/172-177
`See application file for complete search history.
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`7,027,975 Bl*
`2003/0074184 Al*
`2003/0083861 Al*
`
`412006 Pazandak et al ................ 704/9
`4/2003 Hayosh et al.
`................. 704/1
`5/2003 Weise ............................ 704/9
`
`* cited by examiner
`Primary Examiner-Khanh B Pham
`(74) Attorney, Agent, or Firm-Century IP Group, Inc.; F.
`Jason Far-hadian, Esq.
`
`(57)
`
`ABSTRACT
`
`A method for programming a mobile communication device
`based on a high-level code comprising operative language is
`provided. The method comprises parsing the high-level code
`for keywords to recognize the operative language; determin(cid:173)
`ing at least one operation associated with the operative lan(cid:173)
`guage; determining whether high-level code comprises key(cid:173)
`words defining one or more relationships and conditions
`corresponding to the operative language; and producing an
`executable code that can be executed by a microcontroller of
`the mobile communication device to perform the respective
`operation associated with the operative language, wherein the
`high-level code comprises at least one sentence formatted in
`accordance with a first context.
`
`6,766,320 Bl*
`
`7/2004 Wang et al ..................... 707/5
`
`10 Claims, 3 Drawing Sheets
`
`Start
`
`S21
`
`Process High
`Level Code
`
`S220
`
`Recognize
`Operative
`Language
`
`S23
`
`Recognize
`data source
`
`S240
`
`Determine
`requested
`operation
`
`S250
`
`Determine
`relationships
`and
`Conditions
`
`S26
`
`Produce
`Executable
`Code
`
`End
`
`Page 1 of 9
`
`

`

`~ = N
`"' "'"" N
`-....l u.
`rJl
`d
`
`N
`tit
`
`FIG. I
`
`0 .....
`....
`.....
`1J1 =(cid:173)
`
`('D
`('D
`
`(.H
`
`100
`
`Network Server
`
`:=
`2'
`
`"°
`
`0
`0
`N
`"'
`(.H
`N
`
`~ = ~
`
`~
`~
`~
`•
`00
`~
`
`1122
`
`Software
`
`Application
`
`150
`Code
`
`High Level
`


`160
`Code
`
`Executable
`
`~
`
`110
`
`Network
`
`Communication
`
`120
`
`Mobile Device
`
`150
`Code
`
`High Level
`
`i}
`1122
`
`Software
`Application
`
`i}
`160
`Code
`
`Executable
`
`Page 2 of 9
`
`

`

`U.S. Patent
`
`Jun.23,2009
`
`Sheet 2 of 3
`
`US 7,552,124 B2
`
`Start
`
`S220
`
`Recognize
`Operative
`Language
`
`S23
`
`Recognize
`data source
`
`S240
`
`Determine
`requested
`operation
`
`S250
`
`Determine
`relationships
`and
`Conditions
`
`S26
`
`Produce
`Executable
`Code
`
`End
`
`FIG. 2
`
`Page 3 of 9
`
`

`

`U.S. Patent
`
`Jun.23,2009
`
`Sheet 3 of 3
`
`US 7,552,124 B2
`
`Hardware Environment 1110 -...._
`
`1101 \
`
`CPU
`
`1102 \
`
`1103 \
`
`1104 \
`
`Main
`Memory
`
`IIO
`Controller
`
`Cache
`Memory
`
`Bus 1100
`
`User
`Interface
`
`Storage
`Media
`
`Display
`Screen
`
`Connntmication
`Interface
`
`1105 _/
`
`1106 _/
`
`1107 _/
`
`1108 _/
`
`FIG. 3A
`
`Software Environment 1120 ~
`1122 --........
`
`Application
`Software
`
`1124 1'\_,
`
`User
`Interface
`
`Browser ~
`1126
`
`System
`Software
`
`1121 ~
`
`FIG. 3B
`
`Page 4 of 9
`
`

`

`US 7,552,124 B2
`
`1
`NATURAL LANGUAGE FOR
`PROGRAMMING A SPECIALIZED
`COMPUTING SYSTEM
`
`BACKGROUND
`
`2
`In one embodiment, a method for programming a mobile
`communication device based on a high-level code comprising
`operative language comprises parsing the high-level code for
`keywords to recognize the operative language; determining at
`least one operation associated with the operative language;
`determining whether high-level code comprises keywords
`defining one or more relationships and conditions corre(cid:173)
`sponding to the operative language; and producing an execut(cid:173)
`able code that can be executed by a microcontroller of the
`10 mobile communication device to perform the respective
`operation associated with the operative language, wherein the
`high-level code comprises at least one sentence formatted in
`accordance with a first context.
`In one embodiment, application software is executed on
`the mobile communication device performs the parsing and
`determining steps, when the high-level code comprises a first
`level of complexity. In another embodiment, application soft(cid:173)
`ware executed on a network server connected to the mobile
`communication device performs the parsing and determining
`steps, when the high-level code comprises a second level of
`complexity. In yet another embodiment, application software
`executed on a distributed environment, comprising the
`mobile communication device and a network server con(cid:173)
`nected to the mobile communication device, performs the
`25 parsing and determining steps.
`The high-level code is transmitted to the network server to
`produce the executable code after the network server per(cid:173)
`forms the parsing and determining steps. The executable code
`is transmitted to the mobile communication device to be
`30 executed by the microcontroller of the mobile communica(cid:173)
`tion device. In one embodiment, at least one sentence com(cid:173)
`prises one or more keywords and the first context is a natural
`language context. The high-level code may be contained in a
`script. The script is written by a user of the mobile commu-
`35 nication device.
`In accordance with another embodiment, a system for pro(cid:173)
`gramming a mobile communication device based on a high(cid:173)
`level code comprising operative language is provided. The
`system comprises means for parsing the high-level code for
`40 keywords to recognize the operative language; means for
`determining at least one operation associated with the opera(cid:173)
`tive language; means for determining whether high-level
`code comprises keywords defining one or more relationships
`and conditions corresponding to the operative language; and
`45 means for producing an executable code that can be executed
`by a microcontroller of the mobile communication device to
`perform the respective operation associated with the opera(cid:173)
`tive language, wherein the high-level code comprises at least
`one sentence formatted in accordance with a first context.
`These and other embodiments of the present invention will
`also become readily apparent to those skilled in the art from
`the following detailed description of the embodiments having
`reference to the attached figures, the invention not being
`limited to any particular embodiments disclosed.
`
`1. Field oflnvention
`The present invention relates generally to specialized com(cid:173)
`puting systems and, more particularly, to a system and
`method for programming a mobile communication device
`using a high-level natural language.
`2. Copyright & Trademark Notices
`A portion of the disclosure of this patent document con(cid:173)
`tains material, which is subject to copyright protection. The
`owner has no objection to the facsimile reproduction by any 15
`one of the patent document or the patent disclosure, as it
`appears in the Patent and Trademark Office patent file or
`records, but otherwise reserves all copyrights whatsoever.
`Certain marks referenced herein may be common law or
`registered trademarks of third parties affiliated or unaffiliated 20
`with the applicant or the assignee. Use of these marks is for
`providing an enabling disclosure by way of example and shall
`not be construed to limit the scope of this invention to material
`associated with such marks.
`3. Related Art
`Computing systems continue to dramatically enhance our
`quality oflife. Many specialized computing systems, such as
`mobile communication devices (e.g., cellular phones) and
`data organizers (e.g., personal digital assistants (PDAs)) are
`particularly popular these days. The technically savvy con(cid:173)
`sumers can operate these specialized devices to perform
`many operational features for which the devices are config(cid:173)
`ured.
`For example, some cellular phones have special features
`that allow a consumer to program the phone to produce a
`special tone, if a call is received from a designated phone
`number (i.e., audio caller identification). Other programming
`features may include voice-activated dialing, voice mail man(cid:173)
`agement, or other functions that may be configured in accor(cid:173)
`dance with occurrence of particular conditions and events.
`Unfortunately for the less technically inclined consumer,
`most of said operational features are hardly usable, because
`the consumer either does not possess the skill or cam10t learn
`the requisite steps to properly program the device to perform
`various functions. Generally, most consumers find it tedious
`to program the device to perform the special features, and
`therefore forgo using said features altogether.
`Thus, a more natural method for programming specialized
`computing systems is desirable to promote use and enhance 50
`the user's level of enjoyment.
`
`SUMMARY
`
`55
`
`The present disclosure is directed to a system and corre(cid:173)
`sponding methods that facilitate programming a mobile com(cid:173)
`munication device or other specialized computing device
`using a natural language.
`For purposes of summarizing, certain aspects, advantages,
`and novel features of the invention have been described
`herein. It is to be understood that not necessarily all such
`advantages may be achieved in accordance with any one
`particular embodiment of the invention. Thus, the invention
`may be embodied or carried out in a mamier that achieves or
`optimizes one advantage or group of advantages as taught 65
`herein without necessarily achieving other advantages as may
`be taught or suggested herein.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Embodiments of the present invention are understood by
`60 referring to the figures in the attached drawings, as provided
`below.
`FIG. 1 illustrates an exemplary communications environ(cid:173)
`ment, in accordance with one or more embodiments of the
`invention;
`FIG. 2 is a flow diagram ofa method for providing a natural
`programming language for a specialized computing device,
`in accordance with one or more embodiments; and
`
`Page 5 of 9
`
`

`

`US 7,552,124 B2
`
`3
`FIGS. 3A and 3B are block diagrams of hardware and
`software environments in which a system of the present
`invention may operate, in accordance with one or more
`embodiments.
`Features, elements, and aspects of the invention that are
`referenced by the same numerals in different figures represent
`the same, equivalent, or similar features, elements, or aspects,
`in accordance with one or more embodiments.
`
`DETAILED DESCRIPTION
`
`4
`In some embodiments, communication network 110 can be
`a part of the world wide web (i.e., the Internet). The Internet,
`in a well-known manner, connects millions of computers
`world wide through standard common addressing systems
`and communications protocols (e.g., Transmission Control
`Protocol/Internet Protocol (TCP/IP), HyperText Transport
`Protocol) creating a vast communications network.
`In either context, mobile device 120 can communicate with
`network server 100 to send and receive electronic packets of
`10 information, in form of electronic requests and responses. In
`a particular embodiment, a high-level code 150 written by a
`user and stored in mobile device 120' s memory, for example,
`may be transmitted over communication network 110 from
`mobile device 120 to network server 100 for processing.
`High-level code 150, in a preferred embodiment, com-
`prises text formatted in the context of a natural language (e.g.,
`English, French, Spanish, Japanese, etc.). High-level code
`150 may comprise one or more sentences, wherein each sen(cid:173)
`tence comprises at least one operative language (i.e. keyword)
`20 defining an instruction for a function or an operation to be
`performed. In one embodiment, the sentences also comprise
`keywords defining conditions or relationships based on
`which an operation is performed.
`To illustrate, an exemplary script written by a user in a
`25 natural language may include a sentence such as "Transfer
`call to voice mail if call is from Bob". The operative language
`(i.e., keyword or instruction) in the sentence is "transfer". The
`condition is "if call is from Bob". Keywords such as "if' or the
`like are used to indicate a condition or relationship. Applica-
`30 tion software 1122 can process sentences written in natural
`language to recognize the included keywords.
`In one or more embodiments, the operations that can be
`performed by mobile device 120 are limited because mobile
`device 120 is a specialized computing system developed and
`35 manufactured to perform particular functions or operations
`(e.g., related to making and receiving telephone calls). There(cid:173)
`fore, the corresponding conditions and relationships associ(cid:173)
`ated with the particular functions fall within a finite set for
`each operation. For example, the conditions associated with
`40 an operation to receive a call may include answering the call,
`transferring the call to voice mail, or disconnecting the call.
`Accordingly, application software 1122 can act as a natural
`language compiler to processes high-level code 150 to control
`the operation of mobile device 120 based a defined set of
`45 conditions. In one embodiment, as shown in FIG. 1, depend(cid:173)
`ing on the level of sophistication and complexity, high-level
`code 150 may be processed by application software 1122 to
`produce executable code 160.
`Thus, if high-level code 150 comprises a complex set of
`50 instructions, then high-level code 150 is transmitted to net(cid:173)
`work server 100, so that a more powerful system is utilized to
`process and compile high-level code 150. Therefore, in one
`embodiment, application software 1122 or a portion thereofis
`installed and executed on network server 100 to process high-
`55 level code 150 and to produce executable code 160. Execut(cid:173)
`able code 160 is then transmitted over communication net(cid:173)
`work 110 to mobile device 120.
`Alternatively, ifhigh-level code 150 comprises a less com(cid:173)
`plex structure, then application software 1122 or a portion
`thereof is installed and executed on mobile device 120 to
`process high-level code 150 to produce executable code 160,
`without the need for transferring high-level code 150 to a
`more powerful processing environment implemented on net(cid:173)
`work server 100. As such, simple instructions implemented in
`a natural language context can be processed more efficiently
`by a locally executed version of application software 1122. In
`some embodiments, depending on implementation, a first
`
`15
`
`An electronic system and corresponding methods, accord(cid:173)
`ing to an embodiment of the present invention, facilitate and
`provide a method and system for programming a specialized
`computing device.
`The terms electronic services, services, and online services
`are used interchangeably herein. The services provided by the
`system of this invention, in one or more embodiments, are
`provided by a service provider. A service provider is an entity
`that operates and maintains the computing systems and envi(cid:173)
`ronment, such as server systems and infrastructures that
`enable the delivery of information. Typically, server architec(cid:173)
`ture includes components (e.g., hardware, software, and com(cid:173)
`munication lines) that store and offer electronic or online
`services.
`In the following, numerous specific details are set forth to
`provide a thorough description of various embodiments of the
`invention. Certain embodiments of the invention may be prac(cid:173)
`ticed without these specific details or with some variations in
`detail. In some instances, features not pertinent to the novelty
`of the system are described in less detail so as not to obscure
`other aspects of the invention.
`Referring to the drawings, FIG. 1 illustrates an exemplary
`communications environment in which the system of the
`present invention may operate. In accordance with one aspect
`of the invention, the system environment comprises a net(cid:173)
`work server 100, a communication network 110, and a mobile
`device 120. The network server 100 and mobile device 120
`are connected by way of the communication network 110.
`The terms "connected," "coupled," or any variant thereof,
`mean any connection or coupling, either direct or indirect,
`between two or more elements. The coupling or connection
`between the elements can be physical, logical, or a combina(cid:173)
`tion thereof.
`In one embodiment, communication network 110 provides
`the medium and infrastructure for transmitting digital or ana(cid:173)
`log signals between network server 100 and mobile device
`120. In certain embodiments, mobile device 120 is a cellular
`telephone and communication network 110 is a wireless tele(cid:173)
`phone network, for example. Mobile device 120, network
`server 100 and communication network 110, however, may
`be implemented over any type of mobile, fixed, wired or
`wireless communication technology (e.g., landline tele(cid:173)
`phony, cellular, radio, radar, infrared, etc.).
`One of ordinary skill in the art will appreciate that com(cid:173)
`munication network 110 may advantageously be comprised
`of one or a combination of various types of networks without
`detracting from the scope of the invention. Such networks
`can, for example, comprise personal area networks (PANs),
`local area networks (LANs), wide area networks (WANs), 60
`public, private or secure networks, value-added networks,
`interactive television networks, wireless communications
`networks, two-way cable networks, satellite networks, inter(cid:173)
`active kiosk networks, cellular networks, personal mobile
`gateways (PMGs) and/or any other suitable communications 65
`networks that can provide a means of communication
`between mobile device 120 and network server 100.
`
`Page 6 of 9
`
`

`

`US 7,552,124 B2
`
`5
`part of high-level code 150 is processed by application soft(cid:173)
`ware 1122 executed on mobile device 120 and a second part
`of high-level code 150 is processed by application software
`1122 executed on network server 100.
`Executable code 160, according to one embodiment, com(cid:173)
`prises binary or hex code that can be processed by a micro(cid:173)
`controller or processor embedded in mobile device 120 to
`cause mobile device 120 to perform the requisite operations
`according to the operational language included in high-level
`code 150. Exemplary operational language may include an
`instruction to tum mobile device 120 on or off at a certain
`time, to set an alarm with a particular tune, to display a
`particular image when a call from an identifiable party is
`received, to automatically place a call to a designated desti(cid:173)
`nation, to forward received text messages from an identifiable
`source to a designated email account, and numerous other
`telephony related operations.
`In accordance with one embodiment, in addition to mobile
`device 120 or network server 100, application software 1122
`may be installed or executed on at least one of a third party
`portal, a service provider or a combination of said systems. As
`used herein, the terms mobile device, third party portal, ser(cid:173)
`vice provider and communication network are to be viewed as
`designations of one or more computing environments that
`comprise application, client or server software for servicing 25
`requests submitted by respective software included in devices
`or other computing systems connected there to. These terms
`are not to be otherwise limiting in any manner. Application
`software 1122, for example, may be comprised of one or more
`modules that execute on one or more computing systems.
`Referring to FIG. 2, once a user has edited and stored a
`high-level code written in a natural language (e.g., "Transfer
`all text messages from Mary to my Yahoo account"), by way
`of interacting with mobile device 120's user interface, for
`example, application software 1122 processes the high-level
`code 150 (S210). Thus, application software 1122 pareses
`high-level code 150 for keywords in an attempt to recognize
`any operative language included in high-level code 150
`(S220). For example, application software 1122 may deter(cid:173)
`mine that "transfer" as used in the above example is the 40
`operative language for performing a function, namely trans(cid:173)
`ferring a certain content received by mobile device 120 to a
`destination.
`Application software 1122 is also be implemented to parse
`high-level code 150 for keywords in an attempt to recognize 45
`any data sources (S230). For example, application software
`1122 may search mobile device 120's internal memory to
`determine if a data source (e.g., a contacts database) stores
`information associated with the name "Mary", so that when a
`text message is received from "Mary" the corresponding 50
`function or operation defined in high-level code 150 is per(cid:173)
`formed.
`Once application software 1122 parses high-level code 150
`for the particular keywords, then application software 1122
`determines the requested operation that is to be performed in
`accordance with the recognized keywords (S240). As noted
`above, for example, the keyword "transfer" would indicate
`that a transfer operation is to be performed. Furthermore,
`application software 1122 determines the relationships and
`conditions that are to be taken into account for the operation
`to be performed (S250). That is, the "transfer" operation is,
`for example, to be performed when a particular condition,
`namely "receipt of a text message from Mary", is satisfied.
`Once the operations, conditions, and relationships are rec(cid:173)
`ognized, then application software 1122 produces executable
`code 160 (S260). A processor of mobile device 120 executes
`executable code 260 in order to accomplish the results con-
`
`6
`templated according to instructions in high-level code 150.
`Thus, for example, mobile device 120 will operate to monitor
`text messages received from various sources in order to deter(cid:173)
`mine if a message is from "Mary", for example, and transfers
`such messages to a designated destination, such as a Yahoo
`email account, for example, instead of storing the messages in
`mobile device 120's memory.
`As such, a user can manipulate the operation of mobile
`device 120 by writing a high-level code 150 in a natural
`10 language (e.g., "if Eugene calls on Saturday morning, for(cid:173)
`ward call to voice mail" or "if Bob calls anytime then show
`picture bob.jpg and play ring tone ring! .wav").
`Application software 1122 may be implemented, installed
`or executed on a device or a system other than mobile device
`15 120. For example, application software 1122 or its compo(cid:173)
`nents may be implemented, installed, and executed either in a
`singular or in a distributed environment. That is, certain com(cid:173)
`ponents of the application software may be installed and
`executed on mobile device 120, while other components may
`20 be executed and installed on a third party portal, one or more
`network servers 100, a PMG server or other systems attached
`thereto.
`In one or more embodiments of the system, network server
`100, communication network 110, and mobile device 120
`comprise a controlled computing system environment that
`can be presented largely in terms of hardware components
`and software code executed to perform processes that achieve
`the results contemplated by the system of the present inven(cid:173)
`tion. A more detailed description of such system environment
`30 is provided below with reference to FIGS. 3A and 3B.
`As shown, a computing system environment is composed
`of two environments, a hardware environment 1110 and a
`software environment 1120. The hardware environment 1110
`comprises the machinery and equipment that provide an
`35 execution environment for the software. The software pro(cid:173)
`vides the execution instructions for the hardware. It should be
`noted that certain hardware and software components may be
`interchangeably implemented in either form, in accordance
`with different embodiments.
`Software environment 1120 is divided into two major
`classes comprising system software 1121 and application
`software 1122. System software 1121 comprises control pro(cid:173)
`grams, such as the operating system (OS) and information
`management systems that instruct the hardware how to func(cid:173)
`tion and process information.
`Application software 1122 is a program that performs a
`specific task. In embodiments of the invention, system and
`application software are implemented and executed on one or
`more hardware environments to program a mobile device
`using a high-level code.
`Referring to FIG. 3A, an embodiment of application soft(cid:173)
`ware 1122 can be implemented as computer software in the
`form of computer readable code executed on a general pur(cid:173)
`pose hardware environment 1110 that comprises a central
`55 processor unit (CPU) 1101, a main memory 1102, an input/
`output controller 1103, optional cache memory 1104, a user
`interface 1105 (e.g., keypad, pointing device, etc.), storage
`media 1106 (e.g., hard drive, memory, etc.), a display screen
`1107, a communication interface 1108 (e.g., a network card,
`60 a modem, or an integrated services digital network (ISDN)
`card, etc.), and a system synchronizer (e.g., a clock).
`Processor 1101 may or may not include cache memory
`1104 utilized for storing frequently accessed information. A
`communication mechanism, such as a bi-directional data bus
`65 1100, can be utilized to provide for means of communication
`between system components. Hardware Environment 1110 is
`capable of communicating with local or remotes systems
`
`Page 7 of 9
`
`

`

`US 7,552,124 B2
`
`7
`connected to a communications network (e.g., a PAN or a
`WAN) through communication interface 1108.
`In one or more embodiments, hardware environment 1110
`may not include all the above components, or may include
`additional components for additional functionality or utility.
`For example, hardware environment 1110 can be a laptop
`computer or other portable computing device that can send
`messages and receive data through communication interface
`1108. Hardware environment 1110 may also be embodied in
`an embedded system such as a set-top box, a personal data 10
`assistant (PDA), a wireless communication unit (e.g., cellular
`phone), or other similar hardware platforms that have infor(cid:173)
`mation processing and/or data storage and communication
`capabilities. For example, in embodiments of the system
`mobile device 120 may be a PMG phone or equivalent.
`In embodiments of the system, communication interface
`1108 can send and receive electrical, electromagnetic, or
`optical signals that carry digital data streams representing
`various types ofinformation including program code. If com(cid:173)
`munication is established via the Internet, hardware environ- 20
`ment 1110 may transmit program code through an Internet
`connection. Central processor unit 1101 or stored in storage
`media 1106 or other non-volatile storage for later execution
`can execute the program code.
`Program code may be transmitted via a carrier wave or may 25
`be embodied in any other form of computer program product.
`A computer program product comprises a medium config(cid:173)
`ured to store or transport computer readable code or a medium
`in which computer readable code may be embedded. Some
`examples of computer program products are CD-ROM disks, 30
`ROM cards, floppy disks, magnetic tapes, computer hard
`drives, and network server systems.
`In one or more embodiments of the invention, processor
`1101 is a microprocessor manufactured by Motorola, Qual(cid:173)
`comm, Intel, Texas Instrunients, or Sun Microsystems Cor- 35
`porations. The named processors are for the purpose of
`example only. Any other suitable microprocessor, microcon(cid:173)
`troller, or microcomputer may be utilized.
`Referring to FIG. 3B, software environment 1120 is stored
`in storage media 1106 and is loaded into memory 1102 prior 40
`to execution. Software environment 1120 comprises system
`software 1121 and application software 1122. Depending on
`system implementation, certain aspects of software environ(cid:173)
`ment 1120 can be loaded on one or more hardware environ(cid:173)
`ments 1110.
`System software 1121 comprises control software such as
`an operating system that controls the low-level operations of
`hardware environment 1110. Low-level operations comprise
`the management of the system's resources such as memory
`allocation, file swapping, and other core computing tasks. In 50
`one or more embodiments of the invention, the operating
`system comprises at least one of Symbian, Nucleus,
`Microsoft Windows, Palm, or Macintosh operating systems.
`However, any other suitable operating system may be uti(cid:173)
`lized.
`Application software 1122 can comprise one or more com(cid:173)
`puter programs that are executed on top of system software
`1121 after being loaded from storage media 1106 into
`memory 1102. In a client-server architecture, application
`software 1122 may comprise client software and server soft- 60
`ware. Referring to FIG. 1, for example, in one embodiment of
`the invention, client software is executed on mobile device
`120 and server software is executed on network server 100.
`Software environment 1120 may also comprise web
`browser software 1126 for communicating with the Internet. 65
`Further, software environment 1120 may comprise a user
`interface 1124 (e.g., a Graphical User Interface (GUI)) for
`
`8
`receiving user commands and data. The commands and data
`received are processed by the software applications that run
`on the hardware environment 1110. The hardware and soft(cid:173)
`ware architectures and environments described above are for
`purposes of example. Embodiments of the invention may be
`implemented in any type of system architecture or processing
`environment.
`Embodiments of the invention are described by way of
`example as applicable to systems and corresponding methods
`that facilitate optimizing power consumption in a mobile
`device. In this exemplary embodiment, logic code for per-
`forming these methods is implemented in the form of, for
`example, application software 1122. The logic code, in one
`embodiment, may be comprised of one or more modules that
`15 execute on one or more processors in a distributed or non(cid:173)
`distributed communication model.
`It should also be understood that the programs, modules,
`processes, methods, and the like, described herein are but an
`exemplary implementation and are not related, or limited, to
`any particular computer, apparatus, or computer program(cid:173)
`ming language. Rather, various types of general-purpose
`computing machines or devices may be used with logic code
`implemented in accordance with the teachings provided,
`herein. Further, the order in which the steps of the present
`method are performed is purely illustrative in nature. In fact,
`the steps can be performed in any order or in parallel, unless
`indicated otherwise in the present disclosure.
`The method of the present invention may be performed in
`either hardware, software, or any combination thereof. In
`particular, the present method may be carried out by software,
`firmware, or macrocode operating on a computer or comput(cid:173)
`ers of any type. Additionally, software embodying the present
`invention may comprise computer instructions and be stored
`in a recording medium (e.g., memory stick, ROM, RAM,
`magnetic media, punched tape or card, compact disk (CD),
`DVD, etc.). Furthermore, such software may be transmitted
`in the form of a computer signal embodied in a carrier wave,
`and through communication networks by way of Internet
`portals or websites, for example. Accordingly, the present
`invention is not limited to any particular platform, unless
`specifically stated otherwise in the present disclosure.
`The present invention has been described above with ref(cid:173)
`erence to preferred embodiments. However, those skilled in
`the art will recogni

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