U.S. patent application number 09/783608 was filed with the patent office on 2002-01-03 for rendering data using rendering instructions based upon concept identifiers for the data.
Invention is credited to Eisler, Craig G., Roundtree, Brian.
Application Number | 20020002594 09/783608 |
Document ID | / |
Family ID | 22667981 |
Filed Date | 2002-01-03 |
United States Patent
Application |
20020002594 |
Kind Code |
A1 |
Roundtree, Brian ; et
al. |
January 3, 2002 |
Rendering data using rendering instructions based upon concept
identifiers for the data
Abstract
Rendering of data on user devices using rendering instructions
and interaction rules. The data includes concepts representing data
elements and having associated concept identifiers. Using the
concept identifiers, a system retrieves rendering instructions for
the corresponding data element in order to present the data element
on a display of a user device. For interactive elements that can be
selected by a user, the system retrieves interaction rules in order
to determine how to render data for the interactive element based
upon the user's selection of it.
Inventors: |
Roundtree, Brian; (Kirkland,
WA) ; Eisler, Craig G.; (Redmond, WA) |
Correspondence
Address: |
Lance Vietzke
Suite 300 South
1001 Pennsylvania Avenue, N.W.
Washington
DC
20004
US
|
Family ID: |
22667981 |
Appl. No.: |
09/783608 |
Filed: |
February 15, 2001 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60182330 |
Feb 14, 2000 |
|
|
|
Current U.S.
Class: |
709/217 ;
707/E17.013; 707/E17.121 |
Current CPC
Class: |
G10L 15/26 20130101;
G06Q 10/04 20130101; G06Q 30/06 20130101; G06F 16/957 20190101;
G06Q 10/109 20130101; H04L 67/51 20220501; H04W 4/12 20130101; G06Q
30/0203 20130101; G06F 16/748 20190101; G06F 16/9558 20190101; G06F
16/9577 20190101; G06Q 30/0201 20130101; G06F 16/94 20190101; G06F
16/9537 20190101; H04W 8/005 20130101 |
Class at
Publication: |
709/217 |
International
Class: |
G06F 015/16 |
Claims
What is claimed is:
1. A method for rendering data on a user device based upon
concepts, comprising: receiving incoming data at a user device, the
data including concept identifiers for use in identifying concepts
relating to the data; retrieving rendering instructions based upon
the concept identifiers; and rendering the data on the user device
based upon the rendering instructions.
2. The method of claim 1, further including: identifying
interactive elements within the data; and setting the interactive
elements according to the data and the rendering instructions.
3. The method of claim 2, further including: detecting selection of
one of the interactive elements; retrieving interaction rules based
upon the interactive element; and re-rendering the data based upon
the interaction rules.
4. The method of claim 3 wherein the re-rendering step includes
retrieving additional data from a remote server based upon the
selection of the interactive element.
5. The method of claim 1 wherein the receiving step includes
receiving as the data a string of data and corresponding tags
representing the concept identifiers.
6. The method of claim 5 wherein the rendering step including
parsing the string of data for presentation according to the
rendering instructions.
7. The method of claim 1 wherein the retrieving step includes
locally retrieving the rendering instructions at the user
device.
8. The method of claim 1 wherein the rendering step includes
formatting an appearance of visual elements for the data.
9. The method of claim 8 wherein the formatting step includes
selecting, based upon the rendering instructions, at least one of
the following: a particular color for presenting the data, a
particular icon for presenting the data, positioning of the data,
or a particular symbol for presenting the data.
10. The method of claim 1 wherein the retrieving step includes
selecting the rendering instructions based upon a particular type
of the user device.
11. An apparatus for rendering data on a user device based upon
concepts, comprising: a receive module for receiving incoming data
at a user device, the data including concept identifiers for use in
identifying concepts relating to the data; a retrieve module for
retrieving rendering instructions based upon the concept
identifiers; and a render module for rendering the data on the user
device based upon the rendering instructions.
12. The apparatus of claim 11, further including: a module for
identifying interactive elements within the data; and a module for
setting the interactive elements according to the data and the
rendering instructions.
13. The apparatus of claim 12, further including: a module for
detecting selection of one of the interactive elements; a module
for retrieving interaction rules based upon the interactive
element; and a module for re-rendering the data based upon the
interaction rules.
14. The apparatus of claim 13 wherein the module for re-rendering
includes a module for retrieving additional data from a remote
server based upon the selection of the interactive element.
15. The apparatus of claim 11 wherein the receive module includes a
module for receiving as the data a string of data and corresponding
tags representing the concept identifiers.
16. The apparatus of claim 15 wherein the render module including a
module for parsing the string of data for presentation according to
the rendering instructions.
17. The apparatus of claim 11 wherein the retrieve module includes
a module for locally retrieving the rendering instructions at the
user device.
18. The apparatus of claim 11 wherein the render module includes a
module for formatting an appearance of visual elements for the
data.
19. The apparatus of claim 18 wherein the module for formatting
includes a module for selecting, based upon the rendering
instructions, at least one of the following: a particular color for
presenting the data, a particular icon for presenting the data,
positioning of the data, or a particular symbol for presenting the
data.
20. The apparatus of claim 11 wherein the retrieve module includes
a module for selecting the rendering instructions based upon a
particular type of the user device.
Description
REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to the following
applications, all of which are incorporated herein by reference as
if fully set forth: Brian C. Roundtree U.S. provisional patent
application Ser. No. 60/182,330, entitled "Web-Based Personal
Assistance Communication Method," and filed Feb. 14, 2000; United
States patent application of Brian C. Roundtree, entitled
"Web-Based Personal Assistance Communication System," and filed
Jul. 17, 2000; United States patent application of Brian C.
Roundtree, entitled "Web-Based Personal Assistance Communication
Method," and filed Jul. 17, 2000; United States patent application
of Brian C. Roundtree, entitled "Web-Based Personal Assistance User
Interface System," and filed Jul. 17, 2000; United States patent
application of Brian C. Roundtree, entitled "Voice-to-Concept
Conversion System," and filed on Sep. 8, 2000; United States patent
application of Craig G. Eisler and Brian C. Roundtree, entitled
"On-Line Service Provider Sign-Up System," and filed on Sep. 8,
2000; United States patent application of Keldon V. Rush and Brian
C. Roundtree, entitled "System for Converting Textual Concepts to
Interactive Audio and Audio/Visual Presentations," and filed on
Sep. 8, 2000; United States patent application of Brian C.
Roundtree, entitled "System for Obtaining Service-Related
Information for Local Interactive Wireless Devices," and filed on
Sep. 8, 2000; United States patent application of Cristiano L S
Pierry and Brian C. Roundtree, entitled "System for Secure
Electronic Transactions Using Unique Identifiers for Order-Related
Information," and filed on Sep. 8, 2000; United States patent
application of Brian C. Roundtree, entitled "Airline Flight
Departure and Arrival Prediction Based Upon Historical and
Real-Time Data," and filed on same date herewith; United States
patent application of Craig G. Eisler and Brian C. Roundtree,
entitled "Hypertext Concept Notation for Dynamically Constructing a
Sentence to Respond to a User Request," and filed on same date
herewith; United States patent application of Craig G. Eisler and
Brian C. Roundtree, entitled "Assembling Personal Information of a
Target Person Based Upon Third-Party Information and a Request
Purpose," and filed on same date herewith; United States patent
application of Brian C. Roundtree, entitled "Automated Reservation
and Appointment System Using Interactive Voice Recognition," and
filed on same date herewith; and United States patent application
of Cristiano L S Pierry and Brian C. Roundtree, entitled "Automated
Alert State Change of User Devices for Time-Based and
Location-Based Events," and filed on same date herewith.
FIELD OF THE INVENTION
[0002] The present invention relates to an apparatus and method for
rendering data using rendering instructions for data elements and
interaction instructions for interactive elements.
BACKGROUND OF THE INVENTION
[0003] Wireless devices, such as cell phones and personal digital
assistants (PDAs), are becoming more commonly used and have the
potential for communication over the Internet in addition to
traditional telephone networks. The Internet communication with
these devices permits users to obtain services and other related
information using wireless communication with the devices. For
example, a user can download content from the world wide web on the
Internet using a cell phone and have the information displayed on
the display panel of the cell phone. Therefore, in addition to
using the cell phone for voice communication, the user can obtain
content over the Internet concerning, for example, services
available from service providers. The user can also execute
transactions over the Internet using the cell phone or other
wireless device. For example, the user can make electronic
purchases for good or services, analogous to how users can make
transactions over the Internet using a personal computer having a
connection to the Internet.
[0004] Many wireless devices, however, provide for limited ways to
enter information for communications over the Internet. Cell
phones, for example, typically have only a key pad in addition to a
microphone, making entry of textual information slow and
inconvenient. Other devices, such as PDAs, may have even more
limited ways to enter textual information. Therefore, these devices
do not typically provide the same ease of interacting over the
Internet as provided by a personal computer having a keyboard and
cursor-control device for easy and convenient "point and click"
selection of content displayed in web pages. These devices may also
be limited in how information can be displayed. Wireline devices,
such as conventional phones, provide for even more limited
interaction over the Internet.
[0005] Also, when using these user devices to execute the
transactions, the information available through the transactions is
often limited. A user request for content often results in generic
content potentially applicable to many situations other than the
particular situation of the user. For example, a user may want
information about purchasing gifts for others or information about
services available such as travel-related information. In response
to a request for such information, the user may be provided with
information about gifts for generic categories and other
information for general travel-related services. Without targeting
the information to the user's situation, the information may not
have much value to the user.
[0006] Accordingly, a need exists for increased options and
versatility for user's having wireless devices or wireline devices
to interact and make transactions over the Internet, for increased
versatility to request service or make transactions with service
providers, and for obtaining more information targeted to a user's
particular situation or request.
SUMMARY OF THE INVENTION
[0007] A method and apparatus consistent with the present invention
render data on a user device based upon concepts. The user device
receives incoming data including concept identifiers for use in
identifying concepts relating to the data. Rendering instructions
are received based upon the concept identifiers, and the data is
rendered on the user device based upon the rendering
instructions.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The accompanying drawings are incorporated in and constitute
a part of this specification and, together with the description,
explain the advantages and principles of the invention. In the
drawings,
[0009] FIG. 1 is a diagram of a system for processing requests for
service;
[0010] FIG. 2 is a diagram of a network for communicating with
wireless and wireline devices and service providers to process
requests for service;
[0011] FIG. 3 is a diagram of exemplary components of a server for
processing requests for service;
[0012] FIG. 4 is a diagram of exemplary components of a wireless
device;
[0013] FIG. 5 is a flow chart of a method for rendering data on a
user device;
[0014] FIG. 6 is a flow chart of a method for re-rendering
interactive elements based upon a user's selection of them;
[0015] FIG. 7 is a diagram illustrating rendering of a data
elements and interactive elements on a user device;
[0016] FIG. 8 is a diagram illustrating an example of rendering
data including interactive elements; and
[0017] FIG. 9 is a diagram illustrating another example of
rendering data including interactive elements.
DETAILED DESCRIPTION
Introduction
[0018] Embodiments consistent with the present invention provide
various features for a web-based electronic personal assistant, as
described in the web-based personal assistance applications
identified above. The electronic personal assistant is implemented
with a system server that the receives requests from users through
wireless or wireline devices and processes the requests in order to
provide the user with requested service or information. These
features permit the user to interact with the system server in a
variety of ways such as through a display on the device, a keyboard
or keypad, or through voice interaction. The system server can
present information to the user in a variety of ways as well, such
as through audio communication or through information presented on
a display with, for example, textual information, screens, or web
pages presented with HyperText Markup Language (HTML).
[0019] The requests, as explained in the web-based personal
assistance applications identified above, can include any request
for service or information. For example, a user may request a
meeting, and in response the system server queries the user to
obtain information required to arrange the meeting and then
automatically makes the arrangements. As another example, a user
may request information concerning services in a particular
geographic location or based upon other parameters, and the system
server can query the user to determine the type of information
requested, such as particular types of retail establishments, and
provide the information to the user. As another example, a user may
request to purchase goods or services, or make reservations for
services, and in response the system server queries the user to
determine the type of goods or services desired as well as other
information such as a desired price. Based upon that information,
the system server automatically makes the purchase for the user.
For the reservations example, the system server can query the user
to determine information required to make the reservations for the
user. For any request, the system server can access user
preferences to obtain information required or useful to process the
request, such as the user's credit card information and shipping
address.
[0020] In addition, the system server can automatically notify the
user of particular information. The system server typically
maintains a database of preferences for the users in order to help
process the requests. It also maintains a concept database and uses
the concepts in order to retrieve and construct queries, such as
text fragments, for the user. The use of only text fragments, for
example, saves transmission time in comparison to transmission of
graphical information over a network; alternatively, graphics can
be used in addition to the text fragments.
[0021] Based upon the type of request, and potentially user
preferences, the system server selects the appropriate queries from
the concept database to obtain information to process the request.
Upon completion of the processing, the system server can present to
the user a sentence constructed from the related concepts in order
to confirm the request. It can also use the sentence to document
the request, retrieve the appropriate resources for it, and
otherwise fulfill the request. This process, and the use of these
concepts and the structure for a concept database, are further
described in the web-based personal assistance applications
identified above.
[0022] The system server can also cross-reference the concept
database with a service provider database. In order to fulfill
requests, the system server can access a database identifying
available service providers for the request. At the end of each
string of concepts in the concept database, that database can
specify a link or pointer to the relevant service providers in the
service provider database. For example, if the request is for a
meeting, once the system server has all the relevant information as
constructed from the concepts, the concept for the location of the
meeting can include a pointer or link to the establishments
proximate the location and available to provide food for the
meeting. Therefore, information for relevant service providers can
be associated with the appropriate concepts in the concept
database.
Request Processing
[0023] FIG. 1 is a diagram of a system for fulfilling a request for
service. The system includes a system server 10 for processing a
request transmitted from a requester 12 through a network 14 such
as the Internet or other wireline or wireless network. System
server 10 includes several software modules for processing the
request from requestor 12. A communicator module 16 manages an
interface for the communications with requestor 12 over network 14.
Communicator module 16 receives the request and provides necessary
formatting and other processing for transmitting it to a planner
module 22.
[0024] Planner module 22 interacts with a service provider module
24 in order to obtain the resources for fulfilling the request. In
particular, service provider module 24 interacts over a network 30,
such as the Internet or a phone network, with one or more service
providers 32 in order to obtain services to fulfill the request.
Service provider module 24 provides for communication and data
conversion for the interaction, while planner module 22 manages
processing of the request and interacts with various databases for
processing the request. A private credit card service module 28 can
provide for secure order processing of the request to help
safeguard users' personal information such as credit card
numbers.
[0025] Once the planner module 22 has obtained the resources for
the request, it communicates information to fulfill the request to
an executor module 18. Executor module 18 includes a pending plan
database 20 for storing and managing resources and other
information to fulfill the request. Executor module 18 thus
communicates back over network 14 with requester 12 to provide
confirmation of the request and also to execute the request.
[0026] A learning module 26 can provide for fine-tuning plan data
within a database 34 in order to more efficiently process requests,
particularly from the same requestor. Other databases include a
database 36 storing financial data accessed by executor module 18,
and a database 38 storing personal data accessed by executor module
18 and planner module 22. The personal data can include an account
for each user having a profile and preferences for the users, and
the information can be indexed by a particular user identifier such
as a phone number or code.
[0027] Table 1 illustrates a user account. As shown, the user
accounts can include users' preferences for a wide variety of
information such as for travel, dining, and other types of service
providers. The user preferences can be continually updated and
refined over time as the system server gathers more information
concerning the user, and the system server can optionally use
learning models for the refinements and use the preferences to make
"smart choices" in processing users' requests. The information can
be stored in a variety of ways such as in a relational database or
with name-value pairs in Extensible Markup Language (XML).
1 TABLE 1 user 1 identifier data contact name, address profile user
1 characteristics hotel information user 1 hotel preferences
airline information user 1 airline preferences rental car
information user 1 rental car preferences restaurant information
user 1 restaurant preferences service provider preferences user 1
service provider preferences other category user 1 preferences for
the category
[0028] Processing to fulfill the request is further explained in
the web-based personal assistance applications identified
above.
Network
[0029] FIG. 2 is a diagram of an exemplary network 50 illustrating
interaction for receiving and processing requests from users such
as requestor 12. It illustrates how the system can receive requests
through wireless and wireline transmission over conventional phone
and cellular networks as well as the Internet or other computer
networks. A requester typically makes a request from a wireless or
wireline device. The wireless devices include any device capable of
wireless electronic communication and examples include the
following: cellular phones; PDAs with wireless network access;
wireless Internet appliances; personal computers (including
desktop, laptop, notebook, and others) with wireless network
access; and personal computers with microphones, speakers, and
circuitry for permitting wireless phone calls. The wireline devices
include any device capable of electronic wireline communication and
examples include the following: conventional phones; PDAs with
wireline network access; Internet appliances; personal computers
(including desktop, laptop, notebook, and others) with wireline
network access; and personal computers with microphones, speakers,
and circuitry for permitting wireline phone calls.
[0030] A wireless device 52, for example, can interact through
wireless transmission with a base station 56 for communication over
a personal communication system (PCS) 58. A request may also be
made from a wireline device 54 communicating over a public switched
telephone network (PSN) 60. Systems for wireless and wireline
communication, includes a PCS and PSN, are known in the art.
[0031] Communications through networks 58 and 60 are transmitted
through a gateway 62 and potentially a buffer 64 to a speech
processor 66 for performing processing of audio or particular types
of communications, such as for voice-to-text conversion. Also, the
communication may occur directly from gateway 62 to an interface
server 68. Interface server 68 controls gateway 62, and it provides
an interface between a system server 76 and gateway 62, speech
processor 66, and the world wide web 70.
[0032] System server 76 corresponds with system server 10 in FIG. 1
to process user requests. Interface server 68 provides the data
conversion and processing for transferring data to and from system
server 76. As shown by the dashed line, speech processor 66 and
interface server 68 can be implemented with the same physical
machine or with different machines. Also, system server 76 can be
implemented with one or more physical machines and can also be
programmed to implement the functions of speech processor 66 and
interface server 68.
[0033] In addition to receiving requests over networks 58 and 60,
interface server 68 can receive a request over the world wide web
70. In particular, a wireless device 74 can interact through
wireless communication with a PCS 72, which communicates over the
world wide web 70 through a communication protocol such as, for
example, the wireless application protocol (WAP). The WAP for
communications over the Internet is known in the art.
[0034] System server 76 can communicate over the world wide web 78
with various service provides 80 to fulfill requests. In addition,
system server 76 can communicate with credit card processing or
other financial networks 86 in order to provide financial
processing for fulfilling requests. Networks 86 can include known
networks, including banking networks, for processing credit card
transactions. As shown, service providers 80 and financial networks
86 can also send and receive communications through a PCS 82 and
PSN 84.
[0035] System server 76 can communicate directly over the world
wide web 78 to a gateway 88 and base station 90 in order to provide
communication directly with a wireless device 92. Also as shown,
communications can occur from system server 76 back through
interface server 68 and speech processor 66 to the end user
wireless devices 52 and 74 and wireline device 54; system server 76
can also communicate directly with gateway 62, as shown. Those
communications can provide, for example, confirmation of a request
or information responsive to a request.
[0036] Network 50 illustrates fundamental hardware components for
communications over the various types of networks shown. As known
in the art, network 50 can include additional components and can
also include components for providing services known in the art
with respect to phone calls. For example, it can include a caller
ID service to provide system server 76 with the phone number of the
user's wireless or wireline device originating a communication.
Also, network 50 can include other means for communication of data
such as through satellite transmission. For transmission over the
Internet, network 50 can use Transmission Control Protocol/Internet
Protocol (TCP/IP) or other protocols.
Server Components
[0037] FIG. 3 depicts a server 100 illustrating exemplary hardware
components of system server 10 and other machines used by the
system, such as speech processor 66 and interface server 68. Server
100 includes a connection with a network 116 such as the Internet
or other type of computer or phone networks, which may correspond
with the networks shown in FIGS. 1 and 2. Server 100 typically
includes a memory 102, a secondary storage device 110, a processor
112, an input device 114, a display device 108, and an output
device 106.
[0038] Memory 102 may include random access memory (RAM) or similar
types of memory, and it may store one or more applications 104 for
execution by processor 112. Applications 104 may correspond with
software modules to perform processing for the functions described
below. Secondary storage device 110 may include a hard disk drive,
floppy disk drive, CD-ROM drive, or other types of non-volatile
data storage, and it may correspond with the various databases
shown in FIG. 1. Processor 112 may execute applications or programs
stored in memory 102 or secondary storage 110, or received from the
Internet or other network 116. Input device 114 may include any
device for entering information into server 100, such as a
keyboard, key pad, cursor-control device, touch-screen (possibly
with a stylus), or microphone. Display device 108 may include any
type of device for presenting visual information such as, for
example, a computer monitor, flat-screen display, or display panel.
Output device 106 may include any type of device for presenting a
hard copy of information, such as a printer, and other types of
output devices include speakers or any device for providing
information in audio form. Server 100 can possibly include multiple
input devices, output devices, and display devices.
[0039] Although server 100 is depicted with various components, one
skilled in the art will appreciate that this server can contain
additional or different components. In addition, although aspects
of an implementation consistent with the present invention are
described as being stored in memory, one skilled in the art will
appreciate that these aspects can also be stored on or read from
other types of computer program products or computer-readable
media, such as secondary storage devices, including hard disks,
floppy disks, or CD-ROM; a carrier wave from the Internet or other
network; or other forms of RAM or ROM. The computer-readable media
may include instructions for controlling server 100 to perform a
particular method.
Wireless Device Components
[0040] FIG. 4 illustrates exemplary hardware components of a
wireless device 120, which may correspond with the exemplary
wireless devices identified above. Wireless device 120 typically
includes a memory 122, a secondary storage device 130, a processor
132, an input device 134, a display device 128, an output device
126, a transmitter/receiver 136, and a short range
transmitter/receiver 138.
[0041] Memory 122 may include RAM or similar types of memory, and
it may store one or more applications 124 for execution by
processor 132. Applications 124 may correspond with software
modules to perform processing for the functions described below,
and they may also include web browser programs for retrieving and
displaying content from the Internet. Secondary storage device 130
may include a hard disk drive, floppy disk drive, CD-ROM drive, or
other types of non-volatile data storage such as a ROM. Processor
132 may execute applications or programs stored in memory 122 or
secondary storage 130. Input device 134 may include any device for
entering information into wireless device 120, such as a keyboard,
key pad, cursor-control device, touch-screen (possibly with a
stylus), or microphone. Wireless device 120 can include multiple
input devices; for example, it can include both a microphone and
key pad for a cell phone. Display device 128 may include any type
of device for presenting visual information such as, for example, a
computer monitor, flat-screen display, or display panel. Output
device 126 typically includes a speaker for providing information
in audio form. It can also include a device for providing a hard
copy of information such as a printer, or provide a port for a
connection to a printer. Wireless device 120 can possibly include
multiple input devices, output devices, and display devices.
[0042] Transmitter/receiver 136 provides for wireless communication
with phone networks or computer networks such as is shown in FIGS.
1 and 2. Transmitter/receiver 136 can be implemented with known RF
transmitters and receivers for providing cellular transmission
between wireless device 120 and base stations such as base stations
56 and 90, or it can be implemented with a wireless
transmitter/receiver for other types of communication such as a
satellite transmission.
[0043] Short range transmitter/receiver 138 provides for wireless
short range communication with other wireless devices, and it can
be implemented with transmitters and receivers that operate
according to the IEEE standard 802.11 for local wireless networks
or according to the standard referred to as the Bluetooth.TM.
technology for direct wireless communication between local
interactive wireless devices; that technology is explained in, for
example, the Specification of the Bluetooth System, Core, v1.0 B,
Dec. 1, 1999 and the Specification of the Bluetooth System,
Profiles, v1.0 B, Dec. 1, 1999, both of which are incorporated
herein by reference.
[0044] In addition, even if a wireless device does not contain
short range transmitter/receiver 138, technology exists to obtain
an approximate geographic location of certain wireless devices. In
particular, using multiple base stations the signal from a cellular
phone, for example, can be triangulated in order to obtain an
approximate geographic location of the cellular phone, including an
indication of its vertical (altitude) location.
[0045] Although wireless device 120 is depicted with various
components, one skilled in the art will appreciate that this
wireless device can contain additional or different components. In
addition, although aspects of an implementation consistent with the
present invention are described as being stored in memory, one
skilled in the art will appreciate that these aspects can also be
stored on or read from other types of computer program products or
computer-readable media, such as secondary storage devices,
including hard disks, floppy disks, or CD-ROM; a carrier wave from
the Internet or other network; or other forms of RAM or ROM. The
computer-readable media may include instructions for controlling
wireless device 120 to perform a particular method.
[0046] Exemplary hardware components for wireline devices, such as
the examples provided above, can include the same components as
wireless device 120 except without the transmitter/receiver 136 and
the short range transmitter/receiver 138.
Data Rendering
[0047] Data rendering provides the information for how to present
data corresponding to concepts on a user device. The use of
concepts is discussed in the related applications identified above.
The concepts are associated with concept identifiers, which are
used to index rendering instructions. A user device receives a data
string and repeatedly parses it to obtain the concept identifiers
and then retrieve the corresponding rendering instruction, which it
uses to render the data on a display for the user device. It can
also render and process interactive elements using the rendering
instructions and interaction rules specifying how to process a
user's selection of the interactive elements. The rendering
instructions and interaction rules can be accessed remotely at the
system server, or stored locally to perform the processing at the
user device. Although concept identifiers are used to retrieve
rendering instructions, other types of links or indexing of data
with rendering instructions can be used.
[0048] FIG. 5 is a flow chart of a method 150 for rendering data on
a user device. Method 150 can be implemented, for example, with
software or firmware modules on a server such as system server 10
and the user device such as device 120, as necessary to perform the
method. In method 150, a user interface (UI) program receives
incoming data (step 152). The data can be transmitted, for example,
as a data string formatted in XML. The UI program can be resident
on the user device and execute steps of method 150 occurring at the
user device.
[0049] Table 2 provides an example of a portion of a data string
for airline flight information. As illustrated in Table 2,
different concept identifiers can be used for different items, in
this example flights and car rental companies. Also, the concept
data is provided between identification of the concept, and certain
types of data such as the alternate flight times are separate by
the ";" symbol as a delimiter. XML nomenclature is known in the
art, and other types of nomenclature can be used for transmitting
data for rendering. In this exemplary nomenclature, tags are used
to represent the concept identifiers.
2TABLE 2 <XML!> <concept ID>243<\concept ID>
<Flight>1242<\Flight> <Airline>United
Airlines<\Airline> <Selected>True<\Selected> . .
. <Alternate Departure Flight Times>8:15; 9:15; 10:15
</Alternate Departure Flight Times> . . . <concept
ID>266<concept ID> <Rental Car
Company>Hertz<\Rental Car Company> . . . <\XML!>
[0050] The UI program determines an operating system and user
interface settings of the associated user device (step 154). User
interface settings can specify, for example, user-entered options
for displaying data such colors, a font size, or other formatting.
The UI program then begins parsing the data string to obtain a
concept identifier (step 156). It can identify a concept identifier
according to the nomenclature for the data string. Upon obtaining a
concept identifier, the UI program uses the concept identifier and
optionally the settings to look up rendering instructions for the
data (step 158), and the UI program retrieves the rendering
instructions (step 160).
[0051] Table 3 provides an example of a data structure for storing
rendering instructions. As illustrated in Table 3, the rendering
instructions and identification of interactive elements can be
indexed by concept identifiers, along with a type of user device
and operation system. The rendering instructions provide the
information for how to present the concept data corresponding to
the concept identifier, and examples are provided below. The
rendering instructions can be stored at the system server and
downloaded; alternatively, they can be stored on the user device to
allow the UI program to perform the processing locally.
[0052] The rendering instructions can be retrieved and based upon a
number of factors such as, for example, the following: conventional
or standard appearances for particular types of data; a type, size,
and the capabilities of a display of the user device; a type of
user device; an operating system for the user device; user
preferences; user input; and a language identifier. Each of these
factors can be used, for example, in conjunction with the concept
identifiers to index the rendering instructions as illustrated in
Table 3. Also, the rendering instructions can be stored in multiple
locations. For example, the user device, for step 160, can retrieve
default rendering instructions from a remote server for data
corresponding to a particular concept identifier and then locally
retrieve additional instructions to modify or redefine the default
rendering instructions based upon user input, preferences, or other
factors. The user may wish to define, for example, particular
colors for the data or other formatting, and the user device can
redefine the default rendering instructions in order to change the
default color or other formatting of the data to the user-defined
color or other formatting after retrieving the default rendering
instructions. Therefore, the user device can implement additional
flexibility in rendering data based upon local instructions, remote
instructions, or a combination.
3TABLE 3 Rendering Interactive concept ID UI/OS Instructions
Elements 243 Palm Pilot, v. 3.5 instructions 1 element type 1 243
Windows 2000 instructions 2 element type 2 . . . 266 Palm Pilot, v.
3.5 instructions 3 element type 3 266 Windows 2000 instructions 4
element type 4 . . . concept ID N . . . instructions N element type
N
[0053] The UI program renders the concept data and displays it on
the user device according to the rendering instructions (step 162).
The UI program also determines if the concept data includes an
interactive element (step 164). If so, the UI program sets the
element in the display on the user device according to the
corresponding data and the rendering instructions (step 166).
[0054] The UI program determines whether more concepts exist to
render (step 168). It can make this determination by detecting
whether it has reached the end of the data string according to the
nomenclature or as indicated by a particular code. If more concepts
exist, the UI program returns to step 156 to continue to parse to
data string in order to obtain the next concept and render the
corresponding concept data.
[0055] FIG. 6 is a flow chart of a method 170 for re-rendering
interactive elements based upon a user's selection of them. Method
170 can be implemented, for example, with software or firmware
modules on a server such as system server 10 and the user device,
as necessary to perform the method. In method 170, the UI program
detects a user's selection of an interactive element on the display
for the user device (step 172). Upon detecting the selection, the
UI program obtains the corresponding concept identifier (step 174).
The concept data representing an interactive element is linked with
the corresponding concept identifiers, as explained in the related
application identified above, permitting the UI program to obtain a
concept identifier for the selected concept data.
[0056] The UI program uses the concept identifier and interactive
element to look up interaction rules and rendering instructions for
the element (step 178) and retrieve the interaction rules and
rendering instructions (step 178). Table 4 provides an example of a
data structure for indexing interaction rules according to types of
interactive elements. Concept identifiers can also be associated
with interactive elements, as represented by concept data, and used
to index interaction rules. The interaction instructions can be
stored at the system server and downloaded; alternatively, they can
be stored on the user device to allow the UI program to perform the
processing locally.
4 TABLE 4 Interactive Element Interaction Rules interactive element
type 1 rules 1 interactive element type 2 rules 2 . . . interactive
element type N rules N
[0057] The UI program re-renders the interactive element on the
user device according to the interaction rules and the rendering
instructions (step 180). The rendering instructions and interaction
rules provide the information for how to present and change the
appearance of the corresponding interactive element based upon the
user's selection of it. Examples are provided below.
[0058] FIG. 7 is a diagram 190 illustrating rendering of a data
elements and interactive elements on a display for a user device.
Diagram 190 illustrates that data for rendering can include one or
more data elements 192, 194, and 196. These data elements represent
static data that does not usually change upon re-rendering and is
not necessarily intended for selection by a user; rather, these
elements convey information to the user. These elements can take on
a wide variety types of information based upon the rendering
instructions and can include, for example, text, graphics,
alphanumeric data, symbols, icons, or audiovisual information. The
formatting based upon the rendering instructions can include, for
example, the following for the data: various fonts, shading,
colors, icons, symbols, lines, graphics, positioning, or anything
affecting the visual appearance of the data.
[0059] The displayed information can also include one or more
interactive elements 198, 200, and 202. The interactive elements
can also provide information to the user and are intended for
selection by the user to perform a command such as changing the
displayed and entered data corresponding to the interactive
element, changing the appearance of the data, or retrieving
additional information.
[0060] FIG. 8 is a diagram of an exemplary display 210 on a user
device illustrating rendering of data including interactive
elements according to diagram 190 and the methods described above.
Display 210 includes as an example providing airline flight
information, and it includes both data elements and interactive
elements. A data element 214 is an "airplane" icon and illustrates
how the data elements can include icons or symbols relating to the
displayed information in order to, for example, provide a
visually-appealing display. Data element 216 provides the flight
information, in this example including a flight number, airline
company, and seat classification.
[0061] Data elements 218 and 220 indicate departure and arrival
cities. These data elements are each shown enclosed within a box to
represent an interactive element in this example. If a user selects
the departure or arrival city, for example, the displayed box may
be shown in a different color than the city name to indicate its
selection, and additional cities can be displayed and selected in
the box. Upon the user's selection of a new city, the UI program
re-renders the data to show the new city in the box. The
interaction rules determine how the element changes upon selection
of it, in this example changing a color of the box. Interactive
elements 218 and 220 can be selected by a user tapping on a
touch-screen at the location of those displayed elements, for
example, or through other types of user-entered commands.
[0062] Data elements 222 and 226 indicate departure and arrival
times for the flight, and a displayed line 224 underneath the
departure time indicates that additional departure times are
available. Upon a user's selection of the departure time 222,
additional times can be displayed for selection by the user. A data
element 212 represents a box for selection by the user to reserve
the flight in this example. Therefore, if a user selects box 212,
the UI program, according to the interaction rules, inserts a
"check" mark in the box. Likewise, if box 212 already contains a
"check" mark, a user can select it again to cancel the flight
reservation, and according to the interaction rules the UI program
removes the displayed "check" mark from the box.
[0063] FIG. 9 is a diagram of another exemplary display 230 on a
user device illustrating rendering of data and including
interactive elements. Display 230 includes a section 232 displaying
in this example various travel-related options. A section 234 can
display rental car reservations, a section 236 can display a
limousine reservation, a section 238 can display airline flight
reservations, and a section 240 i can display hotel reservations. A
displayed "triangle" symbol 242 indicates a current one of the
sections 234, 236, 238, and 240 for selection.
[0064] Selection of a displayed "up" arrow 250 causes triangle 242
to move upward; for example, from section 238 to section 236.
Selection of a displayed "down" arrow 252 causes triangle 242 to
move downward; for example, from section 238 to section 240. A
section 246 permits the user to select one of the sections 234,
236, 238, and 240. For example, by selecting section 246, the user
selects current section 238 and can then enter or select a flight
reservation. By selecting section 244, the user deselects current
section 238 and can cancel a flight reservation. The selection of
sections 234, 236, 238, and 240, and movement of triangle 242, are
re-rendered based upon the interaction rules. They can be selected
through selection of the sections of a touch-screen presenting
them, or other types of user-entered commands.
[0065] While the present invention has been described in connection
with an exemplary embodiment, it will be understood that many
modifications will be readily apparent to those skilled in the art,
and this application is intended to cover any adaptations or
variations thereof. For example, various types of user devices,
hardware components for the devices and servers, and types of
network transmissions may be used without departing from the scope
of the invention. This invention should be limited only by the
claims and equivalents thereof.
* * * * *