US20090235187A1 - System and method for content navigation - Google Patents
System and method for content navigation Download PDFInfo
- Publication number
- US20090235187A1 US20090235187A1 US12/119,097 US11909708A US2009235187A1 US 20090235187 A1 US20090235187 A1 US 20090235187A1 US 11909708 A US11909708 A US 11909708A US 2009235187 A1 US2009235187 A1 US 2009235187A1
- Authority
- US
- United States
- Prior art keywords
- web
- menu
- page
- content
- schema
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
Definitions
- the present specification relates generally to telecommunication and more specifically relates to a system and method for content navigation.
- Computing devices are becoming smaller and increasingly utilize wireless connectivity. Examples of such computing devices include portable computing devices that include wireless network browsing capability as well as telephony and personal information management capabilities. The smaller size of such client devices necessarily limits their display capabilities. Furthermore the wireless connections to such devices typically have less bandwidth than corresponding wired connections.
- the Wireless Application Protocol (“WAP”) was designed to address such issues, but WAP can still provide a very unsatisfactory experience or even completely ineffective experience, particularly where the small client device needs to effect a connection with web-sites that host web-pages that are optimized for full traditional desktop browsers.
- FIG. 1 is schematic representation of a system for content navigation.
- FIG. 2 is a schematic representation of a wireless communication device from FIG. 1 .
- FIG. 3 is a schematic representation of a display and a portion of a keyboard of the device of FIG. 1 , wherein the display is showing a screen from a contact manager application.
- FIG. 4 is a schematic representation of the display and the portion of a keyboard of FIG. 3 , wherein the display is showing the screen from contact manager application including a menu from a menu application with menu selections that are contextual to the contact manager application.
- FIG. 5 shows an exemplary web-page available from the web-server in FIG. 1 .
- FIG. 6 shows an exemplary web-page available from the web-server in FIG. 1 .
- FIG. 7 shows an exemplary web-page available from the web-server in FIG. 1 .
- FIG. 8 shows an exemplary web-page available from the web-server in FIG. 1 .
- FIG. 9 shows a flowchart depicting a method for content navigation.
- FIG. 10 shows the system of FIG. 1 during exemplary performance of part of the method of FIG. 9 .
- FIG. 11 shows the system of FIG. 1 during exemplary performance of part of the method of FIG. 9 .
- FIG. 12 shows the display of the client machine of FIG. 1 during exemplary performance of part of the method of FIG. 9 .
- FIG. 13 shows the display of the client machine of FIG. 1 during exemplary performance of part of the method of FIG. 9 .
- FIG. 14 shows the display of the client machine of FIG. 1 during exemplary performance of part of the method of FIG. 9 .
- FIG. 15 shows the display of the client machine of FIG. 1 during exemplary performance of part of the method of FIG. 9 .
- FIG. 16 shows the display of the client machine of FIG. 1 during exemplary performance of part of the method of FIG. 9 .
- FIG. 17 a schematic representation of a system for content navigation in accordance with another embodiment.
- FIG. 18 shows a flowchart depicting a method for content navigation in accordance with another embodiment.
- FIG. 19 shows the display of the client machine of FIG. 17 during exemplary performance of part of the method of FIG. 18 .
- FIG. 20 is schematic representation of a system for content navigation.
- FIG. 21 is a schematic representation of a wireless communication device from FIG. 20 .
- FIG. 22 shows the process of converting webpages to a hierarchical structure.
- FIG. 23 shows a flowchart depicting a method to obtain and satisfy a web page request.
- FIG. 24 shows the system of FIG. 20 during exemplary performance of part of the method of FIG. 23 .
- FIG. 25 shows exemplary perspectives of browsing sessions.
- FIG. 26 shows an exemplary web-page available from the web-server in FIG. 20 .
- FIG. 27 shows exemplary output from the Schema Engine.
- FIG. 28 shows an exemplary rendering of a mobile application.
- FIG. 29 shows an exemplary menu rendered on the mobile device.
- FIG. 30 shows an exemplary web-page available from the web-server in FIG. 20 .
- FIG. 31 shows an exemplary web-page available from the web-server in FIG. 20 .
- FIG. 32 shows an exemplary web-page available from the web-server in FIG. 20 .
- FIG. 33 shows an exemplary web-page available from the web-server in FIG. 20 .
- FIG. 34 shows an exemplary web-page available from the web-server in FIG. 20 .
- FIG. 35 shows action 1 of FIG. 44 .
- FIG. 36 shows action 3 of FIG. 44 .
- FIG. 37 shows action 5 of FIG. 44 .
- FIG. 38 shows action 7 of FIG. 44 .
- FIG. 39 shows action 9 of FIG. 44 .
- FIG. 40 shows an exemplary web-page available from the web-server in FIG. 20 .
- FIG. 41 shows an exemplary result of the process of assisted capturing of the web-page in FIG. 40 .
- FIG. 42 shows an exemplary rich bookmarks list.
- FIG. 43 shows an exemplary rich bookmarks list.
- FIG. 44 shows an exemplary action of browsing through ABC ComTech Corp. to purchase an item.
- FIG. 45 shows an exemplary request/response for a page the website in FIG. 20 .
- a portable electronic device having a browser application and a native menu application.
- the embodiment also includes a network that interconnects a web-server and said portable electronic device.
- the web-server hosts web pages that include menus and content.
- the portable electronic device is configured to obtain a schema respective to the web-pages whereby the web-page menus can be generated on the portable electronic device using the native menu application rather than the browser application, thereby permitting navigation of content on the portable electronic device via the native menu application.
- system 50 comprise a first computing device in the form of a client machine 54 and at least one additional computing device implanted as a second computing device in the form of a web-server 58 and a third computing device in the form of a schema server 62 .
- a network 66 interconnects each of the foregoing components.
- Each client machine 54 is typically any type of computing or electronic device that can be used to interact with content available on network 66 .
- Each client machine 54 is operated by a user U. Interaction includes displaying of information on client machine 54 as well as to receive input at client machine 54 that is in turn sent back over network 66 .
- client machine 54 is a mobile electronic device with the combined functionality of a personal digital assistant, cell phone, email paging device, and a web-browser.
- Such a mobile electronic device thus includes a keyboard (or other input device(s)), a display, a speaker, (or other output device(s)) and a chassis within which the keyboard, display monitor, speaker are housed.
- the chassis also houses one or more central processing units, volatile memory (e.g. random access memory), persistent memory (e.g. Flash read only memory) and network interfaces to allow machine 54 to communicate over network 66 .
- FIG. 2 a schematic block diagram shows client machine 54 in greater detail.
- Client machine includes a plurality of input devices which in a present embodiment includes a keyboard 200 and a microphone 204 . Other input devices, such as a touch screen, and camera lens are also contemplated. Input from keyboard 200 and microphone 204 is received at a processor 208 , which in turn communicates with a non-volatile storage unit 212 (e.g. read only memory (“ROM”), Erasable Electronic Programmable Read Only Memory (“EEPROM”), Flash Memory) and a volatile storage unit 216 (e.g. random access memory (“RAM”).
- ROM read only memory
- EEPROM Erasable Electronic Programmable Read Only Memory
- RAM random access memory
- Non-volatile storage unit 212 persistently maintains a native menu application 82 and a web-browser application 86 , each of which can be executed on processor 208 making use of nonvolatile storage 216 as appropriate.
- non-volatile storage unit 212 Various other applications (not shown) are maintained in non-volatile storage unit 212 according to the desired configuration and functioning of client machine 54 , one specific non-limiting example of which is a contact manager application 90 which stores a list of contacts, addresses and phone numbers of interest to user U and allows user U to view, update, delete those contacts, as well as providing user U an option to initiate telecommunications (e.g. telephone, email, instant message, short message service) directly from that contacts application.
- telecommunications e.g. telephone, email, instant message, short message service
- Native menu application 82 is configured to provide menu choices to user U according to the particular application (or other context) that is being accessed.
- user U can activate menu application 82 to access a plurality of menu choices available that are respective to contact manger application 90 .
- FIG. 3 a non-limiting exemplary portion of keyboard 200 is shown, which comprises a menu key 232 , a pointing device in the form of a trackball 236 , and a select key 240 .
- FIG. 3 also shows a non-limiting example of how contact manager application 90 can be rendered on display 224 when being accessed.
- FIG. 3 also shows a non-limiting example of how contact manager application 90 can be rendered on display 224 when being accessed.
- contact manager application 90 is shown displaying two contacts and a telephone number for each, namely, Bill Smith at 555-555-1212 and Sally Struthers at 555-555-1313.
- Sally Struthers is highlighted using a colour scheme that is inverse to the colour scheme used to display “Bill Smith” and the words “Contact Manager Application”, indicating that Sally Struthers is currently being selected.
- User U can operate trackball 236 to scroll between Bill Smith and Sally Struthers causing one or the other to be highlighted.
- menu application 82 provides a contextual menu M- 90 comprised of a plurality of menu choices that are reflective of the context in which menu key 232 was selected.
- Contextual menu M- 90 in FIG. 4 is respective to contact manager application 90 and hence the suffix “-90” in M- 90 .
- contextual menus M will be referred to herein as contextual menus M.
- contextual menu M- 90 provides the choices of: “Help” to obtain context sensitive help about what options are available to user U within the contact manager application 90 ; “View” to allow user U to see more contact information (e.g. address, additional phone numbers, photographs) of the highlighted contact; “Edit” to allow user U to edit the same information that can be viewed using “View”; “Delete” to allow user U to delete the particular contact from non-volatile storage memory; “Call” to allow user U to invoke a telephony application to initiate a telephone call to the highlighted contact; “Email” to allow user U to invoke an email application to compose an email to the highlighted contact; “Close” to allow user U to close contact manager application 90 altogether and return to an application selection screen (not shown).
- user U can depress the select key 240 in order to cause client machine 54 to invoke a telephony application (not shown) and dial the telephone number for Sally Struthers.
- User U can also depress menu key 232 while menu application 82 is open to cause menu application 82 to close and return control to the contact manager application 90 in accordance with the discussion relative to FIG. 3 .
- contextual menu M- 90 are stored within non-volatile storage 212 as being specifically associated with contact application 90 .
- Menu application 82 is therefore configured to generate a plurality of different contextual menus M that are reflective of the particular context in which the menu application 82 is invoked. For example, in an email application where an email is being composed, invoking menu application 82 would generate a contextual menu M that included the options of sending the email, cancelling the email, adding addresses to the email, adding attachments, and the like. The contents for such a contextual menu M would also be maintained in non-volatile storage 212 . Other examples of contextual menus M will now occur to those of skill in the art. Menu application 82 and contextual menus M will be discussed in greater detail below.
- web-server 58 and schema server 62 (which can, if desired, be implemented on a single server) can be based on any well-known server environment including a module that houses one or more central processing units, volatile memory (e.g. random access memory), persistent memory (e.g. hard disk devices) and network interfaces to allow servers 58 and 62 to communicate over network 66 .
- server 58 or server 62 or both can be a Sun Fire V480 running a UNIX operating system, from Sun Microsystems, Inc. of Palo Alto Calif., and having four central processing units each operating at about nine-hundred megahertz and having about sixteen gigabytes of random access memory.
- this particular server is merely exemplary, and a vast array of other types of computing environments for servers 58 and 62 are contemplated.
- network 66 and the links 70 , 74 and 78 associated therewith is not particularly limited and are, in general, based on any combination of architectures that will support interactions between client machine 54 and servers 58 and 62 .
- network 66 itself includes the Internet as well as appropriate gateways and backhauls to links 70 , 74 and 78 .
- the links 70 , 74 and 78 between network 66 and the interconnected components are complementary to functional requirements of those components.
- system 50 includes link 70 between client machine 54 and network 66 , link 70 being based in a present embodiment on core mobile network infrastructure (e.g. Global System for Mobile communications (“GSM”); Code Division Multiple Access (“CDMA”), Enhanced Data rates for GSM Evolution (“EDGE”), Evolution Data-Optimized (“EV-DO”), High Speed Downlink Packet Access (“HSPDA”).) or on wireless local area network (“WLAN”) infrastructures such as the Institute for Electrical and Electronic Engineers (“IEEE”) 802.11 Standard (and its variants) or Bluetooth or the like or hybrids thereof.
- GSM Global System for Mobile communications
- CDMA Code Division Multiple Access
- EDGE Enhanced Data rates for GSM Evolution
- EV-DO Evolution Data-Optimized
- HSPDA High Speed Downlink Packet Access
- WLAN wireless local area network
- client machine 54 could be other types of client machines, including a full desktop computer or a “thin-client”.
- System 50 also includes link 74 which can be based on a T1, T3, O3 or any other suitable wired or wireless connected between server 58 and network 66 .
- System 50 also includes link 78 which can be based on a T1, T3, O3 or any other suitable wired or wireless connected between server 62 and network 66 .
- client machine 54 is configured to interact with content available over network 66 , including web content on web-server 58 .
- client machine 54 effects such interaction via web-browser application 86 that is configured to execute on client machine 54 .
- web-browser application 86 is a mini-browser in the sense that it is configured to render web-pages on the relatively small display 224 of client machine 54 , and during such rendering attempt to render those pages in a format that is different from how those pages would be rendered on a traditional desktop browser, but still conveys, as much as possible, substantially the same information as if those web-pages had been rendered on a full browser such as Internet Explorer or Firefox on a traditional desktop or laptop computer.
- Web-server 58 is configured to host a web-site 100 that includes a plurality of web-pages.
- FIGS. 5-8 show exemplary representations of four different pages from web-site 100 , labeled 100 - 1 , 100 - 2 , 100 - 3 and 100 - 4 respectively.
- the representation in FIGS. 5-8 shows how web-pages 100 - 1 , 100 - 2 , 100 - 3 and 100 - 4 would be rendered on a traditional desk-top computer such as a Windows-based computer running the Internet Explorer or Firefox Web-browser as an HTTP web-page.
- web-site 100 is an e-commerce web-site belonging to a fictional computer equipment retailer named ABC ComTech Corp.
- FIGS. 5-8 shows exemplary navigation using a traditional desk-top browser through the “Home”; “Computers”; “Laptops” and “17.0 inch” menu options as found in the menu-panes indicated at 104 - 1 , 104 - 2 , 104 - 3 and 104 - 4 respectively on FIGS. 5 , 6 , 7 , and 8 .
- FIGS. 5-8 also show content panes indicated at 108 - 1 , 108 - 2 , 108 - 3 and 108 - 4 respectively on FIGS.
- content panes 108 - 1 , 108 - 2 , 108 - 3 , 108 - 4 comprise promotional content that corresponds to the level of the menu in its respective menu-panes 104 - 1 , 104 - 2 , 104 - 3 , 104 - 4 . More particularly, in FIG. 5 , which corresponds to the “Home” menu-pane 104 - 1 , there are promotional items (e.g.
- FIG. 6 which corresponds to the “Computers” menu-pane 104 - 2
- promotional items e.g. a laptop computer and a desktop computer
- FIG. 7 which corresponds to the “Laptops” menu-pane 104 - 3
- promotional items e.g.
- menu-pane 104 - 4 is substantially the same as menu-page 104 - 3
- content pane 108 - 4 includes a list of 17′′ laptops that are available for purchase.
- a specific laptop listed on content pane 108 - 4 can be selected for further information and/or selected for purchase.
- menu-panes 104 - 1 , 104 - 2 , 104 - 3 and 104 - 4 represent at least one set of hyper-text markup language (“HTML”) programming instructions possibly incorporating scripting language such as Java-script.
- HTML hyper-text markup language
- content-panes 108 - 1 , 108 - 2 , 108 - 3 and 108 - 4 represent at least one other set of hyper-text markup language (“HTML”) programming instructions possibly incorporating scripting language such as Java-script.
- the programming instructions for menu-panes 104 - 1 , 104 - 2 , 104 - 3 and 104 - 4 are discrete from the programming instructions for content-panes 108 - 1 , 108 - 2 , 108 - 3 and 108 - 4 .
- web-server 58 is configured to provide each web-page 100 - 1 , 100 - 2 , 100 - 3 and 100 - 4 in its entirety in response to a request from a web-browser, so that it is not generally possible to view, for example web-page 100 - 4 directly from web-page 100 - 1 or web-page 100 - 2 .
- web-browser application 86 is also configured to interact with schema server 62 in order to obtain a schema 102 .
- a schema such as schema 102 comprises a file corresponding to content on web-site 100 .
- Such a schema file can be generated in any desired format, such as eXtensible Markup Language (“XML”) or a text file.
- XML eXtensible Markup Language
- a schema can contain instructions to identify each page family on the website as well as instructions to extract desired objects and elements for each page family.
- a schema can additionally specify the relationship between the objects and attributes.
- schema 102 includes information relative to menu-panes 104 - 1 , 104 - 2 , 104 - 3 and 104 - 4 that is usable to menu application 82 and web-browser application 86 in the presentation of web-site 100 on client machine 54 .
- Table I shows an exemplary representation of a schema 102 that corresponds to web-site 100 .
- Table I the first four columns of Table I (“Root Menu Item”; “Level 1 Menu Item”; “Level 2 Menu Item”; “Level 3 Menu Item”) correspond to the menu structure found in menu-panes 104 - 1 , 104 - 2 , 104 - 3 , 104 - 4 .
- the last column of Table I (“Web-page Link within web-site 100 ”) corresponds to the specific address associated with a particular web-page within website 100 , including web-pages 100 - 1 , 100 - 2 , 100 - 3 , 100 - 4 and other web-pages that are not actually shown in the Figures and points to the respective content (including 108 - 1 , 108 - 2 , 108 - 3 , 108 - 4 and other content not actually shown in the Figures) that is associated with the menu-panes reflected in the associated first four columns.
- the first four columns can be used by native menu application 82 to create a plurality of contextual menus M that have substantially the same content as menu-panes 104 - 1 , 104 - 2 , 104 - 3 and 104 - 4 .
- the last column of Table I can be used to extract web-content corresponding to the web-site address indicated in the relevant entry of that last column, as found within web-site 100 , including web-content 108 - 1 , 108 - 2 , 108 - 3 , 108 - 4 and other web-content from other web-pages in web-site 100 that are not actually shown in the Figures.
- Web-browser application 86 and native menu application 82 are therefore configured to co-operate using schema 102 in order to present web-content within the web-browser application 86 , while using native menu application 82 to permit user U to navigate through web-site 100 .
- Method 900 can be performed using system 50 , though it is to be understood that method 900 can be performed on variations of system 50 , and likewise it is to be understood that method 900 can be varied to accommodate variations on system 50 .
- Block 910 a schema is requested.
- Block 910 is performed by web-browser application 86 (or a separate plug-in or other application configured to execute in conjunction with web-browser, such as a transcoding engine, not shown) which establishes a connection with schema server 62 in order to retrieve schema 102 .
- the schema is validated and returned.
- the validation of block 915 (which, it will be appreciated, like certain other aspects of method 900 , will be understood to be optional) can be effected by server 62 which can perform a validation operation to confirm that schema 102 matches web-site 100 and is otherwise up-to-date. If validation is not achieved then an exception (e.g. an error) can be generated.
- schema 102 is returned to web-browser application 86 where it is loaded into web-browser application 86 .
- Blocks 910 through 915 are represented in FIG. 10 , as a connection between web-browser application 86 of client machine 54 and schema 102 of server 62 is indicated at reference 216 such that schema 102 is now loaded onto client machine 54 and available to web-browser application 86 .
- web-browser application 86 requests schema 102 is not particularly limited. In one particular embodiment, however, it is contemplated that web-browser application 86 will be configured to automatically make network requests over network 66 to request a schema that corresponds to website 100 .
- schema server 62 can have a predefined network address on network 66 that is preprogrammed into client machine 54 .
- the type of network address is not particularly limited, and can be, for example, any type of network identifier such as an Internet Protocol (“IP”) address or a Uniform Resource Locator (“URL”). Any other suitable type of network address is contemplated.
- IP Internet Protocol
- URL Uniform Resource Locator
- Client machine 54 can therefore be programmed to send a request to the address for schema server 62 and request that schema server 62 provide, if available, a schema (e.g. schema 102 ) that corresponds to web-site 100 .
- a schema e.g. schema 102
- the request at block 910 provided by client machine 54 can be formed with any unique identifier for each web-page, but in the context of the Internet the request would most typically be, or derived from, the URL associated with each web-page. In turn, that unique identifier can be used to index schema 102 on schema server 62 .
- authentication can be made through connection 216 to validate the origin of schema 102 .
- private and public key based authentication can verify that schema 102 is originated from a trusted source.
- system 50 can be implemented so that a plurality of web-sites (like web-site 100 ) are hosted over network 66 (either alone by server 58 or by a plurality of web-servers like web-server 58 ), and that a corresponding plurality of schemas for each of those web-sites (or each of the web-pages therein, or both) can be maintained on schema server 62 .
- schema server 62 there can in fact be a plurality of schema servers (like schema server 62 ) and that client machine 54 can be configured to search for corresponding schema files on one or more of those schema servers.
- schema servers can be hosted by a variety of different parties, including, for example: a) a manufacturer client machine 54 , b) a service provider that provides access to network 66 via link 70 on behalf of user U of client machine 54 ; or c) the entity that hosts web-site 100 . In the latter example it can even be desired to simply host schema 102 directly on web-server 58 and thereby obviate the need for schema server 62 .
- a web-page is selected.
- home web-page 100 - 1 for web-site 100 is selected.
- Such a selection will typically have been made as part of web-browsing performed by user U, and indeed will have been done prior to invocation of method 900 .
- web-browser application 86 makes a request for home web-page 100 - 1 .
- Such a request can be made directly bypassing server 62 altogether.
- such a request can be made via server 62 or another server, with intermediate transcoding (e.g.
- the selected web-page is requested, and at block 930 the selected web-page is returned. More particularly, web-server 58 returns web-page 100 - 1 to web-browser application 86 .
- Blocks 920 through 930 are represented in FIG. 11 as a connection between web-browser application 86 and web-server 58 is indicated at 220 such that web-page 100 - 1 is now loaded onto client machine 54 and available to web-browser application 86 .
- Block 935 the web-page is generated using the schema within the web-browser.
- Block 935 is represented in FIG. 12 , as In this example, web-page 100 - 1 is generated on display 224 using the last column of Table I representing the aspect of schema 102 that corresponds with the home web-page 100 - 1 of web-site 100 .
- Table I representing the aspect of schema 102 that corresponds with the home web-page 100 - 1 of web-site 100 .
- only content 108 - 1 is actually shown on display 224 while menu-pane 104 - 1 is removed from display within web-browser application 86 .
- user U can perform the usual functions of web browsing, including scrolling through the page, and selecting any individual links which may be active on within content 108 - 1 .
- user U could browse and otherwise interact with content 108 - 1 as if user U was operating a traditional desktop browser. It will now be understood that such interaction could lead to a selection of a different web-page which would otherwise interrupt performance of method 900 .
- Such interaction is not contemplated by method 900 expressly for convenience and simplicity, but that is not to say that such interaction is excluded.
- FIG. 13 represents performance of block 945 , as invocation of menu application 82 has caused contextual menu M- 104 - 1 to be rendered in conjunction with content 108 - 1 on display 212 .
- contextual menu M- 104 - 1 is generated using native menu application 82 .
- Native menu application 82 interacts with web-browser application 86 in order to obtain the relevant contents of menu-pane 104 - 1 in order to ultimately generate contextual menu M- 104 - 1 .
- User U can thus scroll through the various options presented on contextual menu M- 104 - 1 in much the same manner that user U could scroll through the options presented on contextual M- 90 as discussed above.
- a determination would be made as to whether user U interacting with contextual menu M- 104 - 1 using menu application 82 made a selection corresponding to one of “Computers”; Computer Add-ons”; “Software”; “Photo-finishing”; “TV & Video”; or “Audio”.
- method 900 advances to block 960 where a determination is made as to whether a control item was selected.
- a control item was selected.
- FIG. 13 an exemplary control option entitled “close browser” is provided.
- other control options can be provided, such as “switch application”.
- Other control options will now occur to those skilled in the art.
- a “yes” determination would therefore be made at block 960 if user U interacting with contextual menu M- 104 - 1 using menu application 82 made the selection corresponding to “Close Browser”. Such a “yes” determination could lead to the termination of method 900 as web-browser application 86 is closed altogether and operation of client machine 54 directed to execution of another application, such as a main menu application (not shown).
- method 900 cycles back to block 950 .
- method 900 cycles back to block 925 where another web-page corresponding to the selection is made.
- Method 900 continues to perform thereafter in substantially the same manner as previously described, except that the newly selected web-page is now generated and the corresponding contextual menu for each of those pages loaded accordingly.
- FIGS. 14 , 15 and 16 show further exemplary screen shots of how navigation would be effected using method 900 proceeding from the screen shot in FIG. 13 .
- FIG. 13 corresponds to FIG. 5 ;
- FIG. 14 corresponds to FIG. 6 ;
- FIG. 15 corresponds to FIG. 7 ;
- FIG. 16 corresponds to FIG. 8 , except that FIGS. 5-8 show how various pages of web-site 100 would be rendered using a traditional desktop browser, whereas FIGS. 13-16 shows how those same pages would be rendered using method 900 .
- user U can, if desired, select a specific laptop listed on content pane 108 - 4 using browser application 86 in order to obtain further information and/or selected for purchase.
- server 62 a includes a transcoding engine 103 a that is configured to, on behalf of device 54 a , transcode web-content 108 a - 1 , 108 a - 2 , 108 a - 3 and 108 a - 4 from the format of that content as maintained by web-server 58 a into another format that is optimized for generation on the display of device 54 a .
- web-content 108 a - 1 , 108 a - 2 , 108 a - 3 or 108 a - 4 destined for device 54 a is retrieved from server 58 a via server 62 a , whereby server 62 a transcodes that content prior to sending that content to device 54 a .
- the transcoded version of web-content 108 a - 1 is identified as web-content 108 a ′- 1 in an oval associated with web-browser 86 a .
- transcoding engine (or other transcoding functions) need not be placed on (or at least implemented by) device 54 a and thereby freeing up resources on device 54 a .
- block 935 of method 900 would be modified for system 50 a , whereby the webpage would be generated using transcoding engine 103 a instead of doing any transcoding using the schema within browser 86 .
- Method 900 b can be performed using system 50 , though it is to be understood that method 900 b can be performed on variations of system 50 , and likewise it is to be understood that method 900 b can be varied to accommodate variations on system 50 .
- Method 900 b is a variation on method 900 and therefore like blocks in method 900 b bear like references to counterpart blocks in method 900 , except followed by the suffix “b”. While methods 900 and 900 b are substantially the same, of note is that in method 900 b , block 945 is omitted and substituted with block 946 b .
- Block 946 b itself is a variation on block 945 , except that the menu pane M- 104 that is generated includes additional depth beyond the depth provided in the original menu pane 104 . Additional depth is meant to indicate, for example, that when generating menu pane 104 - 1 on device 54 , menu pane M- 104 may be modified to include at least a portion of the menu selections found one or more of menu panes 104 - 1 , 104 - 2 , 104 - 3 , 104 - 4 . (An exemplary modified version of menu pane M- 104 b - 1 generated by block 946 b is shown in FIG.
- menu pane M- 104 may be modified to include ALL of the selections in 104 - 1 , 104 - 2 , 104 - 3 , 104 - 4 .
- Method 900 b addresses one problem of browsing between web-pages on mobile electronic devices, whereby browsing through multiple pages can be time consuming, resource (e.g. bandwidth, processor, memory) intensive and not to mention financially expensive for user U depending on the rate plan available to user U.
- Method 900 b can allow users to navigate through multiple levels of web page menus.
- FIG. 19 in menu pane M- 104 b - 1 , the selections of menu pane M- 104 - 3 are combined into the selections of menu pane M- 104 - 1 , thereby allowing user U to navigate directly the contents of menu pane M- 104 - 3 and bypassing the contents of menu pane M- 104 - 2 .
- Implementing method 900 b can be effected by examining the full contents of Table I and generating a modified menu pane M- 104 that reflects the desired combinations of one or more of menu panes M- 104 - 1 , M- 104 - 2 and M- 104 - 3 .
- the determination of which portions of menu panes M 104 - 1 , M- 104 - 2 or M- 104 - 3 are to be combined are not particularly limited.
- a record can be kept of the most popular selections by all users of web site 100 and to include direct links to those selections.
- specific promotions can be chosen to be combined into the modified menu pane M- 104 (e.g. where the operator of server 58 wishes to promote the sale of 17′′0 laptops in FIG. 16 ).
- a browsing history by user U of device 54 can be maintained, so that the first time user U browses web-site 100 , method 900 is invoked so that user U is presented with the screens shown in FIGS.
- method 900 b is invoked and user U will be initially presented with the screen shown in FIG. 19 in anticipation of user U's desire to browse directly to the screen shown in FIG. 16 .
- a communications environment 10 D has one or more Web sites 20 D that have a collection of Web files 52 D on a particular subject that includes a beginning file called a home page, which is reached by a computing device 101 D over a communications network 11 D via a network address (e.g. URL).
- a network address e.g. URL
- the Web site is typically hosted on one or more Web servers.
- a server in this context is a computer device 101 D that holds the files for one or more Web sites. For example, a large Web site may be hosted on a number of servers located in many different geographic places.
- Access to the Web sites over the network 11 D can be done directly, in terms of desktop devices 26 D, and through a proxy gateway 22 DD, further described below. Accordingly, one or more mobile devices 24 D (e.g. PDAs, mobile phones, etc.) and one or more desktops 26 D can use the gateway to access the pages (both content 50 D and navigational 54 D aspects).
- the gateway can be used to format or otherwise monitor the interaction of the user of the devices 24 D, 26 D with the content 50 D and navigational 54 D aspects of the Web pages.
- the environment 10 D can take unstructured webpage (e.g. HTML) and convert it into a structured database, for example. It is not about simplifying HTML for any page, it is about understanding the data in a page and the relationships (between data content and between data content and navigational items tied to that page content) that govern the data in the page. Accordingly, knowledge of the data contained in the page content (e.g.
- the gateway that acts as the proxy between the desktop/mobile for accommodating requests for web site data from the mobile/desktop and corresponding web site data sent from the web site in response to the request.
- the data e.g. web page 60 D
- the gateway could be any structured file (e.g.
- HTML HyperText Markup Language
- XML XML
- the signature file has predefined knowledge about the contents of the document (e.g. meaning of data contained within tags/delimiters as well as the interrelationships between the data in the document).
- HTML HyperText Markup Language
- XML XML
- the signature file has predefined knowledge about the contents of the document (e.g. meaning of data contained within tags/delimiters as well as the interrelationships between the data in the document).
- HTML HyperText Markup Language
- the extraction process of the gateway for extracting data from the web page of the web site can be used to obtain only that data (e.g. published content and/or navigational data) that is pertinent to a simplified display on the screen of the user device 101 D.
- the reason for generation of the simplified display of the data obtained from the original web site content can be such as but not limited to: limited display space for the generated simplified data display on the user device 101 D (e.g. physical space restrictions such as for a mobile screen or for user/system defined space restrictions such as for only a portion of the theoretically available desktop screen space; and for user preference pertaining to continuity of browsing/transactional/session experience.
- An example of user preference is where the user starts the interaction with the web site and resultant displayed data (published content and navigational data) on the mobile (i.e. mobile formatted data display) and then wishes to retain the formatting of the mobile when continuing to view on the desktop screen.
- the user on the desktop can continue to browse the published content and navigational data of the web site as previously experienced on the mobile, using only a portion of the desktop screen (for example) for data display.
- Objects lists a selection of news stories
- Objects lists a single news story (and maybe other related stories)
- each object and attribute field can have a unique signature within a family of pages that we need to identify once for the family.
- a Signature file can contain numerous pieces of information, for example namely:
- the signature file can contain knowledge about the type of file, the objects/attributes of the file, and the relationships between the objects and attributes in the file.
- a further example of the web site data can be such as but not limited to news articles and RSS feeds or other information feeds (stock tickers, etc.).
- This component uses the signature file for a website to create content data in response to the web page request, from the mobile/desktop, efficiently on the fly and send the data to the client.
- the data can include web page content data and navigational data obtained from the web page as requested.
- the information can be stored to start building a database of the site, optionally.
- the construction of this database can be saved locally to the gateway, otherwise cached to the local storage of the user device, and/or cached/stored at the web site or third party (e.g. a search engine service used for comparison of data from different web sites).
- Navigation items are on the same page as content, but it may not make sense (in situations with limited screen real estate available) to display the page in the original web page format as obtained from the website by the gateway.
- Schema extracts the navigational items separately to create a navigational portion of the web page.
- the environment can do interesting things with the separated navigational items, such as feed it to an application in the background to help improve the browsing experience or to otherwise reformat the presentation of the navigational items on the display of the mobile/desktop, in order to help with navigation and maintaining navigation context in situations with limited display space available for presentation of the web page.
- the user can start browsing from the PC or mobile device 101 D and complete a purchase on either (or otherwise continue the sessions).
- Continuance of sessions can also give users seamless flexibility to use their PC and mobile to buy/browse things from websites and to replicate the buy/browse information.
- bookmark e.g. a displayable link
- a URL e.g. network address of the web site data
- identified portions of the web site data located with respect to that URL e.g. item image, item title, description of item, text body related to item—such as an article, etc.
- the portions of web site data associated with the URL can be considered key or otherwise memorable data preferred by the user with respect to item(s) on the URL (for example product name/price/image).
- delimiter e.g. HTML tag
- HTML mark up can be used to accomplish this and we have Al that can identify these properties.
- One embodiment is where we use the rendered page, in combination with tag analysis.
- This feature could be used to generate the signature files automatically by guessing and at least significantly speeding up creating of signature files, if not completely automated.
- Another use of the desktop tagging tool is to create a list of rich bookmarks for later use by the user and/or for publishing or otherwise sharing with other users.
- This would be a list of rich bookmarks provided by one user to another user, such that the list of rich bookmarks contains URLs and associated data from one or more web sites.
- a user goes through a number of pages to navigate to an item they want to buy and then must continue browsing through a number more pages to complete a checkout or transaction.
- the provided description of the environment 10 D includes detailed explanations of the analysis and output of a requested web page. The same process can be extended to all web pages browsed from start to end to complete a transaction. It is recognized that the transaction can be such as but not limited to: browsing for and subsequent purchase of item(s); and/or browsing and subsequent saving of published content (e.g. news article), as desired.
- actions one through ten in FIG. 44 represent a user browsing through ABC ComTech Corp. to purchase an item.
- the web pages representing actions one through ten are shown in FIGS. 35-39 respectively.
- Web sites 20 D have the plurality of pages 52 D (e.g. defined using HTML, XML, XHTML, JavaScript and other structured definition web programming languages—e.g. based on W3C standards—e.g. WSDL).
- a Web site can be provided as a Web service, which can be a software system, designed to support interoperable device 101 D to device 101 D interactions over the network 11 D.
- Web services can be Web APIs that can be accessed over the network 11 D, such as the Internet, and executed on the remote device 101 D hosting the requested services.
- a Web service definition encompasses many different systems, but can refer to clients and servers that communicate XML messages that follow the SOAP-standard, via a description of the operations supported by the server e.g. in WSDL.
- composition of the Web pages can include displayed content and navigation features.
- Web pages typically have both of these features on each page and will display content in the main content areas and have navigation options through menus, as shown by example in FIG. 26 .
- This web page layout is structured for access by desktop 26 D browsers, where the screens are large enough to display the entire page.
- most mobile 24 D browsers may not have the width and height of a typical PC monitor, therefore they can be unable to display pages as they would appear on a PC browser.
- One approach to deal with this is to re-organize the page and wrap content around the screen.
- a second approach used by the WAP standard is spatially divide a page (usually vertically) into a number of pages and allow users to navigate between each page section to view a page.
- a third approach (through the gateway 22 DD) is to functionally divide website features into separated content 50 D and navigation 54 D components, further described below.
- content 50 D is published content (e.g. articles, stories, news, product information, etc.), which is data that is meant to be read/listened to by the user.
- the content can include computer files, image media, audio files, electronic documents, which are either located on/in the Web page or are otherwise accessible through navigation/requests from a particular Web page and/or Web service.
- Web content can be referred to as textual, visual or aural content that is encountered as part of the user experience through interaction with Web sites/services.
- Web content may include, among other things: text; images; sounds; videos; animations; and feeds (video, audio, and/or textual).
- the pages can present content as predominantly composed of HTML, or some variation, as well as data, applications, e-services, images (graphics), audio and video files, personal Web pages, archived e-mail messages, and many more forms of file and data systems can belong to Web sites and Web pages.
- a table can help that text and graphics are displayed in their correct location.
- a table can also encompasses an entire page, with nested tables (including content and/or navigation features) within the main table for even more layout control;
- Text e.g. articles, for most web pages, is tone of he most important features. Text can be used to present ideas, instructions, and/or educational/recreational content;
- Images can be used in web pages to support the theme of the web page and to provide a visual impression. Images can be separate image files and may not reside in the HTML document itself, but can be stored in the same location as the web page. Images can be scanned photographs or pictures, may be created in a draw program, or may be downloaded from another web site.
- the mobile 24 D and desktop 26 D devices coordinate user events 109 D of the respective users, though operation of the browsers (or other applications) 207 D in interaction with the supporting navigation features of the Web pages/sites.
- the navigation features can include visual based controls, text controls, and/or a combination thereof.
- Examples of navigation 54 D mechanisms with respect to the content of a Web site can include such as but not limited to: embedded links (e.g. anyplace where one links content within the body of the page); and navigation buttons, graphic and text-based. As well, text entry fields can be used to navigationally access content and other navigation features of Web sites.
- embedded links e.g. anyplace where one links content within the body of the page
- navigation buttons graphic and text-based.
- text entry fields can be used to navigationally access content and other navigation features of Web sites.
- navigation 54 D mechanisms can be such as but not limited to:
- Buttons can be images with text on them that provide a means to navigate from one location to another. Buttons may be created in a draw program or downloaded from other web sites.
- Menu Bar can be features on a web page that provide links to other pages for easy navigation between the pages or other Web sites.
- Menu bars may contain buttons (e.g. text/images), they may be created as a table, or they may be text-based with divider lines; and
- a computing device 101 D of the system 10 D can include a network connection interface 200 D, such as a network interface card or a modem, coupled via connection 218 D to a device infrastructure 204 D.
- the connection interface 200 D is connectable during operation of the devices 101 D to the network 11 D (e.g. an Intranet and/or an extranet such as the Internet), which enables the devices 101 D to communicate with each other (e.g. that of the mobile 24 D, gateway 22 DD, desktop 26 D and Web site 20 D) as appropriate.
- the network 11 D can support the communication of the web pages as requested.
- the device 101 D can also have a user interface 202 D, coupled to the device infrastructure 204 D by connection 222 D, to interact with a user (e.g. mobile user, gateway administrator, website administrator, desktop user—not shown).
- the user interface 202 D can include one or more user input devices such as but not limited to a QWERTY keyboard, a keypad, a stylus, a mouse, a microphone and the user output device such as an LCD screen display and/or a speaker. If the screen is touch sensitive, then the display can also be used as the user input device as controlled by the device infrastructure 204 D.
- the device infrastructure 204 D includes one or more computer processors 208 D and can include an associated memory 22 D (e.g. a random access memory).
- the computer processor 208 D facilitates performance of the device 101 D configured for the intended task (e.g. of the respective module(s) of the host system 14 D) through operation of the network interface 200 D, the user interface 202 D and other application programs/hardware 207 D (e.g. browser or other device application on the mobile/desktop, web page—content and/or navigation—server of the gateway, and Web server of the Web site) of the device 101 D by executing task related instructions.
- the intended task e.g. of the respective module(s) of the host system 14 D
- application programs/hardware 207 D e.g. browser or other device application on the mobile/desktop, web page—content and/or navigation—server of the gateway, and Web server of the Web site
- the device infrastructure 204 D can include a computer readable storage medium 212 D coupled to the processor 208 D for providing instructions to the processor 208 D and/or to load/update the instructions 207 D.
- the computer readable medium 212 D can include hardware and/or software such as, by way of example only, magnetic disks, magnetic tape, optically readable medium such as CD/DVD ROMS, and memory cards.
- the computer readable medium 212 D may take the form of a small disk, floppy diskette, cassette, hard disk drive, solid-state memory card, or RAM provided in the memory module 22 D. It should be noted that the above listed example computer readable mediums 212 D can be used either alone or in combination.
- the computing device 101 D can include the executable applications 207 D comprising code or machine readable instructions for implementing predetermined functions/operations including those of an operating system and the host system 14 D modules, for example.
- the executable instructions 207 D can be an application hosted on the user mobile/desktop for interacting with the gateway, the engine and other related components for when acting as a data proxy between the mobile/desktop and the web site, or a web service (e.g. search engine crawling tool) for use by the web site, as configured by the respective device 101 D when operating within the environment 10 D.
- the processor 208 D as used herein is a configured device and/or set of machine-readable instructions for performing operations as described by example above.
- the processor 208 D may comprise any one or combination of, hardware, firmware, and/or software.
- the processor 208 D acts upon information by manipulating, analyzing, modifying, converting or transmitting information for use by an executable procedure or an information device, and/or by routing the information with respect to an output device.
- the processor 208 D may use or comprise the capabilities of a controller or microprocessor, for example. Accordingly, any of the functionality of the executable instructions 207 D (e.g. through modules associated with selected tasks) may be implemented in hardware, software or a combination of both. Accordingly, the use of a processor 208 D as a device and/or as a set of machine-readable instructions is hereafter referred to generically as a processor/module for sake of simplicity.
- the memory 22 D is used to store data locally as well as to facilitate access to remote data stored on other devices 101 D connected to the network 11 D.
- This data can be related to data/user events of the mobile/desktop, data used by the gateway in obtaining and satisfying requests for web pages and associated content/navigation features, and/or actual Web site data, as appropriate for the use of the device 101 D in the environment 10 D.
- the data can be stored in a table, which can be generically referred to as a physical/logical representation of a data structure for providing a specialized format for organizing and storing the data.
- General data structure types can include types such as but not limited to an array, a file, a record, a table, a tree, and so on.
- any data structure is designed to organize data to suit a specific purpose so that the data can be accessed and worked with in appropriate ways.
- the data structure may be selected or otherwise designed to store data for the purpose of working on the data with various algorithms executed by components of the executable instructions, depending upon the application thereof for the respective device 101 D. It is recognized that the terminology of a table is interchangeable with that of a data structure with reference to the components of the network environment 10 D
- Large data-driven sites 20 D may not create and maintain thousands of pages. Instead, they use multiple page templates 62 D and populate the templates from the database of content information. Examples would be online stores, news sites, sports information and weather. The association of the data in the database with the templates 62 D is used to construct the web page(s) sent to the gateway 22 DD.
- a client makes a request to the ABC ComTech Corp.ca web server (2)
- the web server calls the respective page family (3) depending on the page requested
- the page family (3) retrieves data (all navigation and content) from the database (1) to populate data fields of the page 60 D
- the web server (2) transmits a completed webpage 60 D to the gateway 22 DD at (4) It is recognized that a page family serves a specific function for use by the gateway 22 DD via the signature file 64 , see below.
- a page family serves a specific function for use by the gateway 22 DD via the signature file 64 , see below.
- ABC ComTech Corp.ca has the following families of pages:
- the environment 10 D can take advantage of the fact that each web page 50 D of the website 20 D can follow a recognizable pattern of content data/location and navigational items related to the content data and content location.
- content data/location and navigational items related to the content data and content location.
- the web page could also be referred to as a document (e.g. file) that is analysed by the engine through use of the signature file in order to extract (or to insert in the case of passing information from the mobile/desktop back to the web site) information subset(s) of the document.
- a document e.g. file
- a signature file can be created once for a website and then can efficiently analyze and extract data from pages 60 D from the website efficiently.
- the gateway 22 DD may not have to store any data from the website, and can instead fetch the data in real time upon request as the webpage 60 D matching the content/navigation request of the mobile 24 D and/or desktop 26 D.
- Another advantage of signature files is that they can be non-intrusive to the existing website infrastructure and may not require that a vendor or merchant make any changes to their website configuration/infrastructure.
- One preferable characteristic of the websites is the use of page families for representing the website data from their databases 22 D, as further described below.
- Mobile Applications can be created from large websites. Each page is “optimized” on the fly by extracting the data from the page and sending the data to a mobile device, through use of the signature file, thereby helping to significantly speed up loading time and saving bandwidth.
- the Schema Engine is also able to format the content and navigational items obtained from the web pages 60 D for efficient display on the display of the mobile/desktop devices 101 D. Turning unstructured page content into relational data can also be significant, and can help to enable rich features for users such as custom alerts and price comparison.
- a user could save an item while browsing and the Schema Engine could automatically go back every day (or other selected time period) and check to see if the item was on sale or in stock.
- a user could also ask to find similar items at other stores, via appropriate URL requests to the gateway, which could be a supportable feature if product information was stored, for example.
- a search engine index of the product page of camera A would contain all the keywords for that page and have prices—$200, $100, $50, the relationship of the prices with respect to the camera is unknown to the search engine.
- a product page can contain information about a specific product including its name, description and price but may also have other product being recommended to the user on the same page with their own prices and names.
- a search engine may know of all the names and prices in the page, but not know which sets of information belong to which product specifically.
- Price comparison sites depend on vendor submission for their offering and it can be very painful for vendors to prepare these data feeds. Crawling the sites like a search engine does not work for the reasons stated above, unless the use of a signature file is applied. Using the signature file, accurate product information could be ascertained by applying signature files to a crawled cache or index or collecting price and product information as it flows through the Schema Engine. In this case, a template of the cached/indexed information would be used to create the respective signature therefore. The information could be much richer and cover a significantly larger portion of the web more reliably and easily.
- a price comparison engine could automatically crawl using signature files to build a complete database of an ecommerce site, using search criteria facilitated through the signature file to implement complex searches of the web site content on a page per page basis (e.g. find all cameras with prices—done through the use of the signature file for respective web sites and then apply filters to the extracted data—e.g. identify those cameras with a price under $200).
- FIG. 34 With respect to construction of an appropriate signature file, some terminology is explained using FIG. 34 as an example:
- Page family Item Page
- a complete signature file 64 D for a website 20 D can contain such as but not limited to:
- the following provides an overview of constructing the various components of the signature file 64 D, for use in interpreting web pages 60 D obtained from the web site and for reformatting the content and navigational items of the requested web pages for use by the mobile 24 D and/or desktop 26 D as reformatted pages 66 D.
- the recognition of various elements of the web pages for use in defining the signature file 64 D can be obtained through manual/automated/semi-automated analysis of the web pages (content and navigation), as desired.
- An identifier for a page family can meet 2 criteria:
- a string identifier is used that meets the above criteria as shown in the example below.
- the pages in FIGS. 30 and 32 are both from the item family.
- the text “product-details-r-bdr” occurs in both pages and in fact in all pages from the item family in ABC ComTech Corp.
- the text does not occur in the page shown in FIG. 27 belonging to the list family and in fact does not occur in any other family of pages other than the item page. Since this satisfies both conditions of being a page family identifier, the highlighted text is chosen as the identifier for the item page family.
- Unique reference can be defined by setting a limit on portion of a webpage.
- the string “largeImageRef” is the string identifier used to identify and extract the product image for the page shown in FIG. 30 .
- Code snippets A and B above illustrate a common problem that can occur.
- the string identifier needed occurs previously in the document and is therefore an ambiguous identifier on the page.
- One solution to this problem is constraining the scope of the Schema Engine to the appropriate part of the page in order to effectively use an identifier. This method allows the definition of seeming uniquely identifiers even if they appear elsewhere on the page.
- the example page in FIG. 34 contains a camera object with the elements Picture (1), Title (2), Price (3), Description (not shown).
- the signature file therefore can have instructions to identify and extract the elements above as part of the product object for all pages in the item page family.
- command representing instructions 1-4 above is shown below in a query language (e.g. the individual file entries) used in signature files developed for the purpose of data extraction, with some relevant parameters highlighted:
- the object and element relationships can be implicitly or explicitly specified.
- the instructions are to first identify and extract the picture, second to identify and extract the title, third the link and fourth the price. The instructions then repeat for the rest of the products on the page.
- the specific ordering and grouping of the instructions above implicitly define objects that consist of those elements.
- the example and information demonstrates how to capture data and relationships of objects and elements within a page of a web site 20 D.
- the platform can actually capture relevant attributes of an object across pages. For example, if a user of the mobile 24 D clicked through a number of pages in the following categories in ABC ComTech Corp. to get to a specific TV-SONY456: e.g. TV & Video >19′′-21′′ TVs >LCD TVs >SONY456.
- Another aspect is the ability to capture the information across the navigation of pages about the product. In doing that, one can capture the categorization of the TV “TV & Video >19′′-21′′ TVs >LCD TVs >” and add that as another attribute of the object. This example shows how capturing of navigation metadata or information across pages can be a source of valuable information.
- the key input fields and values can be identified in the same way and presented to the user of the mobile 24 D and value captured and sent back to the website 20 D via the gateway 22 DD.
- the signature file 64 D can be written in an xml based query language syntax (or other structured definition language and/or script language, for example) to specify the above identifiers and actions such as traversing backwards, forwards and extracting values.
- the language can be a SQL type query language and can be built on top of regular expressions.
- a device 101 D for implementing the automated method of signature file generation can host a corresponding tool with associated modules including a graphical user interface module to allow selecting contents on a page easier for a user, for example.
- the contents may be navigational items, lists, specific items from a list, and other content, for example.
- the reason that this is useful is that signature files can be manually created, which can be time consuming, and subject to human error. Therefore by automating this process, the turn around time for interpreting a website as a database through the gateway 22 DD can be substantially faster and more accurate.
- the automated generation method is to break down the html document (of other format of the web pages) into a hierarchy of tags (delimiters pertaining to a schema of the definition of the pages).
- the resulting structure can be a tree, which defines the parent, siblings and children of each object.
- the process (described in the following section) can identify the key objects that contain the data required for the signature file. Once an object is identified as being a required field within the database, the object would then identify its uniqueness by examining its properties (for example class, style, id). If the object is a text node of the tree (or other hierarchical structure), the object will use the properties of its parent. If the properties of the object are not unique, then the object would expand its uniqueness to its parent, siblings and children.
- the process would expand in all directions uniformly (i.e. examine parent, then previous sibling, then next sibling, then first child. The properties of each of these items would also merge with the required object. This process would then be repeated on the parent, then the previous sibling, etc, until a unique identifier was found. Once a unique identifier was found, an expression would be created for the signature. Note that at least two pages of the same family can be used to create the expression.
- the user will enter the required fields to be extracted from the page. These fields can be specified by a user using a corresponding graphical user interface of the device 101 D to select fields. Alternatively a tool similar to the Desktop tool (see below) could be used to automatically guess at the fields on a page.
- To automatically generate the signature file assumes that one knows where the key information that resides on the page (i.e. location within the document)—e.g. price, image, description, etc.
- knowledge of where the key information e.g. here is the image between these tags to identify the content
- knowledge of where the key information e.g. here is the image between these tags to identify the content
- the key information e.g. here is the image between these tags to identify the content
- the required fields are identified prior to this process either by the user or using an automated tool (such as the schema desktop tool). They can be as follows:
- modules of the automated generation process can implement the following steps (embodied as executable instructions 207 D—see FIG. 21 ).
- the object ⁇ h1>Product title ⁇ /h1> is selected. It identifies that it is a text node, and uses its parent to identify uniqueness. There are no attributes for the parent ⁇ h1>.
- the object ⁇ strong> $79.99 ⁇ /strong> is selected. There are no attributes to be checked for this element.
- the element looks at “ ⁇ strong” within list 1. It determines that it is the second match.
- the second strong tag also provides the object that contains the price. Since the object is a text node, the process is complete. Therefore the following entry would be added to the signature file
- the object ⁇ strong> $99.99 ⁇ /strong> is selected. There are no attributes to be checked for this element.
- the element looks at “ ⁇ strong” within list 1. It determines that it is the first match.
- the first strong tag also provides the object that contains the price. Since the object is a text node, the process is complete. Therefore the following entry would be added to the signature file
- the object ⁇ p> this is a description for Sample title made by Sample Manufacturer ⁇ /p> that is selected. There are no attributes to be checked for this element.
- the element looks at “ ⁇ p” within list 1. It determines that it is the first match. When looking at Item2, the first p tag does not provide the object that contains the description.
- the ⁇ p tag is processed again, limiting its search to the parent.
- the ⁇ p tag is identifies as the first instance within the parent.
- the ⁇ p object also contains the description. Since the object is a text node, the process is complete. Therefore the following entry would be added to the signature file
- the automated generation methodology implemented on the comparison toll (e.g. device 101 D) for the signature file 70 D compares two or more delimiters (pertaining to a common schema of the definition of the pages) from each of the pages 52 D in order to identify common uses of the delimiters (and their contents). Once identified as a match, the corresponding object, for example, is placed in the hierarchical structure 74 D (or other ordered list, etc.).
- the hierarchy 74 D can link entities 76 D either directly or indirectly, and either vertically or horizontally.
- Indirect hierarchical links can extend “vertically” upwards or downwards via multiple links in the same direction. Traveling up the hierarchy to find a common direct or indirect superior, and then down again can nevertheless “horizontally” link all parts of the hierarchy, which are not vertically linked to one another.
- the structure 74 D can also be a lists implemented using arrays or linked/indexed lists of some sort. The structure 74 D can have certain properties associated with arrays and linked lists.
- a sequence can be another name for the structure 74 D, emphasizing ordering of the entities 76 D.
- the structure 74 D would be represented in the signature file as the entries as noted above. It is recognized that a user of the device 101 D could manually 78 D amend or otherwise review the automatically generated signature file 64 D, as desired.
- the web page contents may be navigational items, lists, specific items from a list, and other content, for example.
- the reason that this is useful is that signature files can be manually created, which can be time consuming, and subject to human error. Therefore by helping to automate the recognition of web page contents, the turn around time for interpreting a website as through the gateway 22 DD can be substantially faster and more accurate.
- the process is performed on the client side, with a call to the server (e.g. gateway 22 DD and/or web site 20 D).
- the call consists of requesting a javascript.
- the javascript is generated dynamically on the server side.
- the dynamic part of the script can perform a number of functions.
- a first function consists of checking the users cookies for a username and password, so that the user is not prompted with a login upon saving the item.
- a second function uses a referrer site to load confidence intervals, that have been generated on previously saved items from the same site.
- the javascript can have no other knowledge of a web-page, other than confidence intervals to determine the specific fields (image, title, description, and price) of a product, for example.
- the confidence intervals contain the location on the page (width and height) of each field, and other properties (stated below) that are used to guess a field (i.e. what is the significance/meaning of the field with respect to the content/navigation items contained on the web page. Therefore, confidence levels can be set on a per site basis, but the process used to derive the fields can be the same for every site. This can be done, because most ecommerce web sites display products in a similar fashion (e.g.
- the title is bold, the image is near the middle and large, the description has the most text, and is black, the price is highlighted and when rendered is within close proximity to the image.
- Any differences between web sites can be accommodated for based on the assisted (e.g. user) nature of the capturing of web page contents. For example, after the initial guess by the javascript, incorrect matches can be altered by the user clicking on the field that was matched incorrectly, and then locating the correct match on the page, and clicking on that.
- the confidence intervals are updated based on the fields submitted.
- the user device 101 D first connects to the gateway 22 DD and then requests the desired web page 60 D (see FIG. 40 ) that is obtained from the web site 20 D.
- predefined criteria 96 D is used to search the rendered page 60 D for the desired object(s) (e.g. product including image, title, description, and price).
- the criteria 96 D is used to compare with the objects located on the web page and if the objects pass the analysis, they are considered as matching candidates for final approval by the user. All candidates are then displayed 97 D to the user (see FIG. 41 ).
- the user can accept 98 D the candidate(s) and/or suggest alternative matches (e.g. by clicking on objects displayed on the screen (e.g. different title, price for the correctly identified image and description) based on a visual inspection of the web page displayed on the screen of the device 101 D.
- Acceptance and/or amendment of the candidates can be used to update the pertinent parts of the predefined criteria 96 D for subsequent use in matching other candidates.
- the redefined criteria 96 D could be used to revise the remaining candidates, before final review by the user.
- assisted recognition of web page contents could also be used to locate any navigational items that are related to the web page content (e.g. a buy button located adjacent to a product, a bid now button located next to an auction item, etc.).
- this method of web page recognition can be tuned capture the key information on a webpage for different genres of sites. For example, e-commerce websites, news sites, sport etc.
- the method can capture the product image, title, price & description from a page and then post the information with the URL of the webpage to a server to store the information for the user for later retrieval and use, e.g. a rich bookmark.
- This allows the user to store rich bookmarks that contain more than just the URL of the website.
- An example of rich bookmarks 99 D lists are shown in FIGS. 42 and 43 , which shows the bookmarks 99 D in the context of URL links accessible from a browser menu.
- Source web page of FIG. 40 .
- the FatFree server receives the request
- the server checks to see if the user is already logged in, if the user is not logged in, the server checks for cookies with the user credentials
- the server extracts the requesting site from the referrer section of the http request
- the server attempts to the confidence intervals for the site (based on predefined identification criteria 96 D).
- the server dynamically creates the javascript based on the information from steps (a) and (c).
- the function watPM.watStart(window) performs the following tasks (e.g. based on the identification criteria 96 D)
- Step 0 is then called setTimeout(“top.watPM.watStage(0)”, 20);
- Step 1 is then called setTimeout(“top.watPM.watStage(1)”, 10);
- the objects tag is in the following (‘TD’, ‘UL’, ‘P’, ‘DIV’, ‘SPAN’, ‘B’, ‘H 1 ’, ‘H 2 ’, ‘H 3 ’, ‘H 4 ’, ‘H 5 ’, ‘H 6 ’, ‘STRONG’, ‘FONT’, ‘BIG’) and the objects innerHTML code length is ⁇ 1024 (for example) the object is stored as a possible candidate for the products title, price, and description.
- Step 2 is then called setTimeout(“top.watPM.watStage(2)”, 10);
- the top 5 (for example) are selected from the following:
- First the objects weight is assigned a numeric value based on their rendered weight. Each objects' weights are compared.
- Any ties are broken by the objects rendered size.
- the size is assigned a numeric value based on its rendered size.
- the winning candidate is selected by comparing the confidence interval of the most common winner, the confidence interval of the location, and the weight of each object.
- Step 3 is then called setTimeout(“top.watPM.watStage(3)”, 10);
- the top 5 (for example) are selected from the following:
- step (9) the weight of the object is compared.
- the ⁇ 1 signifies that a candidates weight counts as a negative attribute. Therefore, text that is not bold/italic etc is more likely to be a description.
- Step 4 is then called setTimeout(“top.watPM.watStage(4)”, 10);
- step 8 all candidates for titles from step 8 are compared with each other.
- the top 5 (could change later) are selected from the following:
- the candidates are then arranged in order based on there distance from the center of the page. The closest to the center would be the first choice. Etc . . . . The center of the page is defined by the confidence intervals
- the winning candidate is selected by comparing the confidence interval of the most common winner, the confidence interval of the location, whether or not a $ sign exists, and whether the text is a numeric.
- Step 5 is then called setTimeout(“top.watPM.watStage(5)”, 10);
- step 8 all candidates for titles from step 8 are compared with each other.
- the top 5 (could change later) are selected from the following:
- Step 6 is then called setTimeout(“top.watPM.watStage(6)”, 10);
- the function wataddItem takes the guess for image, title, description, and price and displays them to the user, shown in FIG. 41 .
- the user now has the ability to change a selection by clicking first on the field that was guessed incorrectly. This field will be highlighted in yellow, then locate the correct item on the page, when the correct item is highlighted in yellow, clicking on that item will update the guess.
- FatFreeMobile A form is posted to FatFreeMobile with the products image,price,title, and description. As well for each field, the x,y location of the field and the guess number is sent to FatFreeMobile
- the server receives the request and updates the database accordingly.
- the server also downloads the selected image, to help avoid hot linking when displaying products.
- the above assisted capture method can be used as a method to have one or more distributed users help or otherwise be employed to create portions of a signature file one or more distributed users help or otherwise be employed to create portions of a signature file for a web site.
- one or more distributed users help or otherwise be employed to create portions of a signature file for a web site.
- a number of users could be assigned different pages from a web site in order to assemble a corresponding signature file for the complete web site, as desired.
- the following description provides an example operation of the interaction between the gateway 22 DD, the mobile 24 D and desktops 26 D, and the web pages 60 D obtained from the website 20 D, based on the requests for content/navigation from the mobile 24 D and desktops 26 D (see FIG. 20 ).
- a client makes a request to the Schema Engine 23 D, acting as a proxy 20 D, for a specific webpage 60 D from a specific domain (e.g. web site 20 D);
- the engine receives the request and makes a request to the web site 20 D for the specified page and retrieves the web page code into memory. This may not include objects on the page such as pictures that are inserted at the time of rendering;
- the engine in parallel makes a request to the signature repository to acquire the signature file 64 D for the domain using the domain in the URL as the key to retrieve the signature file, for example;
- the engine does not render the page but instead uses the code in the signature file as instructions to extract the desired data from the web page, such that the desired data is defined for a particular request type received by the gateway from the mobile 24 D/desktop 26 D and/or for a predefined mobile 24 /desktop 26 platform (e.g. having knowledge of device display capabilities screen size, resolution, and other parameters useful in determining the way in which the data is capable of being displayed on the device 101 D;
- the data can optionally be stored in a local data repository
- the engine transmits the data to the client that requested the page.
- the client could be a browser application that displays the data or could be an application that renders the data (e.g. see navigational menu 300 D example described below).
- Appendix A an example embodiment of the engine 23 D and the signature file 64 D used to interpret the web page 60 D and subsequently send revised/reformatted web page content/navigation data to the screen with limited real estate requirements (e.g. mobile) is provided in Appendix A.
- Step 200 clientss makes a request for the ABC ComTech Corp. page shown in FIG. 26 and after steps 1, 2 and 3 above take place, the Schema Engine has the ABC ComTech Corp. webpage code and signature file loaded. The remaining steps are a detailed description of the above step 4, where the engine does not render the page but instead uses the code in the signature file as instructions to extract the desired data from the web page.
- step 201 Schema Engine confirms that input HTML is from ABC ComTech Corp.ca and this signature file is that of ABC ComTech Corp.ca
- step 203 Schema Engine then tries to determine the page type by checking existence of string identifiers for each page family
- step 204 Schema Engine then jumps to the “item_elements” section of the signature file that contains instructions for extracting the object elements for the page
- step 205 Schema Engine trims HTML scope
- step 206 Schema Engine extract image
- step 207 Schema Engine extracts title
- step 208 Schema Engine extracts price
- step 209 Schema Engine extracts sale price
- step 210 Schema Engine extracts sale price
- the above described steps 206 - 210 can be for the extraction of web It is recognized that the above described steps 206 - 210 can be for the extraction of web example of web page content/navigation items that are obtained by the engine from the web page 60 , using the signature file as a guide for the extraction. It is recognized that the engine can also have a series of formatting rules, not shown, for use with the extracted data in generating a page with the extracted data that is suitable for display on the target device 101 D (e.g. desktop, mobile). It is recognized that the formatting rules can be system and/or user defined and can include such parameters such as but not limited to: object positioning, object colour, object size, object shape, object font/image characteristics, background style, and navigational item display (e.g. in menu 300 D or embedded along with the content in the generated page for display on the target device.
- the formatting rules can be system and/or user defined and can include such parameters such as but not limited to: object positioning, object colour, object size, object shape, object font/image characteristics, background style,
- a Schema Engine 23 D of the gateway can automatically determine whether to send back menus or content for a given web page
- an Schema client e.g. mobile 24 D and/or desktop 26 D
- the Schema Engine provides each output accordingly.
- the user device 101 D e.g. mobile or desktop
- the user either sees the navigation menus or the page content for the respective page.
- FIG. 26 shows the output the client receives from the Schema Engine, when it extracts the navigation from a typical web page (that has both navigation and content)
- the Schema engine takes in ABC ComTech Corp.
- FIG. 27 shows the output the client receives from the Schema Engine, when it is extracts the content (list items) from a typical webpage.
- the Schema Engine takes in ABC ComTech Corp. page marked “3” and outputs page marked “4” to the schema client.
- the Schema Engine is able to output navigation and content data independently as the result of a given web page input.
- Packaging content into a mobile application entails rendering the data output of the Schema Engine in a client mobile application instead of the web browser.
- a web browser makes a request for a page and receives the content data as the response that it renders.
- the mobile application can similarly make a request for the page, as the browser could, and render the data received from the Schema Engine. See FIG. 28 as an example of the rendering of a mobile client application.
- the navigation functions of the website can be inserted into a menu 300 D of the application, see FIG. 29 .
- One advantage of doing so is that the user can invoke the application menu for navigation rather than loading a new page or screen refresh to view the navigational items displayed in the web page.
- navigation options can also be inserted in pop-up menus and dialogue boxes of the applications using a similar approach as described below.
- the gateway can be used as a data flowthrough mechanism, with respect to data on navigational items extracted from the webpage 60 D. Accordingly, the navigational item data would be tagged by the gateway for subsequent interpretation by the client application (e.g.
- the client application would recognize the navigational item data for insertion into the navigation menus 300 D, insertion as embedded into the published content displayed on the screen, or a combination thereof. It would be up to the mobile application, for example, to determine the manner in which the navigational item data is to be used in conjunction with the publish content data for any respective web page, as desired.
- the pages marked “2” and “4” in FIGS. 26 and 27 respectively show how the navigational features and content features are divided into 2 separate pages/files. A user has to switch pages to toggle between navigation and content.
- FIG. 28 shows an example client application's content area. Note that the navigational features of the web page can be selected through the menu 300 D that is linked to the actual navigational instructions of the respective Web page(s), which is invoked in a single click ( FIG. 23 ) that has the website navigation options displayed to the used as an application menu 300 D rather than as navigational features displayed on the web page.
- a menu item can be statically created at compile time and its function is known at compile time for web pages.
- the Schema Engine can dynamically create menu items at run time. Assume that a navigational item is meant to be processed on the client that accomplishes inserting menu items dynamically. If the mobile application was passed the extracted navigational information from the engine, the application would insert the items into the application via MenuItem(name, URL), for example. In this case, it is the engine that would pass the data (name, URL) that indicates the data as a potential menu name and corresponding URL as parameters. The application would insert the data as a menu item into the application menu 300 D, such that these parameters would then be linked to the corresponding respective menu item selection.
- the method described above dynamically inserts navigational items of the web page into the application menu of the application used to interact with the web site contents.
- the implementation of this method can differ depending on the application and platform of the device 101 D. It should be recognized that the menu items are related to navigation of the content in the web pages rather than only between the web pages themselves.
- the client application makes a request for the navigation items of a web page
- the Schema Engine receives the web page (marked “1” in FIG. 26 )
- the Schema Engine extracts the navigational items and sends the data set (menu name, URL) to the client.
- Table 1 shows the output for the first 5 navigational items from the web page of FIG. 26 .
- the client receives the navigational items and calls a createMenuItem( ) method with each [menu name, URL] set received, thus displaying the navigational items as menu items. It is recognized that the menu items can be displayed overtop of the content displayed on the screen of the device 101 D, where the navigational items are no longer displayed adjacent to the content (as formatted in the original web page) and rather assembled/combined and displayed in a separate navigational menu for navigating the content of the web site.
- the navigation items for the page are loaded into the application menu 300 D.
- a user can click a menu item, which will result in the application invoking the URL associated with the menu name and thus facilitating the display of the web site content associated with the menu item (representing the original navigational item).
- the menu item can be used to invoke one of the navigational items of the web site (e.g. “buy item”), rather than just navigate between pages.
- both content and navigation features can be simultaneously retrieved for a given page. For example in the diagram if the user selects the navigational name “computers” the URL page request will be sent to the Schema Engine that will respond to the client with the content for that page as well as the navigation items (in menu format for example) for that page.
- the content is rendered in the application as previously described and the web page navigational items are inserted into the application menu as described above. Accordingly, the contents of the navigational menu 300 D for any particular web page is dependent upon the navigational items that are contained or are otherwise associated with that web page as configured by the web site.
- both traditional content 50 D and the navigational features 54 D can be treated as components for each of the web pages.
- the web pages of the web site (through use of the signature file described below) can be represented as having web page contents that includes both the content 50 D and the navigational items 54 D.
- each menu 300 D for each page is dynamically created based on the navigational items resident/associated with that page (and page content 50 D).
- navigational items 54 D can remain on the web page as displayed (e.g. embedded with the displayed content 50 D), can be represented as separate menu 300 D items, or a combination thereof.
- the state of a user's browsing session can have a number of different perspectives, such as but not limited to: 1) a Browser/application 207 D perspective including navigation history 82 D across the current browsing session, such that the browser/application 207 D can keep track of the address (e.g. URL) of pages previously visited (back and forward buttons) as well as the current page the user is on.
- the current page can also be captured through a bookmark, as is know in the art; and 2) a web site perspective such that session information relating to the specific website can include website state information 80 D like a session ID, site preferences, and shopping cart items, for example.
- This website state information (particular to the user's interaction with the web site—e.g.
- a table/memory 92 D can be used to store or otherwise monitor the history 82 D and/or the state information 80 D with respect to each user transaction that is in a pending/unfinished state (e.g. user has browsed/interacted with a number of web pages to a certain stage for product purchase, but has not yet progressed to the point of transaction completion—e.g. confirmation of payment and shipping information of a selected product).
- a cookie can be referred to as a small text file of information 80 D that certain Web sites can attach to a users hard drive (of their device 101 D) while the user is browsing the Web site.
- the Cookie can contain information such as user ID, user preferences, archive shopping cart information, etc. Since the web sites can be inherently stateless, these cookies or other session history equivalents can also be a good way to create and maintain state from a website's perspective, as implemented by the environment 10 D as further described below.
- a bookmark can be referred to as a process of saving a URL (e.g. network 11 D address) in the web browser/application 207 D.
- the bookmark 82 D allows the user to return to a particular web site or web page by making a record of the corresponding network address.
- a bookmark however may not capture the state (data entered/requested in the process of transaction completion) of a user's browsing session, rather the bookmark serves as a reference point for the location of the web page/web site last visited by the user.
- a bookmark captures may only a fragment of a user's browsing session, for example only the address of current page that the user was on.
- saving and restoring a user's session can have one or more different components, such as but not limited to: saving and restoring the current page and navigation history 82 D; and/or saving and restoring the specific website's transactional state 80 D pertaining to the user (e.g. using the respective cookie for the transaction).
- Saving navigation history can be accomplished by saving the current page (saving the URL such as a bookmark would do) and optionally gathering the browser's navigation history. For example on a mobile client, all pages that a user requests can be saved on the client or on a remote server.
- a request comes back including 2 parts, an http header and the http content.
- One of the instructions in the http header is a “set cookie” command.
- a browser or client application uses that command to create and maintain the cookie on the client.
- the browser or client application makes a web page request, it can pass all the cookies back to the website to maintain state.
- cookie information can be in plain text in a header, it can readily be extracted by a mobile client application.
- One embodiment of the browser/application 207 D is to collect cookies on the desktop/mobile is to use a browser plug-in or state application 88 to retrieve cookies from the “temporary internet folder” of the device 101 D where cookies are typically stored and transmit them to the remote server or database. Saving cookies is a way to save the user's state from the website perspective.
- the user's transaction can be saved through use of the history 82 D and/or information 80 D.
- the user can notify the gateway 22 DD of the intension and the gateway can save the history 82 D, information 80 D in the memory 92 D, for later use in reactivating the particular transaction-inprogress.
- the data captured as a rich bookmark could also be used in the data 80 D, 82 D as desired.
- Restoring the current page can be accomplished by making a request by the user for the current page on the client application/browser (mobile or desktop).
- the gateway is then responsible for sending to the current device 101 D (either the same or different device by which the transaction was last done with) a transaction continuance package 84 D that is related to the saved particular transaction-in-progress from the memory 92 D, which would contain data such as but not limited to: the saved navigation history for use in populating the navigation history of the user device; and/or all saved cookies for use in restoring website state information by placing the cookies into the appropriate location that the browser or client application uses to create and manage cookies, e.g. the “temporary internet folder”.
- the application 88 D could synchronize all cookies from the desktop to the mobile device or vice versa. This way, user preferences for all web sites (including re membered login ids, for example) could be always synchronized between a mobile device and the desktop. Further, it is recognized that the memory 92 D could be used to remember the device on which the transaction-in-progress was last implemented on and to therefore try to maintain the formatting of web pages 86 D as displayed previously for the user activity with respect to the transaction-in-progress. One example of this is to keep the simplified formatting of the web pages done for the mobile display the same for display of similar pages on the desktop, even though sufficient desktop screen space is available to display the original content and format of the web pages.
- the continuance of the web pages on the mobile, with respect to desktop formatted webpages could be retained (e.g. through re-organization of the pages and wrap content around the screen, or used of the WAP standard to spatially divide a page (usually vertically) into a number of pages and allow the user to navigate between each page section to view a page).
- the maintaining of the look and feel of the particular web page content could be useful in keeping the user from becoming confused between format changes of the web pages.
- the user could select a certain web page format for display through the gateway (e.g. original or otherwise simplified format), in the event that the user anticipates changing devices (e.g. desktop to mobile) to continue and complete the transaction, as desired.
- variables such as an affiliate revenue sharing code can be included in the URL. That way, the user can start browsing from a PC or mobile device and save their session based on the code. When they restore the session on another PC or mobile device, the revenue share would be received by appropriate entity based on the code usage.
- the cache can consist of the actual webpage or the data output of the webpage. Cache's can be build upon request or output can be pre-cached to optimize the user experience. A combination of the above on different kinds of pages can be used to develop caching schemes for usage.
- Another aspect of the engine is that it can be used to crawl an entire website with the corresponding signature file and build a complete database of product information from the website automatically.
- Another aspect is the ability for a user to load website content (pre-caching) from the Schema Engine to the client in larger segments instead of page by page. This could either be done through an application on an internet enabled PC when the mobile device is connected to the PC or directly from the mobile device when the user has a wireless data connection available. Once the desired content is on the mobile device, the user could browse the content without a wireless connection.
- pre-caching website content
- the Schema Engine fetches the corresponding page to the menu item which could be a sub-menu item or a list page.
- Another embodiment of the invention would allow the user to select the category “computers” in FIG. 35 and the Schema Engine would automatically traverse all sub menus in the category and cache all information including sub menus, list pages and item pages in the category.
- Other examples are sections of a news site including “headlines”, “business”, “sports” etc. Using this method a user could select categories that could be pre-cached on the device for offline browsing at a later time.
- precache could happen at the beginning of day via the user desktop and then synched to the mobile via a wired connection (for example), so that user can surf precached information offline.
- signature file to grab content based on precaching criteria, this could be used to generate the precache database.
- Examples of wanting to build a local precached database on the device could include: 1) for browsing situations for no/interrupted connection potential; or 2) for fast browsing.
- price comparison websites they can crawl the web and build a comparison pricing information to make available to the public or other subscribers.
- Steps can be Effected:
- a client (1) makes a request to the Schema Engine(4), acting as a proxy, for a specific webpage (2) from a specific domain
- the engine (4) receives the web page code (2) into memory. This typically does not include objects on the page such as pictures that are inserted at the time of rendering.
- the engine (4) in parallel makes a request to the signature repository (3) to acquire the signature file for the domain using the domain in the URL as the key to retrieve the signature file
- the engine does not render the page but instead uses the code in the signature file as instructions to extract the desired data from the web page (6).
- the data can optionally be stored in a data repository (5)
- the engine (4) transmits the data to the client (1) that requested the page
- the client (1) could be a browser application that displays the data or could be an application that renders the data
- step (4) Assume that a clients makes a request for the ABC ComTech Corp. page shown in FIG. 26 . After steps 1, 2 and 3 take place, the Schema Engine has the ABC ComTech Corp. webpage code and signature file loaded as shown below. The next few pages are a detailed explanation of step (4)
- Step 1 Schema Engine Confirms that Input HTML is from ABC ComTech Corp.ca and this Signature File is that of ABC ComTech Corp.ca
- Step 3 Schema Engine then Tries to Determine the Page Type by Checking Existence of String Identifiers for Each Page Family
- Schema Engine does not find “Sort or compare products” or “Sort products” in the web page so this page is not from the List family. The engine continues to check the next string.
- Schema Engine finds “"product-details-prd-title"” and identifies the page as part of the Item family (item_elements).
- Step 4 Schema Engine then jumps to the “item_elements” section of the signature file that contains instructions for extracting the object elements for the page
- Step 5 Schema Engine Trims HTML Scope
- the engine discards all code before “</head>” setting the upper limit.
- Step 6 Schema Engine Extract Image
- the string returned is the path to the product image.
- Step 7 Schema Engine Extracts Title
- Schema Engine returns the string in between first “<span” and “</span>” including first and last element that appears after next appearance of “product-detailsprd-title”, excluding any mark up language.
- the string returned is the title.
- Step 8 Schema Engine Extracts Price
- Schema Engine returns the string in between first “<td” and “</td>” including first and last element that appears after next appearance of “our price:”, excluding any mark up language.
- the string returned is the price.
- Step 9 Schema Engine Extracts Sale Price
- Schema Engine returns the string in between first “<td” and “</td>” including first and last element that appears after next appearance of “sale price:”, excluding any mark up language
- the string returned is the sale price.
- Step 10 Schema Engine Extracts Description
- Schema Engine returns the string in the middle of “<p” and “</p>” including first and last element on the occurrence of “detailbox-text”, excluding any mark up language.
- the string returned is the description.
- Step 11 Schema Engine Assembles and Returns all Extracted Data
- the Schema Engine processes the ⁇ page type> tag by registering the identification strings for each page family. By doing that, when a webpage is sent to the engine as input, the
- the first step is to identify the page type which then instructs the engine to the corresponding list_elements tag for the page family.
- the engine finds the spots in the signature file that contains the signature for the objects and elements of the family.
- the tags contain instructions to find the number of pages on the list page and generates the links for each of the page links
- the action tag instructs the engine to move the scan pointer to the section on the page right before the main list content of the page. This allows the engine to only scan the relevant area, discarding all the code preceding it. This can be important because it can eliminate ambiguity and repetition by instructing the engine on precisely which parts of the page to scan
- Action “get_string”: this action type actually return a value back that is the desired element of the object.
- Line 11 for example instructs the engine to look for a reference of the string “thumbnail”, then locate the value between the start and end strings specified to the left of reference point.
- the element which is the link to the product page in this case, is before the reference string and its value is to be extracted and returned.
- the engine finds the spots in the signature file that contains the signature for the objects and elements of the family, shown above.
- the engine finds the spots in the signature file that contains the signature for the objects and elements of the family, shown above.
- Line 6 and 7 sets the start limit and end limit to instruct the engine on where to look for menu items
- the engine finds the spots in the signature file that contains the signature for the objects and elements of the family, shown above.
- an object in ‘myitem — 1’ contains the elements image, title, price, sale price and description. Note that the pointer does not need to be moved after scanning in the elements since there are no more objects on the product detail page as there are on the list page.
- One lookup can contain multiple references and specific type of each reference, represented by ‘Type_n’ for each nth reference.
- An element of an object for example price if the object is a product
- Id is a named relation for an identified family of web pages. It is the SQL equivalent of a table name.
- Ref is the string reference being matched to identify a page, object or element. It is equivalent to a WHERE condition in SQL. There could be multiple Ref values where default Ref is represented by ‘Ref’ and subsequent Refs are presented by ‘Ref_n’. This is equivalent to having multiple conditions in an SQL WHERE clause.
- Alt is an extension of Ref object with SQL equivalent of ‘OR’ clause presented by ‘Ref_Alt_n’.
- Start is used to specify the beginning of a given data element.
- End is used to specify end of a given data element.
- Boolean to include ‘Start’ and ‘End’ value.
- Boolean to define whether failure of given lookup excludes the entire query for an object.
- Boolean to define where to strip all HTML tags out of the target value being extracted.
Abstract
Description
- The present specification claims the benefit of priority from U.S.
Provisional Patent application 60/924,503 filed May 17, 2007, the contents of which are incorporated herein by reference. - The present specification relates generally to telecommunication and more specifically relates to a system and method for content navigation.
- Computing devices are becoming smaller and increasingly utilize wireless connectivity. Examples of such computing devices include portable computing devices that include wireless network browsing capability as well as telephony and personal information management capabilities. The smaller size of such client devices necessarily limits their display capabilities. Furthermore the wireless connections to such devices typically have less bandwidth than corresponding wired connections. The Wireless Application Protocol (“WAP”) was designed to address such issues, but WAP can still provide a very unsatisfactory experience or even completely ineffective experience, particularly where the small client device needs to effect a connection with web-sites that host web-pages that are optimized for full traditional desktop browsers.
-
FIG. 1 is schematic representation of a system for content navigation. -
FIG. 2 is a schematic representation of a wireless communication device fromFIG. 1 . -
FIG. 3 is a schematic representation of a display and a portion of a keyboard of the device ofFIG. 1 , wherein the display is showing a screen from a contact manager application. -
FIG. 4 is a schematic representation of the display and the portion of a keyboard ofFIG. 3 , wherein the display is showing the screen from contact manager application including a menu from a menu application with menu selections that are contextual to the contact manager application. -
FIG. 5 shows an exemplary web-page available from the web-server inFIG. 1 . -
FIG. 6 shows an exemplary web-page available from the web-server inFIG. 1 . -
FIG. 7 shows an exemplary web-page available from the web-server inFIG. 1 . -
FIG. 8 shows an exemplary web-page available from the web-server inFIG. 1 . -
FIG. 9 shows a flowchart depicting a method for content navigation. -
FIG. 10 shows the system ofFIG. 1 during exemplary performance of part of the method ofFIG. 9 . -
FIG. 11 shows the system ofFIG. 1 during exemplary performance of part of the method ofFIG. 9 . -
FIG. 12 shows the display of the client machine ofFIG. 1 during exemplary performance of part of the method ofFIG. 9 . -
FIG. 13 shows the display of the client machine ofFIG. 1 during exemplary performance of part of the method ofFIG. 9 . -
FIG. 14 shows the display of the client machine ofFIG. 1 during exemplary performance of part of the method ofFIG. 9 . -
FIG. 15 shows the display of the client machine ofFIG. 1 during exemplary performance of part of the method ofFIG. 9 . -
FIG. 16 shows the display of the client machine ofFIG. 1 during exemplary performance of part of the method ofFIG. 9 . -
FIG. 17 a schematic representation of a system for content navigation in accordance with another embodiment. -
FIG. 18 shows a flowchart depicting a method for content navigation in accordance with another embodiment. -
FIG. 19 shows the display of the client machine ofFIG. 17 during exemplary performance of part of the method ofFIG. 18 . -
FIG. 20 is schematic representation of a system for content navigation. -
FIG. 21 is a schematic representation of a wireless communication device fromFIG. 20 . -
FIG. 22 shows the process of converting webpages to a hierarchical structure. -
FIG. 23 shows a flowchart depicting a method to obtain and satisfy a web page request. -
FIG. 24 shows the system ofFIG. 20 during exemplary performance of part of the method ofFIG. 23 . -
FIG. 25 shows exemplary perspectives of browsing sessions. -
FIG. 26 shows an exemplary web-page available from the web-server inFIG. 20 . -
FIG. 27 shows exemplary output from the Schema Engine. -
FIG. 28 shows an exemplary rendering of a mobile application. -
FIG. 29 shows an exemplary menu rendered on the mobile device. -
FIG. 30 shows an exemplary web-page available from the web-server inFIG. 20 . -
FIG. 31 shows an exemplary web-page available from the web-server inFIG. 20 . -
FIG. 32 shows an exemplary web-page available from the web-server inFIG. 20 . -
FIG. 33 shows an exemplary web-page available from the web-server inFIG. 20 . -
FIG. 34 shows an exemplary web-page available from the web-server inFIG. 20 . -
FIG. 35 shows action 1 ofFIG. 44 . -
FIG. 36 shows action 3 ofFIG. 44 . -
FIG. 37 shows action 5 ofFIG. 44 . -
FIG. 38 shows action 7 ofFIG. 44 . -
FIG. 39 shows action 9 ofFIG. 44 . -
FIG. 40 shows an exemplary web-page available from the web-server inFIG. 20 . -
FIG. 41 shows an exemplary result of the process of assisted capturing of the web-page inFIG. 40 . -
FIG. 42 shows an exemplary rich bookmarks list. -
FIG. 43 shows an exemplary rich bookmarks list. -
FIG. 44 shows an exemplary action of browsing through ABC ComTech Corp. to purchase an item. -
FIG. 45 shows an exemplary request/response for a page the website inFIG. 20 . - The present specification provides, amongst other things, a method and system for navigating content. In an embodiment a portable electronic device is provided having a browser application and a native menu application. The embodiment also includes a network that interconnects a web-server and said portable electronic device. The web-server hosts web pages that include menus and content. The portable electronic device is configured to obtain a schema respective to the web-pages whereby the web-page menus can be generated on the portable electronic device using the native menu application rather than the browser application, thereby permitting navigation of content on the portable electronic device via the native menu application.
- Referring now to
FIG. 1 , a system for content navigation in a computing device is indicated generally at 50. In apresent embodiment system 50 comprise a first computing device in the form of aclient machine 54 and at least one additional computing device implanted as a second computing device in the form of a web-server 58 and a third computing device in the form of aschema server 62. Anetwork 66 interconnects each of the foregoing components. - Each
client machine 54 is typically any type of computing or electronic device that can be used to interact with content available onnetwork 66. Eachclient machine 54 is operated by a user U. Interaction includes displaying of information onclient machine 54 as well as to receive input atclient machine 54 that is in turn sent back overnetwork 66. In a present embodiment,client machine 54 is a mobile electronic device with the combined functionality of a personal digital assistant, cell phone, email paging device, and a web-browser. Such a mobile electronic device thus includes a keyboard (or other input device(s)), a display, a speaker, (or other output device(s)) and a chassis within which the keyboard, display monitor, speaker are housed. The chassis also houses one or more central processing units, volatile memory (e.g. random access memory), persistent memory (e.g. Flash read only memory) and network interfaces to allowmachine 54 to communicate overnetwork 66. - Referring now to
FIG. 2 , a schematic block diagram showsclient machine 54 in greater detail. It should be emphasized that the structure inFIG. 2 is purely exemplary, and contemplates a device that be used for both wireless voice (e.g. telephony) and wireless data (e.g. email, web browsing, text) communications. Client machine includes a plurality of input devices which in a present embodiment includes akeyboard 200 and amicrophone 204. Other input devices, such as a touch screen, and camera lens are also contemplated. Input fromkeyboard 200 andmicrophone 204 is received at aprocessor 208, which in turn communicates with a non-volatile storage unit 212 (e.g. read only memory (“ROM”), Erasable Electronic Programmable Read Only Memory (“EEPROM”), Flash Memory) and a volatile storage unit 216 (e.g. random access memory (“RAM”). - Programming instructions that implement the functional teachings of
client machine 54 as described herein are typically maintained, persistently, innon-volatile storage unit 212 and used byprocessor 208 which makes appropriate utilization ofvolatile storage 216 during the execution of such programming instructions. Of particular note is thatnon-volatile storage unit 212 persistently maintains anative menu application 82 and a web-browser application 86, each of which can be executed onprocessor 208 making use ofnonvolatile storage 216 as appropriate. Various other applications (not shown) are maintained innon-volatile storage unit 212 according to the desired configuration and functioning ofclient machine 54, one specific non-limiting example of which is acontact manager application 90 which stores a list of contacts, addresses and phone numbers of interest to user U and allows user U to view, update, delete those contacts, as well as providing user U an option to initiate telecommunications (e.g. telephone, email, instant message, short message service) directly from that contacts application. -
Native menu application 82 is configured to provide menu choices to user U according to the particular application (or other context) that is being accessed. By way of example, while user U is activatingcontact manager application 90, user U can activatemenu application 82 to access a plurality of menu choices available that are respective to contactmanger application 90. This example is shown in greater detail inFIG. 3 . InFIG. 3 , a non-limiting exemplary portion ofkeyboard 200 is shown, which comprises amenu key 232, a pointing device in the form of atrackball 236, and aselect key 240.FIG. 3 also shows a non-limiting example of howcontact manager application 90 can be rendered ondisplay 224 when being accessed. InFIG. 3 ,contact manager application 90 is shown displaying two contacts and a telephone number for each, namely, Bill Smith at 555-555-1212 and Sally Struthers at 555-555-1313. Note that Sally Struthers is highlighted using a colour scheme that is inverse to the colour scheme used to display “Bill Smith” and the words “Contact Manager Application”, indicating that Sally Struthers is currently being selected. User U can operatetrackball 236 to scroll between Bill Smith and Sally Struthers causing one or the other to be highlighted. - While accessing
contact manager application 90 as shown inFIG. 3 , user U can also depressmenu key 232 which will invokemenu application 82, an exemplary result of which is shown inFIG. 4 .Menu application 82 provides a contextual menu M-90 comprised of a plurality of menu choices that are reflective of the context in whichmenu key 232 was selected. (Contextual menu M-90 inFIG. 4 is respective to contactmanager application 90 and hence the suffix “-90” in M-90. Generically, however, contextual menus will be referred to herein as contextual menus M.) In the example inFIG. 4 , contextual menu M-90 provides the choices of: “Help” to obtain context sensitive help about what options are available to user U within thecontact manager application 90; “View” to allow user U to see more contact information (e.g. address, additional phone numbers, photographs) of the highlighted contact; “Edit” to allow user U to edit the same information that can be viewed using “View”; “Delete” to allow user U to delete the particular contact from non-volatile storage memory; “Call” to allow user U to invoke a telephony application to initiate a telephone call to the highlighted contact; “Email” to allow user U to invoke an email application to compose an email to the highlighted contact; “Close” to allow user U to closecontact manager application 90 altogether and return to an application selection screen (not shown). While, for example “Call Sally Struthers” is highlighted, user U can depress theselect key 240 in order to causeclient machine 54 to invoke a telephony application (not shown) and dial the telephone number for Sally Struthers. User U can also depressmenu key 232 whilemenu application 82 is open to causemenu application 82 to close and return control to thecontact manager application 90 in accordance with the discussion relative toFIG. 3 . - Note that the options in contextual menu M-90 are stored within
non-volatile storage 212 as being specifically associated withcontact application 90.Menu application 82 is therefore configured to generate a plurality of different contextual menus M that are reflective of the particular context in which themenu application 82 is invoked. For example, in an email application where an email is being composed, invokingmenu application 82 would generate a contextual menu M that included the options of sending the email, cancelling the email, adding addresses to the email, adding attachments, and the like. The contents for such a contextual menu M would also be maintained innon-volatile storage 212. Other examples of contextual menus M will now occur to those of skill in the art.Menu application 82 and contextual menus M will be discussed in greater detail below. - Returning now to
FIG. 1 , web-server 58 and schema server 62 (which can, if desired, be implemented on a single server) can be based on any well-known server environment including a module that houses one or more central processing units, volatile memory (e.g. random access memory), persistent memory (e.g. hard disk devices) and network interfaces to allowservers network 66. For example,server 58 orserver 62 or both can be a Sun Fire V480 running a UNIX operating system, from Sun Microsystems, Inc. of Palo Alto Calif., and having four central processing units each operating at about nine-hundred megahertz and having about sixteen gigabytes of random access memory. However, it is to be emphasized that this particular server is merely exemplary, and a vast array of other types of computing environments forservers - It should now be understood that the nature of
network 66 and thelinks client machine 54 andservers present embodiment network 66 itself includes the Internet as well as appropriate gateways and backhauls tolinks links network 66 and the interconnected components are complementary to functional requirements of those components. - More specifically,
system 50 includeslink 70 betweenclient machine 54 andnetwork 66, link 70 being based in a present embodiment on core mobile network infrastructure (e.g. Global System for Mobile communications (“GSM”); Code Division Multiple Access (“CDMA”), Enhanced Data rates for GSM Evolution (“EDGE”), Evolution Data-Optimized (“EV-DO”), High Speed Downlink Packet Access (“HSPDA”).) or on wireless local area network (“WLAN”) infrastructures such as the Institute for Electrical and Electronic Engineers (“IEEE”) 802.11 Standard (and its variants) or Bluetooth or the like or hybrids thereof. Note that in an exemplary variation ofsystem 50 it is contemplated thatclient machine 54 could be other types of client machines, including a full desktop computer or a “thin-client”. -
System 50 also includeslink 74 which can be based on a T1, T3, O3 or any other suitable wired or wireless connected betweenserver 58 andnetwork 66.System 50 also includeslink 78 which can be based on a T1, T3, O3 or any other suitable wired or wireless connected betweenserver 62 andnetwork 66. - As previously stated in relation to
FIGS. 1 and 2 ,client machine 54 is configured to interact with content available overnetwork 66, including web content on web-server 58. In a present embodiment,client machine 54 effects such interaction via web-browser application 86 that is configured to execute onclient machine 54. As will be explained further below, web-browser application 86 is a mini-browser in the sense that it is configured to render web-pages on the relativelysmall display 224 ofclient machine 54, and during such rendering attempt to render those pages in a format that is different from how those pages would be rendered on a traditional desktop browser, but still conveys, as much as possible, substantially the same information as if those web-pages had been rendered on a full browser such as Internet Explorer or Firefox on a traditional desktop or laptop computer. Web-server 58 is configured to host a web-site 100 that includes a plurality of web-pages. -
FIGS. 5-8 show exemplary representations of four different pages from web-site 100, labeled 100-1, 100-2, 100-3 and 100-4 respectively. The representation inFIGS. 5-8 shows how web-pages 100-1, 100-2, 100-3 and 100-4 would be rendered on a traditional desk-top computer such as a Windows-based computer running the Internet Explorer or Firefox Web-browser as an HTTP web-page. In the example, web-site 100 is an e-commerce web-site belonging to a fictional computer equipment retailer named ABC ComTech Corp. Web-site 100 can be browsed to select various computer equipment items for purchase, culminating in the selection of a secure checkout screen that can be used to complete the final order for the selected computer equipment and to provide payment and shipping information therefor.FIGS. 5-8 shows exemplary navigation using a traditional desk-top browser through the “Home”; “Computers”; “Laptops” and “17.0 inch” menu options as found in the menu-panes indicated at 104-1, 104-2, 104-3 and 104-4 respectively onFIGS. 5 , 6, 7, and 8.FIGS. 5-8 also show content panes indicated at 108-1, 108-2, 108-3 and 108-4 respectively onFIGS. 5 , 6, 7, and 8. In the exemplary pages onFIGS. 5-8 , it will be noted that content panes 108-1, 108-2, 108-3, 108-4 comprise promotional content that corresponds to the level of the menu in its respective menu-panes 104-1, 104-2, 104-3, 104-4. More particularly, inFIG. 5 , which corresponds to the “Home” menu-pane 104-1, there are promotional items (e.g. A camera, a computer, a personal navigation device, and a television) presented in content pane 108-1 that reflect more than one of the options in the “Home” menu-pane 104-1. InFIG. 6 , which corresponds to the “Computers” menu-pane 104-2, there are promotional items (e.g. a laptop computer and a desktop computer) presented in content pane 108-2 that reflect more than one of the options in the “Computers” menu-pane 104-2. InFIG. 7 , which corresponds to the “Laptops” menu-pane 104-3, there are promotional items (e.g. various laptop computers) presented in content pane 108-3 that reflect more than one of the options in the “Laptops” menu-pane 104-3. InFIG. 8 , which corresponds to the 17.0″ laptops page, menu-pane 104-4 is substantially the same as menu-page 104-3, while content pane 108-4 includes a list of 17″ laptops that are available for purchase. (Note that the fact that menu-pane 104-4 and menu-pane 104-3 are the same is purely exemplary and that in general menu-panes can contain any desired menu selections.) If desired, a specific laptop listed on content pane 108-4 can be selected for further information and/or selected for purchase. - Those skilled in the art will now recognize that menu-panes 104-1, 104-2, 104-3 and 104-4 represent at least one set of hyper-text markup language (“HTML”) programming instructions possibly incorporating scripting language such as Java-script. Likewise those skilled in the art will now recognize that content-panes 108-1, 108-2, 108-3 and 108-4 represent at least one other set of hyper-text markup language (“HTML”) programming instructions possibly incorporating scripting language such as Java-script. The programming instructions for menu-panes 104-1, 104-2, 104-3 and 104-4 are discrete from the programming instructions for content-panes 108-1, 108-2, 108-3 and 108-4. It will also now be apparent that, web-
server 58 is configured to provide each web-page 100-1, 100-2, 100-3 and 100-4 in its entirety in response to a request from a web-browser, so that it is not generally possible to view, for example web-page 100-4 directly from web-page 100-1 or web-page 100-2. - Referring again to
FIGS. 1 and 2 , in a present embodiment, web-browser application 86 is also configured to interact withschema server 62 in order to obtain aschema 102. In general, a schema such asschema 102 comprises a file corresponding to content on web-site 100. Such a schema file can be generated in any desired format, such as eXtensible Markup Language (“XML”) or a text file. A schema can contain instructions to identify each page family on the website as well as instructions to extract desired objects and elements for each page family. A schema can additionally specify the relationship between the objects and attributes. In apresent embodiment schema 102 includes information relative to menu-panes 104-1, 104-2, 104-3 and 104-4 that is usable tomenu application 82 and web-browser application 86 in the presentation of web-site 100 onclient machine 54. Table I shows an exemplary representation of aschema 102 that corresponds to web-site 100. -
TABLE I Exemplary content of schema 102 corresponding to exemplary web-site 100 Web-page Link within web-site 100 containing content 108 to be shown Level 1 Menu Level 2 Menu Level 3 Menu corresponding to Root Menu Item Item Item Item Menu Home N/A N/A Address 0 (Corresponds to Web- page 100-1) Computers N/A N/A Address 1 (Corresponds to Web- page 100-2) Computers Laptops N/A Address 2 (Corresponds to Web- page 100-3) Computers Laptops 13.3″ and Address 3 smaller (Corresponding web- page not shown) Computers Laptops 14.1″ Address 4 (Corresponding web- page not shown) Computers Laptops 15.4″ Address 5 (Corresponding web- page not shown) Computers Laptops Refurbished Address 6 laptops (Corresponding web- page not shown) Computers Laptops Tablet and Address 7 speciality (Corresponding web- page not shown) Computers Laptops 17.0″ Address 8 (Corresponds to Web- page 100-4) Computers Desktop N/A Address 9 Computers (Corresponding web- page not shown) Computers Desktop (Model Line 1) Address 10 Computers (Corresponding web- page not shown) Computers Desktop (Model Line 2) Address 11 Computers (Corresponding web- page not shown) Computers Desktop (Model Line 3) Address 12 Computers (Corresponding web- page not shown) Computers Monitors N/A Address 13 (Corresponding web- page not shown) Computers Monitors (Model Line 1) Address 14 (Corresponding web- page not shown) Computers Monitors (Model Line 2) Address 15 (Corresponding web- page not shown) Computers Monitors (Model Line 3) Address 16 (Corresponding web- page not shown) Computers Computer N/A Address 17 Packages (Corresponding web- page not shown) Computers Computer (Model Line 1) Address 18 Packages (Corresponding web- page not shown) Computers Computer (Model Line 2) Address 19 Packages (Corresponding web- page not shown) Computers Computer (Model Line 3) Address 20 Packages (Corresponding web- page not shown) Computers Apple N/A Address 21 Computers (Corresponding web- page not shown) Computers Apple (Model Line 1) Address 22 Computers (Corresponding web- page not shown) Computers Apple (Model Line 2) Address 23 Computers (Corresponding web- page not shown) Computers Printers and N/A Address 24 Fax Machines (Corresponding web- page not shown) Computers Printers and (Model Line 1) Address 25 Fax Machines (Corresponding web- page not shown) Computers Printers and (Model Line 2) Address 26 Fax Machines (Corresponding web- page not shown) Computers Scanners N/A Address 27 (Corresponding web- page not shown) Computers Scanners (Model Line 1) Address 28 (Corresponding web- page not shown) Computers Scanners (Model Line 2) Address 29 (Corresponding web- page not shown) Computer N/A N/A Address [n] Add-ons (Corresponding web- page not shown) . . . [Sub-levels for Computer Add-ons Per above structure] Software N/A N/A Address [n1] (Corresponding web- page not shown) . . . [Sub-levels for Software Per above structure] Photo N/A N/A Address [n2] (Corresponding web- page not shown) . . . [Sub-levels for Photo Add-ons Per above structure] Photo- N/A N/A Address [n3] Finishing (Corresponding web- page not shown) . . . [Sub-levels for Photo-Finishing Add-ons Per above structure] TV & Video N/A N/A Address [n4] (Corresponding web- page not shown) . . . [Sub-levels for TV& Video Add-ons Per above structure] Audio N/A N/A Address [n5] (Corresponding web- page not shown) . . . [Sub-levels for Computer Add-ons Per above structure] - Explaining Table I in greater detail, the first four columns of Table I (“Root Menu Item”; “
Level 1 Menu Item”; “Level 2 Menu Item”; “Level 3 Menu Item”) correspond to the menu structure found in menu-panes 104-1, 104-2, 104-3, 104-4. The last column of Table I (“Web-page Link within web-site 100”) corresponds to the specific address associated with a particular web-page withinwebsite 100, including web-pages 100-1, 100-2, 100-3, 100-4 and other web-pages that are not actually shown in the Figures and points to the respective content (including 108-1, 108-2, 108-3, 108-4 and other content not actually shown in the Figures) that is associated with the menu-panes reflected in the associated first four columns. Thus the first four columns can be used bynative menu application 82 to create a plurality of contextual menus M that have substantially the same content as menu-panes 104-1, 104-2, 104-3 and 104-4. Likewise, the last column of Table I can be used to extract web-content corresponding to the web-site address indicated in the relevant entry of that last column, as found within web-site 100, including web-content 108-1, 108-2, 108-3, 108-4 and other web-content from other web-pages in web-site 100 that are not actually shown in the Figures. Web-browser application 86 andnative menu application 82 are therefore configured to co-operate usingschema 102 in order to present web-content within the web-browser application 86, while usingnative menu application 82 to permit user U to navigate through web-site 100. - Referring now to
FIG. 9 , a method for content navigation is represented in the form of a flow-chart as indicated generally at 900.Method 900 can be performed usingsystem 50, though it is to be understood thatmethod 900 can be performed on variations ofsystem 50, and likewise it is to be understood thatmethod 900 can be varied to accommodate variations onsystem 50. - At block 910 a schema is requested.
Block 910 is performed by web-browser application 86 (or a separate plug-in or other application configured to execute in conjunction with web-browser, such as a transcoding engine, not shown) which establishes a connection withschema server 62 in order to retrieveschema 102. Atblock 915 the schema is validated and returned. The validation of block 915 (which, it will be appreciated, like certain other aspects ofmethod 900, will be understood to be optional) can be effected byserver 62 which can perform a validation operation to confirm thatschema 102 matches web-site 100 and is otherwise up-to-date. If validation is not achieved then an exception (e.g. an error) can be generated. Assuming validation is achieved, thenschema 102 is returned to web-browser application 86 where it is loaded into web-browser application 86.Blocks 910 through 915 are represented inFIG. 10 , as a connection between web-browser application 86 ofclient machine 54 andschema 102 ofserver 62 is indicated atreference 216 such thatschema 102 is now loaded ontoclient machine 54 and available to web-browser application 86. - Also note that the means by which web-
browser application 86requests schema 102 is not particularly limited. In one particular embodiment, however, it is contemplated that web-browser application 86 will be configured to automatically make network requests overnetwork 66 to request a schema that corresponds towebsite 100. For example,schema server 62 can have a predefined network address onnetwork 66 that is preprogrammed intoclient machine 54. The type of network address is not particularly limited, and can be, for example, any type of network identifier such as an Internet Protocol (“IP”) address or a Uniform Resource Locator (“URL”). Any other suitable type of network address is contemplated.Client machine 54 can therefore be programmed to send a request to the address forschema server 62 and request thatschema server 62 provide, if available, a schema (e.g. schema 102) that corresponds to web-site 100. (Note of course that in other embodiments, a separate schema can be provided for each web-page within web-site 100). The request atblock 910 provided byclient machine 54 can be formed with any unique identifier for each web-page, but in the context of the Internet the request would most typically be, or derived from, the URL associated with each web-page. In turn, that unique identifier can be used toindex schema 102 onschema server 62. - As well, authentication can be made through
connection 216 to validate the origin ofschema 102. For an example, private and public key based authentication can verify thatschema 102 is originated from a trusted source. - Those skilled in the art will now recognize that
system 50 can be implemented so that a plurality of web-sites (like web-site 100) are hosted over network 66 (either alone byserver 58 or by a plurality of web-servers like web-server 58), and that a corresponding plurality of schemas for each of those web-sites (or each of the web-pages therein, or both) can be maintained onschema server 62. Those skilled in the art will now recognize that there can in fact be a plurality of schema servers (like schema server 62) and thatclient machine 54 can be configured to search for corresponding schema files on one or more of those schema servers. Those skilled in the art will now further recognize that schema servers can be hosted by a variety of different parties, including, for example: a) amanufacturer client machine 54, b) a service provider that provides access tonetwork 66 vialink 70 on behalf of user U ofclient machine 54; or c) the entity that hosts web-site 100. In the latter example it can even be desired to simplyhost schema 102 directly on web-server 58 and thereby obviate the need forschema server 62. - Referring again to
FIG. 9 , at block 920 a web-page is selected. In this case home web-page 100-1 for web-site 100 is selected. Such a selection will typically have been made as part of web-browsing performed by user U, and indeed will have been done prior to invocation ofmethod 900. In this embodiment, web-browser application 86 makes a request for home web-page 100-1. Such a request can be made directly bypassingserver 62 altogether. (In other embodiments, discussed below in relation toFIG. 17 , such a request can be made viaserver 62 or another server, with intermediate transcoding (e.g. transcoding of web-content 108-1, 108-2, 108-3 and 108-4) from the format of that content on web-server 58 into another format that is optimized for generation on display 224). Atblock 925, the selected web-page is requested, and atblock 930 the selected web-page is returned. More particularly, web-server 58 returns web-page 100-1 to web-browser application 86.Blocks 920 through 930 are represented inFIG. 11 as a connection between web-browser application 86 and web-server 58 is indicated at 220 such that web-page 100-1 is now loaded ontoclient machine 54 and available to web-browser application 86. - Referring again to
FIG. 9 , atblock 935 the web-page is generated using the schema within the web-browser.Block 935 is represented inFIG. 12 , as In this example, web-page 100-1 is generated ondisplay 224 using the last column of Table I representing the aspect ofschema 102 that corresponds with the home web-page 100-1 of web-site 100. As a result of performance ofblock 935, only content 108-1 is actually shown ondisplay 224 while menu-pane 104-1 is removed from display within web-browser application 86. - At
block 940, a determination is made as to whethernative menu application 82 has been selected for activation. In a present embodiment, and referring again toFIG. 12 , such a determination would be made by determining whethermenu key 232 had been depressed. A yes determination would be made atblock 940 ifkey 232 was depressed, whereuponmethod 900 would advance to block 945. Ifkey 232 is not depressed, then a no determination would be made andmethod 900 would cycle back to block 935. - Within
block 935, user U can perform the usual functions of web browsing, including scrolling through the page, and selecting any individual links which may be active on within content 108-1. Thus, user U could browse and otherwise interact with content 108-1 as if user U was operating a traditional desktop browser. It will now be understood that such interaction could lead to a selection of a different web-page which would otherwise interrupt performance ofmethod 900. Such interaction is not contemplated bymethod 900 expressly for convenience and simplicity, but that is not to say that such interaction is excluded. - Assuming, however, that a “yes” determination is made at
block 940 andmethod 900 advances to block 945, then at block 945 a contextual menu would be generated.FIG. 13 represents performance ofblock 945, as invocation ofmenu application 82 has caused contextual menu M-104-1 to be rendered in conjunction with content 108-1 ondisplay 212. As described above, contextual menu M-104-1 is generated usingnative menu application 82.Native menu application 82 interacts with web-browser application 86 in order to obtain the relevant contents of menu-pane 104-1 in order to ultimately generate contextual menu M-104-1. - At
block 950, a determination is made as to whether a web-page has been selected. User U can thus scroll through the various options presented on contextual menu M-104-1 in much the same manner that user U could scroll through the options presented on contextual M-90 as discussed above. Thus, atblock 950, a determination would be made as to whether user U interacting with contextual menu M-104-1 usingmenu application 82 made a selection corresponding to one of “Computers”; Computer Add-ons”; “Software”; “Photo-finishing”; “TV & Video”; or “Audio”. - If the determination at
block 950 is “no” then at block 955 a determination is made as to whether a selection was made to close the menu application. Continuing with the present example, it would be determined whether user U interacting with contextual menu M-104-1 usingmenu application 82 made a selection corresponding to “Close Menu”. If the determination atblock 955 is “yes”, thenmethod 900 returns to block 935 and contextual menu M-104-1 would close anddisplay 224 would return the appearance as shown inFIG. 12 . - If the determination at
block 955 is “no” thenmethod 900 advances to block 960 where a determination is made as to whether a control item was selected. Continuing with the present example, inFIG. 13 an exemplary control option entitled “close browser” is provided. (It should be noted that other control options can be provided, such as “switch application”. Other control options will now occur to those skilled in the art.) A “yes” determination would therefore be made atblock 960 if user U interacting with contextual menu M-104-1 usingmenu application 82 made the selection corresponding to “Close Browser”. Such a “yes” determination could lead to the termination ofmethod 900 as web-browser application 86 is closed altogether and operation ofclient machine 54 directed to execution of another application, such as a main menu application (not shown). - If the determination at
block 960 is “no”, (i.e., user U interacting with contextual menu M-104-1 usingmenu application 82 made a selection corresponding to “Home”), thenmethod 900 cycles back to block 950. - Referring again to block 950 of
FIG. 9 , if the determination atblock 950 was “yes”, (i.e. that user U interacting with contextual menu M-104-1 usingmenu application 82 made a selection corresponding to one of “Computers”; Computer Add-ons”; “Software”; “Photo-finishing”; “TV & Video”; or “Audio”), thenmethod 900 cycles back to block 925 where another web-page corresponding to the selection is made.Method 900 continues to perform thereafter in substantially the same manner as previously described, except that the newly selected web-page is now generated and the corresponding contextual menu for each of those pages loaded accordingly. -
FIGS. 14 , 15 and 16 show further exemplary screen shots of how navigation would be effected usingmethod 900 proceeding from the screen shot inFIG. 13 . It will now be appreciated thatFIG. 13 corresponds toFIG. 5 ;FIG. 14 corresponds toFIG. 6 ;FIG. 15 corresponds toFIG. 7 ; and thatFIG. 16 corresponds toFIG. 8 , except thatFIGS. 5-8 show how various pages of web-site 100 would be rendered using a traditional desktop browser, whereasFIGS. 13-16 shows how those same pages would be rendered usingmethod 900. Note that onFIG. 16 , corresponding toFIG. 8 , user U can, if desired, select a specific laptop listed on content pane 108-4 usingbrowser application 86 in order to obtain further information and/or selected for purchase. - Referring now to
FIG. 17 , a system for content navigation in accordance with another embodiment is indicated generally at 50 a. System 50 a is a variation ofsystem 50 and therefore like elements in system 50 a bear like references to counterpart references insystem 50, except followed by the suffix “a”. Of note, however, is that in system 50 a,server 62 a includes atranscoding engine 103 a that is configured to, on behalf ofdevice 54 a, transcode web-content 108 a-1, 108 a-2, 108 a-3 and 108 a-4 from the format of that content as maintained by web-server 58 a into another format that is optimized for generation on the display ofdevice 54 a. Thus, in system 50 a, web-content 108 a-1, 108 a-2, 108 a-3 or 108 a-4 destined fordevice 54 a is retrieved fromserver 58 a viaserver 62 a, wherebyserver 62 a transcodes that content prior to sending that content todevice 54 a. As a non-limiting example, the transcoded version of web-content 108 a-1 is identified as web-content 108 a′-1 in an oval associated with web-browser 86 a. In this way, a transcoding engine (or other transcoding functions) need not be placed on (or at least implemented by)device 54 a and thereby freeing up resources ondevice 54 a. Those skilled in the art will now recognize that block 935 ofmethod 900 would be modified for system 50 a, whereby the webpage would be generated usingtranscoding engine 103 a instead of doing any transcoding using the schema withinbrowser 86. - Referring now to
FIG. 18 , a method for content navigation in accordance with another embodiment is represented in the form of a flow-chart as indicated generally at 900 b.Method 900 b can be performed usingsystem 50, though it is to be understood thatmethod 900 b can be performed on variations ofsystem 50, and likewise it is to be understood thatmethod 900 b can be varied to accommodate variations onsystem 50.Method 900 b is a variation onmethod 900 and therefore like blocks inmethod 900 b bear like references to counterpart blocks inmethod 900, except followed by the suffix “b”. Whilemethods method 900 b, block 945 is omitted and substituted withblock 946 b. Block 946 b itself is a variation onblock 945, except that the menu pane M-104 that is generated includes additional depth beyond the depth provided in the original menu pane 104. Additional depth is meant to indicate, for example, that when generating menu pane 104-1 ondevice 54, menu pane M-104 may be modified to include at least a portion of the menu selections found one or more of menu panes 104-1, 104-2, 104-3, 104-4. (An exemplary modified version of menu pane M-104 b-1 generated byblock 946 b is shown inFIG. 19 as menu pane M-104 b-1, which will be discussed in further detail below.) In one exemplary extreme, not shown in the Figures, menu pane M-104 may be modified to include ALL of the selections in 104-1, 104-2, 104-3, 104-4. -
Method 900 b addresses one problem of browsing between web-pages on mobile electronic devices, whereby browsing through multiple pages can be time consuming, resource (e.g. bandwidth, processor, memory) intensive and not to mention financially expensive for user U depending on the rate plan available touser U. Method 900 b can allow users to navigate through multiple levels of web page menus. Turning now toFIG. 19 , in menu pane M-104 b-1, the selections of menu pane M-104-3 are combined into the selections of menu pane M-104-1, thereby allowing user U to navigate directly the contents of menu pane M-104-3 and bypassing the contents of menu pane M-104-2. As a practical example, if user U wishes to view 17.0″ laptops (i.e. the content on web-page 108-4 inFIG. 16 ), then rather than having to navigate through web-pages 108-1, 108-2, and 108-3, one page at a time, user U can be permitted to reach web-page 108-4 inFIG. 16 directly from web-page 108-1 inFIG. 19 , directly selecting the ultimate target without having to go through each intermediary web page 108-1, 108-2, and 108-3. Implementingmethod 900 b can be effected by examining the full contents of Table I and generating a modified menu pane M-104 that reflects the desired combinations of one or more of menu panes M-104-1, M-104-2 and M-104-3. - The determination of which portions of menu panes M104-1, M-104-2 or M-104-3 are to be combined are not particularly limited. For example, a record can be kept of the most popular selections by all users of
web site 100 and to include direct links to those selections. Alternatively, specific promotions can be chosen to be combined into the modified menu pane M-104 (e.g. where the operator ofserver 58 wishes to promote the sale of 17″0 laptops inFIG. 16 ). Alternatively, a browsing history by user U ofdevice 54 can be maintained, so that the first time user U browses web-site 100,method 900 is invoked so that user U is presented with the screens shown inFIGS. 13 , 14, 15 and 16, but upon returning to web-site 100,method 900 b is invoked and user U will be initially presented with the screen shown inFIG. 19 in anticipation of user U's desire to browse directly to the screen shown inFIG. 16 . - The foregoing presents certain exemplary embodiments, but variations or combinations or subsets thereof are contemplated. For example, other functions can be added to each contextual menu M as those menus are presented within
browser application 86, such as the common “back” or “forward” commands as found in traditional desk top browsers. Also, the types of web-sites 100 are not intended to be limited to e-commerce web-sites. - Another embodiment provides a
communications environment 10D. Referring toFIG. 20 , acommunications environment 10D has one ormore Web sites 20D that have a collection ofWeb files 52D on a particular subject that includes a beginning file called a home page, which is reached by acomputing device 101D over acommunications network 11D via a network address (e.g. URL). From the home page, or through direct access to any page without going through the respective home page, a user, using a web site browser (via thedevice 101D), can access bothcontent 50D andrelated navigation 54D of all the other pages on the Web site. It is recognized that the Web site is typically hosted on one or more Web servers. A server in this context is acomputer device 101D that holds the files for one or more Web sites. For example, a large Web site may be hosted on a number of servers located in many different geographic places. - Access to the Web sites over the
network 11D can be done directly, in terms ofdesktop devices 26D, and through a proxy gateway 22DD, further described below. Accordingly, one or moremobile devices 24D (e.g. PDAs, mobile phones, etc.) and one ormore desktops 26D can use the gateway to access the pages (bothcontent 50D and navigational 54D aspects). The gateway can be used to format or otherwise monitor the interaction of the user of thedevices content 50D and navigational 54D aspects of the Web pages. - Overview of the
Environment 10D - Specifically, the
environment 10D can take unstructured webpage (e.g. HTML) and convert it into a structured database, for example. It is not about simplifying HTML for any page, it is about understanding the data in a page and the relationships (between data content and between data content and navigational items tied to that page content) that govern the data in the page. Accordingly, knowledge of the data contained in the page content (e.g. data type—navigation verses published content—as well as which of the published content is related to each other and which of the navigation data is related to each other and to which published content on the page) can be used (for example via a signature file) to extract data from the web site (for example on a page by page or other defined collection of information such as for file by file) for consumption by the mobile/desktop device 101D. Therefore, it is the gateway that acts as the proxy between the desktop/mobile for accommodating requests for web site data from the mobile/desktop and corresponding web site data sent from the web site in response to the request. It is recognized that the data (e.g. web page 60D) obtained by the gateway, from the web site, could be any structured file (e.g. an HTML, XML, etc.) document (optionally in the form of a web page), or which the signature file has predefined knowledge about the contents of the document (e.g. meaning of data contained within tags/delimiters as well as the interrelationships between the data in the document). One example of this is a web page described in HTML, which can be referred to as unstructured content. - It is recognized that the extraction process of the gateway for extracting data from the web page of the web site can be used to obtain only that data (e.g. published content and/or navigational data) that is pertinent to a simplified display on the screen of the
user device 101D. The reason for generation of the simplified display of the data obtained from the original web site content (e.g. a web page) can be such as but not limited to: limited display space for the generated simplified data display on theuser device 101D (e.g. physical space restrictions such as for a mobile screen or for user/system defined space restrictions such as for only a portion of the theoretically available desktop screen space; and for user preference pertaining to continuity of browsing/transactional/session experience. An example of user preference is where the user starts the interaction with the web site and resultant displayed data (published content and navigational data) on the mobile (i.e. mobile formatted data display) and then wishes to retain the formatting of the mobile when continuing to view on the desktop screen. For example, the user on the desktop can continue to browse the published content and navigational data of the web site as previously experienced on the mobile, using only a portion of the desktop screen (for example) for data display. - The remaining description will refer to the document obtained from the web site as a web page, for exemplary purposes only. Large data-driven sites don't maintain thousands of pages. They have a few page templates and populate them from a database of information, news, shopping etc. Each template represents a family of pages. And a family of pages has objects and attributes.
- Family: List Page
- Objects: lists a selection of news stories
- Attributes: Title, abstract and date
- Family: Detail page
- Objects: lists a single news story (and maybe other related stories)
- Attributes: Journalist, City, Date, Title, Full Story, Image
- Family: List Page
- Objects: lists a selection of products
- Attributes: Image, Item Name, Price, Sale Price
- Family: Search Page (a specific kind of list page)
- Objects: same as list page +−a few
- Attributes: same as list page +−a few
- There are a few families of pages that can be managed to get an entire website accessible via a signature file, further described below:
- List Pages—browse by category, by search, featured products
- Detail pages: A specific object details with other information on a page
- Search: to enter search information
- Input: To do things like enter billing information (these are typically individual pages)
- Signature Files
- We identify the signature for each family of pages (the family template) that 1) automatically can identify a given page on a website as part of the family and 2) differentiates that family from another family of pages. Similarly each object and attribute field can have a unique signature within a family of pages that we need to identify once for the family.
- A Signature file can contain numerous pieces of information, for example namely:
- 1) identifying the page family
- 2) identifying the objects and attributes in the page
- 3) Specifying the relationship between the objects and attributes.
- In the case of a document received as a file, the signature file can contain knowledge about the type of file, the objects/attributes of the file, and the relationships between the objects and attributes in the file. A further example of the web site data can be such as but not limited to news articles and RSS feeds or other information feeds (stock tickers, etc.).
- Schema Engine
- This component uses the signature file for a website to create content data in response to the web page request, from the mobile/desktop, efficiently on the fly and send the data to the client. The data can include web page content data and navigational data obtained from the web page as requested. Alternatively the information can be stored to start building a database of the site, optionally. The construction of this database can be saved locally to the gateway, otherwise cached to the local storage of the user device, and/or cached/stored at the web site or third party (e.g. a search engine service used for comparison of data from different web sites).
- Separation of Navigation & Content
- Navigation items are on the same page as content, but it may not make sense (in situations with limited screen real estate available) to display the page in the original web page format as obtained from the website by the gateway. Schema extracts the navigational items separately to create a navigational portion of the web page. The environment can do interesting things with the separated navigational items, such as feed it to an application in the background to help improve the browsing experience or to otherwise reformat the presentation of the navigational items on the display of the mobile/desktop, in order to help with navigation and maintaining navigation context in situations with limited display space available for presentation of the web page.
- Continuance of Sessions
- In the
environment 10D, the user can start browsing from the PC ormobile device 101D and complete a purchase on either (or otherwise continue the sessions). We can continue the session to realize benefits, such as revenue share, that could be lost if continuance of sessions was not enabled. Continuance of sessions can also give users seamless flexibility to use their PC and mobile to buy/browse things from websites and to replicate the buy/browse information. - The continuance of sessions can be facilitated by the use of rich bookmarking that is generated from the desktop tagging tool discussed below, such that the rich bookmark is created that has bookmark (e.g. a displayable link) components such as but not limited to: a URL (e.g. network address of the web site data; and identified portions of the web site data located with respect to that URL (e.g. item image, item title, description of item, text body related to item—such as an article, etc.). The portions of web site data associated with the URL (e.g. page/file name) can be considered key or otherwise memorable data preferred by the user with respect to item(s) on the URL (for example product name/price/image).
- Desktop Tagging Tool and Automatically Creating Signature Files
- This uses artificial intelligence to analyze any page in one or more ways, such as but not limited to.
- 1) delimiter (e.g. HTML tag) structure and properties; and
- 2) Spatial analysis of objects located on a rendered page.
- Generally main content is closer to the centre of the page, is bigger and is meant to stand out more to the user. Properties in the HTML mark up can be used to accomplish this and we have Al that can identify these properties. One embodiment is where we use the rendered page, in combination with tag analysis. One benefit is that this feature could be used to generate the signature files automatically by guessing and at least significantly speeding up creating of signature files, if not completely automated. Another use of the desktop tagging tool is to create a list of rich bookmarks for later use by the user and/or for publishing or otherwise sharing with other users. One example of this would be a list of rich bookmarks provided by one user to another user, such that the list of rich bookmarks contains URLs and associated data from one or more web sites.
- Conducting a Transaction
- With regards to billing and completing a transaction. A user goes through a number of pages to navigate to an item they want to buy and then must continue browsing through a number more pages to complete a checkout or transaction. The provided description of the
environment 10D includes detailed explanations of the analysis and output of a requested web page. The same process can be extended to all web pages browsed from start to end to complete a transaction. It is recognized that the transaction can be such as but not limited to: browsing for and subsequent purchase of item(s); and/or browsing and subsequent saving of published content (e.g. news article), as desired. - For example, actions one through ten in
FIG. 44 represent a user browsing through ABC ComTech Corp. to purchase an item. The web pages representing actions one through ten are shown inFIGS. 35-39 respectively. -
Web Sites 20D - Referring again to
FIG. 20 ,Web sites 20D have the plurality ofpages 52D (e.g. defined using HTML, XML, XHTML, JavaScript and other structured definition web programming languages—e.g. based on W3C standards—e.g. WSDL). A Web site can be provided as a Web service, which can be a software system, designed to supportinteroperable device 101D todevice 101D interactions over thenetwork 11D. Web services can be Web APIs that can be accessed over thenetwork 11D, such as the Internet, and executed on theremote device 101D hosting the requested services. - For example, a Web service definition encompasses many different systems, but can refer to clients and servers that communicate XML messages that follow the SOAP-standard, via a description of the operations supported by the server e.g. in WSDL.
- The composition of the Web pages can include displayed content and navigation features.
- Web pages typically have both of these features on each page and will display content in the main content areas and have navigation options through menus, as shown by example in
FIG. 26 . This web page layout is structured for access bydesktop 26D browsers, where the screens are large enough to display the entire page. However most mobile 24D browsers may not have the width and height of a typical PC monitor, therefore they can be unable to display pages as they would appear on a PC browser. One approach to deal with this is to re-organize the page and wrap content around the screen. A second approach used by the WAP standard is spatially divide a page (usually vertically) into a number of pages and allow users to navigate between each page section to view a page. A third approach (through the gateway 22DD) is to functionally divide website features into separatedcontent 50D andnavigation 54D components, further described below. One example ofcontent 50D is published content (e.g. articles, stories, news, product information, etc.), which is data that is meant to be read/listened to by the user. -
Content 50D - The content can include computer files, image media, audio files, electronic documents, which are either located on/in the Web page or are otherwise accessible through navigation/requests from a particular Web page and/or Web service. For example, Web content can be referred to as textual, visual or aural content that is encountered as part of the user experience through interaction with Web sites/services. Web content may include, among other things: text; images; sounds; videos; animations; and feeds (video, audio, and/or textual). For example, the pages can present content as predominantly composed of HTML, or some variation, as well as data, applications, e-services, images (graphics), audio and video files, personal Web pages, archived e-mail messages, and many more forms of file and data systems can belong to Web sites and Web pages.
- Examples of content can be as follows:
- 1) Tables for presenting information displayed in a grid, such as a calendar, or in a spreadsheet, such as financial data. Tables can be used to have greater control over page layout.
- For example, a table can help that text and graphics are displayed in their correct location. A table can also encompasses an entire page, with nested tables (including content and/or navigation features) within the main table for even more layout control;
- 2) video and audio files;
- 3) text, e.g. articles, for most web pages, is tone of he most important features. Text can be used to present ideas, instructions, and/or educational/recreational content; and
- 4) Images (e.g. GIF, JPEG) can be used in web pages to support the theme of the web page and to provide a visual impression. Images can be separate image files and may not reside in the HTML document itself, but can be stored in the same location as the web page. Images can be scanned photographs or pictures, may be created in a draw program, or may be downloaded from another web site.
-
Navigation 54D - The mobile 24D and
desktop 26D devices coordinateuser events 109D of the respective users, though operation of the browsers (or other applications) 207D in interaction with the supporting navigation features of the Web pages/sites. The navigation features can include visual based controls, text controls, and/or a combination thereof. For example, there can be three basic types of navigation: Hierarchical that applies to Web sites that are information-rich and are organized as a large tree, much like a library; Global that applies to Web sites where the user can logically jump among all points (e.g. content and/or other navigation controls); and Local that applies when the user wants to access a depth of information/content within broader areas/content of the Web site. - Examples of
navigation 54D mechanisms with respect to the content of a Web site can include such as but not limited to: embedded links (e.g. anyplace where one links content within the body of the page); and navigation buttons, graphic and text-based. As well, text entry fields can be used to navigationally access content and other navigation features of Web sites. - Further examples of
navigation 54D mechanisms can be such as but not limited to: - 1) Buttons can be images with text on them that provide a means to navigate from one location to another. Buttons may be created in a draw program or downloaded from other web sites.
- 2) Menu Bar can be features on a web page that provide links to other pages for easy navigation between the pages or other Web sites. Menu bars may contain buttons (e.g. text/images), they may be created as a table, or they may be text-based with divider lines; and
- 3) Links providing “branching capabilities”—the ability to go to another site/page. Links provide that branching option. Links are “jump starts” to other web pages/sites. A link may take the user to another page or it may take them to another site.
-
Devices 101D - Referring to
FIG. 21 , acomputing device 101D of thesystem 10D can include anetwork connection interface 200D, such as a network interface card or a modem, coupled viaconnection 218D to adevice infrastructure 204D. Theconnection interface 200D is connectable during operation of thedevices 101D to thenetwork 11D (e.g. an Intranet and/or an extranet such as the Internet), which enables thedevices 101D to communicate with each other (e.g. that of the mobile 24D, gateway 22DD,desktop 26D andWeb site 20D) as appropriate. Thenetwork 11D can support the communication of the web pages as requested. - Referring again to
FIG. 21 , thedevice 101D can also have auser interface 202D, coupled to thedevice infrastructure 204D by connection 222D, to interact with a user (e.g. mobile user, gateway administrator, website administrator, desktop user—not shown). Theuser interface 202D can include one or more user input devices such as but not limited to a QWERTY keyboard, a keypad, a stylus, a mouse, a microphone and the user output device such as an LCD screen display and/or a speaker. If the screen is touch sensitive, then the display can also be used as the user input device as controlled by thedevice infrastructure 204D. - Referring again to
FIG. 21 , operation of thedevice 101D is facilitated by thedevice infrastructure 204D. Thedevice infrastructure 204D includes one ormore computer processors 208D and can include an associatedmemory 22D (e.g. a random access memory). Thecomputer processor 208D facilitates performance of thedevice 101D configured for the intended task (e.g. of the respective module(s) of the host system 14D) through operation of thenetwork interface 200D, theuser interface 202D and other application programs/hardware 207D (e.g. browser or other device application on the mobile/desktop, web page—content and/or navigation—server of the gateway, and Web server of the Web site) of thedevice 101D by executing task related instructions. These task related instructions can be provided by an operating system, and/orsoftware applications 207D located in thememory 22D, and/or by operability that is configured into the electronic/digital circuitry of the processor(s) 208D designed to perform the specific task(s). Further, it is recognized that thedevice infrastructure 204D can include a computerreadable storage medium 212D coupled to theprocessor 208D for providing instructions to theprocessor 208D and/or to load/update theinstructions 207D. The computerreadable medium 212D can include hardware and/or software such as, by way of example only, magnetic disks, magnetic tape, optically readable medium such as CD/DVD ROMS, and memory cards. In each case, the computerreadable medium 212D may take the form of a small disk, floppy diskette, cassette, hard disk drive, solid-state memory card, or RAM provided in thememory module 22D. It should be noted that the above listed example computerreadable mediums 212D can be used either alone or in combination. - Further, it is recognized that the
computing device 101D can include theexecutable applications 207D comprising code or machine readable instructions for implementing predetermined functions/operations including those of an operating system and the host system 14D modules, for example. Theexecutable instructions 207D can be an application hosted on the user mobile/desktop for interacting with the gateway, the engine and other related components for when acting as a data proxy between the mobile/desktop and the web site, or a web service (e.g. search engine crawling tool) for use by the web site, as configured by therespective device 101D when operating within theenvironment 10D. Theprocessor 208D as used herein is a configured device and/or set of machine-readable instructions for performing operations as described by example above. As used herein, theprocessor 208D may comprise any one or combination of, hardware, firmware, and/or software. Theprocessor 208D acts upon information by manipulating, analyzing, modifying, converting or transmitting information for use by an executable procedure or an information device, and/or by routing the information with respect to an output device. Theprocessor 208D may use or comprise the capabilities of a controller or microprocessor, for example. Accordingly, any of the functionality of theexecutable instructions 207D (e.g. through modules associated with selected tasks) may be implemented in hardware, software or a combination of both. Accordingly, the use of aprocessor 208D as a device and/or as a set of machine-readable instructions is hereafter referred to generically as a processor/module for sake of simplicity. - The
memory 22D is used to store data locally as well as to facilitate access to remote data stored onother devices 101D connected to thenetwork 11D. This data can be related to data/user events of the mobile/desktop, data used by the gateway in obtaining and satisfying requests for web pages and associated content/navigation features, and/or actual Web site data, as appropriate for the use of thedevice 101D in theenvironment 10D. - The data can be stored in a table, which can be generically referred to as a physical/logical representation of a data structure for providing a specialized format for organizing and storing the data. General data structure types can include types such as but not limited to an array, a file, a record, a table, a tree, and so on. In general, any data structure is designed to organize data to suit a specific purpose so that the data can be accessed and worked with in appropriate ways. In the context of the
present network environment 10D, the data structure may be selected or otherwise designed to store data for the purpose of working on the data with various algorithms executed by components of the executable instructions, depending upon the application thereof for therespective device 101D. It is recognized that the terminology of a table is interchangeable with that of a data structure with reference to the components of thenetwork environment 10D - Example Operation of
Response 60D to Web Page Request by Gateway 22DD - Large data-driven
sites 20D may not create and maintain thousands of pages. Instead, they use multiple page templates 62D and populate the templates from the database of content information. Examples would be online stores, news sites, sports information and weather. The association of the data in the database with the templates 62D is used to construct the web page(s) sent to the gateway 22DD. - See
FIG. 45 for an example of a request/response for a page on theweb site 20D: - 1. A client makes a request to the ABC ComTech Corp.ca web server (2)
- 2. The web server calls the respective page family (3) depending on the page requested
- 3. The page family (3) retrieves data (all navigation and content) from the database (1) to populate data fields of the
page 60D - 4. The web server (2) transmits a completed
webpage 60D to the gateway 22DD at (4) It is recognized that a page family serves a specific function for use by the gateway 22DD via the signature file 64, see below. For example, ABC ComTech Corp.ca has the following families of pages: -
- List Family: Displays a list of products on a page (
FIG. 31 ) - Item Family: Displays details for a specific product (
FIGS. 30 and 32 ) - Search Family: Displays a list of product matches for a search keyword
- Other Families: Miscellaneous pages such as checkout/payment
- List Family: Displays a list of products on a page (
- Accordingly, the
environment 10D can take advantage of the fact that eachweb page 50D of thewebsite 20D can follow a recognizable pattern of content data/location and navigational items related to the content data and content location. For example, in the ABC ComTech example, 62D the text on the web page in red, located above a description of a computer product, is always the price of the computer product. - It is recognized that the web page could also be referred to as a document (e.g. file) that is analysed by the engine through use of the signature file in order to extract (or to insert in the case of passing information from the mobile/desktop back to the web site) information subset(s) of the document.
-
Signature File 64D - A signature file can be created once for a website and then can efficiently analyze and extract data from
pages 60D from the website efficiently. One advantage is that as the signature file can be implemented as an application by the gateway 22DD, the gateway 22DD may not have to store any data from the website, and can instead fetch the data in real time upon request as thewebpage 60D matching the content/navigation request of the mobile 24D and/ordesktop 26D. Another advantage of signature files is that they can be non-intrusive to the existing website infrastructure and may not require that a vendor or merchant make any changes to their website configuration/infrastructure. One preferable characteristic of the websites is the use of page families for representing the website data from theirdatabases 22D, as further described below. - Using signature files, Mobile Applications, —rich mobile applications, can be created from large websites. Each page is “optimized” on the fly by extracting the data from the page and sending the data to a mobile device, through use of the signature file, thereby helping to significantly speed up loading time and saving bandwidth. It is recognized that the Schema Engine is also able to format the content and navigational items obtained from the
web pages 60D for efficient display on the display of the mobile/desktop devices 101D. Turning unstructured page content into relational data can also be significant, and can help to enable rich features for users such as custom alerts and price comparison. A user could save an item while browsing and the Schema Engine could automatically go back every day (or other selected time period) and check to see if the item was on sale or in stock. A user could also ask to find similar items at other stores, via appropriate URL requests to the gateway, which could be a supportable feature if product information was stored, for example. - With regard to Search Engines, today, there is no way to automatically index the web and understand the specific details about unstructured information (e.g. embedded in a page format) that are resident on the web pages as embedded content and navigational items. For example a search engine index of the product page of camera A would contain all the keywords for that page and have prices—$200, $100, $50, the relationship of the prices with respect to the camera is unknown to the search engine. For example, a product page can contain information about a specific product including its name, description and price but may also have other product being recommended to the user on the same page with their own prices and names. A search engine may know of all the names and prices in the page, but not know which sets of information belong to which product specifically. But the index would not know which one of those prices is the actual price of camera A. Applying signature files 64D (e.g. having knowledge of which of the content is related to other portions of the content, as well as navigational aspects of the content) to search indexes can allow search engines to unlock the value of precise content that exists in their indexes and can have the ability to significantly improve search results. It also enables new kinds of searches such as “Find the lowest price for this product” or “Show me all articles actually written by this author” which would not show web pages that simply had the authors name in it. Accordingly, it is understood that use of web pages that are unstructured (e.g. little to no use of meta data for defining the content and navigational items resident in the document (e.g. page)), such as unstructured HTML.
- With regard to Price Comparison or product recommendation sites—Price comparison sites depend on vendor submission for their offering and it can be very painful for vendors to prepare these data feeds. Crawling the sites like a search engine does not work for the reasons stated above, unless the use of a signature file is applied. Using the signature file, accurate product information could be ascertained by applying signature files to a crawled cache or index or collecting price and product information as it flows through the Schema Engine. In this case, a template of the cached/indexed information would be used to create the respective signature therefore. The information could be much richer and cover a significantly larger portion of the web more reliably and easily. A price comparison engine could automatically crawl using signature files to build a complete database of an ecommerce site, using search criteria facilitated through the signature file to implement complex searches of the web site content on a page per page basis (e.g. find all cameras with prices—done through the use of the signature file for respective web sites and then apply filters to the extracted data—e.g. identify those cameras with a price under $200).
- With respect to construction of an appropriate signature file, some terminology is explained using
FIG. 34 as an example: - Page family: Item Page
- Object: Product (A camera)
- Object Elements: Picture (1), Title (2), Price (3), Description (not shown)
- A
complete signature file 64D for awebsite 20D can contain such as but not limited to: -
- Contains instructions to identify each page family on the website (list pages, search pages etc.);
- Contains instructions to extract desired objects and elements for each page family above;
- Specifies the relationship between the objects and attributes (camera has a title, picture and price);
- Captures web page navigation including navigational items and paging; and
- May enable special functionality for the website including searching, logging in a user, purchasing items etc.
- The following provides an overview of constructing the various components of the
signature file 64D, for use in interpretingweb pages 60D obtained from the web site and for reformatting the content and navigational items of the requested web pages for use by the mobile 24D and/ordesktop 26D as reformattedpages 66D. The recognition of various elements of the web pages for use in defining thesignature file 64D can be obtained through manual/automated/semi-automated analysis of the web pages (content and navigation), as desired. - Identifying a Page Family
- An identifier for a page family can meet 2 criteria:
- 1) It is present in all pages belonging to the family
- 2) It is NOT present in pages belonging to any other family
- In one embodiment, a string identifier is used that meets the above criteria as shown in the example below.
- Code Snippet from Webpage Shown in
FIG. 30 -
. . . 1 <tr> 2 <td colspan=“2” class=“product-details-prd-title”><span class=“tx-heading3-dgrey”>Acer Aspire AMD Turion 64 X2 Dual Core TL-52 1.60GHz Laptop (AS9300-5383F) - French - FS Exclusive</span></td> 3 <td class=“product-details-r-bdr”> </td> 4 </tr> . . . - Code Snippet from Webpage Shown in
FIG. 32 -
. . . 1 <tr> 2 <td colspan=“2” class=“product-details-prd-title”><span class=“tx-heading3-dgrey”>Sony 7.2MP Digital Camera (DSCW55B) - Black</span></td> 3 <td class=“product-details-r-bdr”> </td> 4 </tr> . . . - The pages in
FIGS. 30 and 32 are both from the item family. The text “product-details-r-bdr” occurs in both pages and in fact in all pages from the item family in ABC ComTech Corp. The text does not occur in the page shown inFIG. 27 belonging to the list family and in fact does not occur in any other family of pages other than the item page. Since this satisfies both conditions of being a page family identifier, the highlighted text is chosen as the identifier for the item page family. - Setting a Limit
- Unique reference can be defined by setting a limit on portion of a webpage.
- Code Snippet A from Webpage Shown in
FIG. 30 . -
1 function ImageFoundHtml( ) 2 { 3 document.getElementById(‘largeImageRef’).style.- display=“inline”: 4 document.getElementById(‘largeImageNoRef’).style.- display=“none”: 5 { 6 //..> 7 </script> 8 <title >Future Shop: Computers: Laptops: Acer Aspire AMD Turion 64 X2 Dual Core TL-52 1.60GHz Laptop (AS9300-5383F) - French - FS Exclusive</title> 9 >/head> - Code Snippet B from Webpage Shown in
FIG. 30 -
1 <DIV id=‘largeImageRef’ style=“display:none”> 2 <a href=“#” onClick=”openWindowAdv(“http://www.futureshop.ca/popup/largeimagepopup.asp?logon= &langid=EN&file=/multimedia/products/large/10086374.jpg&title=Acer+Aspire+AMD+Turion+64+ X2+Dual+Core+TL%2D52+1%2E60GHz+Laptop+%28AS9300%2D5383F%29+%2D+ French+%2D+FS+Exclusive”550,524,0,0,0,0,0,0);” title=“Click here for larger view”><img src=“/multimedia/products/regular/10086374.gif” WIDTH=“150” HEIGHT=“150” BORDER=“0” alt=“Acer Aspire AMD Turion 64 X2 Dual Core TL-52 1.60GHz Laptop (AS9300-5383F) - French - FS Exclusive”></a> 3 <a href=“#” onClick=”openWindowAdv(“http://www.futureshop.ca/popup/largeimagepopup.asp?logon= &langid=EN&file=/multimedia/producls/large/10086374.jpg&title=Acer+Aspire+AMD+Turion+64+ X2+Dual+Core+TL%2D52+1%2E60GHz+Laptop+%28AS9300%2D5383F%29+2D+ French+%2D+FS+Exclusive”550,524,0,0,0,0,0,0);>Click here for larger view</a> 4 </DIV> - The string “largeImageRef” is the string identifier used to identify and extract the product image for the page shown in
FIG. 30 . Code snippets A and B above illustrate a common problem that can occur. The string identifier needed occurs previously in the document and is therefore an ambiguous identifier on the page. One solution to this problem is constraining the scope of the Schema Engine to the appropriate part of the page in order to effectively use an identifier. This method allows the definition of seeming uniquely identifiers even if they appear elsewhere on the page. - Extracting Objects and Elements in a Page Family
- The example page in
FIG. 34 contains a camera object with the elements Picture (1), Title (2), Price (3), Description (not shown). The signature file therefore can have instructions to identify and extract the elements above as part of the product object for all pages in the item page family. - As an example let us try to construct an instruction to identify and extract the title from any item page such as the pages shown in
FIGS. 33 and 34 . We know that the output of the instruction should be the title of the product inFIG. 33 : “Acer Aspire . . . Exclusive”. Below is a code snippet around the title code of the page: -
1 <tr> 2 <td colspan=“2” class=“product-details-prd-title”><span class=“tx-heading3-dgrey”>Acer Aspire AMD Turion 64 X2 Dual Core TL-52 1.60GHz Laptop (AS9300-5383F) - French - FS Exclusive</span> </td> 3 <td class=“product-details-r-bdr”> </td> 4 <tr> - The following instructions will result in the output of the title:
- 1. Locate the string “product-details-prd-title”
- 2. Extract the value after the string in (1) and in between the strings “<span” and “</span>;”
- 3. Strip all mark up tags—“class=“tx-heading3-dgrey”>”
- 4. The resulting string is the product's title
- The code snippet for the page shown in
FIG. 34 is below. Since both pages belong to the same family, we should be able to follow the instructions above and extract the title of this product. Notice that the instructions work and produces the string “Sony 7.2 MP . . . Black” which is the title of the product. A signature file specifies the instruction above as a single command with parameters. -
1 <tr> 2 <td colspan=“2” class=“product-details-prd-title”><span class=“tx-heading3-dgrey”>Sony 7.2MP Digital Camera (DSCW55B) - Black</span></td> 3 <td class=“product-details-r-bdr”> </td> 4 </tr> - The command representing instructions 1-4 above is shown below in a query language (e.g. the individual file entries) used in signature files developed for the purpose of data extraction, with some relevant parameters highlighted:
- <lookup type=“pex” action=“get_string” name=“title” ref=“product-details-prd-title” location=“after” start=“<span” end=“</span>” include_sz=“1” strip_jags=“1”/>
- The signature file and processing of signature files by the Schema Engine are discussed in more detail later.
- Identifying Object and Element Relationships
- The object and element relationships can be implicitly or explicitly specified. For example in the ABC ComTech Corp. list page shown in
FIG. 31 , the instructions are to first identify and extract the picture, second to identify and extract the title, third the link and fourth the price. The instructions then repeat for the rest of the products on the page. The specific ordering and grouping of the instructions above implicitly define objects that consist of those elements. - Other Aspects
- The example and information demonstrates how to capture data and relationships of objects and elements within a page of a
web site 20D. The platform can actually capture relevant attributes of an object across pages. For example, if a user of the mobile 24D clicked through a number of pages in the following categories in ABC ComTech Corp. to get to a specific TV-SONY456: e.g. TV & Video >19″-21″ TVs >LCD TVs >SONY456. - Another aspect is the ability to capture the information across the navigation of pages about the product. In doing that, one can capture the categorization of the TV “TV & Video >19″-21″ TVs >LCD TVs >” and add that as another attribute of the object. This example shows how capturing of navigation metadata or information across pages can be a source of valuable information.
- Although this example covers only displaying content, the same concepts apply for a page that requires input. The key input fields and values (e.g. the ability to enter search strings) can be identified in the same way and presented to the user of the mobile 24D and value captured and sent back to the
website 20D via the gateway 22DD. Thesignature file 64D can be written in an xml based query language syntax (or other structured definition language and/or script language, for example) to specify the above identifiers and actions such as traversing backwards, forwards and extracting values. The language can be a SQL type query language and can be built on top of regular expressions. - Automatic Generation of
Signature Files 64D - Described is a method of creating signature files that identify and extract specific contents from a webpage. It is recognized that, in view of
FIG. 21 , adevice 101D for implementing the automated method of signature file generation can host a corresponding tool with associated modules including a graphical user interface module to allow selecting contents on a page easier for a user, for example. - The contents may be navigational items, lists, specific items from a list, and other content, for example. The reason that this is useful is that signature files can be manually created, which can be time consuming, and subject to human error. Therefore by automating this process, the turn around time for interpreting a website as a database through the gateway 22DD can be substantially faster and more accurate.
- The automated generation method is to break down the html document (of other format of the web pages) into a hierarchy of tags (delimiters pertaining to a schema of the definition of the pages). The resulting structure can be a tree, which defines the parent, siblings and children of each object. The process (described in the following section) can identify the key objects that contain the data required for the signature file. Once an object is identified as being a required field within the database, the object would then identify its uniqueness by examining its properties (for example class, style, id). If the object is a text node of the tree (or other hierarchical structure), the object will use the properties of its parent. If the properties of the object are not unique, then the object would expand its uniqueness to its parent, siblings and children. The process would expand in all directions uniformly (i.e. examine parent, then previous sibling, then next sibling, then first child. The properties of each of these items would also merge with the required object. This process would then be repeated on the parent, then the previous sibling, etc, until a unique identifier was found. Once a unique identifier was found, an expression would be created for the signature. Note that at least two pages of the same family can be used to create the expression.
- The user will enter the required fields to be extracted from the page. These fields can be specified by a user using a corresponding graphical user interface of the
device 101D to select fields. Alternatively a tool similar to the Desktop tool (see below) could be used to automatically guess at the fields on a page. To automatically generate the signature file assumes that one knows where the key information that resides on the page (i.e. location within the document)—e.g. price, image, description, etc. For example, knowledge of where the key information (e.g. here is the image between these tags to identify the content) is located in the web page can be done using a number of methods, such as but not limited to: look at code of the page by hand to identify the tags used to indicate content type (e.g. navigation, navigation of which content, title, price, image, item description, etc.; semi-automated using a graphical tool to highlight portions on the page and therefore visually select which content data corresponds to what meaning and other content data; and/or the use of the user assisted identification with confirmation/correction by user (further described below with the use of assisted generation that is applicable also to generation of rich bookmarks). -
Example HTML document of Web page Item1.html <html> <head></head> <body> <img src=”company_logo.gif” class=”image” /> <div class=”product”> <h1>Product title</h1> <h2>Product Manufacturer</h2> <img src=”product_image.gif” /> <br> List Price: <strong> $99.99 </strong> <br /> Our Price: <strong> $79.99 </strong> <br /> <p> - This is a Description for Product Title Made by Product Manufacturer
-
</p> </div> </body> </html> Item2.html <html> <head></head> <body> <img src=”company_logo.gif” class=”image” /> <p> disclaimer </p> <div class=”product”> <h1>Sample title</h1> <h2>Sample Manufacturer</h2> <img src=”sample_image.gif” /> <br> List Price: <strong> $109.33 </strong> <br /> Our Price: <strong> $99.99 </strong> <br /> <p> - This is a Description for Sample Title Made by Sample Manufacturer
-
</p> </div> </body> </html> - Assumptions: The required fields are identified prior to this process either by the user or using an automated tool (such as the schema desktop tool). They can be as follows:
-
Item1 Image Product_image.gif Title Product Title Price $79.99 List Price $99.00 Description This is a description for Product title made by Product Manufacturer -
Item2 Image Sample_image.gif Title Sample Title Price $99.99 List Price $109.33 Description This is a description for Sample title made by Sample Manufacturer - It is recognized that different modules of the automated generation process can implement the following steps (embodied as
executable instructions 207D—seeFIG. 21 ). -
Step 1—Identify the Image - From the Item1 the object <img src=“sample_image.gif”/> is selected. It identifies src as an attribute and scans the source of item1 for src=“sample_image.gif”. It does not find a match, so it then scans item2. If a match is found, and the matching object contained the image identified for item2, the attribute would be used to create a signature file image property. However, the item is not found in Item2, so no match has been made. Next the element looks at “<img” within
list 1. It determines that it is the second match. When looking at Item2, the second image also provides the object that contains the image. Now that we have the matching object, we apply a similar heuristic to locate the result from within the object. If the object is a text node, the process is complete. Otherwise, the start and end of the object needs to be located. Using pattern recognition techniques, we find that the ‘src=”’ and that ‘”’ ends the string. Therefore the following entry would be added to the signature file <lookup type=“pex” action=“get_string” name=“image” ref=“<img” repeat_ref=“1” start=” src="” end=“"”/> -
Step 2—Identify the Title - From the Item1 the object <h1>Product title</h1> is selected. It identifies that it is a text node, and uses its parent to identify uniqueness. There are no attributes for the parent <h1>. Next the element looks at “<h1” within
list 1. It determines that it is the only match. When looking at Item2, there is only one match, and the matching element contains the title. Now that we have the matching object, we apply a similar heuristic to locate the result from within the object. Since the object is a text node, the process is complete. Therefore the following entry would be added to the signature file <lookup type=“pex” action=“get_string” name=“title” ref=“<h1 start=“ src=>” end=“<”/> -
Step 3—Identify the Price - From the item1 the object <strong> $79.99</strong> is selected. There are no attributes to be checked for this element. Next the element looks at “<strong” within
list 1. It determines that it is the second match. When looking at Item2, the second strong tag also provides the object that contains the price. Since the object is a text node, the process is complete. Therefore the following entry would be added to the signature file - <lookup type=“pex” action=“get_string” name=“price” ref=“<strong” repeat_ref=“1” start=“>” end=“<”/>
-
Step 4—Identify the List Price - From the Item1 the object <strong> $99.99</strong> is selected. There are no attributes to be checked for this element. Next the element looks at “<strong” within
list 1. It determines that it is the first match. When looking at Item2, the first strong tag also provides the object that contains the price. Since the object is a text node, the process is complete. Therefore the following entry would be added to the signature file - <lookup type=“pex” action=“get_string” name=“price” ref=“<strong” start=“>” end=“<”/>
-
Step 5—Identify the Description - From the Item1 the object <p>, this is a description for Sample title made by Sample Manufacturer </p> that is selected. There are no attributes to be checked for this element. Next the element looks at “<p” within
list 1. It determines that it is the first match. When looking at Item2, the first p tag does not provide the object that contains the description. The parent object <div class=“product”> is selected next. It identifies the attribute class=“product”, and scans item1, and determines that it is the only match. The <p tag is processed again, limiting its search to the parent. The <p tag is identifies as the first instance within the parent. Next the same process is performed on item2. First the attribute class=“product” is located. The first <p tag that is a child of the object containing class=“product” is found. The <p object also contains the description. Since the object is a text node, the process is complete. Therefore the following entry would be added to the signature file - <lookup type=“pex” action=“get_string” name=“description” ref=“class="product"” start=“<p>” end=“<”/>
- Referring to
FIG. 22 , accordingly, in view of the above, the automated generation methodology implemented on the comparison toll (e.g. device 101D) for thesignature file 70D compares two or more delimiters (pertaining to a common schema of the definition of the pages) from each of thepages 52D in order to identify common uses of the delimiters (and their contents). Once identified as a match, the corresponding object, for example, is placed in thehierarchical structure 74D (or other ordered list, etc.). - It is recognized that the
hierarchy 74D can linkentities 76D either directly or indirectly, and either vertically or horizontally. The only direct links in a hierarchy, insofar as they are hierarchical, can be to the entities' immediate superior or to the entities' subordinates, although a system that is largely hierarchical can also incorporate other organizational patterns. Indirect hierarchical links can extend “vertically” upwards or downwards via multiple links in the same direction. Traveling up the hierarchy to find a common direct or indirect superior, and then down again can nevertheless “horizontally” link all parts of the hierarchy, which are not vertically linked to one another. Further, thestructure 74D can also be a lists implemented using arrays or linked/indexed lists of some sort. Thestructure 74D can have certain properties associated with arrays and linked lists. A sequence can be another name for thestructure 74D, emphasizing ordering of theentities 76D. - Further, it is recognized that the
structure 74D would be represented in the signature file as the entries as noted above. It is recognized that a user of thedevice 101D could manually 78D amend or otherwise review the automatically generatedsignature file 64D, as desired. - User Assisted Generation of
Signature Files 64D (Desktop tagging) - Described is a method of assisted recognition of web page contents that identifies and extracts specific contents from a web page, which could be applied in creating signature files. It is recognized that, in view of
FIG. 21 , adevice 101D for implementing the assisted method of web page content that identification and extraction can host a corresponding tool with associated modules. The recognized content could be used to provide the required fields in the signature files or could be used to create the rich bookmarks. - The web page contents may be navigational items, lists, specific items from a list, and other content, for example. The reason that this is useful is that signature files can be manually created, which can be time consuming, and subject to human error. Therefore by helping to automate the recognition of web page contents, the turn around time for interpreting a website as through the gateway 22DD can be substantially faster and more accurate.
- The following is an embodiment of the process of assisted capturing of web page contents, such as but not limited to the image, title, description, and price of a product page as shown in
FIG. 40 . The result of the process is shown inFIG. 41 . The process is performed on the client side, with a call to the server (e.g. gateway 22DD and/orweb site 20D). In one embodiment, the call consists of requesting a javascript. The javascript is generated dynamically on the server side. The dynamic part of the script can perform a number of functions. A first function consists of checking the users cookies for a username and password, so that the user is not prompted with a login upon saving the item. A second function uses a referrer site to load confidence intervals, that have been generated on previously saved items from the same site. - The javascript can have no other knowledge of a web-page, other than confidence intervals to determine the specific fields (image, title, description, and price) of a product, for example. The confidence intervals, further explained below, contain the location on the page (width and height) of each field, and other properties (stated below) that are used to guess a field (i.e. what is the significance/meaning of the field with respect to the content/navigation items contained on the web page. Therefore, confidence levels can be set on a per site basis, but the process used to derive the fields can be the same for every site. This can be done, because most ecommerce web sites display products in a similar fashion (e.g. the title is bold, the image is near the middle and large, the description has the most text, and is black, the price is highlighted and when rendered is within close proximity to the image. Any differences between web sites can be accommodated for based on the assisted (e.g. user) nature of the capturing of web page contents. For example, after the initial guess by the javascript, incorrect matches can be altered by the user clicking on the field that was matched incorrectly, and then locating the correct match on the page, and clicking on that. Once the item is submitted, the confidence intervals are updated based on the fields submitted.
- Accordingly, referring to
FIG. 24 , theuser device 101D first connects to the gateway 22DD and then requests the desiredweb page 60D (seeFIG. 40 ) that is obtained from theweb site 20D. Upon receipt of thejava script 95D (or other executable instructions for facilitating the capture of the web page contents),predefined criteria 96D is used to search the renderedpage 60D for the desired object(s) (e.g. product including image, title, description, and price). Thecriteria 96D is used to compare with the objects located on the web page and if the objects pass the analysis, they are considered as matching candidates for final approval by the user. All candidates are then displayed 97D to the user (seeFIG. 41 ). The user can accept 98D the candidate(s) and/or suggest alternative matches (e.g. by clicking on objects displayed on the screen (e.g. different title, price for the correctly identified image and description) based on a visual inspection of the web page displayed on the screen of thedevice 101D. Acceptance and/or amendment of the candidates can be used to update the pertinent parts of thepredefined criteria 96D for subsequent use in matching other candidates. Further, in the case of multiple candidates, the redefinedcriteria 96D could be used to revise the remaining candidates, before final review by the user. - It is recognized that the assisted recognition of web page contents could also be used to locate any navigational items that are related to the web page content (e.g. a buy button located adjacent to a product, a bid now button located next to an auction item, etc.).
- Further, this method of web page recognition can be tuned capture the key information on a webpage for different genres of sites. For example, e-commerce websites, news sites, sport etc. The method can capture the product image, title, price & description from a page and then post the information with the URL of the webpage to a server to store the information for the user for later retrieval and use, e.g. a rich bookmark. This allows the user to store rich bookmarks that contain more than just the URL of the website. An example of rich bookmarks 99D lists are shown in
FIGS. 42 and 43 , which shows the bookmarks 99D in the context of URL links accessible from a browser menu. - Example Operation
- Field Attributes
- Image:
- Title:
- Description:
- Price:
- Example
- Site: http://www.bestbuy.com
- Link: http://www.bestbuy.com/site/olspage.jsp?skuld=7731564&type=product&productCategoryId=pcmcat95100050005&id=140392418573
- Source: web page of
FIG. 40 . - Referring to
FIG. 42 , the following steps can be implemented in user assisted capture of web page contents, namely: - 1) User navigates to item page
- 2) User clicks FatFreeMobile (activation of desire to connect to gateway 22DD)—Save
- 3) A request is made to fatfreemobile.com (i.e. the gateway 22DD) for the
product javascript 95D - 4) The FatFree server receives the request
- a) The server checks to see if the user is already logged in, if the user is not logged in, the server checks for cookies with the user credentials
- b) The server extracts the requesting site from the referrer section of the http request
- c) The server attempts to the confidence intervals for the site (based on
predefined identification criteria 96D). - d) The server dynamically creates the javascript based on the information from steps (a) and (c).
- e) The server returns the javascript to the client
- 5) The client receives the javascript, which initiates variables required to start the engine, and then launches the engine. Code snippet: watPM.watStart(window);
- 6) The function watPM.watStart(window) performs the following tasks (e.g. based on the
identification criteria 96D) - a) Initializes the objects variables
- b) Locates the largest rendered frame
- c) From the largest frame, all <head> and <body> tags are extracted. Code snippet: getElementsByTagName(‘body’);
- d) The remaining tags i.e. <a> <td> Code snippet: getElementsByTagName(‘body’);
- e) A style sheet from FatFreeMobile is then injected into the head of the document
- f) Special characters such as " are replaced with their respective rendered characters i.e. "=”
- g) The gui for FatFreeMobile is injected into the body, as the first element
- i. API call document.element.insertBefore(new_element);
- h) Step 0 is then called setTimeout(“top.watPM.watStage(0)”, 20);
- 7) The function setTimeout(“top.watPM.watStage(0)”, 20); performs the following tasks by calling watScriptX( )
- a) All script tags that are embedded within the page are removed
- i. API call document.removeElement(element);
- b)
Step 1 is then called setTimeout(“top.watPM.watStage(1)”, 10); - 8) The function setTimeout(“top.watPM.watStage(1)”, 10); performs the following tasks by calling watParselt(0). This function looks at all of the tags. However it only process 1000 at a time, for example, to help avoid the warning message a browser prompts with
- “The javascript is not responding”, So for each tag the functions performs the following (e.g. based on the
identification criteria 96D) - a) Extract the tag name (i.e. <A> <BR> <TABLE>)
- b) Ensure the current tag is visible. If the tag is not visible (one of the following styles implies hidden visibility=hidden display=none) the tag is ignored.
- c) The position of the tag (absolute, relative, etc) are extracted from its style property
- d) If the tag is one of the following it is ignored (‘LINK’, ‘STYLE’, ‘HEAD’, ‘TITLE’)
- i. For example <title>Hewlett-Packard—42″ Plasma HDTV—PL4260N</title> is ignored
- e) If the position (c) is absolute, and the x coordinate <0 and/or the y coordinate is <0 the element is ignored
- i. For example <div id=“kioskMessage” style=“display:none;”> and all of its children are ignored
- f) All javascript actions from the given object are cleared. (i.e. object.onclick will be set to return false;
- i. For example <script language=“JavaScript”>if(is Kiosk){var kioskwarning document.getElementById(“kioskMessage”);kioskwarning.style.display=“block”;strAdHeight2=kioskwarning.offsetHeight;}</script> is removed
- g) If the objects tag=IMG or (tag=INPUT and type=image) the object is saved as a candidate for the products image.
- i. For example <imgsrc=“http://images.bestbuy.com:80/BestBuy_US/images/products/7731/7731564_rc.jpg” alt=“ ” border=“0” align=“top”> the product image
- ii. For example <imgsrc=“http://images.bestbuy.com:80/BestBuy_US/images/products/7426/7426458_s.gif” alt=“7426458 Front Thumbnail” border=“0” height=“45.0” width=“54.0” align=“center”> not the correct product image, but still an image.
- h) If the objects tag is in the following (‘TD’, ‘UL’, ‘P’, ‘DIV’, ‘SPAN’, ‘B’, ‘H1’, ‘H2’, ‘H3’, ‘H4’, ‘H5’, ‘H6’, ‘STRONG’, ‘FONT’, ‘BIG’) and the objects innerHTML code length is <1024 (for example) the object is stored as a possible candidate for the products title, price, and description.
- i. For example <td class=“Body-Headline” colspan=2>Hewlett-Packard42″ Plasma HDTV<br></td> the correct title
- ii. <b> More Options </b> an incorrect title
- iii. <td class=“Body”> Watch all of your favorite high-definition quality broadcasts on this 42″ plasma TV that features SRS . . . </td> the correct description
- iv. <td class=“Body” valign=“top”> 16:9 widescreen aspect ratio delivers a cinema-style entertainment experience; 3-2 pulldown for accurate reproduction of film-based sources </td> an incorrect description
- v. <div class=“priceblock”>Our Price: $1,199.99<br></div> the correct price
- vi. <div class=“priceblock”>Our Price: $99.99<br></div> an incorrect price
- i)
Step 2 is then called setTimeout(“top.watPM.watStage(2)”, 10); - 9) The function setTimeout(“top.watPM.watStage(2)”, 10); performs the following tasks by calling watSetTitles( ), which calls watAttrib(hcc,lcc,tcc), (e.g. based on the
identification criteria 96D); - i. var hcc=[2,1]; //initial requirements
- ii. var tcc=[2]; //post location requirements
- iii. var lcc=this.ltitle;
- a) all candidates for titles from
step 8 are compared with each other. The top 5 (for example) are selected from the following: - i. First the objects weight is assigned a numeric value based on their rendered weight. Each objects' weights are compared.
- 1. not defined, normal, and 400=400
- 2. bold, bolder and >400=700
- 3. <400=300
- ii. Any ties are broken by the objects rendered size. The size is assigned a numeric value based on its rendered size.
- 1. x pixels=x
- 2. x pt=4/3*x
- 3. HN=
- a. Tag=H1=2
- b. Tag=H2=3/2
- c. Tag=H3=9/8
- d. Tag=H4=1
- e. Tag=H5=13/16
- f. Tag=H6=5/8
- g. Tag=ELSE=1
- 4. x %=x*(16/100)*HN
- 5. x em=x*16*HN
- 6. xx-small=10
- 7. x-small=12
- 8. small=16
- 9. medium=18
- 10. large=24
- 11. x-large=32
- 12. xx-large=48
- 13. 1 or −2=10
- 14. 2 or −1=13
- 15. 3=16
- 16. 4 or +1=19
- 17. 5 or +2=24
- 18. 6=32
- 19. 7=48
- 20. ELSE=12
- b) The candidates are then arranged in order based on their distance from the center of the page. The closest to the center would be the first choice. Etc . . . . The center of the page is defined by the confidence intervals
- c) Finally the winning candidate is selected by comparing the confidence interval of the most common winner, the confidence interval of the location, and the weight of each object.
- d) For example, comparing the correct title, and the incorrect title above. Both would evaluate to a weight=700. The size of the correct item is larger, so it would be ranked ahead. Next the locality of each object would be compared. Since the correct title is closer to the center it would remain ranked higher. The items would then be re-ranked based on their weight. Since there weights are equal the winner is the correct title.
- a.
Step 3 is then called setTimeout(“top.watPM.watStage(3)”, 10); - 10) The function setTimeout(“top.watPM.watStage(3)”, 10); performs the following tasks by calling watSetDescription( ), which calls watAttrib(hcc,lcc,tcc), (e.g. based on the
identification criteria 96D); - i. var hcc=[5,−1]; //initial requirements
- ii. var tcc=[ ]; //post location requirements
- iii. var lcc=this.ldesc;
- a) all candidates for titles from
step 8 are compared with each other. The top 5 (for example) are selected from the following: - i. First the objects length of the innerHTML (the length of the source html code the object contains). The longer the length, the more likely it is a description.
- ii. Second the weight of the object is compared, A detailed explanation was provided in step (9). The −1 signifies that a candidates weight counts as a negative attribute. Therefore, text that is not bold/italic etc is more likely to be a description.
- b) The candidates are then arranged in order based on there distance from the center of the page. The closest to the center would be the first choice. Etc . . . . The center of the page is defined by the confidence intervals
- c) Finally the winning candidate is selected by comparing the confidence interval of the most common winner, the confidence interval of the location.
- d) For example, comparing the correct description, and the incorrect description above. The length of the correct item is larger so it would be ranked ahead. Next the locality of each object would be compared. Since the correct description is closer to the center it would remain ranked higher. The items would then be re-ranked based on their weight, where a stronger weight counts against the item. Since there weights are equal the winner is the correct description.
- e)
Step 4 is then called setTimeout(“top.watPM.watStage(4)”, 10); - 11) The function setTimeout(“top.watPM.watStage(4)”, 10); performs the following tasks by calling watSetPrice ( ), which calls watAttrib(hcc,lcc,tcc), (e.g. based on the
identification criteria 96D); - i. var hcc=[6,9,8,2,1]; //initial requirements
- ii. tcc=[6,9]; /post location requirements
- iii. var lcc=this.ldesc;
- f) all candidates for titles from
step 8 are compared with each other. The top 5 (could change later) are selected from the following: - iii. First the objects text is searched for a dollar sign ($). Objects that have a dollar sign will be ranked higher
- iv. Second the objects text is casted to a decimal. If the cast is successful, i.e. the text is a number the element is ranked higher.
- v. Third the objects text is scanned to determine if any numbers exist. If a number is found the object is ranked higher
- vi. Fourth the objects weights are compared. Objects that are bold/italic will rank higher
- vii. Fifth the objects size is compared. The larger the font of the price the more likely it is the products price.
- g) The candidates are then arranged in order based on there distance from the center of the page. The closest to the center would be the first choice. Etc . . . . The center of the page is defined by the confidence intervals
- h) Finally the winning candidate is selected by comparing the confidence interval of the most common winner, the confidence interval of the location, whether or not a $ sign exists, and whether the text is a numeric.
- i) For example, comparing the correct price, and the incorrect price above. Both would evaluate to true when searching for a dollar sign. Neither item is a decimal, as they both contain text. Both would evaluate to true when searched for numbers. Both weights would evaluate to 700. Finally the size of both items are equal. So the item is essentially tied, and since html is a top down language the first item is ranked higher in our case the incorrect item. Next the locality of each object would be compared. Since the correct price is closer to the center it would now be ranked higher. The items would then be re-ranked based on the dollar sign and decimal tests. Since there both items evaluate to be equal the winner is the correct price.
- j)
Step 5 is then called setTimeout(“top.watPM.watStage(5)”, 10); - 12) The function setTimeout(“top.watPM.watStage(5)”, 10); performs the following tasks by calling watSetGraphics ( ), which calls watAttrib(hcc,lcc,tcc), (e.g. based on the
identification criteria 96D); - a) all candidates for titles from
step 8 are compared with each other. The top 5 (could change later) are selected from the following: - i. First find the rendered width and height of the image.
- ii. Determine the distance from the center of the page
- iii. Compare an object by taking its area−distance to the center. The object that results with the larger number is more likely to be the image,
- iv. For example, comparing the correct image, and the incorrect image above. The area of the correct image is visibly larger than that of the incorrect image. As well the correct image is also visibly closer to the center. Then if the correct image CA, and the incorrect image IA would demonstrate: area of CA−distance to middle CA>area of IA−distance to center. Hence the correct image is chosen.
- b)
Step 6 is then called setTimeout(“top.watPM.watStage(6)”, 10); - 13) The function wataddItem takes the guess for image, title, description, and price and displays them to the user, shown in
FIG. 41 . The user now has the ability to change a selection by clicking first on the field that was guessed incorrectly. This field will be highlighted in yellow, then locate the correct item on the page, when the correct item is highlighted in yellow, clicking on that item will update the guess. - 14) The user clicks Save
- 15) A form is posted to FatFreeMobile with the products image,price,title, and description. As well for each field, the x,y location of the field and the guess number is sent to FatFreeMobile
- 16) The server receives the request and updates the database accordingly. The server also downloads the selected image, to help avoid hot linking when displaying products.
- It is recognized that the above assisted capture method can be used as a method to have one or more distributed users help or otherwise be employed to create portions of a signature file one or more distributed users help or otherwise be employed to create portions of a signature file for a web site. For example, a number of users could be assigned different pages from a web site in order to assemble a corresponding signature file for the complete web site, as desired.
- Schema Communication Flow
- The following description provides an example operation of the interaction between the gateway 22DD, the mobile 24D and
desktops 26D, and theweb pages 60D obtained from thewebsite 20D, based on the requests for content/navigation from the mobile 24D anddesktops 26D (seeFIG. 20 ). - Referring to the above
FIG. 45 andFIG. 20 with respect to the following steps; - 1. A client makes a request to the
Schema Engine 23D, acting as aproxy 20D, for aspecific webpage 60D from a specific domain (e.g. web site 20D); - 2. The engine receives the request and makes a request to the
web site 20D for the specified page and retrieves the web page code into memory. This may not include objects on the page such as pictures that are inserted at the time of rendering; - 3. The engine in parallel makes a request to the signature repository to acquire the
signature file 64D for the domain using the domain in the URL as the key to retrieve the signature file, for example; - 4. The engine does not render the page but instead uses the code in the signature file as instructions to extract the desired data from the web page, such that the desired data is defined for a particular request type received by the gateway from the mobile 24D/
desktop 26D and/or for a predefined mobile 24/desktop 26 platform (e.g. having knowledge of device display capabilities screen size, resolution, and other parameters useful in determining the way in which the data is capable of being displayed on thedevice 101D; - 5. The data can optionally be stored in a local data repository;
- 6. The engine transmits the data to the client that requested the page; and
- 7. The client could be a browser application that displays the data or could be an application that renders the data (e.g. see
navigational menu 300D example described below). - Further below is described a section on a detailed explanation on how the Schema Engine understands the signature file syntax and processes a webpage, as proxied between the mobile/desktop and the web site.
- It is noted that an example embodiment of the
engine 23D and thesignature file 64D used to interpret theweb page 60D and subsequently send revised/reformatted web page content/navigation data to the screen with limited real estate requirements (e.g. mobile) is provided in Appendix A. - Referring to
FIGS. 20 and 23 , shown is an example operation of steps implemented to obtain and satisfy a web page request from theuser device 101D (e.g. mobile) by the gateway 22DD. Step 200—clients makes a request for the ABC ComTech Corp. page shown inFIG. 26 and aftersteps above step 4, where the engine does not render the page but instead uses the code in the signature file as instructions to extract the desired data from the web page. Accordingly, step 201—Schema Engine confirms that input HTML is from ABC ComTech Corp.ca and this signature file is that of ABC ComTech Corp.ca, step 202—Schema Engine sets a global variable to append “&test%5Fcookie=1” to all requests and sets main index to http://www.ABC ComTech Corp.ca/home.asp?newlang=EN&logon=&langid=EN, step 203—Schema Engine then tries to determine the page type by checking existence of string identifiers for each page family, step 204—Schema Engine then jumps to the “item_elements” section of the signature file that contains instructions for extracting the object elements for the page, step 205—Schema Engine trims HTML scope,step 206—Schema Engine extract image, step 207—Schema Engine extracts title, step 208—Schema Engine extracts price,step 209—Schema Engine extracts sale price,step 210—Schema Engine extracts description, and step 211—Schema Engine assembles and returns all extracted data for display on the mobile, dependent on the format as predefined suitable for the mobile display capabilities (e.g. screen size, resolution, etc.). Atstep 212, the engine transmits the data to the client that requested the page (as perstep 6 above). - It is recognized that the above described steps 206-210 can be for the extraction of web It is recognized that the above described steps 206-210 can be for the extraction of web example of web page content/navigation items that are obtained by the engine from the
web page 60, using the signature file as a guide for the extraction. It is recognized that the engine can also have a series of formatting rules, not shown, for use with the extracted data in generating a page with the extracted data that is suitable for display on thetarget device 101D (e.g. desktop, mobile). It is recognized that the formatting rules can be system and/or user defined and can include such parameters such as but not limited to: object positioning, object colour, object size, object shape, object font/image characteristics, background style, and navigational item display (e.g. inmenu 300D or embedded along with the content in the generated page for display on the target device. - User Interface Optimization by Separating Web Page Content and Navigation
- Schema Solution—Gateway 22DD
- Although a
Schema Engine 23D of the gateway can automatically determine whether to send back menus or content for a given web page, an Schema client (e.g. mobile 24D and/ordesktop 26D) has the ability to explicitly request either the navigation menu or the content for a page and the Schema Engine provides each output accordingly. On each screen of theuser device 101D (e.g. mobile or desktop) the user either sees the navigation menus or the page content for the respective page. This method is accomplished using the Schema Engine and signature file, further described below.FIG. 26 shows the output the client receives from the Schema Engine, when it extracts the navigation from a typical web page (that has both navigation and content) The Schema engine takes in ABC ComTech Corp. page marked “1” and outputs page marked “2” to the schema client.FIG. 27 shows the output the client receives from the Schema Engine, when it is extracts the content (list items) from a typical webpage. The Schema Engine takes in ABC ComTech Corp. page marked “3” and outputs page marked “4” to the schema client. - This demonstrates how the navigation and content from web pages can effectively be separated and transmitted by the Schema Engine to the schema client.
- Packaging Page Content and Navigation Menu Data into a Mobile Application
- Page Content
- From the above example it is apparent that the Schema Engine is able to output navigation and content data independently as the result of a given web page input. Packaging content into a mobile application (e.g. application hosted by the mobile device or desktop device) entails rendering the data output of the Schema Engine in a client mobile application instead of the web browser. In the current embodiment, as an example, a web browser makes a request for a page and receives the content data as the response that it renders. The mobile application can similarly make a request for the page, as the browser could, and render the data received from the Schema Engine. See
FIG. 28 as an example of the rendering of a mobile client application. - To fully package a website into an application, the navigation functions of the website (browsing) and special features (buy item, check availability, and other buttons/links) can be inserted into a
menu 300D of the application, seeFIG. 29 . One advantage of doing so is that the user can invoke the application menu for navigation rather than loading a new page or screen refresh to view the navigational items displayed in the web page. In another embodiment, navigation options can also be inserted in pop-up menus and dialogue boxes of the applications using a similar approach as described below. It is recognized that the gateway can be used as a data flowthrough mechanism, with respect to data on navigational items extracted from thewebpage 60D. Accordingly, the navigational item data would be tagged by the gateway for subsequent interpretation by the client application (e.g. mobile), such that the client application would recognize the navigational item data for insertion into thenavigation menus 300D, insertion as embedded into the published content displayed on the screen, or a combination thereof. It would be up to the mobile application, for example, to determine the manner in which the navigational item data is to be used in conjunction with the publish content data for any respective web page, as desired. - The pages marked “2” and “4” in
FIGS. 26 and 27 respectively show how the navigational features and content features are divided into 2 separate pages/files. A user has to switch pages to toggle between navigation and content. -
FIG. 28 shows an example client application's content area. Note that the navigational features of the web page can be selected through themenu 300D that is linked to the actual navigational instructions of the respective Web page(s), which is invoked in a single click (FIG. 23 ) that has the website navigation options displayed to the used as anapplication menu 300D rather than as navigational features displayed on the web page. -
Navigation Menus 300D - A menu item can be statically created at compile time and its function is known at compile time for web pages. The Schema Engine can dynamically create menu items at run time. Assume that a navigational item is meant to be processed on the client that accomplishes inserting menu items dynamically. If the mobile application was passed the extracted navigational information from the engine, the application would insert the items into the application via MenuItem(name, URL), for example. In this case, it is the engine that would pass the data (name, URL) that indicates the data as a potential menu name and corresponding URL as parameters. The application would insert the data as a menu item into the
application menu 300D, such that these parameters would then be linked to the corresponding respective menu item selection. The method described above dynamically inserts navigational items of the web page into the application menu of the application used to interact with the web site contents. The implementation of this method can differ depending on the application and platform of thedevice 101D. It should be recognized that the menu items are related to navigation of the content in the web pages rather than only between the web pages themselves. - The following steps outline an example process for dynamically inserting menu items into a mobile application menu:
- 1. The client application makes a request for the navigation items of a web page
- 2. The Schema Engine receives the web page (marked “1” in
FIG. 26 ) - 3. The Schema Engine extracts the navigational items and sends the data set (menu name, URL) to the client. Table 1 shows the output for the first 5 navigational items from the web page of
FIG. 26 . - 4. The client receives the navigational items and calls a createMenuItem( ) method with each [menu name, URL] set received, thus displaying the navigational items as menu items. It is recognized that the menu items can be displayed overtop of the content displayed on the screen of the
device 101D, where the navigational items are no longer displayed adjacent to the content (as formatted in the original web page) and rather assembled/combined and displayed in a separate navigational menu for navigating the content of the web site. - At this point, the navigation items for the page are loaded into the
application menu 300D. A user can click a menu item, which will result in the application invoking the URL associated with the menu name and thus facilitating the display of the web site content associated with the menu item (representing the original navigational item). For example, the menu item can be used to invoke one of the navigational items of the web site (e.g. “buy item”), rather than just navigate between pages. - Using this method both content and navigation features can be simultaneously retrieved for a given page. For example in the diagram if the user selects the navigational name “computers” the URL page request will be sent to the Schema Engine that will respond to the client with the content for that page as well as the navigation items (in menu format for example) for that page.
- The content is rendered in the application as previously described and the web page navigational items are inserted into the application menu as described above. Accordingly, the contents of the
navigational menu 300D for any particular web page is dependent upon the navigational items that are contained or are otherwise associated with that web page as configured by the web site. In this case, bothtraditional content 50D and thenavigational features 54D can be treated as components for each of the web pages. Hence, the web pages of the web site (through use of the signature file described below) can be represented as having web page contents that includes both thecontent 50D and thenavigational items 54D. In this sense, eachmenu 300D for each page is dynamically created based on the navigational items resident/associated with that page (andpage content 50D). - Further, it is recognized that some
navigational items 54D can remain on the web page as displayed (e.g. embedded with the displayedcontent 50D), can be represented asseparate menu 300D items, or a combination thereof. - Maintaining a Transactional Session Across Devices 101 d
- Referring to
FIG. 25 , in general the state of a user's browsing session can have a number of different perspectives, such as but not limited to: 1) a Browser/application 207D perspective includingnavigation history 82D across the current browsing session, such that the browser/application 207D can keep track of the address (e.g. URL) of pages previously visited (back and forward buttons) as well as the current page the user is on. The current page can also be captured through a bookmark, as is know in the art; and 2) a web site perspective such that session information relating to the specific website can includewebsite state information 80D like a session ID, site preferences, and shopping cart items, for example. This website state information (particular to the user's interaction with the web site—e.g. tracked through the users' ID such as login ID ordevice 101D ID) can either be stored on the client (user'smachine 101D) in a browsing history file (e.g. a cookie) or on theserver device 101D associated with a user's session ID (e.g. website 20D and/or the gateway 22DD). In the case of the gateway 22DD, a table/memory 92D can be used to store or otherwise monitor thehistory 82D and/or thestate information 80D with respect to each user transaction that is in a pending/unfinished state (e.g. user has browsed/interacted with a number of web pages to a certain stage for product purchase, but has not yet progressed to the point of transaction completion—e.g. confirmation of payment and shipping information of a selected product). - It is noted that a cookie can be referred to as a small text file of
information 80D that certain Web sites can attach to a users hard drive (of theirdevice 101D) while the user is browsing the Web site. The Cookie can contain information such as user ID, user preferences, archive shopping cart information, etc. Since the web sites can be inherently stateless, these cookies or other session history equivalents can also be a good way to create and maintain state from a website's perspective, as implemented by theenvironment 10D as further described below. Further, a bookmark can be referred to as a process of saving a URL (e.g. network 11D address) in the web browser/application 207D. Thebookmark 82D allows the user to return to a particular web site or web page by making a record of the corresponding network address. A bookmark however may not capture the state (data entered/requested in the process of transaction completion) of a user's browsing session, rather the bookmark serves as a reference point for the location of the web page/web site last visited by the user. One can appreciate that a bookmark captures may only a fragment of a user's browsing session, for example only the address of current page that the user was on. - Accordingly, saving and restoring a user's session can have one or more different components, such as but not limited to: saving and restoring the current page and
navigation history 82D; and/or saving and restoring the specific website'stransactional state 80D pertaining to the user (e.g. using the respective cookie for the transaction). - Saving a User's Browsing Session
- Saving navigation history can be accomplished by saving the current page (saving the URL such as a bookmark would do) and optionally gathering the browser's navigation history. For example on a mobile client, all pages that a user requests can be saved on the client or on a remote server.
- For example, when a client browser or application (mobile or desktop) makes an http request, a request comes back including 2 parts, an http header and the http content. One of the instructions in the http header is a “set cookie” command. A browser or client application uses that command to create and maintain the cookie on the client. When the browser or client application makes a web page request, it can pass all the cookies back to the website to maintain state. Because cookie information can be in plain text in a header, it can readily be extracted by a mobile client application. One embodiment of the browser/
application 207D is to collect cookies on the desktop/mobile is to use a browser plug-in or state application 88 to retrieve cookies from the “temporary internet folder” of thedevice 101D where cookies are typically stored and transmit them to the remote server or database. Saving cookies is a way to save the user's state from the website perspective. - Accordingly, the user's transaction can be saved through use of the
history 82D and/orinformation 80D. For example, if the user wishes to save a particular transaction-in-progress, the user can notify the gateway 22DD of the intension and the gateway can save thehistory 82D,information 80D in thememory 92D, for later use in reactivating the particular transaction-inprogress. It is recognized that the data captured as a rich bookmark could also be used in thedata - Restoring a User's Browsing Session
- Restoring the current page can be accomplished by making a request by the user for the current page on the client application/browser (mobile or desktop). The gateway is then responsible for sending to the
current device 101D (either the same or different device by which the transaction was last done with) atransaction continuance package 84D that is related to the saved particular transaction-in-progress from thememory 92D, which would contain data such as but not limited to: the saved navigation history for use in populating the navigation history of the user device; and/or all saved cookies for use in restoring website state information by placing the cookies into the appropriate location that the browser or client application uses to create and manage cookies, e.g. the “temporary internet folder”. - One aspect is that the
application 88D could synchronize all cookies from the desktop to the mobile device or vice versa. This way, user preferences for all web sites (including re membered login ids, for example) could be always synchronized between a mobile device and the desktop. Further, it is recognized that thememory 92D could be used to remember the device on which the transaction-in-progress was last implemented on and to therefore try to maintain the formatting ofweb pages 86D as displayed previously for the user activity with respect to the transaction-in-progress. One example of this is to keep the simplified formatting of the web pages done for the mobile display the same for display of similar pages on the desktop, even though sufficient desktop screen space is available to display the original content and format of the web pages. Similarly, for transactions started on the desktop, the continuance of the web pages on the mobile, with respect to desktop formatted webpages, could be retained (e.g. through re-organization of the pages and wrap content around the screen, or used of the WAP standard to spatially divide a page (usually vertically) into a number of pages and allow the user to navigate between each page section to view a page). The maintaining of the look and feel of the particular web page content could be useful in keeping the user from becoming confused between format changes of the web pages. Further, for example the user could select a certain web page format for display through the gateway (e.g. original or otherwise simplified format), in the event that the user anticipates changing devices (e.g. desktop to mobile) to continue and complete the transaction, as desired. - Another extension of the concept of saving the transaction-in-progress is that variables such as an affiliate revenue sharing code can be included in the URL. That way, the user can start browsing from a PC or mobile device and save their session based on the code. When they restore the session on another PC or mobile device, the revenue share would be received by appropriate entity based on the code usage.
- Caching
- There can be cache points on the engine as well as the client. The cache can consist of the actual webpage or the data output of the webpage. Cache's can be build upon request or output can be pre-cached to optimize the user experience. A combination of the above on different kinds of pages can be used to develop caching schemes for usage. Another aspect of the engine is that it can be used to crawl an entire website with the corresponding signature file and build a complete database of product information from the website automatically.
- Pre-Caching (Offline Synchronization) of Website Content to a Mobile Client
- Another aspect is the ability for a user to load website content (pre-caching) from the Schema Engine to the client in larger segments instead of page by page. This could either be done through an application on an internet enabled PC when the mobile device is connected to the PC or directly from the mobile device when the user has a wireless data connection available. Once the desired content is on the mobile device, the user could browse the content without a wireless connection.
- In the current examples, when a user selects a menu item from a menu page, for example “computers” in
FIG. 35 , the Schema Engine fetches the corresponding page to the menu item which could be a sub-menu item or a list page. Another embodiment of the invention would allow the user to select the category “computers” inFIG. 35 and the Schema Engine would automatically traverse all sub menus in the category and cache all information including sub menus, list pages and item pages in the category. Other examples are sections of a news site including “headlines”, “business”, “sports” etc. Using this method a user could select categories that could be pre-cached on the device for offline browsing at a later time. The same techniques could be applied to cache an entire website for data mining or searching (for example a price comparison website that wished to have indexes of multiple e-commerce sites). Further, it is recognized that no network calls could be required in the event of precaching. For example, precache could happen at the beginning of day via the user desktop and then synched to the mobile via a wired connection (for example), so that user can surf precached information offline. For example, using signature file to grab content based on precaching criteria, this could be used to generate the precache database. Examples of wanting to build a local precached database on the device could include: 1) for browsing situations for no/interrupted connection potential; or 2) for fast browsing. Further, for price comparison websites, they can crawl the web and build a comparison pricing information to make available to the public or other subscribers. - Referring to
FIG. 45 , the Following Steps can be Effected: - 1. A client (1) makes a request to the Schema Engine(4), acting as a proxy, for a specific webpage (2) from a specific domain
- 2. The engine (4) receives the web page code (2) into memory. This typically does not include objects on the page such as pictures that are inserted at the time of rendering.
- 3. The engine (4) in parallel makes a request to the signature repository (3) to acquire the signature file for the domain using the domain in the URL as the key to retrieve the signature file
- 4. The engine does not render the page but instead uses the code in the signature file as instructions to extract the desired data from the web page (6).
- 5. The data can optionally be stored in a data repository (5)
- 6. The engine (4) transmits the data to the client (1) that requested the page
- 7. The client (1) could be a browser application that displays the data or could be an application that renders the data
- Schema Engine Detailed Walk Through
- Assume that a clients makes a request for the ABC ComTech Corp. page shown in
FIG. 26 . Aftersteps - Code Snippet of ABC ComTech Corp. Page Shown in
FIG. 26 -
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> <meta http-equiv=“Content-Type” content=“text/html; charset=iso-8859-1” /> <script language=“JavaScript” src=“/javaScript/productdetail.js”></script> <html> <head> <meta NAME=“GENERATOR” Content=“Microsoft Visual Studio 6.0”> <link rel=“SHORTCUT ICON” href=“http://www.ABC ComTech Corp..ca/favicon.ico”> <title >ABC ComTech Corp.: Computers: Laptops: Acer Aspire AMD Turion 64 X2 Dual Core TL-52 1.60GHz Laptop (AS9300-5383F) - French - FS Exclusive</title> </head> <body onLoad=“onLoadAction( ); return false;” onResize=“setDDOnResize( ); return false;” leftmargin=“10” rightmargin=“10” topmargin=“10” bottommargin=“10”> <!--==================== Server=fsweb84 ====================//--> <script language=“JavaScript” src=“/javaScript/search.js”></script> <table align=“center” cellpadding=“0” cellspacing=“0” class=“table-outer-width”> <tr> <td> <table width=“100%” border=“0” cellpadding=“0” cellspacing=“0”> <tr valign=“top”> <td colspan=“3” class=“bg-header-border”></td> </tr> <tr> <td class=“bg-header-border”></td> ... Code Snippet of Schema ABC ComTech Corp. Signature file retrieved by Schema Engine - Code Snippet of ABC ComTech Corp. Signature File Retrieved by Schema Engine
-
<?xml version=“1.0” encoding=“ISO-8859-1” ?> <site> <version major=“1” minor=“2”/> <url location=“http://www.ABC ComTech Corp..ca” key=“ABC ComTech Corp..ca” name=“ABC ComTech Corp ” /> <advanced> <append_link value=“&test%5Fcookie=1” /> <index_link value=“http://www.ABC ComTech Corp..ca/home.asp?newlang=EN&logon=&langid=EN” /> </advanced> <page_type> <lookup type=“pex” action=“locate_string” name=“list_elements” id=“mylist_1” ref=“Sort or compare products” alt1=“Sort products” /> <lookup type=“pex” action=“locate_string” name=“item_elements” id=“myitem_1” ref=“"product-details-prd-title"” /> <lookup type=“pex” action=“locate_string” name=“menu_elements” id=“mymenu_2” ref=“anc-lhsnav-subItem” /> <lookup type=“pex” action=“locate_string” name=“menu_elements” id=“mymenu_1” ref=“product-table” /> <lookup type=“pex” action=“locate_string” name=“item_elements” id=“myitem_1” ref=“*” /> </page_type> <list_elements id=“mylist_1”> <paging> <page_variable value=“page” /> <page_start value=“0” /> <lookup type=“pex” action=“get_string” name=“link” ref=“Next&nbsp” location=“before” start=“<a class=” end=“</a>”include_sz=“1” strip_tags=“1” /> </paging> <actions> <lookup type=“pex” action=“move_ptr” ref=“Sort or compare products” alt1=“Sort products” /> ... - Step 1: Schema Engine Confirms that Input HTML is from ABC ComTech Corp.ca and this Signature File is that of ABC ComTech Corp.ca
-
<?xml version=“1.0” encoding=“ISO-8859-1” ?> <site> <version major=“1” minor=“2”/> <url location=“http://www.ABC ComTech Corp..ca” key=“ABC ComTech Corp..ca” name=“ABC ComTech Corp. ” /> - Step 2: Schema Engine Sets a Required Global Variable to Append “&test%5Fcookie1” to all requests and sets main index to http://www.ABC ComTech Corp. .ca/home.asp?newlang=EN&logon=&langid=EN
-
<advanced> <append_link value=“&test%5Fcookie=1” /> <index_link value=“http://www.ABC ComTech Corp..ca/home.asp?newlang=EN&logon=&langid=EN” /> </advanced> - Step 3: Schema Engine then Tries to Determine the Page Type by Checking Existence of String Identifiers for Each Page Family
-
<page_type> <lookup type=“pex” action=“locate_string” name=“list_elements” id=“mylist_1” ref=“Sort or compare products” alt1=“Sort products” /> <lookup type=“pex” action=“locate_string” name=“item_elements” id=“myitem_1” ref=“"product-details-prd-title"” /> <lookup type=“pex” action=“locate_string” name=“menu_elements” id=“mymenu_2” ref=“anc-lhsnav-subItem” /> <lookup type=“pex” action=“locate_string” name=“menu_elements” id=“mymenu_1” ref=“product-table” /> <lookup type=“pex” action=“locate_string” name=“item_elements” id=“myitem_1” ref=“*” /> </page_type> ABC ComTech Corp. web page code snippet: ... <td valign=“top” width=“430”> <table width=“100%” border=“0” cellpadding=“0” cellspacing“0” class=“product-details-table”> <tr><td><img src=“/images/prices/savebanner/EN/large/Save%2D%2460.gif” width=“125” height=“15”></td><td align=“right”><a href=“http://www.ABCComTechCorp.ca/informationcentre/EN/content_feedback.as p?sku_id=0665000FS10086374&title=Acer+Aspire+AMD+Turion+64+X2+Dual+Core+TL%2D 52+1%2E60GHz+Laptop+%28AS9300%2D5383F%29+%2D+French+%2D+FS+Exclusive&man =Acer&logon=&langid=EN”>Feedback</a></td></tr> <tr> <td colspan=“2” class=“product-details-price”><img src=“/images/prices/pricepill/large/999%2E99.gif” ></td> <td class=“product-details-price-trc”></td> </tr> <tr> <td colspan=“2” class=“product-details-prd-title”><span class=“txheading3- dgrey”>Acer Aspire AMD Turion 64 X2 Dual Core TL-52 1.60GHz Laptop (AS9300-5383F) - French - FS Exclusive</span></td> <td class=“product-details-r-bdr”> </td </tr> ... - Schema Engine does not find “Sort or compare products” or “Sort products” in the web page so this page is not from the List family. The engine continues to check the next string.
- Schema Engine finds “"product-details-prd-title"” and identifies the page as part of the Item family (item_elements).
- Step 4: Schema Engine then jumps to the “item_elements” section of the signature file that contains instructions for extracting the object elements for the page
-
<item_elements id=“myitem_1”> <actions> <lookup type=“pex” action=“move_ptr” ref=“&It;/head>” /> </actions> <element> <lookup type=“pex” action=“get_string” name=“image” ref=“largeimageref” location=“after” start=“&It;img src="” end=“"” /> <lookup type=“pex” action=“get_string” name=“title” ref=“productdetails- prd-title” location=“after” start=“&It;span” end=“&It;/span>” include_sz=“1” strip_tags=“1” /> <lookup type=“pex” action=“get_string” name=“price” ref=“our price:” location=“after” start=“&It;td” end=“&It;/td>” include_sz=“1” strip_tags=“1” /> <lookup type=“pex” action=“get_string” name=“sale_price” ref=“sale price:” location=“after” start=“&It;td” end=“&It;/td>” include_sz=“1” strip_tags=“1” tolerance=“1” /> <lookup type=“pex” action=“get_string” name=“description” ref=“detailbox-text” location=“middle” start=“<p” end=“</p>” include_sz=“1”strip_tags=“1” /> </element> </item_elements> - Step 5: Schema Engine Trims HTML Scope
-
<actions> <lookup type=“pex” action=“move_ptr” ref=“</head>” /> </actions> ABC ComTech Corp. web page code snippet: <html> <title> ... </head> <body onLoad=“onLoadAction( ); return false;” onResize=“setDDOnResize( ); return false;” leftmargin=“10” rightmargin=“10” topmargin=“10” bottommargin=“10”> ... </html> - The engine discards all code before “</head>” setting the upper limit.
- Step 6: Schema Engine Extract Image
-
<element> <lookup type=“pex” action=“get_string” name=“image” ref=“largeimageref” location=“after” start“<img src="” end=“"” /> ABC ComTech Corp. web page code snippet: <DIV id=“largeImageRef” style=“display:none”> <a href=“#” onClick=“openWindowAdv(‘http://www.ABC ComTech Corp..ca/popup/largeimagepopup.asp?logon=&langid=EN&title=Acer+ Aspire+AMD+Turion+64+X2+Dual+Core+TL%2D52+1%2E60GHz+ Laptop+%28AS9300%550, 524, 0, 0, 0, 0, 0, 0);” title=“Click here for larger view”><img src=“/multimedia/products/regular/10BORDER= “0” alt=“Acer Aspire AMD Turion 64 X2 Dual Core TL-52 1.60GHz Laptop (AS9300-5383F) - The Schema Engine returns the string in between the first “<img src="” and“"” that appears after next appearance of “largeimageref”. The string returned is the path to the product image.
- Step 7: Schema Engine Extracts Title
-
<lookup type=“pex” action=“get_string” name=“title” ref=“product-details-prd-title” location= “after” start=“<span” end=“</span>” include_sz=“1” strip_tags=“1” /> ABC ComTech Corp. web page code snippet: <tr> <td colspan=“2” class=“product-details-prd- title”><span class=“tx-heading3-dgrey”>Acer Aspire AMD Turion 64 X2 Dual Core TL-52 1.60GHz Laptop (AS9300-5383F) - French - FS Exclusive</span></td> <td class=“product-details-r-bdr”> </td> </tr> - Then Schema Engine returns the string in between first “<span” and “</span>” including first and last element that appears after next appearance of “product-detailsprd-title”, excluding any mark up language. The string returned is the title.
- Step 8: Schema Engine Extracts Price
-
<lookup type=“pex” action=“get_string” name= “price” ref=“our price:” location=“after” start=“<td” end=“</td>” include_sz=“1” strip_tags=“1”/> ABC ComTech Corp. web page code snippet: <tr> <td class=“tx-strong-grey”>Our price:</td> <td class=“tx-normal-grey” style=“text-align: right”>$1,059.99</td> </tr> - Then Schema Engine returns the string in between first “<td” and “</td>” including first and last element that appears after next appearance of “our price:”, excluding any mark up language. The string returned is the price.
- Step 9: Schema Engine Extracts Sale Price
-
<lookup type=“pex” action=“get_string” name=“sale_price” ref=“sale price:” location=“after” start=“<td” end=“</td>” include_sz=“1” strip_tags=“1” tolerance=“1” /> - ABC ComTech Corp. Web Page Code Snippet:
-
<tr> <td class=“tx-strong-red”>Sale Price:</td> <td class=“tx-normal-red” style=“text-align: right”>$999.99</td> </tr> - Then Schema Engine returns the string in between first “<td” and “</td>” including first and last element that appears after next appearance of “sale price:”, excluding any mark up language The string returned is the sale price.
- Step 10: Schema Engine Extracts Description
-
<lookup type=“pex” action=“get_string” name=“description” ref=“detailbox-text” location=“middle” start=“<p” end=“</p>” include_sz=“1” strip_tags=“1” /> </element> </item_elements> HTML: <p class=“detailbox-text”> - Decked out with an impressive 17″ Acer CrystalBrite widescreen display the Aspire 9300 enhances multitasking productivity and gaming pleasure. <a HREF=“#MoreInfo”>More Info</a>
- </p>
- Then Schema Engine returns the string in the middle of “<p” and “</p>” including first and last element on the occurrence of “detailbox-text”, excluding any mark up language. The string returned is the description.
- Step 11: Schema Engine Assembles and Returns all Extracted Data
-
Image /multimedia/products/regular/10086374.gif Title Title Acer Aspire AMD Turion 64 X2 Dual Core TL-52 1.60 GHz Laptop (AS9300-5383F) - French - FS Exclusive Price $1,059.99 Sale Price $999.99 Description Description Decked out with an impressive 17″ Acer CrystalBrite widescreen display, the Aspire 9300 enhances multitasking productivity and gaming pleasure. - Signature File
- Example Source (*.ffs)
-
Genre Title File e-Commerce ABC ComTech Corp . . . ca.ffs - ABC ComTech Corp. Page Family Signature Explanation
-
1 <page_type> 2 <lookup type=“pex” action=“locate_string” name=“list_elements” id=“mylist_1” ref=“Sort or compare products” ref_alt_1= “Sort products” /> 3 <lookup type=“pex” action=“locate_string” name=“item_elements” id=“myitem_1” ref=“"product-detailsprd-title"” /> 4 <lookup type=“pex” action=“locate_string” name=“menu_elements” id=“mymenu_2” ref=“anc-lhsnav-subItem” /> 5 <lookup type=“pex” action=“locate_string” name=“menu_elements” id=“mymenu_1” ref=“product-table” /> 6 <lookup type=“pex” action=“locate_string” name=“item_elements” id=“myitem_1” ref=“*” /> 7 </page_type> - The Schema Engine processes the <page type> tag by registering the identification strings for each page family. By doing that, when a webpage is sent to the engine as input, the
- engine is able to identify the page family by its unique string.
- action=“locate_string”
- command to check for the existence of a string
- name=”
- identifies the type of page family for each identified family
- id=”
- assigns an id to the page family that is used across the signature file
- When the Schema Engine is passed a web page and the signature file, the first step is to identify the page type which then instructs the engine to the corresponding list_elements tag for the page family.
- ABC ComTech Corp. List Family Signature Explanation
-
1 <list_elements id=“mylist_1”> 2 <paging> 3 <page_variable value=“page” /> 4 <page_start value=“0” /> 5 <lookup type=“pex” action=“get_string” name=“link” ref=“Next&nbsp” location=“before” start=“<a class=” end=“</a>” include_sz=“1” strip_tags=“1” /> 6 </paging> 7 <actions> 8 <lookup type=“pex” action=“move_ptr” ref=“Sort or compare products” ref_alt_1=“Sort products” /> 9 </actions> 10 <element> 11 <lookup type=“pex” action=“get_string” name=“link” ref=“thumbnail” location=“before” start=“<a href="” end=“">” /> 12 <lookup type=“pex” action=“get_string” name=“image” ref=“thumbnail” location=“middle” start=“"” end=“"” /> 13 <lookup type=“pex” action=“get_string” name=“title” ref=“class="tx-strong- dgrey&quot;” location=“after” start=“<a href=” end=“</a>” include_sz=“1” strip_tags=“1” /> 14 <lookup type=“pex” action=“get_string” name=“price” ref=“pricepill/” location=“after” start=“/” repeat_start=“1” end=“.gif” tolerance=“1” /> 15 <lookup type=“pex” action=“move_ptr” ref=“pricepill/” /> 16 </element> 17 </list_elements> - Once the engine has identified that the page is of the “
mylist —1” family the engine finds the spots in the signature file that contains the signature for the objects and elements of the family. - <paging> . . . </paging>
- Contains paging attributes of the
mylist —1 family. The tags contain instructions to find the number of pages on the list page and generates the links for each of the page links - <actions> . . . </actions>
- The action tag instructs the engine to move the scan pointer to the section on the page right before the main list content of the page. This allows the engine to only scan the relevant area, discarding all the code preceding it. This can be important because it can eliminate ambiguity and repetition by instructing the engine on precisely which parts of the page to scan
- <elements> . . . </element>
- Explanation of the Lookup Command:
- Lookup type=“pex”: string lookup
- Action=“get_string”: this action type actually return a value back that is the desired element of the object.
- Name=“link”: the object element, in this case the link to the product page
- ref=“thumbnail”: the reference string that identifies where to find the value of the link
- location=“before”: The value of the link is before the ref string
- start=“<a href="”: look for the ref string after this value
- end=“">”: look for the ref string before this value
- Line 11 for example instructs the engine to look for a reference of the string “thumbnail”, then locate the value between the start and end strings specified to the left of reference point. The element, which is the link to the product page in this case, is before the reference string and its value is to be extracted and returned.
- The last lookup with action=“move_ptr” in the element tag instructs the engine to move the pointer past the first object to get ready to repeat the instructions to scan in the element of the second object on the list page.
- Note: If you attach “advance_ptr” to a lookup, this will also advance the pointer (this can be used if ordering in list page exists)
- ABC ComTech Corp. Search Family Signature Explanation
-
1 <search_elements id=“mysearch_1”> 2 <settings> 3 <search_path value=“http://www.ABC ComTech Corp..ca/search/searchresult.asp?logon=&langid=EN&search=KWS” /> 4 <search_variable value=“keyword” /> 5 </settings> 6 <paging> 7 <page_variable value=“page” /> 8 <page_start value=“0” /> 9 <lookup type=“pex” action=“get_string” name=“link” ref=“Next&nbsp” location=“before” start=“<a href=” repeat_start=“1” end=“</a>” include_sz=“1” strip_tags=“1” /> 10 </paging> 11 <actions> 12 <lookup type=“pex” action=“move_ptr” ref=“bg-compare-hero” /> 13 </actions> 14 <element> 15 <lookup type=“pex” action=“get_string” name=“link” ref=“>” location=“after” start=“<a href="” end=“">” /> 16 <lookup type=“pex” action=“get_string” name=“image” ref=“<a href” location=“after” start=“<img src="” end=“"” /> 17 <lookup type=“pex” action=“get_string” name=“title” ref=“class="tx-strong- dgrey&quot;” location=“after” start=“<a href=” end=“</a>” include_sz=“1” strip_tags=“1” /> 18 <lookup type=“pex” action=“move_ptr” ref=“bg-compare-hero” /> 19 </element> 20 </search_elements> - Once the engine has identified that the page is of the “
mysearch —1” family the engine finds the spots in the signature file that contains the signature for the objects and elements of the family, shown above. - <settings> . . . </settings>
- Contains any page specific manual overrides such as excluding certain menu items or and customization, modification of a menu that may need to be done In this example, value of form variable “keyword” will be posted to “http://www.ABC ComTech Corp..ca/search/searchresult.asp?logon=&langid=EN&search=KWS”
- <paging> . . . </paging>
- Manages Paging for the Search Pages
- <actions> . . . </actions>
- Instruct the engine to move the scan pointer to the string “bg-compare-hero” and start looking for elements from there
- <element> . . . </element>
- Contains lookup instructions for each object element as previously described.
- ABC ComTech Corp. Menu Family Signature Explanation
-
1 <menu_elements id=“mymenu_1”> 2 <settings> 3 <black_list value=“Site Index##ReClaim&#8482; Insurance Replacement” /> 4 </settings> 5 <actions> 6 <lookup type=“pex” action=“move_ptr” ref= “bg-lhsnav-title” /> 7 <lookup type=“pex” action=“end_ptr” ref= “</table>” /> 8 </actions> 9 <element> 10 <lookup type=“pex” action=“get_string” name= “link” ref=“<li>” location=“after” start=“<a href="” end=“"” /> 11 <lookup type=“pex” action=“get_string” name= “title” ref=“<li>” location=“after” start=“<ahref="” end=“</a>” include_sz=“1” strip_tags=“1” /> 12 <lookup type=“pex” action=“move_ptr” ref=“</li>” /> 13 </element> 14 </menu_elements> - Once the engine has identified that it is looking for a menu on a page that contains the menu style of the “
mymenu —1” family the engine finds the spots in the signature file that contains the signature for the objects and elements of the family, shown above. - <settings> . . . </settings>
- Contains any page specific manual overrides such as exclude list, customization, modification, personalization, etc. In this example, any result that matches “Site Index”, “ReClaim & Insurance Replacement” are excluded but partial matches are also possible by using wild card strings.
- <action> . . . </action>
-
Line - <element> . . . </element>
- Contains lookup instructions for each object element as previously described. In this example, an element in ‘mymenu—1’ (each individual menu entry of webpage) contains link and title as its properties. Line 12 instructs the engine to move the pointer to “</li>” to get ready to loop through and extract the next men item with the same elements
- ABC ComTech Corp. Content/Item Family Signature Explanation
-
1 <item_elements id=“myitem_1”> 2 <actions> 3 <lookup type=“pex” action=“move_ptr” ref=“</head>” /> 4 </actions> 5 <element> 6 <lookup type=“pex” action=“get_string” name=“image” ref=“largeimageref” location=“after” start=“<img src="” end=“"” /> 7 <lookup type=“pex” action=“get_string” name=“title” ref=“product-details-prd-title” location=“after” start=“<span” end=“</span>” include_sz=“1” strip_tags=“1” /> 8 <lookup type=“pex” action=“get_string” name=“price” ref=“our price:” location=“after” start=“<td” end=“</td>” include_sz=“1” strip_tags=“1” /> 9 <lookup type=“pex” action=“get_string” name=“sale_price” ref=“sale price:” location=“after” start=“<td” end=“<td>” include_sz=“1” strip_tags=“1” tolerance=“1” /> 10 <lookup type=“pex” action=“get_string” name=“description” ref=“detailbox-text” location=“middle” start=“<p” end=“</p>” include_sz=“1” strip_tags=“1” /> 11 </element> 12 </item_elements> - Once the engine has identified that the page is of the “
myitem —1” family the engine finds the spots in the signature file that contains the signature for the objects and elements of the family, shown above. - <action> . . . </action>
- Instructs the engine to move the scan pointer to the appropriate spot to get ready to scan and output the product elements.
- <element> . . . </element>
- Contains lookup instructions for each of the defined fields in a product. In this example, an object in ‘myitem—1’ (an item) contains the elements image, title, price, sale price and description. Note that the pointer does not need to be moved after scanning in the elements since there are no more objects on the product detail page as there are on the list page.
- This family had a detail walk though explained above
- Appendix: Signature Engine Syntax
- Lookup Syntax
- Look up is the query which Signature engine runs against the website for a resultset(s).
- Type
- Defines data type of reference. One lookup can contain multiple references and specific type of each reference, represented by ‘Type_n’ for each nth reference.
-
Type Description Pex String expression Iex Numeric expression Rex Regular expression Dex Date/Time expression Bex Binary - Action
-
Action SQL Equivalent Locate_string SELECT COUNT ALL Get_string SELECT Move_ptr Beginning_of_LIMIT End_ptr End_of_LIMIT Remove_string DELETE Replace_string UPDATE - Name
- An element of an object, for example price if the object is a product
- Id
- Id is a named relation for an identified family of web pages. It is the SQL equivalent of a table name.
- Ref
- Ref is the string reference being matched to identify a page, object or element. It is equivalent to a WHERE condition in SQL. There could be multiple Ref values where default Ref is represented by ‘Ref’ and subsequent Refs are presented by ‘Ref_n’. This is equivalent to having multiple conditions in an SQL WHERE clause.
- Alt
- Alt is an extension of Ref object with SQL equivalent of ‘OR’ clause presented by ‘Ref_Alt_n’.
- Location
- Extends SQL equivalent of WHERE clause to give directional containment of data set.
-
Location Description Before Target value is located before ‘Ref’ value Middle Target value contains ‘Ref’ value After Target value is located after ‘Ref’ value - Start
- Start is used to specify the beginning of a given data element.
- End
- End is used to specify end of a given data element.
- Include_sz
- Boolean to include ‘Start’ and ‘End’ value.
- Tolerance
- Boolean to define whether failure of given lookup excludes the entire query for an object.
- Strip_tags
- Boolean to define where to strip all HTML tags out of the target value being extracted.
- Notrim
- Values will not be trimmed (leading and trailing spaces will not be removed).
- Upper
- Value is converted to all upper case.
- Lower
- Value is converted to all lower case.
- Uppercase_word
- First character of each words in a value is converted to upper case.
- Uppercase_first
- First character of a value is converted to upper case.
- Page Syntax
- Make a page family's paging feature functional.
- Page_variable
- Defines unique key that defines a family's paging feature
- Page_start
- Defines value of first page in a family's paging feature.
- Page_post
- Path where paging variable(s) must be transmitted to.
- Page_start
- Defines value of first page in a family's paging feature.
- Search Syntax
- Make a website family's search feature functional.
- Search_path
- Search path where search variable must be transmitted to
- Search_variable
- Name of search variable which a website's search feature is looking to read, request, post, etc.
- General Syntax
- Any variable name and value can be defined,
- TOR_LAW\6600992\1
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/119,097 US20090235187A1 (en) | 2007-05-17 | 2008-05-12 | System and method for content navigation |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US92450307P | 2007-05-17 | 2007-05-17 | |
US12/119,097 US20090235187A1 (en) | 2007-05-17 | 2008-05-12 | System and method for content navigation |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090235187A1 true US20090235187A1 (en) | 2009-09-17 |
Family
ID=40028558
Family Applications (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/119,097 Abandoned US20090235187A1 (en) | 2007-05-17 | 2008-05-12 | System and method for content navigation |
US12/119,328 Expired - Fee Related US8572105B2 (en) | 2007-05-17 | 2008-05-12 | Method and system for desktop tagging of a web page |
US12/119,300 Expired - Fee Related US8037084B2 (en) | 2007-05-17 | 2008-05-12 | Method and system for transcoding web pages by limiting selection through direction |
US12/119,317 Abandoned US20080289029A1 (en) | 2007-05-17 | 2008-05-12 | Method and system for continuation of browsing sessions between devices |
US12/119,257 Expired - Fee Related US8396881B2 (en) | 2007-05-17 | 2008-05-12 | Method and system for automatically generating web page transcoding instructions |
US12/119,221 Abandoned US20080288515A1 (en) | 2007-05-17 | 2008-05-12 | Method and System For Transcoding Web Pages |
US12/119,309 Abandoned US20080288486A1 (en) | 2007-05-17 | 2008-05-12 | Method and system for aggregate web site database price watch feature |
US12/119,338 Abandoned US20080288477A1 (en) | 2007-05-17 | 2008-05-12 | Method and system of generating an aggregate website search database using smart indexes for searching |
US12/119,269 Abandoned US20080288449A1 (en) | 2007-05-17 | 2008-05-12 | Method and system for an aggregate web site search database |
US12/119,251 Abandoned US20080288459A1 (en) | 2007-05-17 | 2008-05-12 | Web page transcoding method and system applying queries to plain text |
Family Applications After (9)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/119,328 Expired - Fee Related US8572105B2 (en) | 2007-05-17 | 2008-05-12 | Method and system for desktop tagging of a web page |
US12/119,300 Expired - Fee Related US8037084B2 (en) | 2007-05-17 | 2008-05-12 | Method and system for transcoding web pages by limiting selection through direction |
US12/119,317 Abandoned US20080289029A1 (en) | 2007-05-17 | 2008-05-12 | Method and system for continuation of browsing sessions between devices |
US12/119,257 Expired - Fee Related US8396881B2 (en) | 2007-05-17 | 2008-05-12 | Method and system for automatically generating web page transcoding instructions |
US12/119,221 Abandoned US20080288515A1 (en) | 2007-05-17 | 2008-05-12 | Method and System For Transcoding Web Pages |
US12/119,309 Abandoned US20080288486A1 (en) | 2007-05-17 | 2008-05-12 | Method and system for aggregate web site database price watch feature |
US12/119,338 Abandoned US20080288477A1 (en) | 2007-05-17 | 2008-05-12 | Method and system of generating an aggregate website search database using smart indexes for searching |
US12/119,269 Abandoned US20080288449A1 (en) | 2007-05-17 | 2008-05-12 | Method and system for an aggregate web site search database |
US12/119,251 Abandoned US20080288459A1 (en) | 2007-05-17 | 2008-05-12 | Web page transcoding method and system applying queries to plain text |
Country Status (4)
Country | Link |
---|---|
US (10) | US20090235187A1 (en) |
EP (10) | EP2156393A4 (en) |
CA (10) | CA2687530C (en) |
WO (10) | WO2008141425A1 (en) |
Cited By (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060262962A1 (en) * | 2004-10-01 | 2006-11-23 | Hull Jonathan J | Method And System For Position-Based Image Matching In A Mixed Media Environment |
US20060262352A1 (en) * | 2004-10-01 | 2006-11-23 | Hull Jonathan J | Method and system for image matching in a mixed media environment |
US20060262976A1 (en) * | 2004-10-01 | 2006-11-23 | Hart Peter E | Method and System for Multi-Tier Image Matching in a Mixed Media Environment |
US20060285172A1 (en) * | 2004-10-01 | 2006-12-21 | Hull Jonathan J | Method And System For Document Fingerprint Matching In A Mixed Media Environment |
US20060285772A1 (en) * | 2004-10-01 | 2006-12-21 | Hull Jonathan J | System and methods for creation and use of a mixed media environment |
US20070047008A1 (en) * | 2005-08-23 | 2007-03-01 | Jamey Graham | System and methods for use of voice mail and email in a mixed media environment |
US20070047816A1 (en) * | 2005-08-23 | 2007-03-01 | Jamey Graham | User Interface for Mixed Media Reality |
US20070047780A1 (en) * | 2005-08-23 | 2007-03-01 | Hull Jonathan J | Shared Document Annotation |
US20070046983A1 (en) * | 2005-08-23 | 2007-03-01 | Hull Jonathan J | Integration and Use of Mixed Media Documents |
US20070047782A1 (en) * | 2005-08-23 | 2007-03-01 | Hull Jonathan J | System And Methods For Creation And Use Of A Mixed Media Environment With Geographic Location Information |
US20070046982A1 (en) * | 2005-08-23 | 2007-03-01 | Hull Jonathan J | Triggering actions with captured input in a mixed media environment |
US20070050341A1 (en) * | 2005-08-23 | 2007-03-01 | Hull Jonathan J | Triggering applications for distributed action execution and use of mixed media recognition as a control input |
US20070052997A1 (en) * | 2005-08-23 | 2007-03-08 | Hull Jonathan J | System and methods for portable device for mixed media system |
US20080289029A1 (en) * | 2007-05-17 | 2008-11-20 | Sang-Heun Kim | Method and system for continuation of browsing sessions between devices |
US20080307047A1 (en) * | 2007-06-09 | 2008-12-11 | Wecomm Limited | Supplying Applications to Mobile Devices |
US20090018990A1 (en) * | 2007-07-12 | 2009-01-15 | Jorge Moraleda | Retrieving Electronic Documents by Converting Them to Synthetic Text |
US20090016604A1 (en) * | 2007-07-11 | 2009-01-15 | Qifa Ke | Invisible Junction Features for Patch Recognition |
US20090070415A1 (en) * | 2006-07-31 | 2009-03-12 | Hidenobu Kishi | Architecture for mixed media reality retrieval of locations and registration of images |
US20090125510A1 (en) * | 2006-07-31 | 2009-05-14 | Jamey Graham | Dynamic presentation of targeted information in a mixed media reality recognition system |
US20090171948A1 (en) * | 2007-12-31 | 2009-07-02 | Peer 39 Inc. | Method and a system for selecting advertising spots |
US20090182804A1 (en) * | 2008-01-14 | 2009-07-16 | Maria Arbusto | System and method for a tagging service |
US20090285444A1 (en) * | 2008-05-15 | 2009-11-19 | Ricoh Co., Ltd. | Web-Based Content Detection in Images, Extraction and Recognition |
US20090300506A1 (en) * | 2008-05-30 | 2009-12-03 | Microsoft Corporation | Mark-up extensions for semantically more relevant thumbnails of content |
US20090304267A1 (en) * | 2008-03-05 | 2009-12-10 | John Tapley | Identification of items depicted in images |
US20090313245A1 (en) * | 2005-08-23 | 2009-12-17 | Ricoh Co., Ltd. | Mixed Media Reality Brokerage Network With Layout-Independent Recognition |
US20100031166A1 (en) * | 2008-07-29 | 2010-02-04 | International Business Machines Corporation | System and method for web browsing using placemarks and contextual relationships in a data processing system |
US20100033765A1 (en) * | 2008-08-05 | 2010-02-11 | Xerox Corporation | Document type classification for scanned bitmaps |
US20100077080A1 (en) * | 2008-09-23 | 2010-03-25 | Tai-Yeon Ku | Communication terminal, service kiosk, and service providing system and method |
US20100088343A1 (en) * | 2008-10-06 | 2010-04-08 | Itzhack Goldberg | Customized Context Menu for Files Based on Their Content |
US20100125502A1 (en) * | 2008-11-18 | 2010-05-20 | Peer 39 Inc. | Method and system for identifying web documents for advertisements |
US20100198805A1 (en) * | 2009-02-03 | 2010-08-05 | Samsung Electronics Co., Ltd. | Method and apparatus for generating and displaying image |
US20100214302A1 (en) * | 2009-02-24 | 2010-08-26 | Ryan Melcher | System and method for supplementing an image gallery with status indicators |
US20100329574A1 (en) * | 2009-06-24 | 2010-12-30 | Jorge Moraleda | Mixed media reality indexing and retrieval for repeated content |
US7917554B2 (en) | 2005-08-23 | 2011-03-29 | Ricoh Co. Ltd. | Visibly-perceptible hot spots in documents |
US20110078580A1 (en) * | 2009-09-30 | 2011-03-31 | Logicplant | Method and system for providing interface of web page |
US20110113364A1 (en) * | 2009-11-09 | 2011-05-12 | Research In Motion Limited | Directional navigation of page content |
WO2011054072A1 (en) * | 2009-11-09 | 2011-05-12 | Research In Motion Limited | Directional navigation of page content |
US20110119618A1 (en) * | 2009-11-18 | 2011-05-19 | Sap Ag | Dataflow-driven service composition at the presentation layer |
US7970171B2 (en) | 2007-01-18 | 2011-06-28 | Ricoh Co., Ltd. | Synthetic image and video generation from ground truth data |
US8073263B2 (en) | 2006-07-31 | 2011-12-06 | Ricoh Co., Ltd. | Multi-classifier selection and monitoring for MMR-based image recognition |
US20120069199A1 (en) * | 2010-09-17 | 2012-03-22 | Google Inc. | Moving information between computing devices |
US8144921B2 (en) | 2007-07-11 | 2012-03-27 | Ricoh Co., Ltd. | Information retrieval using invisible junctions and geometric constraints |
US8156115B1 (en) | 2007-07-11 | 2012-04-10 | Ricoh Co. Ltd. | Document-based networking with mixed media reality |
US8184155B2 (en) | 2007-07-11 | 2012-05-22 | Ricoh Co. Ltd. | Recognition and tracking using invisible junctions |
US20120143923A1 (en) * | 2010-12-03 | 2012-06-07 | Whitney Benjamin Taylor | Method and system of hierarchical metadata management and application |
US20120144333A1 (en) * | 2010-12-02 | 2012-06-07 | Microsoft Corporation | Render transform based scrolling and panning for smooth effects |
US8201076B2 (en) | 2006-07-31 | 2012-06-12 | Ricoh Co., Ltd. | Capturing symbolic information from documents upon printing |
USD667449S1 (en) * | 2011-09-12 | 2012-09-18 | Microsoft Corporation | Display screen with icon |
US8276088B2 (en) | 2007-07-11 | 2012-09-25 | Ricoh Co., Ltd. | User interface for three-dimensional navigation |
US20120310914A1 (en) * | 2011-05-31 | 2012-12-06 | NetSol Technologies, Inc. | Unified Crawling, Scraping and Indexing of Web-Pages and Catalog Interface |
US20120324375A1 (en) * | 2011-04-14 | 2012-12-20 | Garrett Wade Mathews | Web-based user support system and method |
US8369655B2 (en) | 2006-07-31 | 2013-02-05 | Ricoh Co., Ltd. | Mixed media reality recognition using multiple specialized indexes |
US20130067359A1 (en) * | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Browser-based Discovery and Application Switching |
US20130097490A1 (en) * | 2011-10-13 | 2013-04-18 | Microsoft Corporation | Application of Multiple Content Items and Functionality to an Electronic Content Item |
US8458174B1 (en) * | 2011-09-02 | 2013-06-04 | Google Inc. | Semantic image label synthesis |
US8489987B2 (en) | 2006-07-31 | 2013-07-16 | Ricoh Co., Ltd. | Monitoring and analyzing creation and usage of visual content using image and hotspot interaction |
US8510283B2 (en) | 2006-07-31 | 2013-08-13 | Ricoh Co., Ltd. | Automatic adaption of an image recognition system to image capture devices |
US20130230248A1 (en) * | 2012-03-02 | 2013-09-05 | International Business Machines Corporation | Ensuring validity of the bookmark reference in a collaborative bookmarking system |
US20130246218A1 (en) * | 2012-03-15 | 2013-09-19 | Balaji Gopalan | Remote third party payment of in-store items |
US8584029B1 (en) * | 2008-05-23 | 2013-11-12 | Intuit Inc. | Surface computer system and method for integrating display of user interface with physical objects |
US20140007012A1 (en) * | 2012-06-29 | 2014-01-02 | Ebay Inc. | Contextual menus based on image recognition |
US8676810B2 (en) | 2006-07-31 | 2014-03-18 | Ricoh Co., Ltd. | Multiple index mixed media reality recognition using unequal priority indexes |
US20140089772A1 (en) * | 2012-09-27 | 2014-03-27 | Gururaj B. Shetty | Automatically Creating Tables of Content for Web Pages |
US20140189538A1 (en) * | 2012-12-31 | 2014-07-03 | Motorola Mobility Llc | Recommendations for Applications Based on Device Context |
US20140189519A1 (en) * | 2012-12-31 | 2014-07-03 | W.W. Grainger, Inc. | Systems and methods for providing website browsing history to repeat users of a website |
US20140258816A1 (en) * | 2013-03-08 | 2014-09-11 | True Xiong | Methodology to dynamically rearrange web content for consumer devices |
US8838591B2 (en) | 2005-08-23 | 2014-09-16 | Ricoh Co., Ltd. | Embedding hot spots in electronic documents |
US8856108B2 (en) | 2006-07-31 | 2014-10-07 | Ricoh Co., Ltd. | Combining results of image retrieval processes |
US8868555B2 (en) | 2006-07-31 | 2014-10-21 | Ricoh Co., Ltd. | Computation of a recongnizability score (quality predictor) for image retrieval |
US20140359065A1 (en) * | 2011-12-27 | 2014-12-04 | Zte Corporation | Terminal device and user information synchronization method |
US20140379839A1 (en) * | 2013-05-23 | 2014-12-25 | Tencent Technology (Shenzhen) Co., Ltd. | Method and an apparatus for performing offline access to web pages |
US8949287B2 (en) | 2005-08-23 | 2015-02-03 | Ricoh Co., Ltd. | Embedding hot spots in imaged documents |
US9020966B2 (en) | 2006-07-31 | 2015-04-28 | Ricoh Co., Ltd. | Client device for interacting with a mixed media reality recognition system |
US20150135044A1 (en) * | 2013-11-08 | 2015-05-14 | Sony Computer Entertainment Inc. | Information processing apparatus, information processing method, computer program, and recording medium |
US9058331B2 (en) | 2011-07-27 | 2015-06-16 | Ricoh Co., Ltd. | Generating a conversation in a social network based on visual search results |
US9063952B2 (en) | 2006-07-31 | 2015-06-23 | Ricoh Co., Ltd. | Mixed media reality recognition with image tracking |
US9069743B2 (en) | 2011-10-13 | 2015-06-30 | Microsoft Technology Licensing, Llc | Application of comments in multiple application functionality content |
US20150242377A1 (en) * | 2014-02-24 | 2015-08-27 | Autodesk, Inc. | Logical structure-based document navigation |
US9171202B2 (en) | 2005-08-23 | 2015-10-27 | Ricoh Co., Ltd. | Data organization and access for mixed media document system |
US9176984B2 (en) | 2006-07-31 | 2015-11-03 | Ricoh Co., Ltd | Mixed media reality retrieval of differentially-weighted links |
US9348939B2 (en) | 2011-03-18 | 2016-05-24 | International Business Machines Corporation | Web site sectioning for mobile web browser usability |
US9373029B2 (en) | 2007-07-11 | 2016-06-21 | Ricoh Co., Ltd. | Invisible junction feature recognition for document security or annotation |
US9384619B2 (en) | 2006-07-31 | 2016-07-05 | Ricoh Co., Ltd. | Searching media content for objects specified using identifiers |
US9405751B2 (en) | 2005-08-23 | 2016-08-02 | Ricoh Co., Ltd. | Database for mixed media document system |
US9530050B1 (en) | 2007-07-11 | 2016-12-27 | Ricoh Co., Ltd. | Document annotation sharing |
US20170026381A1 (en) * | 2015-07-22 | 2017-01-26 | AVG Netherlands B.V. | Content access validation system and method |
US20180101645A1 (en) * | 2016-10-12 | 2018-04-12 | Terarecon, Inc. | System and method for medical image interpretation |
US10147134B2 (en) | 2011-10-27 | 2018-12-04 | Ebay Inc. | System and method for visualization of items in an environment using augmented reality |
US10162492B2 (en) | 2012-09-11 | 2018-12-25 | Microsoft Technology Licensing, Llc | Tap-to-open link selection areas |
US10185732B2 (en) * | 2015-07-02 | 2019-01-22 | Fuji Xerox Co., Ltd. | Information processing apparatus, information processing method, and non-transitory computer readable medium |
US10210659B2 (en) | 2009-12-22 | 2019-02-19 | Ebay Inc. | Augmented reality system, method, and apparatus for displaying an item image in a contextual environment |
US10338896B2 (en) * | 2014-03-21 | 2019-07-02 | Ptc Inc. | Systems and methods for developing and using real-time data applications |
US10878489B2 (en) | 2010-10-13 | 2020-12-29 | Ebay Inc. | Augmented reality system and method for visualizing an item |
US10936650B2 (en) | 2008-03-05 | 2021-03-02 | Ebay Inc. | Method and apparatus for image recognition services |
US11126680B2 (en) * | 2015-12-31 | 2021-09-21 | Ca, Inc. | Dynamic web page navigation |
US11232252B2 (en) * | 2016-09-01 | 2022-01-25 | Verint Americas Inc. | System and computer-implemented method for in-page reporting of user feedback on a website or mobile app |
US11475098B2 (en) * | 2019-05-03 | 2022-10-18 | Microsoft Technology Licensing, Llc | Intelligent extraction of web data by content type via an integrated browser experience |
Families Citing this family (240)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512972B2 (en) * | 2002-09-13 | 2009-03-31 | Sun Microsystems, Inc. | Synchronizing for digital content access control |
US7913312B2 (en) | 2002-09-13 | 2011-03-22 | Oracle America, Inc. | Embedded content requests in a rights locker system for digital content access control |
US7240365B2 (en) * | 2002-09-13 | 2007-07-03 | Sun Microsystems, Inc. | Repositing for digital content access control |
US8782654B2 (en) | 2004-03-13 | 2014-07-15 | Adaptive Computing Enterprises, Inc. | Co-allocating a reservation spanning different compute resources types |
KR101164788B1 (en) * | 2004-03-23 | 2012-07-11 | 엔디에스 리미티드 | Optimally adapting multimedia content for mobile subscriber device playback |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
US8176490B1 (en) | 2004-08-20 | 2012-05-08 | Adaptive Computing Enterprises, Inc. | System and method of interfacing a workload manager and scheduler with an identity manager |
US8145908B1 (en) * | 2004-10-29 | 2012-03-27 | Akamai Technologies, Inc. | Web content defacement protection system |
CA2586763C (en) | 2004-11-08 | 2013-12-17 | Cluster Resources, Inc. | System and method of providing system jobs within a compute environment |
US10354280B2 (en) | 2004-12-27 | 2019-07-16 | Blue Calypso, Llc | System and method for distribution of targeted advertising between mobile communication devices |
US9314697B2 (en) | 2013-07-26 | 2016-04-19 | Blue Calypso, Llc | System and method for advertising distribution through mobile social gaming |
US10755313B2 (en) | 2004-12-27 | 2020-08-25 | Andrew Levi | System and method for distribution of targeted content between mobile communication devices |
US8863143B2 (en) | 2006-03-16 | 2014-10-14 | Adaptive Computing Enterprises, Inc. | System and method for managing a hybrid compute environment |
US9075657B2 (en) | 2005-04-07 | 2015-07-07 | Adaptive Computing Enterprises, Inc. | On-demand access to compute resources |
US9231886B2 (en) | 2005-03-16 | 2016-01-05 | Adaptive Computing Enterprises, Inc. | Simple integration of an on-demand compute environment |
EP2095313A4 (en) | 2006-10-27 | 2011-11-02 | Cvon Innovations Ltd | Method and device for managing subscriber connection |
US8515912B2 (en) | 2010-07-15 | 2013-08-20 | Palantir Technologies, Inc. | Sharing and deconflicting data changes in a multimaster database system |
IL180020A (en) * | 2006-12-12 | 2013-03-24 | Waterfall Security Solutions Ltd | Encryption -and decryption-enabled interfaces |
GB2445630B (en) | 2007-03-12 | 2008-11-12 | Cvon Innovations Ltd | Dynamic message allocation system and method |
US10679198B2 (en) * | 2007-03-26 | 2020-06-09 | Transform Sr Brands Llc | System and method for handling an offer to purchase a followed item |
GB2443760B (en) * | 2007-05-18 | 2008-07-30 | Cvon Innovations Ltd | Characterisation system and method |
US8935718B2 (en) | 2007-05-22 | 2015-01-13 | Apple Inc. | Advertising management method and system |
GB2452789A (en) | 2007-09-05 | 2009-03-18 | Cvon Innovations Ltd | Selecting information content for transmission by identifying a keyword in a previous message |
IL187492A0 (en) * | 2007-09-06 | 2008-02-09 | Human Interface Security Ltd | Information protection device |
US8041773B2 (en) | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
GB2453810A (en) | 2007-10-15 | 2009-04-22 | Cvon Innovations Ltd | System, Method and Computer Program for Modifying Communications by Insertion of a Targeted Media Content or Advertisement |
US20090119678A1 (en) * | 2007-11-02 | 2009-05-07 | Jimmy Shih | Systems and methods for supporting downloadable applications on a portable client device |
US8533588B2 (en) * | 2007-11-30 | 2013-09-10 | Red Hat, Inc. | Overriding images in user interfaces |
US8595634B2 (en) * | 2007-11-30 | 2013-11-26 | Red Hat, Inc. | Distributed hosting of web application styles |
US11157975B2 (en) * | 2008-01-18 | 2021-10-26 | Blackberry Limited | System and method for network interaction between computing devices |
GB0802585D0 (en) | 2008-02-12 | 2008-03-19 | Mtld Top Level Domain Ltd | Determining a property of communication device |
NZ566291A (en) * | 2008-02-27 | 2008-12-24 | Actionthis Ltd | Methods and devices for post processing rendered web pages and handling requests of post processed web pages |
US20090241032A1 (en) * | 2008-03-18 | 2009-09-24 | David Carroll Challener | Apparatus, system, and method for uniform resource locator sharing |
US8418168B2 (en) * | 2008-05-29 | 2013-04-09 | Research In Motion Limited | Method and system for performing a software upgrade on an electronic device connected to a computer |
US7865573B2 (en) * | 2008-05-29 | 2011-01-04 | Research In Motion Limited | Method, system and devices for communicating between an internet browser and an electronic device |
US8041346B2 (en) | 2008-05-29 | 2011-10-18 | Research In Motion Limited | Method and system for establishing a service relationship between a mobile communication device and a mobile data server for connecting to a wireless network |
KR101842209B1 (en) * | 2008-06-18 | 2018-03-26 | 톰슨 라이센싱 | Mobile device for preparation of a digital document for the display of said document and the navigation within said document |
US20090319481A1 (en) * | 2008-06-18 | 2009-12-24 | Yahoo! Inc. | Framework for aggregating information of web pages from a website |
US8700301B2 (en) * | 2008-06-19 | 2014-04-15 | Microsoft Corporation | Mobile computing devices, architecture and user interfaces based on dynamic direction information |
US9200901B2 (en) * | 2008-06-19 | 2015-12-01 | Microsoft Technology Licensing, Llc | Predictive services for devices supporting dynamic direction information |
US8467991B2 (en) | 2008-06-20 | 2013-06-18 | Microsoft Corporation | Data services based on gesture and location information of device |
US9600459B2 (en) * | 2008-07-16 | 2017-03-21 | International Business Machines Corporation | Visual macro showing how some icon or object or text was constructed |
US20100043011A1 (en) * | 2008-08-18 | 2010-02-18 | International Business Machines Corporation | Method for tracking local storage of web pages |
US20100057586A1 (en) * | 2008-09-04 | 2010-03-04 | China Software Venture | Offer Reporting Apparatus and Method |
US9348499B2 (en) | 2008-09-15 | 2016-05-24 | Palantir Technologies, Inc. | Sharing objects that rely on local resources with outside servers |
US20100070848A1 (en) * | 2008-09-15 | 2010-03-18 | Apple Inc. | Preserving the structure of a list in a document while displaying an outline view of the document |
US8122124B1 (en) | 2008-09-29 | 2012-02-21 | Amazon Technologies, Inc. | Monitoring performance and operation of data exchanges |
US8316124B1 (en) | 2008-09-29 | 2012-11-20 | Amazon Technologies, Inc. | Managing network data display |
US8117306B1 (en) | 2008-09-29 | 2012-02-14 | Amazon Technologies, Inc. | Optimizing content management |
US7930393B1 (en) | 2008-09-29 | 2011-04-19 | Amazon Technologies, Inc. | Monitoring domain allocation performance |
GB2464313A (en) * | 2008-10-10 | 2010-04-14 | Mtld Top Level Domain Ltd | Trancoding a web page |
IL194943A0 (en) * | 2008-10-27 | 2009-09-22 | Human Interface Security Ltd | Verification of data transmitted by computer |
US8832319B2 (en) * | 2008-11-18 | 2014-09-09 | Amazon Technologies, Inc. | Synchronization of digital content |
US20100131529A1 (en) * | 2008-11-26 | 2010-05-27 | Vishal Kasera | Open entity extraction system |
US9715557B2 (en) * | 2008-12-09 | 2017-07-25 | Blackberry Limited | System, device and method for providing context sensitive content on a computing device |
US20100146399A1 (en) * | 2008-12-09 | 2010-06-10 | Charles Laurence Stinson | Method, apparatus and system for modifying website flow stack to manage site-wide configuration |
US7917618B1 (en) | 2009-03-24 | 2011-03-29 | Amazon Technologies, Inc. | Monitoring web site content |
EP2411923A4 (en) * | 2009-03-25 | 2013-10-30 | Hewlett Packard Development Co | Capturing an application state |
US8700982B2 (en) * | 2009-03-30 | 2014-04-15 | Blackberry Limited | System, device and method for providing interactive content on an computing device |
KR20110003213A (en) * | 2009-07-03 | 2011-01-11 | 주식회사 아인스아이앤에스 | Method and system for providing contents |
US8872767B2 (en) | 2009-07-07 | 2014-10-28 | Microsoft Corporation | System and method for converting gestures into digital graffiti |
US20110041073A1 (en) * | 2009-08-17 | 2011-02-17 | Hoff Aaron C | Key-Based Storage and Retrieval of Information |
US8725794B2 (en) * | 2009-09-30 | 2014-05-13 | Tracking. Net | Enhanced website tracking system and method |
WO2011050368A1 (en) * | 2009-10-23 | 2011-04-28 | Moov Corporation | Configurable and dynamic transformation of web content |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US10877695B2 (en) | 2009-10-30 | 2020-12-29 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US8495081B2 (en) * | 2009-12-14 | 2013-07-23 | International Business Machines Corporation | Method, system and computer program product for federating tags across multiple systems |
US20110208840A1 (en) * | 2010-02-22 | 2011-08-25 | Lee Blackman | Cookie alert |
US8775488B2 (en) * | 2010-04-14 | 2014-07-08 | Siemens Product Lifecycle Management Software Inc. | System and method for data caching |
US9141724B2 (en) | 2010-04-19 | 2015-09-22 | Afilias Technologies Limited | Transcoder hinting |
CN102238563A (en) * | 2010-04-21 | 2011-11-09 | 华为终端有限公司 | Wireless connection method and equipment |
US8898217B2 (en) | 2010-05-06 | 2014-11-25 | Apple Inc. | Content delivery based on user terminal events |
US9471700B2 (en) * | 2010-05-18 | 2016-10-18 | Tksn Holdings, Llc | System and method for monitoring changes in databases and websites |
US8527591B2 (en) | 2010-05-20 | 2013-09-03 | Actual Works, Inc. | Method and apparatus for the implementation of a real-time, sharable browsing experience on a guest device |
US9171087B2 (en) | 2010-05-20 | 2015-10-27 | Samesurf, Inc. | Method and apparatus for the implementation of a real-time, sharable browsing experience on a host device |
US20110289155A1 (en) * | 2010-05-20 | 2011-11-24 | Kambiz David Pirnazar | Method and Apparatus for the Implementation of a Real-Time, Sharable Browsing Experience |
US8504419B2 (en) | 2010-05-28 | 2013-08-06 | Apple Inc. | Network-based targeted content delivery based on queue adjustment factors calculated using the weighted combination of overall rank, context, and covariance scores for an invitational content item |
US20110296038A1 (en) * | 2010-05-28 | 2011-12-01 | Unisys Corporation | System and method for continuation of a web session |
US20110320395A1 (en) * | 2010-06-29 | 2011-12-29 | Uzair Dada | Optimization of Multi-channel Commerce |
JP5221601B2 (en) * | 2010-06-30 | 2013-06-26 | 楽天株式会社 | Order receiving device, order receiving method, program, and information recording medium |
US8224823B1 (en) * | 2010-06-30 | 2012-07-17 | A9.Com, Inc. | Browsing history restoration |
GB2481843A (en) | 2010-07-08 | 2012-01-11 | Mtld Top Level Domain Ltd | Web based method of generating user interfaces |
US8510658B2 (en) | 2010-08-11 | 2013-08-13 | Apple Inc. | Population segmentation |
US8751513B2 (en) | 2010-08-31 | 2014-06-10 | Apple Inc. | Indexing and tag generation of content for optimal delivery of invitational content |
US8640032B2 (en) | 2010-08-31 | 2014-01-28 | Apple Inc. | Selection and delivery of invitational content based on prediction of user intent |
US8510309B2 (en) | 2010-08-31 | 2013-08-13 | Apple Inc. | Selection and delivery of invitational content based on prediction of user interest |
US8983978B2 (en) | 2010-08-31 | 2015-03-17 | Apple Inc. | Location-intention context for content delivery |
GB2484268A (en) * | 2010-09-16 | 2012-04-11 | Uniloc Usa Inc | Psychographic profiling of users of computing devices |
US8655881B2 (en) * | 2010-09-16 | 2014-02-18 | Alcatel Lucent | Method and apparatus for automatically tagging content |
US8966446B1 (en) * | 2010-09-29 | 2015-02-24 | A9.Com, Inc. | Systems and methods of live experimentation on content provided by a web site |
US10423672B2 (en) * | 2010-10-04 | 2019-09-24 | Excalibur Ip, Llc | Network resource-specific search assistance |
US8650249B2 (en) * | 2010-10-13 | 2014-02-11 | International Business Machines Corporation | Selectively processing cookies in a proxy |
CN102567358B (en) * | 2010-12-16 | 2014-07-02 | 腾讯科技(深圳)有限公司 | Navigation content display method and navigation content display device |
US8645491B2 (en) | 2010-12-18 | 2014-02-04 | Qualcomm Incorporated | Methods and apparatus for enabling a hybrid web and native application |
US10102242B2 (en) * | 2010-12-21 | 2018-10-16 | Sybase, Inc. | Bulk initial download of mobile databases |
US9124957B1 (en) | 2011-02-07 | 2015-09-01 | Christopher Fogel | System and method for dynamic multifactor routing |
US8660673B2 (en) * | 2011-03-23 | 2014-02-25 | Electronic Entertainment Design And Research | In-game contextual telemetry systems and methods |
US9754045B2 (en) * | 2011-04-01 | 2017-09-05 | Harman International (China) Holdings Co., Ltd. | System and method for web text content aggregation and presentation |
US9912718B1 (en) * | 2011-04-11 | 2018-03-06 | Viasat, Inc. | Progressive prefetching |
US9779007B1 (en) * | 2011-05-16 | 2017-10-03 | Intuit Inc. | System and method for building and repairing a script for retrieval of information from a web site |
US20130254649A1 (en) * | 2011-06-07 | 2013-09-26 | Michael O'Neill | Establishing user consent to cookie storage on user terminal equipment |
US9280273B2 (en) * | 2011-06-30 | 2016-03-08 | Nokia Technologies Oy | Method, apparatus, and computer program for displaying content items in display regions |
US9846902B2 (en) | 2011-07-19 | 2017-12-19 | Slice Technologies, Inc. | Augmented aggregation of emailed product order and shipping information |
US9563904B2 (en) | 2014-10-21 | 2017-02-07 | Slice Technologies, Inc. | Extracting product purchase information from electronic messages |
US9875486B2 (en) | 2014-10-21 | 2018-01-23 | Slice Technologies, Inc. | Extracting product purchase information from electronic messages |
US8844010B2 (en) | 2011-07-19 | 2014-09-23 | Project Slice | Aggregation of emailed product order and shipping information |
US8850515B2 (en) * | 2011-08-15 | 2014-09-30 | Bank Of America Corporation | Method and apparatus for subject recognition session validation |
KR20130028375A (en) * | 2011-09-09 | 2013-03-19 | 주식회사 팬택 | Mobile apparatus for synchronizing working environment of web browser based on html5 and method thereof |
US8370918B1 (en) | 2011-09-30 | 2013-02-05 | Kaspersky Lab Zao | Portable security device and methods for providing network security |
TW201322247A (en) * | 2011-11-23 | 2013-06-01 | Inst Information Industry | Device, method and computer readable storage medium for storing the method for displaying multiple language characters |
US9330188B1 (en) | 2011-12-22 | 2016-05-03 | Amazon Technologies, Inc. | Shared browsing sessions |
US20130173593A1 (en) * | 2011-12-28 | 2013-07-04 | Target Brands, Inc. | Breadcrumb filtering |
US10015134B2 (en) * | 2011-12-29 | 2018-07-03 | Verisign, Inc. | Methods and systems for creating new domains |
US9367931B1 (en) | 2011-12-30 | 2016-06-14 | hopTo Inc. | Motion vectors for cross-platform display |
US9454617B1 (en) | 2011-12-30 | 2016-09-27 | hopTo Inc. | Client rendering |
US8856262B1 (en) | 2011-12-30 | 2014-10-07 | hopTo Inc. | Cloud-based image hosting |
US9223534B1 (en) | 2011-12-30 | 2015-12-29 | hopTo Inc. | Client side detection of motion vectors for cross-platform display |
US9218107B1 (en) | 2011-12-30 | 2015-12-22 | hopTo Inc. | Cloud-based text management for cross-platform display |
US10108737B2 (en) * | 2012-01-25 | 2018-10-23 | Microsoft Technology Licensing, Llc | Presenting data driven forms |
US10296558B1 (en) * | 2012-02-27 | 2019-05-21 | Amazon Technologies, Inc. | Remote generation of composite content pages |
US10474728B2 (en) * | 2012-03-21 | 2019-11-12 | Oath Inc. | Seamless browsing between devices |
US9535888B2 (en) * | 2012-03-30 | 2017-01-03 | Bmenu As | System, method, software arrangement and computer-accessible medium for a generator that automatically identifies regions of interest in electronic documents for transcoding |
CN102708192B (en) * | 2012-05-15 | 2017-11-28 | 华为技术有限公司 | A kind of method and system of document sharing, equipment |
US9124562B1 (en) | 2012-05-18 | 2015-09-01 | hopTo Inc. | Cloud-based decomposition and recomposition for cross-platform display |
US8990363B1 (en) * | 2012-05-18 | 2015-03-24 | hopTo, Inc. | Decomposition and recomposition for cross-platform display |
US9106612B1 (en) * | 2012-05-18 | 2015-08-11 | hopTo Inc. | Decomposition and recomposition for cross-platform display |
KR101935357B1 (en) * | 2012-05-21 | 2019-01-04 | 엘지전자 주식회사 | A Method for Providing a Web Page Using Home Device Web Browser and A Home device thereof |
JP6050625B2 (en) * | 2012-06-28 | 2016-12-21 | サターン ライセンシング エルエルシーSaturn Licensing LLC | Information processing apparatus and information processing method, computer program, and information communication system |
US9141504B2 (en) | 2012-06-28 | 2015-09-22 | Apple Inc. | Presenting status data received from multiple devices |
WO2014008468A2 (en) * | 2012-07-06 | 2014-01-09 | Blekko, Inc. | Searching and aggregating web pages |
US9146981B2 (en) * | 2012-07-06 | 2015-09-29 | International Business Machines Corporation | Automated electronic discovery collections and preservations |
US9442687B2 (en) * | 2012-07-23 | 2016-09-13 | Korea Advanced Institute Of Science And Technology | Method and apparatus for moving web object based on intent |
DE102013215438A1 (en) * | 2012-08-06 | 2014-02-06 | Wixpress Ltd | System for treating color assignment within e.g. text processing document in computing device, has color handler modifying color schema, and color processor processing updated color schema and applying updated color schema to component |
US9898445B2 (en) | 2012-08-16 | 2018-02-20 | Qualcomm Incorporated | Resource prefetching via sandboxed execution |
US20140053064A1 (en) | 2012-08-16 | 2014-02-20 | Qualcomm Incorporated | Predicting the usage of document resources |
US9215269B2 (en) | 2012-08-23 | 2015-12-15 | Amazon Technologies, Inc. | Predictive caching for content |
US9519685B1 (en) * | 2012-08-30 | 2016-12-13 | deviantArt, Inc. | Tag selection, clustering, and recommendation for content hosting services |
CN103678347B (en) * | 2012-09-07 | 2018-05-04 | 百度在线网络技术(北京)有限公司 | Method and apparatus for web site to be converted to target web app websites |
US9348490B2 (en) * | 2012-09-14 | 2016-05-24 | Ca, Inc. | User interface with configuration, registration, and runtime selection of views |
US20140089139A1 (en) * | 2012-09-26 | 2014-03-27 | Auction.com, LLC. | System and method for provisioning assets for online transactions |
WO2014055470A2 (en) * | 2012-10-01 | 2014-04-10 | Yandex Europe Ag | Method and system for navigating to a sub-resource of an internet resource |
US8965880B2 (en) | 2012-10-05 | 2015-02-24 | Google Inc. | Transcoding and serving resources |
US9081975B2 (en) | 2012-10-22 | 2015-07-14 | Palantir Technologies, Inc. | Sharing information between nexuses that use different classification schemes for information access control |
US9501761B2 (en) | 2012-11-05 | 2016-11-22 | Palantir Technologies, Inc. | System and method for sharing investigation results |
US9378456B2 (en) | 2012-11-19 | 2016-06-28 | Microsoft Technology Licensing, Llc | Task completion |
US11132277B2 (en) | 2012-12-28 | 2021-09-28 | Iii Holdings 2, Llc | System and method for continuous low-overhead monitoring of distributed applications running on a cluster of data processing nodes |
US9430134B1 (en) | 2013-03-15 | 2016-08-30 | hopTo Inc. | Using split windows for cross-platform document views |
US8788405B1 (en) | 2013-03-15 | 2014-07-22 | Palantir Technologies, Inc. | Generating data clusters with customizable analysis strategies |
US8917274B2 (en) | 2013-03-15 | 2014-12-23 | Palantir Technologies Inc. | Event matrix based on integrated data |
US9965937B2 (en) | 2013-03-15 | 2018-05-08 | Palantir Technologies Inc. | External malware data item clustering and analysis |
US9292157B1 (en) | 2013-03-15 | 2016-03-22 | hopTo Inc. | Cloud-based usage of split windows for cross-platform document views |
US8937619B2 (en) | 2013-03-15 | 2015-01-20 | Palantir Technologies Inc. | Generating an object time series from data objects |
US20140283002A1 (en) * | 2013-03-15 | 2014-09-18 | Stephen Frechette | Method and system for anonymous circumvention of internet filter firewalls without detection or identification |
DE102013006351A1 (en) * | 2013-04-12 | 2014-10-30 | Unify Gmbh & Co. Kg | Method and device for managing a call to a call center |
US9875494B2 (en) * | 2013-04-16 | 2018-01-23 | Sri International | Using intents to analyze and personalize a user's dialog experience with a virtual personal assistant |
US20140316946A1 (en) * | 2013-04-23 | 2014-10-23 | Christine M. Sanders | Event-driven sales platform and notification system and method |
US9912720B2 (en) * | 2013-05-13 | 2018-03-06 | Appsense Us Llc | Context aware browser policy |
US9559902B2 (en) * | 2013-06-02 | 2017-01-31 | Microsoft Technology Licensing, Llc | Distributed state model for system configuration synchronization |
US20160162602A1 (en) * | 2013-06-21 | 2016-06-09 | Stillman Bradish | Methods and apparatus for proximally informed database searches |
KR102112605B1 (en) * | 2013-07-01 | 2020-05-19 | 삼성전자 주식회사 | Mobile device and Method for controlling network transfer of the mobile device |
US9594811B2 (en) | 2013-07-02 | 2017-03-14 | Sap Se | Method and system for limiting database access results |
JP5447722B1 (en) * | 2013-07-17 | 2014-03-19 | 富士ゼロックス株式会社 | Information processing system and program |
US9607039B2 (en) * | 2013-07-18 | 2017-03-28 | International Business Machines Corporation | Subject-matter analysis of tabular data |
US9814985B2 (en) | 2013-07-26 | 2017-11-14 | Blue Calypso, Llc | System and method for advertising distribution through mobile social gaming |
US10373431B2 (en) | 2013-07-26 | 2019-08-06 | Blue Calypso, Llc | System and method for advertising distribution through mobile social gaming |
US9565152B2 (en) | 2013-08-08 | 2017-02-07 | Palantir Technologies Inc. | Cable reader labeling |
CN103414734A (en) * | 2013-09-05 | 2013-11-27 | 广东动易网络科技有限公司 | Multi-screen optimization technology for supporting different types of terminal equipment to access same website |
US8938686B1 (en) | 2013-10-03 | 2015-01-20 | Palantir Technologies Inc. | Systems and methods for analyzing performance of an entity |
US8924850B1 (en) | 2013-11-21 | 2014-12-30 | Google Inc. | Speeding up document loading |
WO2015078231A1 (en) * | 2013-11-26 | 2015-06-04 | 优视科技有限公司 | Method for generating webpage template and server |
US10275765B2 (en) * | 2013-12-11 | 2019-04-30 | Ebay Inc. | Omni-channel state preservation |
US20160259641A1 (en) * | 2013-12-16 | 2016-09-08 | Hewlett Packard Enterprise Development Lp | Tagging a program code portion |
US10579647B1 (en) | 2013-12-16 | 2020-03-03 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US9043696B1 (en) * | 2014-01-03 | 2015-05-26 | Palantir Technologies Inc. | Systems and methods for visual definition of data associations |
US9483162B2 (en) | 2014-02-20 | 2016-11-01 | Palantir Technologies Inc. | Relationship visualizations |
CN104978358B (en) * | 2014-04-11 | 2019-11-15 | 阿里巴巴集团控股有限公司 | The method and intercepting page segment of desktop presentation web page fragments are to desktop presentation system |
JP6358549B2 (en) * | 2014-04-14 | 2018-07-18 | マカフィー, エルエルシー | Automatic login and logout of sessions with session sharing |
US9857958B2 (en) | 2014-04-28 | 2018-01-02 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive access of, investigation of, and analysis of data objects stored in one or more databases |
US9544388B1 (en) * | 2014-05-09 | 2017-01-10 | Amazon Technologies, Inc. | Client-side predictive caching for content |
US10162473B2 (en) * | 2014-06-17 | 2018-12-25 | Lenovo (Singapore) Pte. Ltd. | Integrating browser navigation between multiple browsing contexts |
US9202249B1 (en) | 2014-07-03 | 2015-12-01 | Palantir Technologies Inc. | Data item clustering and analysis |
US9454281B2 (en) | 2014-09-03 | 2016-09-27 | Palantir Technologies Inc. | System for providing dynamic linked panels in user interface |
US9767172B2 (en) | 2014-10-03 | 2017-09-19 | Palantir Technologies Inc. | Data aggregation and analysis system |
US9501851B2 (en) | 2014-10-03 | 2016-11-22 | Palantir Technologies Inc. | Time-series analysis system |
US9984133B2 (en) | 2014-10-16 | 2018-05-29 | Palantir Technologies Inc. | Schematic and database linking system |
US9912758B2 (en) * | 2014-12-16 | 2018-03-06 | Yahoo Holdings, Inc. | Continuing an application session on a different device |
US10027739B1 (en) * | 2014-12-16 | 2018-07-17 | Amazon Technologies, Inc. | Performance-based content delivery |
US9769248B1 (en) | 2014-12-16 | 2017-09-19 | Amazon Technologies, Inc. | Performance-based content delivery |
US10311371B1 (en) | 2014-12-19 | 2019-06-04 | Amazon Technologies, Inc. | Machine learning based content delivery |
US10225365B1 (en) | 2014-12-19 | 2019-03-05 | Amazon Technologies, Inc. | Machine learning based content delivery |
US10311372B1 (en) | 2014-12-19 | 2019-06-04 | Amazon Technologies, Inc. | Machine learning based content delivery |
US9367872B1 (en) | 2014-12-22 | 2016-06-14 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures |
US9335911B1 (en) | 2014-12-29 | 2016-05-10 | Palantir Technologies Inc. | Interactive user interface for dynamic data analysis exploration and query processing |
US9326046B1 (en) | 2015-03-19 | 2016-04-26 | Amazon Technologies, Inc. | Uninterrupted playback of video streams using lower quality cached files |
US20160321285A1 (en) * | 2015-05-02 | 2016-11-03 | Mohammad Faraz RASHID | Method for organizing and distributing data |
US10366431B1 (en) * | 2015-05-15 | 2019-07-30 | Amazon Technologies, Inc. | Computer-readable medium, system, and method for resuming sessions across devices |
US20160358367A1 (en) * | 2015-06-07 | 2016-12-08 | Apple Inc. | Animation based on Content Presentation Structures |
US10489391B1 (en) | 2015-08-17 | 2019-11-26 | Palantir Technologies Inc. | Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface |
US10482167B2 (en) * | 2015-09-24 | 2019-11-19 | Mcafee, Llc | Crowd-source as a backup to asynchronous identification of a type of form and relevant fields in a credential-seeking web page |
US9760556B1 (en) | 2015-12-11 | 2017-09-12 | Palantir Technologies Inc. | Systems and methods for annotating and linking electronic documents |
US10089289B2 (en) | 2015-12-29 | 2018-10-02 | Palantir Technologies Inc. | Real-time document annotation |
US9823818B1 (en) | 2015-12-29 | 2017-11-21 | Palantir Technologies Inc. | Systems and interactive user interfaces for automatic generation of temporal representation of data objects |
US9996236B1 (en) | 2015-12-29 | 2018-06-12 | Palantir Technologies Inc. | Simplified frontend processing and visualization of large datasets |
US10602332B2 (en) * | 2016-06-20 | 2020-03-24 | Microsoft Technology Licensing, Llc | Programming organizational links that propagate to mobile applications |
US10324609B2 (en) | 2016-07-21 | 2019-06-18 | Palantir Technologies Inc. | System for providing dynamic linked panels in user interface |
US10719188B2 (en) | 2016-07-21 | 2020-07-21 | Palantir Technologies Inc. | Cached database and synchronization system for providing dynamic linked panels in user interface |
CN106897346A (en) | 2016-08-04 | 2017-06-27 | 阿里巴巴集团控股有限公司 | The method and device of data processing |
US10133588B1 (en) | 2016-10-20 | 2018-11-20 | Palantir Technologies Inc. | Transforming instructions for collaborative updates |
CN106547915B (en) * | 2016-11-29 | 2019-10-29 | 上海轻维软件有限公司 | Intelligent data extracting method based on model library |
EP3337132A1 (en) * | 2016-12-15 | 2018-06-20 | Awingu Nv | Intermediate broker with multi-session recording |
US10044836B2 (en) | 2016-12-19 | 2018-08-07 | Palantir Technologies Inc. | Conducting investigations under limited connectivity |
CN108268488B (en) * | 2016-12-30 | 2022-04-19 | 百度在线网络技术(北京)有限公司 | Webpage main graph identification method and device |
US10216811B1 (en) | 2017-01-05 | 2019-02-26 | Palantir Technologies Inc. | Collaborating using different object models |
JP7330891B2 (en) * | 2017-02-22 | 2023-08-22 | オプセック・オンライン・リミテッド | System and method for direct in-browser markup of elements in Internet content |
JP6895795B2 (en) * | 2017-04-27 | 2021-06-30 | 株式会社日立製作所 | Data processing systems, data processing methods, and data processing programs |
US11074277B1 (en) | 2017-05-01 | 2021-07-27 | Palantir Technologies Inc. | Secure resolution of canonical entities |
US10574644B2 (en) | 2017-05-03 | 2020-02-25 | International Business Machines Corporation | Stateful session manager |
US10447635B2 (en) | 2017-05-17 | 2019-10-15 | Slice Technologies, Inc. | Filtering electronic messages |
US10614030B2 (en) | 2017-06-02 | 2020-04-07 | Microsoft Technology Licensing Llc | Task creation and completion with bi-directional user interactions |
US11392896B2 (en) * | 2017-06-02 | 2022-07-19 | Apple Inc. | Event extraction systems and methods |
US10942947B2 (en) | 2017-07-17 | 2021-03-09 | Palantir Technologies Inc. | Systems and methods for determining relationships between datasets |
US10956508B2 (en) | 2017-11-10 | 2021-03-23 | Palantir Technologies Inc. | Systems and methods for creating and managing a data integration workspace containing automatically updated data models |
US11061874B1 (en) | 2017-12-14 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for resolving entity data across various data structures |
US10853352B1 (en) | 2017-12-21 | 2020-12-01 | Palantir Technologies Inc. | Structured data collection, presentation, validation and workflow management |
GB201800595D0 (en) | 2018-01-15 | 2018-02-28 | Palantir Technologies Inc | Management of software bugs in a data processing system |
US11803883B2 (en) | 2018-01-29 | 2023-10-31 | Nielsen Consumer Llc | Quality assurance for labeled training data |
US11599369B1 (en) | 2018-03-08 | 2023-03-07 | Palantir Technologies Inc. | Graphical user interface configuration system |
CN110324377B (en) * | 2018-03-30 | 2022-03-25 | 武汉斗鱼网络科技有限公司 | Push interaction method and device, electronic equipment and medium |
US10885021B1 (en) | 2018-05-02 | 2021-01-05 | Palantir Technologies Inc. | Interactive interpreter and graphical user interface |
US11061542B1 (en) | 2018-06-01 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for determining and displaying optimal associations of data items |
US10719573B2 (en) | 2018-10-31 | 2020-07-21 | Flinks Technology Inc. | Systems and methods for retrieving web data |
CN109948020A (en) * | 2019-01-14 | 2019-06-28 | 北京三快在线科技有限公司 | Data capture method, device, system and readable storage medium storing program for executing |
EP3756126B1 (en) * | 2019-05-06 | 2022-07-06 | Google LLC | Secure communication in mobile digital pages |
CN112667529B (en) * | 2019-10-16 | 2024-02-13 | 戴尔产品有限公司 | Network fabric storage system |
CN110825742B (en) * | 2019-10-31 | 2022-09-06 | 北京东方通科技股份有限公司 | Data paging retrieval method and device, electronic equipment and storage medium |
US11044279B1 (en) | 2019-12-19 | 2021-06-22 | Capital One Services, Llc | Systems and methods for secure browser session transfer |
US11847181B2 (en) * | 2020-02-14 | 2023-12-19 | Microsoft Technology Licensing, Llc | Updating a search page upon return of user focus |
WO2022047063A1 (en) | 2020-08-28 | 2022-03-03 | Intermetro Communications, Inc. | Systems and methods for configuring and dynamically applying call route groups |
US20220327129A1 (en) * | 2021-04-09 | 2022-10-13 | Tekion Corp | Enabling Real-Time Integration of Up-To-Date Siloed Data |
US20230350967A1 (en) * | 2022-04-30 | 2023-11-02 | Microsoft Technology Licensing, Llc | Assistance user interface for computer accessibility |
Citations (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583983A (en) * | 1994-11-17 | 1996-12-10 | Objectware, Inc. | Multi-platform object-oriented software development and deployment system |
US5995102A (en) * | 1997-06-25 | 1999-11-30 | Comet Systems, Inc. | Server system and method for modifying a cursor image |
US6295061B1 (en) * | 1999-02-12 | 2001-09-25 | Dbm Korea | Computer system and method for dynamic information display |
US20020054161A1 (en) * | 1998-08-14 | 2002-05-09 | Microsoft Corporation | Dynamic site browser |
US20020133540A1 (en) * | 2001-03-15 | 2002-09-19 | Sears Stephan Bartlett | Systems and methods for automatically generating cookies |
US20030020747A1 (en) * | 2001-07-26 | 2003-01-30 | Aravinda Korala | User input peripheral device substitution for web commerce delivery |
US20030088716A1 (en) * | 2001-11-07 | 2003-05-08 | Sanders Scott D. | Client version advertisement service for overriding default client version properties |
US6828988B2 (en) * | 2001-02-27 | 2004-12-07 | Microsoft Corporation | Interactive tooltip |
US6882825B2 (en) * | 2002-05-21 | 2005-04-19 | Thinksmart Performance Systems Llc | System and method for providing help/training content for a web-based application |
US6904569B1 (en) * | 2001-07-26 | 2005-06-07 | Gateway, Inc. | Link-level browser instance control |
US20050132286A1 (en) * | 2000-06-12 | 2005-06-16 | Rohrabaugh Gary B. | Resolution independent vector display of internet content |
US20060064411A1 (en) * | 2004-09-22 | 2006-03-23 | William Gross | Search engine using user intent |
US7032036B2 (en) * | 2001-06-22 | 2006-04-18 | Microsoft Corporation | Wireless browser |
US20060143568A1 (en) * | 2004-11-10 | 2006-06-29 | Scott Milener | Method and apparatus for enhanced browsing |
US20070028303A1 (en) * | 2005-07-29 | 2007-02-01 | Bit 9, Inc. | Content tracking in a network security system |
US20070113237A1 (en) * | 2005-11-17 | 2007-05-17 | Ian Hickson | Method and device for event communication between documents |
US20070180148A1 (en) * | 2006-02-02 | 2007-08-02 | Multimedia Abacus Corporation | Method and apparatus for creating scalable hi-fidelity HTML forms |
US20070208834A1 (en) * | 2006-02-14 | 2007-09-06 | Nanamura Roberto N | On-demand software service system and method |
US20070206221A1 (en) * | 2006-03-01 | 2007-09-06 | Wyler Eran S | Methods and apparatus for enabling use of web content on various types of devices |
US7320107B2 (en) * | 2001-02-10 | 2008-01-15 | Samsung Electronics Co., Ltd. | Bookmark frame and method of launching browsers using the bookmark in an internet terminal |
US20080071857A1 (en) * | 2006-09-20 | 2008-03-20 | Opera Software Asa | Method, computer program, transcoding server and computer system for modifying a digital document |
US20080077880A1 (en) * | 2006-09-22 | 2008-03-27 | Opera Software Asa | Method and device for selecting and displaying a region of interest in an electronic document |
US7376913B1 (en) * | 2003-01-07 | 2008-05-20 | Vulcan Portals Inc. | Navigation and selection control for a hand-held portable computer |
US20080178098A1 (en) * | 2007-01-19 | 2008-07-24 | Sang Mi Yoon | Method of displaying browser and terminal implementing the same |
US20080256485A1 (en) * | 2007-04-12 | 2008-10-16 | Jason Gary Krikorian | User Interface for Controlling Video Programs on Mobile Computing Devices |
US20080288515A1 (en) * | 2007-05-17 | 2008-11-20 | Sang-Heun Kim | Method and System For Transcoding Web Pages |
US20090013085A1 (en) * | 2007-06-18 | 2009-01-08 | Hadas Liberman Ben-Ami | Interaction-management methods and platform for client-agent interaction-related environments |
US20100192185A1 (en) * | 1999-05-26 | 2010-07-29 | Sling Media Inc. | Apparatus and method for effectively implementing a wireless television system |
US20110014934A1 (en) * | 2004-12-22 | 2011-01-20 | Rafal Rybak | Handling attachment content on a mobile device |
US20110077032A1 (en) * | 2009-09-29 | 2011-03-31 | Harry Benjamin Correale | Restriction Method and Apparatus for Texting Based on Speed |
Family Cites Families (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US103036A (en) * | 1870-05-17 | Thomas b | ||
US712072A (en) * | 1901-07-09 | 1902-10-28 | Colonial Scale Company | Lifting-machine. |
US811939A (en) * | 1905-03-22 | 1906-02-06 | William Loudon | Feed-water mechanism. |
US924503A (en) | 1908-09-01 | 1909-06-08 | Ernst Otto Schneider | Cylindrical positive electrode. |
US2433375A (en) * | 1944-08-22 | 1947-12-30 | Raytheon Mfg Co | Lead-in connection for electron discharge tubes |
US2622625A (en) * | 1951-03-16 | 1952-12-23 | Crompton & Knowles Loom Works | Method and means for cleaning nose boards on axminster looms |
CA2047871C (en) * | 1990-07-25 | 1996-05-14 | Ikio Yoshida | Portable transceiver and esn transfer system therefor |
US5517618A (en) * | 1992-02-10 | 1996-05-14 | Matsushita Electric Industrial Co., Ltd. | Mobile migration communications control device |
US5508695A (en) * | 1994-07-28 | 1996-04-16 | Motorola, Inc. | Method and apparatus for identifying messages associated with a sports team in a communication system |
US5918013A (en) | 1996-06-03 | 1999-06-29 | Webtv Networks, Inc. | Method of transcoding documents in a network environment using a proxy server |
US6173316B1 (en) * | 1998-04-08 | 2001-01-09 | Geoworks Corporation | Wireless communication device with markup language based man-machine interface |
US6925595B1 (en) * | 1998-08-05 | 2005-08-02 | Spyglass, Inc. | Method and system for content conversion of hypertext data using data mining |
US6377949B1 (en) * | 1998-09-18 | 2002-04-23 | Tacit Knowledge Systems, Inc. | Method and apparatus for assigning a confidence level to a term within a user knowledge profile |
EP1018689A3 (en) * | 1999-01-08 | 2001-01-24 | Lucent Technologies Inc. | Methods and apparatus for enabling shared web-based interaction in stateful servers |
US6466970B1 (en) * | 1999-01-27 | 2002-10-15 | International Business Machines Corporation | System and method for collecting and analyzing information about content requested in a network (World Wide Web) environment |
US6405204B1 (en) | 1999-03-02 | 2002-06-11 | Sector Data, Llc | Alerts by sector/news alerts |
US6401085B1 (en) | 1999-03-05 | 2002-06-04 | Accenture Llp | Mobile communication and computing system and method |
US6539494B1 (en) * | 1999-06-17 | 2003-03-25 | Art Technology Group, Inc. | Internet server session backup apparatus |
AU5904600A (en) | 1999-07-02 | 2001-01-22 | Quickdog, Inc. | Method and apparatus for comparing, ranking and selecting data items including web pages |
US20040225865A1 (en) * | 1999-09-03 | 2004-11-11 | Cox Richard D. | Integrated database indexing system |
US6715129B1 (en) * | 1999-10-13 | 2004-03-30 | International Business Machines Corporation | Achieving application-specific document content by transcoding using Java Server Pages |
US6721727B2 (en) * | 1999-12-02 | 2004-04-13 | International Business Machines Corporation | XML documents stored as column data |
US7590644B2 (en) | 1999-12-21 | 2009-09-15 | International Business Machine Corporation | Method and apparatus of streaming data transformation using code generator and translator |
US7188176B1 (en) * | 2000-01-20 | 2007-03-06 | Priceline.Com Incorporated | Apparatus, system, and method for maintaining a persistent data state on a communications network |
AU2001245409A1 (en) * | 2000-03-03 | 2001-09-17 | Merinta, Inc. | Framework for a customizable graphics user interface |
US6311180B1 (en) | 2000-03-28 | 2001-10-30 | Linx Data Terminals, Inc. | Method for mapping and formatting information for a display device |
US7702995B2 (en) * | 2000-04-24 | 2010-04-20 | TVWorks, LLC. | Method and system for transforming content for execution on multiple platforms |
US20040049737A1 (en) * | 2000-04-26 | 2004-03-11 | Novarra, Inc. | System and method for displaying information content with selective horizontal scrolling |
US6484187B1 (en) * | 2000-04-28 | 2002-11-19 | International Business Machines Corporation | Coordinating remote copy status changes across multiple logical sessions to maintain consistency |
AU2001259590A1 (en) | 2000-05-08 | 2001-11-20 | Leap Wireless International, Inc. | Method of converting html/xml to hdml/wml in real-time for display on mobile devices |
US20020003547A1 (en) * | 2000-05-19 | 2002-01-10 | Zhi Wang | System and method for transcoding information for an audio or limited display user interface |
US7134073B1 (en) * | 2000-06-15 | 2006-11-07 | International Business Machines Corporation | Apparatus and method for enabling composite style sheet application to multi-part electronic documents |
US7624337B2 (en) | 2000-07-24 | 2009-11-24 | Vmark, Inc. | System and method for indexing, searching, identifying, and editing portions of electronic multimedia files |
US6455421B1 (en) * | 2000-07-31 | 2002-09-24 | Applied Materials, Inc. | Plasma treatment of tantalum nitride compound films formed by chemical vapor deposition |
WO2002016542A1 (en) * | 2000-08-18 | 2002-02-28 | Anderson Merchandisers Lp | System and method for an interactive shopping news and price information service |
US20020054090A1 (en) * | 2000-09-01 | 2002-05-09 | Silva Juliana Freire | Method and apparatus for creating and providing personalized access to web content and services from terminals having diverse capabilities |
WO2002027534A2 (en) * | 2000-09-29 | 2002-04-04 | Victor Hsieh | Online intelligent information comparison agent of multilingual electronic data sources over inter-connected computer networks |
US6871214B2 (en) * | 2000-10-30 | 2005-03-22 | Nortel Networks Limited | Generating and providing alert messages in a communications network |
US20020120714A1 (en) * | 2001-02-26 | 2002-08-29 | Borislav Agapiev | Distributed-code, custom-generated dynamic internet inclusion agent |
US7120702B2 (en) * | 2001-03-03 | 2006-10-10 | International Business Machines Corporation | System and method for transcoding web content for display by alternative client devices |
US7134075B2 (en) * | 2001-04-26 | 2006-11-07 | International Business Machines Corporation | Conversion of documents between XML and processor efficient MXML in content based routing networks |
US7219309B2 (en) * | 2001-05-02 | 2007-05-15 | Bitstream Inc. | Innovations for the display of web pages |
US6925481B2 (en) * | 2001-05-03 | 2005-08-02 | Symantec Corp. | Technique for enabling remote data access and manipulation from a pervasive device |
US7171418B2 (en) * | 2001-05-31 | 2007-01-30 | Caterpillar Inc | Universal file format for products that allows both parametric and textual searching |
US7581170B2 (en) * | 2001-05-31 | 2009-08-25 | Lixto Software Gmbh | Visual and interactive wrapper generation, automated information extraction from Web pages, and translation into XML |
US7051119B2 (en) * | 2001-07-12 | 2006-05-23 | Yahoo! Inc. | Method and system for enabling a script on a first computer to communicate and exchange data with a script on a second computer over a network |
US20030018668A1 (en) * | 2001-07-20 | 2003-01-23 | International Business Machines Corporation | Enhanced transcoding of structured documents through use of annotation techniques |
CA2459298A1 (en) * | 2001-09-05 | 2003-03-13 | Danger Inc. | Transcoding of telephone numbers to links in received web pages |
US20030115365A1 (en) * | 2001-12-19 | 2003-06-19 | Teddy Lindsey | Transcoding information in a first markup language into a second markup language |
US8799464B2 (en) * | 2001-12-28 | 2014-08-05 | Motorola Mobility Llc | Multi-modal communication using a session specific proxy server |
EP1330098A1 (en) * | 2002-01-21 | 2003-07-23 | BRITISH TELECOMMUNICATIONS public limited company | Method and communication system for data web session transfer |
US20030154398A1 (en) * | 2002-02-08 | 2003-08-14 | Eaton Eric Thomas | System for providing continuity between session clients and method therefor |
US20030172186A1 (en) * | 2002-03-07 | 2003-09-11 | International Business Machines Coporation | Method, system and program product for transcoding content |
US20050066037A1 (en) | 2002-04-10 | 2005-03-24 | Yu Song | Browser session mobility system for multi-platform applications |
US6931405B2 (en) * | 2002-04-15 | 2005-08-16 | Microsoft Corporation | Flexible subscription-based event notification |
AU2003239385A1 (en) | 2002-05-10 | 2003-11-11 | Richard R. Reisman | Method and apparatus for browsing using multiple coordinated device |
US7146400B2 (en) * | 2002-05-29 | 2006-12-05 | International Business Machines Corporation | Web and lotus notes adapter layers |
US7127469B2 (en) | 2002-06-13 | 2006-10-24 | Mark Logic Corporation | XML database mixed structural-textual classification system |
US7266553B1 (en) * | 2002-07-01 | 2007-09-04 | Microsoft Corporation | Content data indexing |
KR100463835B1 (en) * | 2002-10-17 | 2004-12-29 | 한국전자통신연구원 | Index extraction method of web contents transcoding system for small display devices |
KR100461019B1 (en) | 2002-11-01 | 2004-12-09 | 한국전자통신연구원 | web contents transcoding system and method for small display devices |
US20040142683A1 (en) * | 2002-11-08 | 2004-07-22 | Matt Clark | Programming interface layer of a service provider for data service delivery |
US7949765B2 (en) * | 2002-12-02 | 2011-05-24 | Sap Aktiengesellschaft | Data structure for analyzing user sessions |
WO2004109557A1 (en) * | 2003-06-03 | 2004-12-16 | Forbes Holten Norris, Iii | Flexible, dynamic menu-based web-page architecture |
US20040249824A1 (en) * | 2003-06-05 | 2004-12-09 | International Business Machines Corporation | Semantics-bases indexing in a distributed data processing system |
US20050021851A1 (en) * | 2003-06-09 | 2005-01-27 | Kimmo Hamynen | System, apparatus, and method for directional control input browsing in smart phones |
CA2433375A1 (en) | 2003-06-25 | 2004-12-25 | Ibm Canada Limited - Ibm Canada Limitee | System and method for presenting personalized content on electronic commerce web pages |
US20070276911A1 (en) * | 2003-07-11 | 2007-11-29 | Soujanya Bhumkar | Method and System for Transferring Contact Information and Calendar Events to a Wireless Device Via E-Mail |
US8200775B2 (en) * | 2005-02-01 | 2012-06-12 | Newsilike Media Group, Inc | Enhanced syndication |
US7325204B2 (en) * | 2003-08-29 | 2008-01-29 | Yahoo! Inc. | Slideout windows |
US7558776B2 (en) * | 2004-01-27 | 2009-07-07 | United Services Automobile Association (Usaa) | System and method of managing internet browser navigation |
CN101023419B (en) * | 2004-05-14 | 2010-06-16 | 模比莱普斯有限公司 | Method of providing a web page with inserted content |
US20060026216A1 (en) * | 2004-07-30 | 2006-02-02 | Mirra, Inc. | Server-assited communication among clients |
US20060074910A1 (en) | 2004-09-17 | 2006-04-06 | Become, Inc. | Systems and methods of retrieving topic specific information |
US7543069B2 (en) * | 2004-10-18 | 2009-06-02 | International Business Machines Corporation | Dynamically updating session state affinity |
US8145908B1 (en) * | 2004-10-29 | 2012-03-27 | Akamai Technologies, Inc. | Web content defacement protection system |
US20060116893A1 (en) * | 2004-11-24 | 2006-06-01 | Carnes Joseph L | Apparatus and method of collecting and monitoring shipment data |
US20060168547A1 (en) * | 2005-01-07 | 2006-07-27 | International Business Machines Corporation | Method and system for synchronizing content in multiple web browser windows |
US7805495B2 (en) * | 2005-03-31 | 2010-09-28 | Google Inc. | Method and system for transferring web browser data between web browsers |
CN101288067B (en) * | 2005-08-09 | 2012-04-04 | 沙力股份有限公司 | Methods and apparatuses to assemble, extract and deploy content from electronic documents |
US7433888B2 (en) | 2005-08-25 | 2008-10-07 | Microsoft Corporation | Schema packaging, distribution and availability |
JP2009508273A (en) | 2005-09-14 | 2009-02-26 | オー−ヤ!,インク. | Apparatus and method for indexing and searching networked information |
GB2430507A (en) * | 2005-09-21 | 2007-03-28 | Stephen Robert Ives | System for managing the display of sponsored links together with search results on a mobile/wireless device |
US7912755B2 (en) * | 2005-09-23 | 2011-03-22 | Pronto, Inc. | Method and system for identifying product-related information on a web page |
US20070073593A1 (en) * | 2005-09-28 | 2007-03-29 | Redcarpet, Inc. | Method and system for consumer price alerts |
US20080288600A1 (en) * | 2005-10-18 | 2008-11-20 | Clark Christopher M | Apparatus and method for providing access to associated data related to primary media data via email |
US20070208751A1 (en) * | 2005-11-22 | 2007-09-06 | David Cowan | Personalized content control |
NO325961B1 (en) * | 2005-12-05 | 2008-08-25 | Holte Bjoern | System, process and software arrangement to assist in navigation on the Internet |
US20070157304A1 (en) * | 2006-01-05 | 2007-07-05 | International Business Machines Corporation | Method, apparatus and computer program product for automatic cookie synchronization between distinct web browsers |
WO2007101182A2 (en) * | 2006-02-28 | 2007-09-07 | Maven Networks, Inc. | Systems and methods for delivering and managing media content downloaded to a network connected device |
US8086698B2 (en) * | 2006-06-02 | 2011-12-27 | Google Inc. | Synchronizing configuration information among multiple clients |
US9195372B2 (en) * | 2006-06-28 | 2015-11-24 | Scenera Technologies, Llc | Methods, systems, and computer program products for grouping tabbed portion of a display object based on content relationships and user interaction levels |
US20080052381A1 (en) * | 2006-08-22 | 2008-02-28 | Koon Wah Yu | Method and system for selecting a transcoder to convert between content types |
US8001013B2 (en) * | 2006-12-18 | 2011-08-16 | Razz Serbanescu | System and method for electronic commerce and other uses |
US7739410B2 (en) * | 2007-01-07 | 2010-06-15 | Apple Inc. | Synchronization methods and systems |
US20090063690A1 (en) * | 2007-09-05 | 2009-03-05 | Motorola, Inc. | Continuing an application session using a different device from one that originally initiated the application session while preserving session while preserving session state and data |
US7873748B2 (en) * | 2007-11-30 | 2011-01-18 | International Business Machines Corporation | Synchronization of locally and remotely stored browser data |
-
2008
- 2008-05-12 CA CA2687530A patent/CA2687530C/en not_active Expired - Fee Related
- 2008-05-12 WO PCT/CA2008/000907 patent/WO2008141425A1/en active Application Filing
- 2008-05-12 EP EP08757083A patent/EP2156393A4/en not_active Withdrawn
- 2008-05-12 US US12/119,097 patent/US20090235187A1/en not_active Abandoned
- 2008-05-12 US US12/119,328 patent/US8572105B2/en not_active Expired - Fee Related
- 2008-05-12 US US12/119,300 patent/US8037084B2/en not_active Expired - Fee Related
- 2008-05-12 CA CA002687480A patent/CA2687480A1/en not_active Abandoned
- 2008-05-12 US US12/119,317 patent/US20080289029A1/en not_active Abandoned
- 2008-05-12 WO PCT/CA2008/000903 patent/WO2008141424A1/en active Application Filing
- 2008-05-12 WO PCT/CA2008/000918 patent/WO2008141433A1/en active Application Filing
- 2008-05-12 CA CA002687484A patent/CA2687484A1/en not_active Abandoned
- 2008-05-12 CA CA2687483A patent/CA2687483C/en not_active Expired - Fee Related
- 2008-05-12 WO PCT/CA2008/000916 patent/WO2008141431A1/en active Application Filing
- 2008-05-12 CA CA2686292A patent/CA2686292A1/en not_active Abandoned
- 2008-05-12 EP EP08748313A patent/EP2151091A4/en not_active Ceased
- 2008-05-12 US US12/119,257 patent/US8396881B2/en not_active Expired - Fee Related
- 2008-05-12 CA CA002687497A patent/CA2687497A1/en not_active Abandoned
- 2008-05-12 EP EP08757085A patent/EP2156606A4/en not_active Withdrawn
- 2008-05-12 EP EP08748311A patent/EP2156328A4/en not_active Withdrawn
- 2008-05-12 EP EP08757084A patent/EP2151092A4/en not_active Ceased
- 2008-05-12 EP EP08748301A patent/EP2158723A4/en not_active Withdrawn
- 2008-05-12 WO PCT/CA2008/000909 patent/WO2008141427A1/en active Application Filing
- 2008-05-12 WO PCT/CA2008/000915 patent/WO2008141430A1/en active Application Filing
- 2008-05-12 CA CA002687479A patent/CA2687479A1/en not_active Abandoned
- 2008-05-12 EP EP08748305A patent/EP2151088A4/en not_active Withdrawn
- 2008-05-12 US US12/119,221 patent/US20080288515A1/en not_active Abandoned
- 2008-05-12 EP EP08748312A patent/EP2151090A4/en not_active Withdrawn
- 2008-05-12 US US12/119,309 patent/US20080288486A1/en not_active Abandoned
- 2008-05-12 US US12/119,338 patent/US20080288477A1/en not_active Abandoned
- 2008-05-12 WO PCT/CA2008/000919 patent/WO2008141434A1/en active Application Filing
- 2008-05-12 EP EP08748306A patent/EP2151089A4/en not_active Ceased
- 2008-05-12 CA CA002687478A patent/CA2687478A1/en not_active Abandoned
- 2008-05-12 CA CA2687473A patent/CA2687473C/en not_active Expired - Fee Related
- 2008-05-12 CA CA002687475A patent/CA2687475A1/en not_active Abandoned
- 2008-05-12 WO PCT/CA2008/000914 patent/WO2008141429A1/en active Application Filing
- 2008-05-12 WO PCT/CA2008/000908 patent/WO2008141426A1/en active Application Filing
- 2008-05-12 EP EP08757086A patent/EP2151093A4/en not_active Withdrawn
- 2008-05-12 US US12/119,269 patent/US20080288449A1/en not_active Abandoned
- 2008-05-12 US US12/119,251 patent/US20080288459A1/en not_active Abandoned
- 2008-05-12 WO PCT/CA2008/000917 patent/WO2008141432A1/en active Application Filing
Patent Citations (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583983A (en) * | 1994-11-17 | 1996-12-10 | Objectware, Inc. | Multi-platform object-oriented software development and deployment system |
US5995102A (en) * | 1997-06-25 | 1999-11-30 | Comet Systems, Inc. | Server system and method for modifying a cursor image |
US20020054161A1 (en) * | 1998-08-14 | 2002-05-09 | Microsoft Corporation | Dynamic site browser |
US6295061B1 (en) * | 1999-02-12 | 2001-09-25 | Dbm Korea | Computer system and method for dynamic information display |
US20100192185A1 (en) * | 1999-05-26 | 2010-07-29 | Sling Media Inc. | Apparatus and method for effectively implementing a wireless television system |
US20050132286A1 (en) * | 2000-06-12 | 2005-06-16 | Rohrabaugh Gary B. | Resolution independent vector display of internet content |
US7320107B2 (en) * | 2001-02-10 | 2008-01-15 | Samsung Electronics Co., Ltd. | Bookmark frame and method of launching browsers using the bookmark in an internet terminal |
US6828988B2 (en) * | 2001-02-27 | 2004-12-07 | Microsoft Corporation | Interactive tooltip |
US20020133540A1 (en) * | 2001-03-15 | 2002-09-19 | Sears Stephan Bartlett | Systems and methods for automatically generating cookies |
US7032036B2 (en) * | 2001-06-22 | 2006-04-18 | Microsoft Corporation | Wireless browser |
US6904569B1 (en) * | 2001-07-26 | 2005-06-07 | Gateway, Inc. | Link-level browser instance control |
US20030020747A1 (en) * | 2001-07-26 | 2003-01-30 | Aravinda Korala | User input peripheral device substitution for web commerce delivery |
US20030088716A1 (en) * | 2001-11-07 | 2003-05-08 | Sanders Scott D. | Client version advertisement service for overriding default client version properties |
US6882825B2 (en) * | 2002-05-21 | 2005-04-19 | Thinksmart Performance Systems Llc | System and method for providing help/training content for a web-based application |
US7376913B1 (en) * | 2003-01-07 | 2008-05-20 | Vulcan Portals Inc. | Navigation and selection control for a hand-held portable computer |
US20060064411A1 (en) * | 2004-09-22 | 2006-03-23 | William Gross | Search engine using user intent |
US20060143568A1 (en) * | 2004-11-10 | 2006-06-29 | Scott Milener | Method and apparatus for enhanced browsing |
US20110014934A1 (en) * | 2004-12-22 | 2011-01-20 | Rafal Rybak | Handling attachment content on a mobile device |
US20070028303A1 (en) * | 2005-07-29 | 2007-02-01 | Bit 9, Inc. | Content tracking in a network security system |
US20070113237A1 (en) * | 2005-11-17 | 2007-05-17 | Ian Hickson | Method and device for event communication between documents |
US20070180148A1 (en) * | 2006-02-02 | 2007-08-02 | Multimedia Abacus Corporation | Method and apparatus for creating scalable hi-fidelity HTML forms |
US20070208834A1 (en) * | 2006-02-14 | 2007-09-06 | Nanamura Roberto N | On-demand software service system and method |
US20070206221A1 (en) * | 2006-03-01 | 2007-09-06 | Wyler Eran S | Methods and apparatus for enabling use of web content on various types of devices |
US20080071857A1 (en) * | 2006-09-20 | 2008-03-20 | Opera Software Asa | Method, computer program, transcoding server and computer system for modifying a digital document |
US20080077880A1 (en) * | 2006-09-22 | 2008-03-27 | Opera Software Asa | Method and device for selecting and displaying a region of interest in an electronic document |
US20080178098A1 (en) * | 2007-01-19 | 2008-07-24 | Sang Mi Yoon | Method of displaying browser and terminal implementing the same |
US20080256485A1 (en) * | 2007-04-12 | 2008-10-16 | Jason Gary Krikorian | User Interface for Controlling Video Programs on Mobile Computing Devices |
US20080288515A1 (en) * | 2007-05-17 | 2008-11-20 | Sang-Heun Kim | Method and System For Transcoding Web Pages |
US20090013085A1 (en) * | 2007-06-18 | 2009-01-08 | Hadas Liberman Ben-Ami | Interaction-management methods and platform for client-agent interaction-related environments |
US20110077032A1 (en) * | 2009-09-29 | 2011-03-31 | Harry Benjamin Correale | Restriction Method and Apparatus for Texting Based on Speed |
Cited By (168)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9063953B2 (en) | 2004-10-01 | 2015-06-23 | Ricoh Co., Ltd. | System and methods for creation and use of a mixed media environment |
US20060262352A1 (en) * | 2004-10-01 | 2006-11-23 | Hull Jonathan J | Method and system for image matching in a mixed media environment |
US20060262976A1 (en) * | 2004-10-01 | 2006-11-23 | Hart Peter E | Method and System for Multi-Tier Image Matching in a Mixed Media Environment |
US20060285172A1 (en) * | 2004-10-01 | 2006-12-21 | Hull Jonathan J | Method And System For Document Fingerprint Matching In A Mixed Media Environment |
US20060285772A1 (en) * | 2004-10-01 | 2006-12-21 | Hull Jonathan J | System and methods for creation and use of a mixed media environment |
US8332401B2 (en) | 2004-10-01 | 2012-12-11 | Ricoh Co., Ltd | Method and system for position-based image matching in a mixed media environment |
US8335789B2 (en) | 2004-10-01 | 2012-12-18 | Ricoh Co., Ltd. | Method and system for document fingerprint matching in a mixed media environment |
US20060262962A1 (en) * | 2004-10-01 | 2006-11-23 | Hull Jonathan J | Method And System For Position-Based Image Matching In A Mixed Media Environment |
US8521737B2 (en) | 2004-10-01 | 2013-08-27 | Ricoh Co., Ltd. | Method and system for multi-tier image matching in a mixed media environment |
US8600989B2 (en) | 2004-10-01 | 2013-12-03 | Ricoh Co., Ltd. | Method and system for image matching in a mixed media environment |
US7702673B2 (en) | 2004-10-01 | 2010-04-20 | Ricoh Co., Ltd. | System and methods for creation and use of a mixed media environment |
US7920759B2 (en) | 2005-08-23 | 2011-04-05 | Ricoh Co. Ltd. | Triggering applications for distributed action execution and use of mixed media recognition as a control input |
US20070046983A1 (en) * | 2005-08-23 | 2007-03-01 | Hull Jonathan J | Integration and Use of Mixed Media Documents |
US8195659B2 (en) | 2005-08-23 | 2012-06-05 | Ricoh Co. Ltd. | Integration and use of mixed media documents |
US8005831B2 (en) | 2005-08-23 | 2011-08-23 | Ricoh Co., Ltd. | System and methods for creation and use of a mixed media environment with geographic location information |
US7991778B2 (en) | 2005-08-23 | 2011-08-02 | Ricoh Co., Ltd. | Triggering actions with captured input in a mixed media environment |
US8949287B2 (en) | 2005-08-23 | 2015-02-03 | Ricoh Co., Ltd. | Embedding hot spots in imaged documents |
US20070052997A1 (en) * | 2005-08-23 | 2007-03-08 | Hull Jonathan J | System and methods for portable device for mixed media system |
US20070047780A1 (en) * | 2005-08-23 | 2007-03-01 | Hull Jonathan J | Shared Document Annotation |
US20070050341A1 (en) * | 2005-08-23 | 2007-03-01 | Hull Jonathan J | Triggering applications for distributed action execution and use of mixed media recognition as a control input |
US9171202B2 (en) | 2005-08-23 | 2015-10-27 | Ricoh Co., Ltd. | Data organization and access for mixed media document system |
US8156427B2 (en) * | 2005-08-23 | 2012-04-10 | Ricoh Co. Ltd. | User interface for mixed media reality |
US20070047816A1 (en) * | 2005-08-23 | 2007-03-01 | Jamey Graham | User Interface for Mixed Media Reality |
US7917554B2 (en) | 2005-08-23 | 2011-03-29 | Ricoh Co. Ltd. | Visibly-perceptible hot spots in documents |
US20090313245A1 (en) * | 2005-08-23 | 2009-12-17 | Ricoh Co., Ltd. | Mixed Media Reality Brokerage Network With Layout-Independent Recognition |
US8838591B2 (en) | 2005-08-23 | 2014-09-16 | Ricoh Co., Ltd. | Embedding hot spots in electronic documents |
US7885955B2 (en) | 2005-08-23 | 2011-02-08 | Ricoh Co. Ltd. | Shared document annotation |
US7669148B2 (en) | 2005-08-23 | 2010-02-23 | Ricoh Co., Ltd. | System and methods for portable device for mixed media system |
US7812986B2 (en) | 2005-08-23 | 2010-10-12 | Ricoh Co. Ltd. | System and methods for use of voice mail and email in a mixed media environment |
US9405751B2 (en) | 2005-08-23 | 2016-08-02 | Ricoh Co., Ltd. | Database for mixed media document system |
US20070047782A1 (en) * | 2005-08-23 | 2007-03-01 | Hull Jonathan J | System And Methods For Creation And Use Of A Mixed Media Environment With Geographic Location Information |
US20070046982A1 (en) * | 2005-08-23 | 2007-03-01 | Hull Jonathan J | Triggering actions with captured input in a mixed media environment |
US20070047008A1 (en) * | 2005-08-23 | 2007-03-01 | Jamey Graham | System and methods for use of voice mail and email in a mixed media environment |
US7769772B2 (en) | 2005-08-23 | 2010-08-03 | Ricoh Co., Ltd. | Mixed media reality brokerage network with layout-independent recognition |
US8868555B2 (en) | 2006-07-31 | 2014-10-21 | Ricoh Co., Ltd. | Computation of a recongnizability score (quality predictor) for image retrieval |
US8676810B2 (en) | 2006-07-31 | 2014-03-18 | Ricoh Co., Ltd. | Multiple index mixed media reality recognition using unequal priority indexes |
US9384619B2 (en) | 2006-07-31 | 2016-07-05 | Ricoh Co., Ltd. | Searching media content for objects specified using identifiers |
US8156116B2 (en) | 2006-07-31 | 2012-04-10 | Ricoh Co., Ltd | Dynamic presentation of targeted information in a mixed media reality recognition system |
US8825682B2 (en) | 2006-07-31 | 2014-09-02 | Ricoh Co., Ltd. | Architecture for mixed media reality retrieval of locations and registration of images |
US9176984B2 (en) | 2006-07-31 | 2015-11-03 | Ricoh Co., Ltd | Mixed media reality retrieval of differentially-weighted links |
US8856108B2 (en) | 2006-07-31 | 2014-10-07 | Ricoh Co., Ltd. | Combining results of image retrieval processes |
US8369655B2 (en) | 2006-07-31 | 2013-02-05 | Ricoh Co., Ltd. | Mixed media reality recognition using multiple specialized indexes |
US20090125510A1 (en) * | 2006-07-31 | 2009-05-14 | Jamey Graham | Dynamic presentation of targeted information in a mixed media reality recognition system |
US8510283B2 (en) | 2006-07-31 | 2013-08-13 | Ricoh Co., Ltd. | Automatic adaption of an image recognition system to image capture devices |
US8489987B2 (en) | 2006-07-31 | 2013-07-16 | Ricoh Co., Ltd. | Monitoring and analyzing creation and usage of visual content using image and hotspot interaction |
US20090070415A1 (en) * | 2006-07-31 | 2009-03-12 | Hidenobu Kishi | Architecture for mixed media reality retrieval of locations and registration of images |
US9020966B2 (en) | 2006-07-31 | 2015-04-28 | Ricoh Co., Ltd. | Client device for interacting with a mixed media reality recognition system |
US8201076B2 (en) | 2006-07-31 | 2012-06-12 | Ricoh Co., Ltd. | Capturing symbolic information from documents upon printing |
US8073263B2 (en) | 2006-07-31 | 2011-12-06 | Ricoh Co., Ltd. | Multi-classifier selection and monitoring for MMR-based image recognition |
US9063952B2 (en) | 2006-07-31 | 2015-06-23 | Ricoh Co., Ltd. | Mixed media reality recognition with image tracking |
US7970171B2 (en) | 2007-01-18 | 2011-06-28 | Ricoh Co., Ltd. | Synthetic image and video generation from ground truth data |
US20080289029A1 (en) * | 2007-05-17 | 2008-11-20 | Sang-Heun Kim | Method and system for continuation of browsing sessions between devices |
US10749730B2 (en) * | 2007-06-09 | 2020-08-18 | Open Text Sa Ulc | Supplying applications to mobile devices |
US20190173732A1 (en) * | 2007-06-09 | 2019-06-06 | Open Text Sa Ulc | Supplying applications to mobile devices |
US11252008B2 (en) * | 2007-06-09 | 2022-02-15 | Open Text Sa Ulc | Supplying applications to mobile devices |
US10250432B2 (en) * | 2007-06-09 | 2019-04-02 | Open Text Sa Ulc | Supplying applications to mobile devices |
US20140032653A1 (en) * | 2007-06-09 | 2014-01-30 | Open Text S.A. | Supplying applications to mobile devices |
US8671147B2 (en) * | 2007-06-09 | 2014-03-11 | Open Text S.A. | Supplying applications to mobile devices |
US20080307047A1 (en) * | 2007-06-09 | 2008-12-11 | Wecomm Limited | Supplying Applications to Mobile Devices |
US8144921B2 (en) | 2007-07-11 | 2012-03-27 | Ricoh Co., Ltd. | Information retrieval using invisible junctions and geometric constraints |
US8989431B1 (en) | 2007-07-11 | 2015-03-24 | Ricoh Co., Ltd. | Ad hoc paper-based networking with mixed media reality |
US8184155B2 (en) | 2007-07-11 | 2012-05-22 | Ricoh Co. Ltd. | Recognition and tracking using invisible junctions |
US8086038B2 (en) | 2007-07-11 | 2011-12-27 | Ricoh Co., Ltd. | Invisible junction features for patch recognition |
US10192279B1 (en) | 2007-07-11 | 2019-01-29 | Ricoh Co., Ltd. | Indexed document modification sharing with mixed media reality |
US8276088B2 (en) | 2007-07-11 | 2012-09-25 | Ricoh Co., Ltd. | User interface for three-dimensional navigation |
US9530050B1 (en) | 2007-07-11 | 2016-12-27 | Ricoh Co., Ltd. | Document annotation sharing |
US20090016604A1 (en) * | 2007-07-11 | 2009-01-15 | Qifa Ke | Invisible Junction Features for Patch Recognition |
US8156115B1 (en) | 2007-07-11 | 2012-04-10 | Ricoh Co. Ltd. | Document-based networking with mixed media reality |
US9373029B2 (en) | 2007-07-11 | 2016-06-21 | Ricoh Co., Ltd. | Invisible junction feature recognition for document security or annotation |
US20090018990A1 (en) * | 2007-07-12 | 2009-01-15 | Jorge Moraleda | Retrieving Electronic Documents by Converting Them to Synthetic Text |
US8176054B2 (en) | 2007-07-12 | 2012-05-08 | Ricoh Co. Ltd | Retrieving electronic documents by converting them to synthetic text |
US20090171948A1 (en) * | 2007-12-31 | 2009-07-02 | Peer 39 Inc. | Method and a system for selecting advertising spots |
US9117219B2 (en) * | 2007-12-31 | 2015-08-25 | Peer 39 Inc. | Method and a system for selecting advertising spots |
US20100088321A1 (en) * | 2007-12-31 | 2010-04-08 | Peer 39 Inc. | Method and a system for advertising |
US20090182804A1 (en) * | 2008-01-14 | 2009-07-16 | Maria Arbusto | System and method for a tagging service |
US8260765B2 (en) * | 2008-01-14 | 2012-09-04 | International Business Machines Corporation | System and method for a tagging service |
US10936650B2 (en) | 2008-03-05 | 2021-03-02 | Ebay Inc. | Method and apparatus for image recognition services |
US11727054B2 (en) | 2008-03-05 | 2023-08-15 | Ebay Inc. | Method and apparatus for image recognition services |
US11694427B2 (en) | 2008-03-05 | 2023-07-04 | Ebay Inc. | Identification of items depicted in images |
US20090304267A1 (en) * | 2008-03-05 | 2009-12-10 | John Tapley | Identification of items depicted in images |
US10956775B2 (en) | 2008-03-05 | 2021-03-23 | Ebay Inc. | Identification of items depicted in images |
US9495386B2 (en) | 2008-03-05 | 2016-11-15 | Ebay Inc. | Identification of items depicted in images |
US8385589B2 (en) | 2008-05-15 | 2013-02-26 | Berna Erol | Web-based content detection in images, extraction and recognition |
US20090285444A1 (en) * | 2008-05-15 | 2009-11-19 | Ricoh Co., Ltd. | Web-Based Content Detection in Images, Extraction and Recognition |
US8584029B1 (en) * | 2008-05-23 | 2013-11-12 | Intuit Inc. | Surface computer system and method for integrating display of user interface with physical objects |
US20090300506A1 (en) * | 2008-05-30 | 2009-12-03 | Microsoft Corporation | Mark-up extensions for semantically more relevant thumbnails of content |
US8726164B2 (en) * | 2008-05-30 | 2014-05-13 | Microsoft Corporation | Mark-up extensions for semantically more relevant thumbnails of content |
US9251281B2 (en) * | 2008-07-29 | 2016-02-02 | International Business Machines Corporation | Web browsing using placemarks and contextual relationships in a data processing system |
US20100031166A1 (en) * | 2008-07-29 | 2010-02-04 | International Business Machines Corporation | System and method for web browsing using placemarks and contextual relationships in a data processing system |
US8462394B2 (en) * | 2008-08-05 | 2013-06-11 | Xerox Corporation | Document type classification for scanned bitmaps |
US20100033765A1 (en) * | 2008-08-05 | 2010-02-11 | Xerox Corporation | Document type classification for scanned bitmaps |
US20100077080A1 (en) * | 2008-09-23 | 2010-03-25 | Tai-Yeon Ku | Communication terminal, service kiosk, and service providing system and method |
US20100088343A1 (en) * | 2008-10-06 | 2010-04-08 | Itzhack Goldberg | Customized Context Menu for Files Based on Their Content |
US8095569B2 (en) * | 2008-10-06 | 2012-01-10 | International Business Machines Corporation | Customized context menu for files based on their content |
US20100125502A1 (en) * | 2008-11-18 | 2010-05-20 | Peer 39 Inc. | Method and system for identifying web documents for advertisements |
US10346879B2 (en) | 2008-11-18 | 2019-07-09 | Sizmek Technologies, Inc. | Method and system for identifying web documents for advertisements |
US20100198805A1 (en) * | 2009-02-03 | 2010-08-05 | Samsung Electronics Co., Ltd. | Method and apparatus for generating and displaying image |
US10607272B2 (en) | 2009-02-24 | 2020-03-31 | Ebay Inc. | Supplementing an image gallery with status indicators |
US20100214302A1 (en) * | 2009-02-24 | 2010-08-26 | Ryan Melcher | System and method for supplementing an image gallery with status indicators |
US10169801B2 (en) | 2009-02-24 | 2019-01-01 | Ebay Inc. | System and method for supplementing an image gallery with status indicators |
US11361360B2 (en) | 2009-02-24 | 2022-06-14 | Ebay Inc. | Supplementing an image gallery with status indicators |
US9406042B2 (en) * | 2009-02-24 | 2016-08-02 | Ebay Inc. | System and method for supplementing an image gallery with status indicators |
US11651409B2 (en) | 2009-02-24 | 2023-05-16 | Ebay Inc. | Supplementing an image gallery with status indicators |
US20100329574A1 (en) * | 2009-06-24 | 2010-12-30 | Jorge Moraleda | Mixed media reality indexing and retrieval for repeated content |
US8385660B2 (en) | 2009-06-24 | 2013-02-26 | Ricoh Co., Ltd. | Mixed media reality indexing and retrieval for repeated content |
US20110078580A1 (en) * | 2009-09-30 | 2011-03-31 | Logicplant | Method and system for providing interface of web page |
US20110113364A1 (en) * | 2009-11-09 | 2011-05-12 | Research In Motion Limited | Directional navigation of page content |
US9575944B2 (en) | 2009-11-09 | 2017-02-21 | Blackberry Limited | Directional navigation of page content |
WO2011054072A1 (en) * | 2009-11-09 | 2011-05-12 | Research In Motion Limited | Directional navigation of page content |
US8843849B2 (en) | 2009-11-09 | 2014-09-23 | Blackberry Limited | Directional navigation of page content |
US20110119618A1 (en) * | 2009-11-18 | 2011-05-19 | Sap Ag | Dataflow-driven service composition at the presentation layer |
US8751952B2 (en) * | 2009-11-18 | 2014-06-10 | Sap Ag | Dataflow-driven service composition at the presentation layer |
US10210659B2 (en) | 2009-12-22 | 2019-02-19 | Ebay Inc. | Augmented reality system, method, and apparatus for displaying an item image in a contextual environment |
US20120069199A1 (en) * | 2010-09-17 | 2012-03-22 | Google Inc. | Moving information between computing devices |
US8805089B2 (en) * | 2010-09-17 | 2014-08-12 | Google Inc. | Moving information between computing devices |
US10878489B2 (en) | 2010-10-13 | 2020-12-29 | Ebay Inc. | Augmented reality system and method for visualizing an item |
US20120144333A1 (en) * | 2010-12-02 | 2012-06-07 | Microsoft Corporation | Render transform based scrolling and panning for smooth effects |
US8595640B2 (en) * | 2010-12-02 | 2013-11-26 | Microsoft Corporation | Render transform based scrolling and panning for smooth effects |
US9245058B2 (en) * | 2010-12-03 | 2016-01-26 | Titus Inc. | Method and system of hierarchical metadata management and application |
US20120143923A1 (en) * | 2010-12-03 | 2012-06-07 | Whitney Benjamin Taylor | Method and system of hierarchical metadata management and application |
US9348939B2 (en) | 2011-03-18 | 2016-05-24 | International Business Machines Corporation | Web site sectioning for mobile web browser usability |
US10096046B2 (en) * | 2011-04-14 | 2018-10-09 | Garrett Wade Mathews | Web-based user support system and method |
US20120324375A1 (en) * | 2011-04-14 | 2012-12-20 | Garrett Wade Mathews | Web-based user support system and method |
US20120310914A1 (en) * | 2011-05-31 | 2012-12-06 | NetSol Technologies, Inc. | Unified Crawling, Scraping and Indexing of Web-Pages and Catalog Interface |
US9058331B2 (en) | 2011-07-27 | 2015-06-16 | Ricoh Co., Ltd. | Generating a conversation in a social network based on visual search results |
US8938449B1 (en) | 2011-09-02 | 2015-01-20 | Google Inc. | Semantic image label synthesis |
US8458174B1 (en) * | 2011-09-02 | 2013-06-04 | Google Inc. | Semantic image label synthesis |
US9329851B2 (en) | 2011-09-09 | 2016-05-03 | Microsoft Technology Licensing, Llc | Browser-based discovery and application switching |
US20130067359A1 (en) * | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Browser-based Discovery and Application Switching |
USD667449S1 (en) * | 2011-09-12 | 2012-09-18 | Microsoft Corporation | Display screen with icon |
US20130097490A1 (en) * | 2011-10-13 | 2013-04-18 | Microsoft Corporation | Application of Multiple Content Items and Functionality to an Electronic Content Item |
US10114531B2 (en) | 2011-10-13 | 2018-10-30 | Microsoft Technology Licensing, Llc | Application of multiple content items and functionality to an electronic content item |
US9176933B2 (en) * | 2011-10-13 | 2015-11-03 | Microsoft Technology Licensing, Llc | Application of multiple content items and functionality to an electronic content item |
US9998509B2 (en) | 2011-10-13 | 2018-06-12 | Microsoft Technology Licensing, Llc | Application of comments in multiple application functionality content |
US9069743B2 (en) | 2011-10-13 | 2015-06-30 | Microsoft Technology Licensing, Llc | Application of comments in multiple application functionality content |
US10147134B2 (en) | 2011-10-27 | 2018-12-04 | Ebay Inc. | System and method for visualization of items in an environment using augmented reality |
US10628877B2 (en) | 2011-10-27 | 2020-04-21 | Ebay Inc. | System and method for visualization of items in an environment using augmented reality |
US11475509B2 (en) | 2011-10-27 | 2022-10-18 | Ebay Inc. | System and method for visualization of items in an environment using augmented reality |
US11113755B2 (en) | 2011-10-27 | 2021-09-07 | Ebay Inc. | System and method for visualization of items in an environment using augmented reality |
US20140359065A1 (en) * | 2011-12-27 | 2014-12-04 | Zte Corporation | Terminal device and user information synchronization method |
US20130230248A1 (en) * | 2012-03-02 | 2013-09-05 | International Business Machines Corporation | Ensuring validity of the bookmark reference in a collaborative bookmarking system |
US20130246218A1 (en) * | 2012-03-15 | 2013-09-19 | Balaji Gopalan | Remote third party payment of in-store items |
US11651398B2 (en) | 2012-06-29 | 2023-05-16 | Ebay Inc. | Contextual menus based on image recognition |
US10846766B2 (en) * | 2012-06-29 | 2020-11-24 | Ebay Inc. | Contextual menus based on image recognition |
US20140007012A1 (en) * | 2012-06-29 | 2014-01-02 | Ebay Inc. | Contextual menus based on image recognition |
US10162492B2 (en) | 2012-09-11 | 2018-12-25 | Microsoft Technology Licensing, Llc | Tap-to-open link selection areas |
US20140089772A1 (en) * | 2012-09-27 | 2014-03-27 | Gururaj B. Shetty | Automatically Creating Tables of Content for Web Pages |
US20140189538A1 (en) * | 2012-12-31 | 2014-07-03 | Motorola Mobility Llc | Recommendations for Applications Based on Device Context |
US20140189519A1 (en) * | 2012-12-31 | 2014-07-03 | W.W. Grainger, Inc. | Systems and methods for providing website browsing history to repeat users of a website |
US20140258816A1 (en) * | 2013-03-08 | 2014-09-11 | True Xiong | Methodology to dynamically rearrange web content for consumer devices |
US9571601B2 (en) * | 2013-05-23 | 2017-02-14 | Tencent Technology (Shnzhen) Co., Ltd. | Method and an apparatus for performing offline access to web pages |
US20140379839A1 (en) * | 2013-05-23 | 2014-12-25 | Tencent Technology (Shenzhen) Co., Ltd. | Method and an apparatus for performing offline access to web pages |
US9946689B2 (en) * | 2013-11-08 | 2018-04-17 | Sony Interactive Entertainment Inc. | Generating a moving display image having a native image plane and a web image plane appearing continuously on a same plane |
US20150135044A1 (en) * | 2013-11-08 | 2015-05-14 | Sony Computer Entertainment Inc. | Information processing apparatus, information processing method, computer program, and recording medium |
US20150242377A1 (en) * | 2014-02-24 | 2015-08-27 | Autodesk, Inc. | Logical structure-based document navigation |
US10338896B2 (en) * | 2014-03-21 | 2019-07-02 | Ptc Inc. | Systems and methods for developing and using real-time data applications |
US10185732B2 (en) * | 2015-07-02 | 2019-01-22 | Fuji Xerox Co., Ltd. | Information processing apparatus, information processing method, and non-transitory computer readable medium |
US20170026381A1 (en) * | 2015-07-22 | 2017-01-26 | AVG Netherlands B.V. | Content access validation system and method |
US11140168B2 (en) * | 2015-07-22 | 2021-10-05 | AVAST Software s.r.o. | Content access validation system and method |
WO2017015276A1 (en) * | 2015-07-22 | 2017-01-26 | Avg Netherlands B.V | Content access validation system and method |
CN107864677A (en) * | 2015-07-22 | 2018-03-30 | 爱维士软件私人有限公司 | Access to content verifies system and method |
US11126680B2 (en) * | 2015-12-31 | 2021-09-21 | Ca, Inc. | Dynamic web page navigation |
US11907645B2 (en) | 2016-09-01 | 2024-02-20 | Verint Americas Inc. | System and computer-implemented method for in-page reporting of user feedback on a website or mobile app |
US11232252B2 (en) * | 2016-09-01 | 2022-01-25 | Verint Americas Inc. | System and computer-implemented method for in-page reporting of user feedback on a website or mobile app |
US20180101645A1 (en) * | 2016-10-12 | 2018-04-12 | Terarecon, Inc. | System and method for medical image interpretation |
US10445462B2 (en) * | 2016-10-12 | 2019-10-15 | Terarecon, Inc. | System and method for medical image interpretation |
US11586698B2 (en) | 2019-05-03 | 2023-02-21 | Microsoft Technology Licensing, Llc | Transforming collections of curated web data |
US11475098B2 (en) * | 2019-05-03 | 2022-10-18 | Microsoft Technology Licensing, Llc | Intelligent extraction of web data by content type via an integrated browser experience |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2687473C (en) | System and method for content navigation | |
US10592515B2 (en) | Surfacing applications based on browsing activity | |
US20090006338A1 (en) | User created mobile content | |
US8046428B2 (en) | Presenting video content within a web page | |
US8001478B2 (en) | Systems and methods for context personalized web browsing based on a browser companion agent and associated services | |
JP4565004B2 (en) | Integration of personalized portal and web content syndication | |
CN103235776B (en) | Search result information is presented | |
US20070198741A1 (en) | Accessing information | |
US20090083232A1 (en) | Search results with search query suggestions | |
US20020026441A1 (en) | System and method for integrating multiple applications | |
US20070208704A1 (en) | Packaged mobile search results | |
US20070067305A1 (en) | Display of search results on mobile device browser with background process | |
US20230221837A1 (en) | Coalescing Notifications Associated with Interactive Digital Content | |
KR20090005097A (en) | Systems and methods of transforming data for web communities and web applications | |
US10943063B1 (en) | Apparatus and method to automate website user interface navigation | |
EP2399209A1 (en) | Content access platform and methods and apparatus providing access to internet content for heterogeneous devices | |
US9679081B2 (en) | Navigation control for network clients | |
EP3039583A1 (en) | A system and method for completing a user query and for providing a query response | |
US20170351779A1 (en) | System and method for operating a browsing application | |
WO2017196407A1 (en) | Forking digital content items between digital topical environments | |
US20080034059A1 (en) | Providing an interface to browse links or redirects to a particular webpage | |
JP2008046879A (en) | Page display device, page display method and computer program | |
US20140310099A1 (en) | Device and system for searching, displaying and operating websites and other electronic content | |
KR101372580B1 (en) | Method, terminal, server and computer-readable recording media for providing browser ui | |
Bowie | Adaptation of a Webshop for Mobile Devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: RESEARCH IN MOTION LIMITED, CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MALLICK, MARTYN;REEL/FRAME:020940/0491 Effective date: 20080509 Owner name: FAT FREE MOBILE INC., CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KIM, SANG-HEUN;STINSON, CHARLES LAURENCE;REEL/FRAME:020940/0153 Effective date: 20080508 |
|
AS | Assignment |
Owner name: FAT FREE MOBILE INC., ONTARIO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KIM, SANG-HEUN;STINSON, CHARLES LARRY;REEL/FRAME:026850/0475 Effective date: 20110901 |
|
AS | Assignment |
Owner name: RESEARCH IN MOTION LIMITED, ONTARIO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FAT FREE MOBILE INC.;REEL/FRAME:026967/0350 Effective date: 20110916 |
|
AS | Assignment |
Owner name: BLACKBERRY LIMITED, ONTARIO Free format text: CHANGE OF NAME;ASSIGNOR:RESEARCH IN MOTION LIMITED;REEL/FRAME:037033/0643 Effective date: 20130709 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE |