`
`property, when the determining indicates a match between the prefix of the CSS
`
`property and the established value; and
`
`sending the modified CSS to the requesting client
`
`computing device.
`
`5
`
`12.
`
`The apparatus as set forth in claim l l, wherein the processor is
`
`further configured to execute programmed mstrnctions stored in the memory further
`
`compnsmg:
`
`determining whether there is a transfom1ation function for the
`
`10
`
`CSS property based on the identified type of browser and the name of the CSS
`
`property, when the determining indicates a match between the prefix of the CSS
`
`property and the established va1ue; and
`
`rernoving the CSS propc1iy, when it is detem1ined that there is
`
`not a transformation function t()r the CSS property.
`
`15
`
`20
`
`13.
`
`The apparatus as set fi.)rth in claim 11, wherein the CSS
`
`property further comprises at least one value following the name of the CSS property
`
`and the transfom1ation function is further configured to replace the prefix or the value
`
`of the CSS property.
`
`14.
`
`The apparatus as set forth in claim 11, wherein the processor is
`
`further configured to execute programmed instructions stored in the memory further
`
`compnsing:
`
`detem1ining whether the at least one CSS includes one or more
`
`25
`
`other CSS properties; and
`
`repeating the detem1ining whether the prefix of the one or more
`
`other CSS properties matches the established value and the applying the
`
`transformation function for the CSS property for each of the one or more other CSS
`
`properties prior to sending the modified CSS to the requesting client computing
`
`30
`
`device.
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1101 of 2149
`
`
`
`CA 02843938 2014-02-21
`
`.. 20 ..
`
`15.
`
`The apparatus as set forth in claim 11, wherein the CSS
`
`property is a CSS rnle or a CSS extension function.
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1102 of 2149
`
`
`
`w.
`N
`I
`N
`0
`I
`,i,.
`i--'
`0
`N
`
`00 .~ w
`
`N
`0
`
`00
`w
`-a
`
`;I>'
`()
`
`Device J4(n)
`Computing
`
`Server
`
`llll
`'-.. .I
`
`,,.,___--,;+,►e
`
`,.
`
`\. "=;s;._ ,
`( -
`
`...,6 ♦
`') _Ji
`
`--
`
`-
`
`\
`"-
`
`Device l 4(1)
`
`Server
`
`Compu1ing 1
`----
`
`/----~<--..,,.,.,,----y-------..
`
`0 ~
`1 ·etwork l "("')
`N
`imumcat1on
`~-
`
`-
`
`·
`
`\-....
`
`"
`
`~
`,. -
`\
`\. J ('orr -
`_
`
`10
`
`I
`
`Network Interface 2-1
`
`Web Content Proxy Server .ll
`
`FIG.1
`
`Memory ;?1
`
`CPU20
`
`'\
`
`Network 18(1)
`/ Communica,.ion
`
`(
`
`Device 16(n) '
`:
`Computing
`Iv~,~~.
`r
`
`Client
`
`~-----\
`
`---- (..0
`_,_
`
`,,,,.-----,-~---
`
`'
`
`,,.----,-<.
`
`t'1,,-.&..
`
`Device 16(1)
`Computing
`
`Client
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1103 of 2149
`
`
`
`CA 02843938 2014-02-21
`
`Receive a Hypertext Transfer Protocol (HTTP) Request for a Web Page from a
`Client Computing Device 200
`
`Identify a Type of Browser from which the HTTP Request Originated 202
`
`Retrieve the Requested Web Page from a Server Computing Device 204
`
`r
`
`Associated CSS? ;?,_Q.9-
`
`------
`--------~----]
`
`------*--------
`.,.., ----------------
`---------------·---
`---------
`_ _ _ _ _ _ _ _ ! '<_' -=--·
`----
`- _
`----
`-
`---=
`-------
`-------------
`y!
`---~--
`--------
`-------
`------
`----
`..---------- Prefix Match Established Value
`N
`--
`~------<_:-·-...____
`for CSS Property? 2 l 0
`----.....___
`----
`----------
`--------
`...------
`---yi i_
`
`Remove
`the CSS
`property
`from the
`\Veb
`Page 2.20
`
`----
`N _ _.-_.-
`<......_______
`
`---------
`------
`------
`__.,..-
`-......_
`.
`-
`1·
`1~
`.
`......_
`rans10nnati0n · unction
`---..._......_
`for the CSS Property? 2 l 2
`_________ ....,.
`
`---
`~--
`---------
`---------
`-------..._ ... ------
`
`---
`
`Applying Trnnsfomiation Function for the CSS Property 214
`
`N
`Send CSS to the Requesting Client Computing Device J.Q~ .
`
`. FIG. 2
`
`2/3
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1104 of 2149
`
`
`
`CA 02843938 2014-02-21
`
`300
`302(])
`. r·a1..mded __ bOr'tler· {~
`/' /
`: 5px;i' 302(2)
`··~;l11U
`.v-'t1k1•:-t,v·ut'~·-1:c~ 1 >:'-•:
`,..,-,,1:i'·.:•>uo··d"''
`1·("i ··t,,i,,. v-,1 11 11·,• 10pxjl(·
`·· tn; 1
`i: ,_c·1, I': 1 qi:;·: :·c;;;~ u :. : 15px; .v/
`s•?L.;,_ 1 •: bu
`,-.,,,!lii,t': L:c.··r.:e:·
`t.ic::.,.i.:::,r:
`.t'''!. ··L1i:i1!1S: Z0px;+- 302(4)
`··,:etc::-:,: Spx 10px 15px Z0px;,._
`1.,::,'. Lir,;•,>.•··
`·, . .iJLU:,: 5px 10px 15px Z0px;,._-
`-302(5)
`!J,YU•.:'
`
`302(3)
`
`302(6)
`
`402
`~
`
`502
`It'
`
`602
`It'
`
`FIG.3
`
`400
`It'
`
`FIG.4
`
`FIG. 5
`
`600
`t,('
`
`FIG. 6
`
`. r·oundh!_bot'der· {
`
`}
`
`}
`
`. r-oundcd_bor<dt2 ,· {
`
`}
`
`700
`~
`
`FIG. 7
`
`3/3
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1105 of 2149
`
`
`
`Device 14{n')
`Computing
`
`Server
`
`Device 14( 1}
`Computing
`
`Server
`
`Network 18(2)
`Communication
`
`\_. __
`
`\
`
`! '
`
`10
`
`2tf
`
`.,_
`Memorv 22
`
`-
`
`CPU 20
`
`Network Interface 24
`
`Web Content Proxy Server 12
`
`~mu:icati~n
`
`c Network lfilll
`
`(
`
`Device l 6(n)
`Computing
`
`Client
`
`evicel.QUJ
`D
`'6"'
`Computing
`
`.
`
`Client
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1106 of 2149
`
`
`
`l♦I
`
`Office de la Propriete
`!ntellectuelle
`du Canada
`
`Un organisme
`d'lndustrie Canada
`
`Canadian
`Intellectual Property
`Office
`
`An agency of
`Industry Canada
`
`CA 2845279 A1 2014/09/13
`(21) 2 845 279
`(12) DEMANDE DE BREVET CANADIEN
`CANADIAN PATENT APPLICATION
`c13) A1
`
`(22) Date de depot/Filing Date: 2014/03/07
`(41) Mise a la disp. pub.fOpen to Public !nsp.: 2014/09i'13
`(30) Priorite/Priority: 2013/03/'13 (LJS'13/801,821)
`
`(5'1) CUnUint.CL H04L 12116 (2006.01),
`G06F 17100 (2006.01 ), G06F 17120 (2006.01 ),
`G06F 5100 (2006.01 ), G06F 9144 (2006.01 ),
`H04W 4/00 (2009.01)
`
`(71) Demandeur!App!icant:
`USABLE~~ET !NC., US
`
`(72) !nventeurs/inventors:
`SCODA., Ef\JRICO, iT;
`BRONDA.N!, MARCO, IT
`
`(74) Agent: PARLEE MCLAWS LLP
`
`(54) Titre : PROCEDES POUR COM PRIMER DES MENUS DE PAGES WEB ET DISPOSITIFS DE CEUX-CI
`(54) Title: METHODS FOR COMPRESSING WEB PAGE MENUS AND DEVICES THEREOF
`
`Client
`Computing
`Device 14(1)
`
`Client
`Computing
`Device 14(n)
`
`10
`
`I
`
`Menu Tvlanagement Computing
`Apparatus .U.
`Network Interface 22
`
`CPU 18
`
`Memory J.Q
`
`(57) Abrege!Abstract:
`A method, non-transitory computer readable medium, and apparatus that obtains an original menu associated vvith a web page
`requested by a client computing device. Tile original menu comprises at !east a piurality of ur~Ls, each comprising one or more
`fragments, and a piurality of titles, each comprising one or more words. A un!que index for one occurrence of each of at least a
`subset of the fragments and the words is generated At least one dictionary comprising tile generated indices associated with a
`corresponding one of the fragments or the words is generated. A modified menu is generated by replacing each occurrence of
`each of the at !east a subset of the one or more fragments and tile one or more words of tile original menu with a corresponding
`one of the unique indices. The modified menu and the at least one dictionary are sent to tile client computing device.
`
`htlj.,:/lopk.gc.cc1 · Ottavva-Hull KlA OC9 · l1ttp://2..,jpo.gc.ca
`
`0 PI C
`
`CI P 0
`
`OPIC · CIPO 191
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1107 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`- 25 -
`
`ABSTRACT
`
`A method, non-transitory compmer readable medium, and apparatus that
`
`obtains an original menu associated with a web page requested by a client computing device.
`
`5
`
`The original menu comprises at least a plurality of URLs, each comprising one or more
`
`fragments, and a plurality of titles, each comprising one or more words. A unique index for
`
`one occurrence of each of at least a subset of the fragments and the words is generated. At
`
`least one dictionary comprising the generated indices associated with a corresponding one of
`
`the fragments or the words is generated. A modified menu is generated by replacing each
`
`l O
`
`occurrence of each of the at least a subset of the one or more fragments and the one or more
`
`words of the original menu with a corresponding one of the unique indices. The modified
`
`menu and the at least one dictionary are sent to the client computing device.
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1108 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`METHODS FOR COMPRESSING WEB PAGE MENUS AND DEVICES THEREOF
`
`FIELD
`
`5
`
`!0001]
`
`This technology generally relates to methods, non-transitory computer
`
`readable medium, and apparatuses for compressing source code defining web page menus
`
`and. more particularly, for reducing the amount of time required to send, and the amount of
`
`memory required to store, source code defining web page menus.
`
`10
`
`BACKGROUND
`
`100021
`
`Many web sites, including particularly retail web sites, have a large number of
`
`web pages organized based of categories and subcategories of content. In order to present a
`
`user \vi.th information regarding the organization of the web site, these web pages often
`
`include a hierarchical menu. The hierarchical menu aHows a user to browse the categories
`
`15
`
`and subcategories without leaving the current web page.
`
`[0003]
`
`While a hierarchical menu enhances the user experience, including a
`
`hierarchical menu increases the size of the web pages. The increased size is due to the
`
`infimnation, including category and subcategory tit1es and hyperHnk addresses, required to
`
`present the hierarchica1 menu. Due to the increased size, web pages v,r:ith menus require an
`
`20
`
`increased amount of time to retrieve from a server.
`
`[0004]
`
`To reduce the time required to retrieve each web page, some web site hosts
`
`store the menu source code in an external file separate from the web pages. The external file
`
`is downloaded one time at a client device and is referenced by the web pages when the menu
`
`is rendered by a web browser of the client device. While the web pages might be retrieved
`
`25
`
`relatively quickly, the initial download of this external file can require a significant amount
`
`of time. Additionally, this external file stored at the client device can require a significant
`
`amount of memory. ln many client devices, particularly mobile devices, such as smart
`
`phones, memory is a limited resource and utilizing a significant amount of memory to store
`
`this external file defining a menu is not desirable.
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1109 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`,.,
`
`.... L. ...
`
`SUMMARY
`
`[0005]
`
`A method for compressing menus includes obtaining, with a menu
`
`management computing apparatus, an original menu associated with a web page requested by
`
`a client computing device. The original menu comprises at least a plurality of uniform
`
`5
`
`resource locators (URLs), each comprising one or more fragments, and a plurality of titles,
`
`each comprising one or more words. A unique index for one occurrence of each of at least a
`
`subset of the one or more fragments and the one or more words is generated with the menu
`
`management computing apparatus. At least one dictionary comprising the generated indices
`
`associated with a corresponding one of the subset of the one or more fragments or the one or
`
`10 more words is generated with the menu management computing apparatus. A modified
`
`menu is generated by the menu management computing apparatus by replacing each
`
`occurrence of each of the at least a subset of the one or more fragments and the one or more
`
`words of the original menu with a corresponding one of the unique indices. The modified
`
`menu and the at least one dictionary are sent with the menu management computing
`
`15
`
`apparatus to the client computing device.
`
`10006]
`
`A non-transitory computer readable medium having stored thereon
`
`instructions for compressing menus includes machine executable code which when executed
`
`by a processor, causes the processor to perform steps including obtaining an original menu
`associated with a web page requested by a client computing device. The original menu
`comprises at least a plurality ofURLs, each comprising one or more fragments, and a
`
`20
`
`plurality of titles, each comprising one or more words, A unique index for one occurrence of
`
`each of at least a subset of the one or more fragments and the one or more words is
`
`generated. At least one dictionary comprising the generated indices associated with a
`
`corresponding one of the subset of the one or more fragments or the one or more words is
`
`25
`
`generated. A modified menu is generated by replacing each occurrence of each of the at least
`
`a subset of the one or more fragments and the one or more words of the original menu with a
`
`corresponding one of the unique indices. The modified menu and the at least one dictionary
`
`are sent to the client computing device.
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1110 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`{0007]
`
`A menu management computing apparatus includes a memory and a processor
`
`coupled to the memory. The processor is configured to execute programmed instructions
`
`stored in the memory including obtaining an original menu associated ;,vith a web page
`
`requested by a client computing device. The original menu comprises at least a plurality of
`
`J
`
`URLs, each comprising one or more fragments, and a plurality of titles, each comprising one
`
`or more words. A unique index for one occurrence of each of at least a subset of the one or
`
`more fragments and the one or more words is generated. At least one dictionary comprising
`
`the generated indices associated with a corresponding one of the subset of the one or more
`
`fragments or the one or more words is generated. A modified menu is generated by replacing
`
`10
`
`each occurrence of each of the at least a subset of the one or more fragments and the one or
`
`more words of the original menu with a corresponding one of the unique indices. 111e
`
`modified menu and the at least one dictionary are sent to the client computing device.
`
`[0008]
`transitory computer readable medium, and apparatuses that reduce the amount of resources
`
`This technology provides a number of advantages including methods, non~
`
`15
`
`required to send and store web page menus. With this technoJogy, a web page menu is
`
`parsed at a menu management computing apparatus and modified to replace URL fragments
`
`and words in category and subcategory titles with unique indices. A dictionary is generated
`
`to store each of the fragments and words and corresponding indices. The modified original
`
`menu and the dictionary, \'Vhich together require less time to send and less memory to store
`
`20
`
`than the original menu, are then sent to a client computing device that requested the web
`
`page having tbe associated original menu.
`
`BRIE:F UESCRlPTlON OF THE DRAWINGS
`
`[0009]
`
`FIG. 1 is a block diagram of a network environment which incorporates an
`
`exemplary menu management computing apparatus;
`
`25
`
`[0010]
`
`FIG. 2 is a flowchart of an exemplary method for compressing a web page
`
`menu;
`
`!0011]
`
`FIG. 3 is an exemplary original web page menu; and
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1111 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`- 4 -
`
`[0012]
`
`FIG. 4 is the exemplary original web page menu of FIG. 3 modified according
`
`to the exemplary method ofFlG. 2.
`
`DETAILED DESCRIPTION
`
`[0013]
`
`An exemplary network environment 10 is illustrated in FIG. 1 as including an
`
`5
`
`exemplary menu management computing apparatus 12. In this example, the menu
`
`management computing apparatus 12 is coupled to a plurality of client computing devices
`
`14(1 )-14(n) by communication network 16, although other types and numbers of devices,
`
`components, and elements in other topologies could be used. This technology provides a
`
`number of advantages including methods, non-transitory computer readable medium, and
`
`10
`
`apparatuses that compress web page menus and reduce the amount of resources required to
`
`send and store web page menus.
`
`[0014]
`
`Referring more specifically to FIG. 1, the menu management computing
`
`apparatus 12 includes at least one processor or central processing unit (CPU) 18, a memory
`
`20, and a network interlace 22, which are coupled together by a bus 24 or other link,
`
`15
`
`although other numbers and types of components, parts, devices, systems, and elements in
`
`other configurations and locations can also be used. Generally, the menu management
`
`computing apparatus 12 processes requests for web pages and other web content received
`
`from the client computing devices 14(1H4(n) via the cornmunication network 16 according
`
`to the HTTP-based protocol, for example, although the menu management computing
`
`20
`
`apparatus 12 can also provide other numbers and types of functions. The processor 18 in the
`
`menu management computing apparatus 12 may execute a program of stored instructions one
`
`or more aspects of the present invention, as described and illustrated by way of the
`
`embodiments herein, although the processor 18 could execute other numbers and types of
`
`programmed instructions.
`
`25
`
`[0015J
`
`The memory 20 in the menu management computing apparatus 12 stores these
`
`programmed instructions for one or more aspects of the present invention as described and
`
`illustrated herein, although some or all of the programmed instructions could be stored and/or
`
`executed elsewhere. A variety of different types of memory storage devices, such as a RAM
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1112 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`or a ROM in the system or a floppy disk, hard disk, CD ROM, DVD ROM, or other non(cid:173)
`
`transitory computer readable medium which is read from and/or vvTitten to by a magnetic,
`
`optical, or other reading and/or writing system that is coupled to the processor 18, can be
`
`used for the memory 20 in the menu mfmagement computing apparatus 12.
`
`5
`
`[0016]
`
`The network interface 22 in the menu management computing apparatu..,;; 12 is
`
`used to operatively couple and communicate between the menu management computing
`
`apparatus 12 and the dient devices 14(1 )-14(n) via the communication network ] 6, although
`
`other types and numbers of networks with other types and numbers of connections and
`
`configurations can also be used. ·n1e menu management computing apparatus 12 may be a
`
`10
`
`server computing device, such as any version of Microsoft@ HS server or Apache® server,
`
`although other types of servers may be used, or a web content proxy server, for example.
`
`[0017]
`
`The communication network 16 can include one or more networks, such as
`
`one or more local area networks (LANs) and/or wide area networks (WANs) such as the
`
`Internet. By way of example only. the communication network 16 can use TCP/IP over
`
`15
`
`Ethernet arid industry-standard protocols, including Hypertext transfer protocol (HTTP),
`
`secure HTTP (HTTPS), wireless application protocol (WAP), and/or SOAP, although other
`
`types and numbers of communication networks having their own communications protocols,
`
`can also be used.
`
`[OOH~]
`
`The client computing devices 14(1 )-l 4(n) enable a user to request, receive,
`
`20
`
`and interact ·with applications, web services, and content hosted by the menu management
`
`computing apparatus 12 via the communication network 16, although one or more of the
`
`client computing devices 14(1 )~ 14(n) could access content and utilize other types and
`
`numbers of applications from other sources and could provide a wide variety of other
`
`functions for the user. By way of example oniy, the client computing devices 14() )- 14(n)
`
`25
`
`can be mobile computing devices, smart phones, personal digital assistants, or computers.
`
`[00191
`
`In this example, each of the: client computing devices 14(1)-14(n) includes at
`
`least one processor or a CPU, a memory, a network interface, a user input device, and a
`
`display, which are coupled together by a bus or other link, although one or more of client
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1113 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`- 6 -
`
`computing devices 14(1 )-l 4(n) can include other numbers and types of components, parts,
`
`devices, systems, and elements in other configurations. The processor in each of the client
`
`computing devices 14(1)-14(n) can execute a program of instructions stored in the memory
`
`of each of the client computing devices 14( 1 )-14(n) for one or more aspects of the present
`
`5
`
`invention as described and illustrated herein, although the processor could execute other
`
`numbers and types of programmed instructions.
`
`The memory in each of the client computing devices 14( 1 )-14(n) stores these
`
`programmed instructions for one or more aspects of the present invention, as described and
`
`illustrated herein, although some or all of the programmed instructions could be stored and/or
`
`IO
`
`executed elsewhere. A variety of difierent types of memory storage devices, such as a RAM
`
`or a ROM in the system or a floppy disk, hard disk, CD ROM, or other non-transitory
`
`computer readable medium which is read from andior written to by a magnetic, optical, or
`
`other reading and/or ·writing system that is coupled to processor can be used for the memory
`
`in each of the client computing devices 14(1)-14(n). Each of the client computing devices
`
`15
`
`14( 1 )-14(n) can be configured to access web services and content through a web browser
`
`stored in the memory.
`
`[0021]
`
`The network interface 1n each of the client computing devices 14(1 )-14(n) is
`
`used to operatively couple and communicate between each of the client computing devices
`
`14(1)-14(n) and the menu management computing apparatus 12 via the commi..mication
`
`20
`
`network 16, although other types and numbers of communication networks with other types
`
`and numbers of connections and configurations can be used.
`
`[0022]
`be used to input selections, such as a request for a particular web page, although the user
`
`The user input device in each of the client computing devices 14(1)-14(n) can
`
`input device could be used to input ot.her types of requests and data and interact with other
`
`25
`
`elements. The user input device in each of the client computing devices 14(1)-14(n) can
`
`include a keypad, touch screen, and/or vocal input processing system, although other types
`
`and numbers of user input devices can also be used.
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1114 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`[0023j
`
`The display in each of the client computing devices 14(1)-14(n) can be used to
`
`show data and information to the user, such as a requested web page by way of example
`
`only. The display in each of the client computing devices 14(J)-i4(n) can be an LCD, LED,
`
`or OLED display, for example, although other types and numbers of displays could be used
`
`5
`
`depending on the particular t)1)e of client computing device 14(1 )-14(n).
`
`[0024]
`
`Although embodiments of the menu management computing apparatus 12
`
`and client computing devices 14(1)-14(n) are described and iHustrated herein, each of the
`
`menu management computing apparatus 12, and client computing devices 14( l )- l 4(n) can
`
`be implemented on any suitable computer apparatus or computing device. It is to be
`
`l O
`
`understood that the apparatuses and devices of the embodiments described herein are for
`
`exemplary purposes, as many variations of the specific hardware and software used to
`
`implement the embodiments are possible, as will be appreciated by those skilled in the
`
`relevant art(s). Furthermore, each of the devices of the embodiments may be conveniently
`
`implemented using one or more general purpose computers, microprocessors, digital signal
`
`15
`
`processors, and micro-controllers, programmed according to the teachings of the
`
`embodiments, as described and illustrated herein, and as will be appreciated by those
`
`ordinary skill in the art.
`
`[00251
`
`In addition, two or more computing apparatuses or devices can be substituted
`
`for any one of the devices in any embodiment described herein. Accordingly, principles and
`
`20
`
`advantages of distributed processing, such as redundancy and replication also can be
`
`implemented, as desired, to increase the robustness and perfrmnance of the devices of the
`
`embodiments. The embodiments may also be implemented on computer apparatuses or
`
`devices that extend across any suitable network using any suitable interlace mechanisms and
`
`communications technologies, including by way of example only telecommunications in any
`
`25
`
`suitable fom1 ( e.g., voice and modem), wireless communications media, wireless
`
`communications networks, cellular communications networks, G3 communications
`
`networks, Public Switched Telephone Network (PSTNs), Packet Data Networks (PDNs), the
`
`Internet, intranets, and combinations thereof
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1115 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`- 8 -
`
`[0026]
`
`The examples may also be embodied as a nonmtransitory computer readable
`
`medium having instructions stored thereon for one or more aspects of the present technology
`
`as described and illustrated by way of the examples herein, as described herein, which when
`
`executed by a processor, cause the processor to carry out the steps necessary to implement
`
`5
`
`the methods of the examples, as described and illustrated herein.
`
`!0027}
`
`An exemplary method for compressing an origina1 menu will now be
`
`described with reference to FIGS. 1-4. Referring more specifically to FIG. 2, in step 200 the
`
`menu management computing apparatus 12 receives a request for a web page, such as a
`
`hypertext transfer protocol (HTTP) request, from one of the client computing devices 14( 1 )·-
`
`10
`
`14(n). In step 202, the menu management computing apparatus 12 obtains the requested web
`
`page from one of the menu management computing apparatus 12.
`
`[0028]
`
`In step 204, the menu management computing apparatus 12 determines
`
`whether the web page has an associated original menu. The associated original menu can be
`
`any menu, although hierarchical menus with categories and subcategories may have repeated
`
`15
`
`content allowing for relatively significant compression. as described and illustrated in more
`
`detail later. In some examples, the original menu is included in the source code for the web
`
`page and, in other examples, the web page source code references a separate external file,
`
`such as a JavaScript file, which includes the original menu.
`
`[0029]
`
`ln examples in which the original menu is defined in a separate file, the
`
`20
`
`initially--requested web page source code may cause a web browser of the requesting one of
`
`the client computing device l 4(1 )- l 4(n) to submit a request for the file. The menu
`
`management computing apparatus 12 can parse the web page or file obtained from the one of
`
`the menu management computing apparatus 12 to identify any key words or pattems
`
`representing a menu (e.g. alternating plan text titles and URL hyperlinks), for example,
`
`25
`
`although other methods of identifying an original menu associated with the requested web
`
`page can also be used.
`
`[0030]
`
`If the menu management computing apparatus 12 determines in step 204 that
`
`the requested web page does not have an associated original menu, then the No branch is
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1116 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`taken to step 200 and another request is received from one of the client computing devices
`
`l4(1)-14(n). if the menu management computing apparatus 12 detem1ines in step 204 that
`
`the requested web page does have an associated original menu, then the Yes branch is taken
`
`to step 206.
`
`5
`
`[0031]
`
`Optionally, in step 206., the menu management computing apparatus 12
`
`determines whether the requesting one of the client computing devices 14( 1 )-14( n) is a
`
`device having relatively limited storage capabilities, referred to herein as a mobile computing
`
`device. The menu management computing apparatus 12 can determine ,:vhether the
`
`requesting one of the client computing devices 14( 1 )- l 4(n) is a mobile computing device
`
`10
`
`based on a user agent header included in one or more of the packets associated with the
`
`HTTP request received in step 200, for example, although other methods of identifying
`
`mobile computing devices can also be used.
`
`[0032]
`
`If the menu management computing apparatus 12 determines that the
`
`requesting one of the client computing devices 14(1)-14(n) is not a mobile computing device,
`
`15
`
`then the No branch is taken to step 200 and another request is received from one of the client
`
`computing devices 14(1 )-l 4(n). Accordingly, in some examples, steps 208-220 are only
`
`perfom1ed for mobile computing devices which have relatively limited storage capabilities
`
`and can therefore benefit most from the compression method described and illustrated herein.
`
`[0033]
`
`If the menu managem.ent computing apparatus 12 determines in step 206 that
`
`20
`
`the requesting one of the client computing devices 14(1)-14(n) is a mobiie computing device,
`
`then the Yes branch is taken to step 208. In step 208, the menu management computing
`
`apparatus 12 parses the original menu and generates a unique index for at least a subset of the
`
`fragments and/or words of the original menu. TI1e original menu can include a plurality of
`
`titles, each including one or more words, and a plurality of URLs, each including one or
`
`25 more :fragments. Exemplary URL fragments include an entire URL, a prefix, a path, one or
`
`more words of a path, a query, a key/value pair of a query. a key of a query, a value of a
`
`query, or combinations thereof, for example, although other URL fragments can also be used.
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1117 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`[0034]
`
`Referring to flG. 3, an exemplary original menu 300 associated with a web
`page is illustrated. In this example, the original menu 300 defines a hierarchical menu ·with
`
`categories having titles of "Shoes," "Accessories," and "Dresses." The "'Shoes" and
`
`"Dresses'' categories each have two sub~categories with titles of "Men Shoes'' and "Women
`
`5
`
`Shoes" and "Long Dresses" and "Ceremonies," respectively. In this example, each of the
`
`"Accessories" category and the four subcategories has an associated URL of a web page
`
`having content associated with the respective category or subcategory title.
`
`[0035]
`
`Referring back to FlG. 2, in step 208, only one index is generated for multiple
`
`occurrences of the same fragment and/or word in the origmal menu 300. In this exam.pk,
`
`10
`
`only one index is generated for the title word "Shoes" in the source code 300 even though the
`
`word appears in more than one title. Additionally, only one index is generated for the
`
`key/value pair fragment "'sort=price" even though the fragment appears in all of the lJRLs.
`
`The menu management computing apparatus 12 can be configured to parse the original menu
`
`300 to identify title words and URL fragments based on an established configuration in order
`
`15
`
`to generate the indices.
`
`[0036]
`
`The menu management computing apparatus 12 parses some or all of the titles
`
`of the original menu 300 and generates an index for some or all words or combination of
`
`words in each oflhe titles. Words can be any sequence of characters and numbers separated
`
`by a space (e.g. "Men" and ''Shoes"). In one exemplary configuration, the menu
`
`20 management computing apparatus 12 generates an index for every encountered word in a
`
`title. Words included in titles may be repeated as the title in a lower category in a
`
`hierarchical menu is likely to share word(s) with the title in a higher category, while adding
`
`word(s) to be more specific.
`
`100371
`
`The menu management computing apparatus 12 also parses some or all of the
`
`25
`
`URLs of the original menu 300 and generates an index for some or all fragments or
`
`combination of fragments in each of the URLs. In one exemplary configuration, the menu
`
`management computing apparatus 12 only generates an index upon encountering a URL
`
`fragment more than once or a predetermined number of times, although indices can also be
`
`ACCESSIBE LTD EXHIBIT 1004
`Page 1118 of 2149
`
`
`
`CA 02845279 2014-03-07
`
`- 11 -
`
`generated by the menu management computing apparatus 12 upon initiaHy encountering a
`
`fragment.
`
`[0038]
`
`In the exemplary original menu 300 illustrated in FIG. 3, in this example, the
`
`menu management computing apparatus 12 will only generate a unique index for the
`
`5 multiple occurrences of the "sort=price'' key/value pair fragment upon encountering it a
`
`second time in the URL associated with the "Women Shoes'· subcategory. The menu
`
`management computing apparatus 12 cari parse the original menu 300 and maintain a list of
`
`previously encountered fragments and/or words which is used to determine whether an
`
`associaied index should be, or has previously been, generated.
`
`10
`
`[0039]
`
`In another example, the menu management compu