throbber
CA 02843938 2014-02-21
`
`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

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