`
`US 6,353,839 Bl
`Page 2
`
`OIBER PUBLICATIONS
`
`Gundavaram, Shisir, CGI Programming on the World Wide
`Web, O'Reilly & Associates, pp. 47, 48, 56, 57, 268-271,
`389, 390, Mar. 1996.*
`Johnson, Marc, JavaScript Manual of Style, Ziff-Davis
`Press, pp. 14-17, 67-73, 145-150, 169-180, Dec. 1996.*
`Khare, Rohit et al (editors), Scripting Languages: Automat(cid:173)
`ing the web, O'Reilly& Associates, pp. 87-95, 211-215,
`Apr. 1, 1997. *
`Light, Richard, Presenting XML, Sams.net Publishing, pp.
`134, 135, 139, 291-294, Dec. 1997.*
`
`third edition,
`
`Microsoft Press Computer Dictionary,
`Microsoft Press, pp. 166, 278, Dec. 1997.*
`Oliver, Dick et al, Sams' Teach Yourself HTML 4 in 24
`Hours, second edition, pp. 35, 249-255, 258, 259, 369-371,
`Dec. 1997.*
`Morris, Mary E. S., HTML for Fun and Profit, SunSoft
`Press, pp. 51, 52, 97, 98, Dec. 1996.*
`Schwartz, Randal L. et al, learning Perl, second edition,
`O'Reilly & Associates, p. 6-8, 21, Jul. 1997.*
`
`* cited by examiner
`
`Fitbit, Inc. v. Philips North America LLC
`IPR2020-00828
`
`Fitbit, Inc. Ex. 1024 Page 0002
`
`
`
`
`
`,~
`
`~ -..,.
`
`I SIM
`IDATAI
`... ...
`~
`I EEPROM 1~
`m~ 8
`
`~
`
`~ ..
`
`~
`
`128
`
`TXData
`
`..
`.... INT
`
`Physical Layer
`Processor
`
`~
`
`.....
`
`~
`
`~
`
`Signal
`Processor
`
`ADSP-2171
`
`t
`
`DISPLAY
`116
`
`~ -..,.
`
`.... ..
`
`ROM
`122
`
`124
`126
`
`I._
`
`ADSP-TTPOl
`
`....
`.....
`
`Radio
`Control
`
`~
`~
`
`....
`
`Fi!!. 2
`
`120
`
`....
`...
`
`Speech
`
`... .
`
`Baseband
`
`3
`
`..,
`..,
`
`ADCs
`0
`
`.RXData
`-..,.
`
`Power~
`
`~m
`Converter TX 1/Q.._ ..
`..
`AGC ~ ..
`.RXI/Q
`
`Radio
`
`..
`~ AD7015
`
`AFC
`
`13MCL
`
`osc
`
`~
`
`~ ...
`
`\
`
`-
`
`d •
`r:JJ.
`•
`~
`~ .....
`~ = .....
`
`~
`~ :;
`~Ul
`N
`C
`C
`N
`
`'JJ. =(cid:173)~
`~ ....
`N
`0 ....,
`
`O'I
`
`e
`
`rJ'J.
`O'I
`~
`(It
`"'~
`~
`~
`
`'° ~
`
`i,-
`
`Fitbit, Inc. v. Philips North America LLC
`IPR2020-00828
`
`Fitbit, Inc. Ex. 1024 Page 0004
`
`
`
`
`
`U.S. Patent
`
`Mar.5,2002
`
`Sheet 4 of 6
`
`US 6,353,839 Bl
`
`401
`
`"'
`
`Create New
`Message Activity
`
`I Step 1
`I Step 2
`I
`
`Step 3
`
`I
`I
`I
`
`Email Service [402]
`
`View Message
`Activity
`
`I Step 1
`I Step 2
`.
`. .
`. . .
`
`Step N
`
`I
`
`403
`
`"'
`
`I
`I
`
`I
`405
`/
`
`Delete Message
`Activity
`
`407
`/
`Forward Message
`Activity
`
`I Step 1
`
`I Step2
`.
`.
`.
`•
`.
`•
`
`I
`
`I
`
`I
`
`I
`
`I
`
`I
`
`Step 1
`
`Step 2
`.
`.
`.
`.
`•
`•
`
`Fig. 4A
`
`Fitbit, Inc. v. Philips North America LLC
`IPR2020-00828
`
`Fitbit, Inc. Ex. 1024 Page 0006
`
`
`
`U.S. Patent
`
`Mar.5,2002
`
`Sheet 5 of 6
`
`US 6,353,839 Bl
`
`Hand held Device Memory [ 400]
`
`417
`
`415
`
`413
`
`411
`
`I
`Variable
`-
`Variable_J
`
`Variable_G
`Variable_H
`
`Variable_D
`Variable_E
`Variable_F
`
`Variable_A
`Variable_B
`Variable_C
`
`Top of Activity
`Stack
`
`URL_F
`URL_E
`URL_D
`URL_C
`URL_B
`URL_A
`
`Activity Stack [ 420]
`
`Navigation History
`Stack [430]
`
`Fig. 48
`
`Fitbit, Inc. v. Philips North America LLC
`IPR2020-00828
`
`Fitbit, Inc. Ex. 1024 Page 0007
`
`
`
`U.S. Patent
`
`Mar.5,2002
`
`Sheet 6 of 6
`
`US 6,353,839 Bl
`
`'.
`
`HDML [511 ]
`Card
`
`Prev
`
`Go
`n
`HDML [S1S]
`Card
`
`Go
`
`H.
`Prev
`
`,;) 5
`
`HDML [SB1]
`Card
`
`H~ML
`
`Return
`
`HDML [5511
`
`Activity GoSub
`
`:~~;?~ ____ :a:~----------~~-~~~~~:------------~~:~~.--~ • ______ ! ____ _
`
`'
`I
`
`i
`
`G:ir~L [~::]rev
`
`Retur~Cancel
`
`I
`
`~ir~L [525] --- - _:~:~~n~:~------______ i
`
`Alternate Return
`
`Fig. 5
`
`Fitbit, Inc. v. Philips North America LLC
`IPR2020-00828
`
`Fitbit, Inc. Ex. 1024 Page 0008
`
`
`
`US 6,353,839 Bl
`
`1
`METHOD FOR INLINE VARIABLES
`MANAGEMENT IN A HYPERMEDIA
`DISPLAY LANGUAGE
`
`FIELD OF THE INVENTION
`
`The present invention relates to the field of computer
`languages. In particular the present invention discloses
`methods for inline variable management into a hypermedia
`display language.
`
`BACKGROUND OF THE INVENTION
`
`2
`supplied information is processed and incorporated into new
`display pages that are then returned to the mobile devices.
`The disadvantages of this method when used in the mobile
`devices are evident as the network round-trip introduces
`5 additional latency and causes unnecessary network traffic.
`Another method commonly used in computers on the Inter(cid:173)
`net is to use a scripting language, such as JavaScript and
`ActiveX, to take in and incorporate the user supplied infor(cid:173)
`mation when displaying a hypermedia page. The method,
`10 however, proves to be too complicated to be used in the
`mobile devices. Thus, there is a great need for a generic
`solution to managing the client state information into display
`pages in thin client devices like the mobile devices.
`
`The Internet is a rapidly growing communication network
`of interconnected computers around the world. Together,
`these millions of connected computers form a vast reposi-
`tory of hyperlinked information that is readily accessible by
`any of the connected computers from anywhere at any time.
`To provide mobility and portability of the Internet, wireless
`computing devices were introduced and are capable of
`communicating, via wireless data networks, with the com-
`puters on the Internet. With the wireless data networks,
`people, as they travel or move about, are able to perform,
`through the wireless computing devices, exactly the same
`tasks they could do with computers on the Internet.
`The most common remote access paradigm is, as of today,
`the one in which a laptop personal computer is equipped
`with a wireless communication mechanism, for example, a
`wireless modem. This paradigm may remain useful for a
`considerable number of applications and users, but there has
`been a growing need for a mobile paradigm in which the
`Internet can be instantly accessed by mobile devices, such as
`mobile phones and personal digital assistants (PDA). With
`increasing data processing capabilities in the mobile
`devices, more and more users are carrying such devices
`around to materialize their unproductive time into produc(cid:173)
`tive time.
`To increase portability and mobility, most mobile devices
`are designed small in size, light in weight, low in power
`consumption, and as economical and portable as possible.
`Such thin designs often have very limited computing
`resources, for example, their computing power is, perhaps,
`typically equivalent to less than one percent of what is
`provided in a typical desktop or portable computer, their
`memory capacity is generally less than 250 kilobytes and
`their LCD display is perhaps four lines high by twelve or 45
`twenty characters, and their graphics capabilities are very
`limited or nearly nonexistent and their input interface is
`often a keypad having far fewer buttons than a PC keyboard
`does. These design constraints generally seen in a mobile
`device make implementing browsers for Internet navigation 50
`quite difficult. For example, conventional browsers for desk(cid:173)
`top personal computers are notorious for requiring large
`amounts of disk space, large amounts of memory, and
`powerful processors.
`One particular difficulty in implementing a browser on a 55
`handheld device is the problem of incorporating client state
`information into display pages. There are typically two
`common methods of implementing client state information
`into display pages. A first method of incorporating client
`state information into a display page is to ask the user for 60
`some information and then incorporate that information into
`a newly generated display page. This method works well for
`computers on the Internet but does not work well for
`wireless handheld devices such as the mobile devices that
`generally can not effectively handle user supplied informa- 65
`tion locally for immediate display. Hence the user supplied
`information has to be sent back to a server where the user
`
`20
`
`15
`
`SUMMARY OF THE INVENTION
`The present invention has been made in consideration of
`the above described problems and has particular applications
`to the navigation of Internet web pages using thin devices,
`such as a mobile computing device, a mobile device, a
`landline telephone, and an Internet-capable appliance con(cid:173)
`troller. The present invention discloses methods for inline
`variable management in a hypermedia display language. The
`variables are named pieces of information that can be
`substituted in a hypermedia display language or markup
`25 language with respect to user supplied information when
`constructing a display page. Thus, the present invention
`solves the problem of using client state in displays without
`the necessity of the server round-trip and without incurring
`all the memory and processing requirements of a full script-
`30 ing language.
`According to one aspect of the present invention, a client
`process that interprets the markup language with variables is
`designed to identify and properly respond to the variables
`inserted into the markup language at runtime. Variables are
`35 identified by a "key" and contain a text "value." Hypertext
`content may contain references to variables by the key.
`Variables may be set statically using markup language tags,
`dynamically using user input, or may contain data from the
`client environment. During the processing and display of the
`40 hypertext, the values of the variables are substituted into the
`hypertext as indicated by the variable references according
`to a text substitution method.
`According to another aspect of the present invention, the
`disclosed system provides mechanisms to create variable
`scopes. In one embodiment, activities are created that
`include activity frames that store variables associated with
`the activities. Methods are presented to allow variable
`information to pass between different activities. To ensure an
`activity would not expose sensitive information kept locally
`in a client process, the disclosed system uses a set of
`parameters to protect those private activities from general
`public activities.
`In one embodiment, activities may be created by navi(cid:173)
`gating within hypertext documents such that a markup that
`defines a new activity is created.
`Accordingly, an important object of the present invention
`is to provide mechanisms to efficiently manage client state
`information in a hypermedia display language;
`Other objects, together with the foregoing are attained in
`the exercise of the invention in the following description and
`resulting in the embodiment illustrated in the accompanying
`drawings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`The features and advantages of the present invention will
`be apparent to one skilled in the art, in view of the following
`detailed description in which:
`
`Fitbit, Inc. v. Philips North America LLC
`IPR2020-00828
`
`Fitbit, Inc. Ex. 1024 Page 0009
`
`
`
`US 6,353,839 Bl
`
`3
`FIG. 1 illustrates one embodiment of a data network in
`which the present invention may be practiced.
`FIG. 2 illustrates a block diagram of a typical digital
`mobile device that can be used in the data network of FIG.
`1 to practice the present invention.
`FIGS. 3A to 3E illustrate screen displays resulting from
`respective exemplary code listings herein to facilitate the
`description of the present invention.
`FIG. 4A illustrates a conceptual diagram of a service 10
`consisting of more than one activity.
`FIG. 4B illustrates a conceptual diagram of a handheld
`device's memory containing an activity stack and a naviga(cid:173)
`tion history stack.
`FIG. 5 illustrates a conceptual diagram of a user navigat(cid:173)
`ing in HDML and the navigational effects on an activity
`stack and a navigation history stack.
`
`5
`
`4
`servers, such as web server 112 that may be a workstation
`from Sun Microsystems Inc. It is understood to those skilled
`in the art that the PC 110 can also store accessible informa(cid:173)
`tion therein so as to become a web server as well.
`Situated between the Internet 104 and the airnet 102 is a
`link server 114 that communicates data there between. A link
`server 114, also referred to as link proxy or gateway, may be
`a workstation or a personal computer, and performs mapping
`or translation functions, for example, communication pro(cid:173)
`tocol mapping from one protocol to another. Thus a mobile
`device 106 can be in communication with any one of the
`servers 112 or the PCs 110, respectively.
`HyperText Transport Protocol (HTTP) is a well-known
`communication protocol on the Internet 104. HTTP runs on
`15 the well-known Transmission Control Protocol (TCP).
`HTTP controls the connection of an HTML Web browser to
`a Web server and the exchange of information therebetween.
`The communication protocol between the mobile device 106
`and the link server 114 via the airnet 102 is Handheld Device
`20 Transport Protocol (HDTP). The HDTP preferably runs on
`User Datagram Protocol (UDP) and controls the connection
`of a Handheld Device Markup Language (HDML) Web
`browser to a link server. Handheld Device Markup Lan(cid:173)
`guage (HDML), similar to that of HTML, is a tag based
`25 document language and comprises a set of commands or
`statements specified in a card that specifies how information
`is displayed on a small screen of the mobile device 106. In
`HDML, a number of "cards" are grouped into a "deck" that
`is the smallest unit of HDML information that can be
`30 exchanged between the mobile device 106 and the proxy
`server 114.
`There are typically four types of cards, an entry card, a
`display card, a choice card, and a no-display card. Regard(cid:173)
`less of the types, a card can contain text and images. It
`35 should be understood that the present invention is not
`limited to these particular types of cards. The definition of
`the particular types of cards is used to facilitate a description
`of the invention and to assist developers in organizing
`applications. To be more specific, a display card gives
`40 information to display to the user. The displayed content can
`include any one of, or any combination of text, an image,
`and one or more soft keys. A choice card displays a list of
`choices for the user. The choices are automatically presented
`in a format specified on the choice card and generally
`45 numbered accordingly. As explained above, the user makes
`a choice by depressing a key corresponding to the choice. An
`entry card, generally displaying one or more entry lines, is
`used to obtain input data from the user. Typically, each entry
`line includes a display followed by an entry line. The entry
`50 line, in one embodiment, can be for either numeric or text
`data. A no-display card is a hidden card not for the purpose
`of being displayed. The no-display card is normally used to
`execute an intermediate action and generally not known to
`a user. More description of the HDML cards and deck will
`55 be included below wherever appropriate. The specifications
`of HDTP, entitled "HDTP Specification" and HDML,
`entitled "HDML 2.0 Language Reference" are enclosed and
`incorporated herein by reference in its entirety.
`HDTP is a session-level protocol that resembles the HTTP
`60 but without incurring the overhead there of, and is highly
`optimized for use in thin devices that have significantly less
`computing power and memory. Further it is understood to
`those skilled in the art that the UDP does not require a
`connection to be established between a client and a server
`before information can be exchanged, which eliminates the
`need of exchanging a large number of packets during a
`session creation between a client and a server. Exchanging
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`
`Methods for implementing variables in a markup lan(cid:173)
`guage are disclosed. In the following description, for pur(cid:173)
`poses of explanation, specific nomenclature is set forth to
`provide a thorough understanding of the present invention.
`However, it will be apparent to one skilled in the art that
`these specific details are not required in order to practice the
`present invention. For example, the present invention has
`been described with reference to the Handheld Device
`Markup Language (HDML). However, the same techniques
`can easily be applied to other markup languages. Thus, the
`present invention is not intended to be limited to the embodi(cid:173)
`ments shown, but is to be accorded the widest scope
`consistent with the principles and features disclosed herein.
`
`Mobile Devices and HDML
`FIG. 1 illustrates a schematic representation of a data
`network 100 in which the present invention may be prac(cid:173)
`ticed. The data network 100 comprises an airnet 102 that is
`generally called wireless network and a landnet 104 that is
`generally a landline network, each acting as a communica(cid:173)
`tion medium for data transmission therethrough. The airnet
`102, in which the data transmission is via the air, is some(cid:173)
`times also referred to as a carrier network because each
`airnet is controlled and operated by a carrier, for example
`AT&T and GTE, each having its own communication
`scheme, such as CDPD (Cellular Digital Packet Data) and
`Code Division Multiple Access (CDMA), for the airnet 102.
`The landnet 104 is a land based network such as the global
`Internet, an Intranet, or other private networks. A two-way
`communication device 106 can be a mobile computing
`device, a mobile device, a cellular phone, a landline
`telephone, or an Internet appliance controller, capable of
`communicating with the airnet 102 via an antenna 108. It is
`generally understood that the airnet 102 may carry the
`communications of a plurality of two-way communication
`devices simultaneously, of which only one mobile device
`106 is shown in the figure.
`Similarly, connected to the Internet 104 are a plurality of
`desktop Personal Computers (PCs) 110 and a plurality of
`server computers 112, though only one representative
`respectively is shown in the FIG. 1. The PC 110, as shown
`in the figure, may be a personal computer SPL 300 from
`NEC Technologies Inc. and runs a HyperText Markup
`Language (HTML) Web browser. The web browser com- 65
`municates via the Internet 104 using HyperText Transfer
`Protocol (HTTP) to access information stored in web
`
`Fitbit, Inc. v. Philips North America LLC
`IPR2020-00828
`
`Fitbit, Inc. Ex. 1024 Page 0010
`
`
`
`US 6,353,839 Bl
`
`15
`
`6
`"static" web pages since all the information needed to
`generate the display is immediately available and does not
`change.
`Although static web pages, are useful, there are many
`5 situations where it is desirable to incorporate dynamic
`information that can be used when displaying web pages.
`For example, to create personalized web pages it would
`useful to incorporate local client state into web pages. One
`method of incorporating additional information into a web
`10 page is to ask the user for some information, and then
`incorporate that information into a newly generated web
`page. Specifically, a user of an HTML client device can
`create state information by setting HTML "form" fields. The
`mechanism for using HTML form field state information is
`to send the information in a request to a server, either as
`query parameters in a URL or as the body of an HTTP POST
`method. The server is then responsible for parsing the form
`data and dynamically inserting the data or some derivative
`into the next HTML page to be displayed.
`For example, to create personalized web pages it would
`20 useful to incorporate local client state into web pages. One
`method of incorporating additional information into a web
`page is to ask the user for some information and then
`incorporating that information into a newly generated web
`page. Specifically, a user of an HTML client can create state
`information by setting HTML form fields. The mechanism
`for using that state information is to send the information in
`a request to a server either as query parameters in a URL or
`as the body of an HTTP POST method. The server is then
`responsible for parsing the form data and dynamically
`inserting the data or some derivative into the next HTML
`page to be displayed.
`However, this method of inserting dynamic information
`does not work well for wireless handheld devices such as
`devices that use HDML. Specifically, this method provides
`35 unacceptable performance. In particular, the network round(cid:173)
`trip introduces long latency period when using wireless
`networks. Furthermore, sending state information up to the
`server only to have it come back down to the client in
`another form is a waste of network bandwidth. Finally,
`HDML decks that include variable data can not be effec(cid:173)
`tively cached as any change in the data results in an entirely
`new page or deck. In other words, there is no ability to have
`a "template" page in the cache that is reused regardless of
`the state it displays.
`Another method of allowing state information to be used
`is to introduce a scripting language. This technique is used
`by HTML browsers, such as desktop computers connected
`to the Internet. Specifically, ActiveX and JavaScript allow
`state information to be used in HTML browsers. Both
`ActiveX and JavaScript provide full programming lan(cid:173)
`guages with object models, built-in libraries, security
`mechanisms etc. However, these environments are suffi-
`ciently complex to make them untenable on small, handheld
`devices. For example, the memory requirements of those
`scripting languages exceeds the memory available in hand(cid:173)
`held devices.
`
`5
`a very small number of packets during a transaction is one
`of the desired features for a mobile device with very limited
`computing power and memory to effectively interact with a
`landline device.
`The link server 114, as the name suggests, links the aimet
`102 to the landnet 104. Nevertheless, it can be appreciated
`that the link server 114 can function as a web server as well,
`providing information service directly to the mobile devices
`that are in communication with the link server 114 using
`HDTP. Being coupled to the landnet 104 using HTTP, the
`link server 114 can further provide information service to the
`PCs 100 or the workstations 112 and equally fetch informa(cid:173)
`tion therefrom. Therefore in the following description, the
`link server or a web server is indistinguishably used to mean
`a server device that primarily provides information service
`to one or more mobile devices.
`It is understood to those skilled in the art that a uniform
`resource locator (URL) is usually provided in order to access
`pertinent information in a server device. An example of a
`URL for a web document prepared in HDML is:
`http://www.news.com/hypertext/usnews.hdml
`The URL indicates that by using the HTTP protocol to
`reach a server device identified by www.news.com, there is
`a directory "hypertext" that contains a hypertext document
`named "usnews.hdml" that is displayable on client device 25
`106 employing an HDML process, a micro-browser or a
`browser.
`FIG. 2 illustrates a block diagram of a typical digital
`mobile phone 120 that can be used in the arrangement of
`FIG. 1 to practice the present invention. Each of the hard(cid:173)
`ware components in the mobile phone 120 is known to those 30
`skilled in the art and so the hardware components are not
`described in detail herein. With the display screen 116 and
`the keypad 118, a user of the phone 120 can interactively
`communicate with a server device (not shown in FIG. 2)
`over a data network.
`According to one embodiment, compiled and linked pro(cid:173)
`cesses of the present invention are stored in ROM 122 as a
`client module 124 and a support module 126. Upon activa(cid:173)
`tion of a predetermined key sequence utilizing the keypad
`118, a physical layer processor or microcontroller 128 40
`initiates a communication session request to the server
`device using the module 124 in the ROM 122. Upon
`establishing the communication session, the phone 120
`typically receives a single HDML deck from the server
`device and stores the deck as cached in RAM 134. Each deck 45
`has a unique address identifier such as a URL and includes
`one or more cards. A card includes the information required
`to generate a screen display on the display screen 116. Thus,
`a deck is simply a group of screen displays. The number of
`cards in a card deck is selected to facilitate efficient use of
`the resources in the mobile device and in the airnet network. 50
`A display driver (not shown) receives and interprets infor(cid:173)
`mation from the deck in the RAM and causes the screen 116
`to display the information accordingly. The keypad driver
`(not shown) receives signals representing what buttons or
`keys in the keypad are depressed and converts the signals to 55
`a representation understood by the microcontroller 128 that
`in turn responds, for example, by activating a respective card
`in the deck or a new link to the server for a new deck if
`necessary depending on what choice is made through the
`phone keypad 118.
`
`Client State within Web Pages
`
`In most cases, all the information a browser needs to
`display a web page is contained with a HTML document and
`its associated linked images. The information may reside in
`a single server or the information may reside in multiple
`different computers. Such web pages are referred to as
`
`Markup Language Variables
`
`To introduce state information into a markup language,
`the present invention introduces variables and variable man-
`60 agement into a markup language. Variables can be used in a
`markup language in order to substitute specific client state
`information when constructing a screen display. The specific
`context of the preferred embodiment of the present invention
`is HDML and an HDML browser. It is understood to those
`65 skilled in the art that the teachings of the present invention
`apply to other markup languages, such as HTML, XML
`(Extensible Markup Language), WML (Wireless Markup
`
`Fitbit, Inc. v. Philips North America LLC
`IPR2020-00828
`
`Fitbit, Inc. Ex. 1024 Page 0011
`
`
`
`US 6,353,839 Bl
`
`7
`Language). As described in more detail below, the present
`invention solves the problem of using client state in displays
`without the necessity of the round-trip to a server and
`incurring all the complexity of a scripting language.
`For a client process to interpret a hypertext document with 5
`variables, variables are identified by a "key" and contain a
`text "value." Hypertext content (such as HDML) may con(cid:173)
`tain simple variable references within display pages. Vari(cid:173)
`ables may also be placed into hyperlink tags. During the
`processing and display of the hypertext, the values of the 10
`variables are substituted into the hypertext as indicated by
`the variable references according to the text substitution
`method described below.
`Static Variable Assignment
`According to one embodiment, VARS option is used as a
`tag to set the value of a variable. In another embodiment, the
`VARS option may be used with the GO or GOSUB tasks that
`will be described later. For example, the option "VARS=
`varl=Washington&var2=Lincoln" would set variable varl
`to "Washington" and variable var2 to "Lincoln". The amper(cid:173)
`sand symbol (" &") is used to separate several variable 20
`assignments. The following markup language code illus(cid:173)
`trates static variable assignment:
`
`15
`
`8
`overwrites the default value. Variable ursname is assigned to
`be Ted Miller when the user finishes the entry. The resultant
`screen display on the display screen 302 is shown in FIG.
`3C.
`The CHOICE tag is preferably used to display a menu
`with a limited set of choices that may be selected by the user.
`With the CHOICE tag, the "key" parameter specifies the key
`of the variable in which to store the value of the selected
`choice entry. Furthermore, an "ikey" parameter specifies the
`key of the variable in which to store the index of the selected
`choice entry. When the user selects a particular choice entry,
`the values of these variables are updated to reflect the new
`information. The following code provides an example usage
`of the CHOICE tag.
`
`<HDML VERSION-2.0>
`<CHOICE KEY-ch IKEY-num IDEFAULT-2 NAME-chcard>
`<ACTION TYPE-ACCEPT TASK-GO
`DEST-"#dispvar">
`<CE VALUE-Hogs>Live hogs
`
`<HDML VERSION-2.0>
`<DISPLAY NAME-cardl>
`<ACTION TYPE-ACCEPT TASK-GO
`VARS-"var1-California&var2-Minnesota" DEST-#card2>
`I'm setting two variables.
`</DISPLAY>
`<DISPLAY NAME-card2>
`<ACTION TYPE-ACCEPT TASK-GO DEST-#cardl>
`varl - $var1 <BR>
`var2 - $var2
`</DISPLAY>
`</HDML>
`
`In the above example, the variables varl and var2 are set to
`California and Minnesota respectively. The resultant screen
`display is shown on a display screen 302 in FIG. 3A. As used 40
`herein, a display screen is the physical display apparatus in
`a device, such as a 4 by 20 character LCD screen. A screen
`display is the image presented on the display screen.
`Dynamic Variable Assignment Using the User Interface
`In the system of the present invention, variables can also 45
`be bound to user-interface elements by using the CHOICE
`and EN1RY tags. This takes the form of specifying the key
`of the variable to be bound to a particular user-interface
`element.
`The ENTRY tag is used to set a variable from user input. 50
`The ENTRY tag requires a "key" parameter that specifies the
`key of the variable in which to store any text entered. When
`the user enters text, the value of the key variable is updated
`to reflect the new information. The following exemplary
`HDML code allows a user to set the variable "ursname" with 55
`a user name supplied by a user:
`<EN1RY NAME=nameentry KEY=usrname DEFAULT=
`Bob>
`<ACTION TYPE=ACCEPT TASK=GO DEST=
`#greeting>
`Your name:
`</ENTRY>
`As shown in FIG. 3B, the default value "Bob" is placed into
`the variable ursname. It should be noted that the default
`value "Bob" is optional. A cursor 304 indicates the initial 65
`position for the user to enter preferred information. For
`example, the user enters a new name "Ted Miller" that
`
`60
`
`-continued
`
`<CE VALUE-Bellies>Pork bellies
`<CE VALUE-Cattle>Feeder cattle
`</CHOICE>
`<DISPLAY NAME-dispvar>
`<ACTION TYPE-ACCEPT TASK-GO DEST-#chcard>
`num - $num <BR>
`ch - $ch
`</DISPLAY>
`</HDML>
`
`In the above example, the CHOICE tag specifies an
`HDML Choice card. The "KEY=ch" option sets the ch
`variable as the variable that will be assigned the user's
`choice. The "IKEY=num" option specifies that the num
`variable will store the index number of the user's choice
`where "1" is the first possible choice, "2" is the second
`possible choice, and so on. The "IDEFAULT=2" option
`specifies the default choice to be choice number 2. The
`corresponding screen display is shown in FIG. 3D in which
`arrow sign 306 is a choice indicator identifying a choice is
`being selected by the !DEFAULT. The user can move the
`choice indicator 306 up and down to a desired choice
`through a keying mechanism such as arrow keys in a
`keypad. FIG. 3E illustrates the display card that would be
`displayed if choice 2 was selected from the choice card of
`FIG. 3D.
`
`Variable Usage
`After a variable has been assigned, the variable can be
`displayed using "Text substitution." Text substitution
`
`Fitbit, Inc. v. Philips North America LLC
`IPR2020-00828
`
`Fitbit, Inc. Ex. 1024 Page 0012
`
`
`
`US 6,353,839 Bl
`
`9
`replaces variable references within the markup language
`with the text value associated with the variable. Referencing
`a variable which has no value (an unset variable) results in
`the substitution of an empty string. In one embodiment of
`the present invention, variable references are identified by a
`"$" followed by the variable key. The variable key may
`optionally be enclosed in parenthesis "(" and ")" to disam(cid:173)
`biguate the variable reference from the surrounding text. To
`give an example of text substitution in HDML, consider the
`following client variable state:
`
`Variable Key
`
`Variable Value
`
`user
`date
`
`Ted Miller
`Feb. 3, 1998
`
`10
`According to one embodiment of the present invention,
`the client process supports context-sensitive automatic con(cid:173)
`version. Context-sensitive conversion automatically con(cid:173)
`verts text during text substitution in a manner that is depen-
`5 dent upon the placement of the variable in the HDML
`content. Specifically, variable references may be automati(cid:173)
`cally converted during text substitution, in a context specific
`manner. For example, if a variable reference is placed in a
`tag parameter that takes a URL as its value, the variable will
`
`lO ::~~~:~~~~%i~:.es~~r:\:i:a~:ne;o!~e~s~t u:!~hda:~!
`dramatically reduces the burden on the programmer to do
`escaping correctly and reduces the likelihood of bugs being
`introduced by incorrect escaping. The following HDML
`options are all automatically URL escaped:
`15 ACCESSDOMAIN, ACCESSPATH, B