throbber

`

`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

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