The present invention allows data to be imported and applied from outside sources, including by importing data from outside sources into a user interface. Particular embodiments of the disclosed technology are applied in the context of online procurement.
The development and proliferation of richer, interactive and more robust websites has created various technical problems which are particularly apparent in the online procurement space as faced by procurement professionals. Procurement professionals are forced to choose between providing their users either static catalogs that can easily go out of date and/or are missing key information such as current inventory levels or releasing control and allowing them to shop supplier controlled B2B eCommerce sites. The two ends of the spectrum present two sets of problems:
A first problem presented by modern supplier website catalogs is that instead of presenting all the information on the screen in one request, they present more limited information and expect the user to interactively work with the source site to reveal the information of interest. However, traditional scraping techniques fail in this environment because measures designed to protect website security such as throttling and blocking prevent traditional scraping techniques from retrieving the additional data. This cannot be solved simply by using more powerful hardware, since the security measures that thwart attacks supported by much greater resources (e.g., distributed denial of service attacks) also resist traditional scraping techniques.
Even when a traditional scraping strategy is not blocked, it would not be feasible from a user experience perspective. To illustrate, consider retrieving data from a website that provides pages with 25 results. Most websites return results in the 3-5 second range. In turn, a typical crawl/scraping strategy would be to grab 4 pages of 25. As a result, it would take 12-20 seconds (3-5 seconds/page×4 pages) for a traditional/scraping strategy to retrieve even the top 100 results for a search. Furthermore, even with this delay, all that would be obtained is the very basic information on the search page (not what is on the detail page). To get all the detail pages would take crawling an additional 100 pages (1 per item), which would entail another 300-500 seconds of delay—a completely unacceptable amount of time for any kind of interaction that is intended to be responsive to user input. In theory, it may be possible to address this by doing a massive crawl of each of the result pages in parallel. However, in practice this type of activity has been thwarted by security measures such as mentioned previously. Accordingly, it is beyond the functional capacity of computers using traditional crawling/scraping techniques to accommodate and capture data from web sites that interactively reveal data.
Referring to
Even if a supplier website provides an application programming interface (“API”) to allow a set of results to be returned in response to a specific request, the API returns only the data for which it is configured and does not typically allow the user a mechanism to discover additional data even if such is available. Alternatively, crawling a rich website to retrieve all the data possibly needed and then store that data locally in a cache may result in performance degradation and stale data. Furthermore, caching may be utilized to provide more recent data for comparison purposes but will only work for items that have been actually cached (so users may not be aware of additional items available through the supplier, if the system does not display them, since such items have not been retrieved from the underlying source yet). This also takes up memory and, if large, may slow down processing time. Finally, caching each item so that it may be used in subsequent searches may result in misleading or irrelevant search results. For example, a search for “paper” might return “litmus paper” causing “litmus paper” to be stored in the cache. A subsequent search for “litmus” (a dye obtained from certain lichens that is red under acid conditions and blue under alkaline conditions) might return the “litmus paper” when the user was really seeking “litmus dyes”.
Secondly, interactive websites and catalogs present issues for relevancy algorithms which are typically designed with the premise of having all the product data available before sorting begins using traditional index sorting techniques. These systems cannot handle the addition of real-time product data that enters the system asynchronously that must be sorted into a pre-existing list and updated dynamically. One way to achieve a real-time experience, with more traditional supplier catalogs, is by updating an internal cache and re-running the sorting algorithm. A more dynamic solution, however, will introduce efficiencies not currently available via caching or API calls.
A third problem relates to procurement professionals' frustration with current systems and their ability to guide end users to buying products compliant with procurement rules. However, in traditional procurement systems, users often pick a product that is more expensive or non-preferred for convenience reasons since it may be easier to find from a supplier they know. Procurement professionals want the system to check with other suppliers and suggest or enforce purchase of the compliant product. Within traditional procurement systems, alternate supplier checking can only be done against static data such as hosted suppliers or manually configured contracts. Thus, end-users may still ignore procurement rules and pick non-compliant products.
A punchout catalog comprises an ecommerce website with the ability to return a shopping cart back to a procurement system through CXML (or other formats) to allow a buyer to purchase from a supplier without having to tediously enter the product information themselves. But, products outside of punchout catalogs (e.g., on the supplier's actual website) are not available inside the traditional procurement systems and cannot be checked.
Finally, procurement professionals use static contracted suppliers to ensure best pricing for purchasing. These contracts may be revisited periodically to optimize shifts in suppliers and pricing but these occasional audits do not provide real-time, deep visibility into volatile price data to track changes as they happen and purchase the best price item either with the contracted suppliers, the open market or even similar products to capture price competition data.
Thus, improvements are called for to address issues presented by modern, interactive supplier websites.
Embodiments designed to solve the problems created by modern supplier catalogs and progressive needs in the e-procurement space include a mix of technologies uniquely combined to achieve efficiencies and functionality heretofore unavailable to both buyers and suppliers. For example, some embodiments of the disclosed technology may simply retrieve an initial result page (e.g., the first 25 results, thus having a delay of only 3-5 seconds rather than 12-20 seconds to retrieve the first 100 results). Then, in such embodiments, if the user shows no interest in more items, no further results would be captured. Alternatively, if the user is interested in a particular item, an embodiment may only retrieve data for that item (again, associated with only a 3-5 second delay, rather than with a 300-500 second delay for capturing detail information for the first 100 results of a search). Technologies that may be used in various embodiments to address problems with prior art systems include:
Embodiments in which Asynchronous, Progressive Requests Accommodate Websites which Interactively Reveal Data
In an embodiment, a system for integrating a procurement system with a web-based source including content associated with one or more products, may comprise:
The web-based source may be a punch-out. A complete set of product information, also called a product profile, may be gathered via progressive and asynchronous communication between the procurement computer system and the web-based source. The “automatically interacting” step may be repeated to trigger said web-based source to display still further items of additional information on said first page and said automatically locating, retrieving, organizing and displaying steps may also repeated until complete as per user configurable settings. Complete may equal a predetermined count of results, percentage of completion, or input/trigger from an end-user. Complete may also be linked to a percentage of relevance in the data returned. Complete may also be a time-bounded parameter (i.e., results may be progressively gathered until a preset amount of time has expired). Finally, hybrids of completion models may also be configured in the system such as an adaptive model that includes a preset time-bound parameter that may be overridden if a percentage of relevance dips below a second present parameter. The first displaying step may occur before said product profile is complete (e.g., before the data specified in the user configurable data has all been located, retrieved and organized). These settings offer further control in terms of the speed to presenting the list to the end-user's display as it more naturally mimics human behavior (or, at least, the way humans should behave when presented with potentially limitless information, cross-links, deep-links, etc.). These controls may be configured to reduce lag from falling into “rabbit-holes” of additional information.
A set of progressive requests may be made from an agent, deployed in said procurement system that may be configured with JS/JQuery scripting (or other equivalents scripting or computer-executable instructions), via a browser node to said punch-out.
Asynchronous communication may be achieved by configuring said agent to extract at least two sets of product information that are progressively requested from said web-based source.
The procurement computer system may include a federator component that reconciles at least two sets of product information extracted from a web-based source via a plurality of scripted agents.
Automatically displaying the set of enhanced product information, including said one or more items of additional information, may comprise displaying said one or more items of additional information from said first page in a different color for a predetermined length of time.
Automatically displaying a set of enhanced product information, including said one or more items of additional information, may comprise ordering one or more of said a first set of product information and said one or more items of additional information from said first page according to a set of rules-based preferences preconfigured in said procurement computer system. Said set of rules-based preferences may be preconfigured to block one or more items from being displayed as part of said set of enhanced product information. Said ordering step may be based on a set of one or more weighted factors including supplier preference, supplier item relevance, category relevance, and user preference.
Embodiments in which Asynchronous, Progressive Requests Solve Multi-Page Hyperlinked Sources
In an embodiment, a system for integrating a procurement system with a web-based source including content associated with one or more products, may comprise:
Said web-based source may be said web-based source may be chosen from a punch-out, a hosted catalog, or a punch-in catalog. Said “automatically interacting” step may be repeated to trigger said web-based source to display still further items of additional information on said second page and said automatically locating, retrieving, organizing and displaying steps may also be repeated until complete as per user configurable settings. The process of collecting such information (both on the initial page as well as any other asynchronous requests for further information) may comprise a number of agents that are designed to find or locate the information, pull or retrieve that information from the source and then perform any ETL (extract-transform-load) type operations to ensure that the format/structure/language or any other conventions used in the source are translated to align and/or reconciled into a cohesive body of information for organization and display to an end-user. Complete may equal a predetermined count, percentage of completion, or input from an end-user. The first displaying step may occur before said product profile is complete.
A complete set of product information may be gathered via progressive and asynchronous communication between the procurement computer system and the web-based source. Said system may permit a set of progressive requests to be made from an agent, deployed in said procurement system that is configured with JS/JQuery scripting, via a browser node to said punch-out. Asynchronous communication may be achieved by configuring said agent to extract at least two sets of product information that are progressively requested from said web-based source.
The procurement computer system may include a federator component that reconciles at least two sets of product information extracted from a web-based source via a plurality of scripted agents. Automatically displaying said set of enhanced product information, including said one or more items of additional information, may comprise displaying said one or more items of additional information from said second page in a different color for a predetermined length of time. Automatically displaying a set of enhanced product information, including said one or more items of additional information, may comprise ordering one or more of said a first set of product information and said one or more items of additional information from said second page according to a set of rules-based preferences preconfigured in said procurement computer system. Said set of rules-based preferences may be preconfigured to block one or more items from being displayed as part of said set of enhanced product information. Said ordering step may be based on a set of one or more weighted factors including supplier preference, supplier item relevance, category relevance, and user preference.
Embodiments in which Asynchronous, Progressive Requests Solve Multiple Multi-Page Hyperlinked Sources
In an embodiment, a system for integrating a procurement system with a plurality of web-based sources including content associated with one or more products, may comprise:
Web-based sources may be punch-outs from a plurality of vendors.
Said “automatically interacting” step may be repeated to trigger said web-based sources to display still further items of additional information on said second page and said automatically locating, retrieving, organizing and displaying steps may also be repeated until complete as per user configurable settings. Complete may equal a predetermined count, percentage of completion, or input from an end-user. The first displaying step may occur before said product profile is complete. Each computerized agent may complete a set of product information gathered via progressive and asynchronous communication between the procurement computer system and its assigned web-based source.
Said system may permit a set of progressive requests to be made from each computerized agent, deployed in said procurement system that is configured with JS/JQuery scripting, via a browser node to said web-based source. Asynchronous communication may be achieved by configuring each of said computerized agents to extract at least two sets of product information that are progressively requested from said web-based source.
The procurement computer system may include a federator component that reconciles each set of product information extracted by each agent from its assigned web-based source with every other set of product information extracted by extracted by every other agent from its assigned web-based source.
Automatically displaying said set of enhanced product information may comprise ordering every set of product information according to a set of rules-based preferences preconfigured in said procurement computer system.
Said set of rules-based preferences may be preconfigured to block one or more items from being displayed as part of said set of enhanced product information. Said ordering step may be based on a set of one or more weighted factors including supplier preference, supplier item relevance, category relevance, and user preference.
Displaying said set of enhanced product information may further comprise harmonizing each set of product information retrieved into a set of facets to create a visual comparison of each item in each set of product information to display to the end-user wherein said harmonizing step may comprise one or more of the following steps:
Upon an end-user placing a first item into a shopping cart component, the procurement system may perform a price check against a preconfigured set of punch-outs using one or more facets associated with said first item to determine if said first item is available from a different vendor source for a lower price and, if so, said procurement system may alert said end-user. Said procurement system may automatically execute an instruction to replace said first item with a second, lower-priced item determined from the previous step.
Embodiments in which End-Users can Populate Shopping Carts Outside of the Procurement System
A system for integrating a procurement system with a plurality of web-based sources including content associated with one or more products, comprising:
Real time refers to a level of computer responsiveness that an end-user senses as sufficiently immediate or that enables the computer to keep up with some external process (for example, to present visualizations of a data set as it actually changes). A real-time system has been described as one which “controls an environment by receiving data, processing them, and returning the results sufficiently quickly to affect the environment at that time.” (https://en.wikipedia.org/wiki/Real-time computing#cite note-3 citing Martin, James (1965). Programming Real-time Computer Systems. Englewood Cliffs, N.J.: Prentice-Hall Inc. p. 4. ISBN 0-13-730507-9). In e-procurement, the difficulty in creating a real-time system lies in coordinating multiple supplier e-catalogs, with differing information/facets, in different formats and catalog structures into a single platform which provides relevancy, compliance, accuracy, simplicity and efficiency within a single user session.
Architecture
Referring to
Referring to
In an embodiment, the flows may be asynchronously constructed so data can be received and processed in real-time to quickly deliver the data to the end user and permit decision making within a single session without requiring the additional time to harvest data from the underlying site. Additionally, the steps described in executing an input query, communicating with punch-outs, locating/retrieving information, interacting with the punch-outs, and displaying data may occur automatically. Automatic, as used in embodiments described herein, means, with regard to a device or process, working by itself with little or no direct human control. In some embodiments the additional processing steps may be entirely machine controlled. In other embodiments, an end-user may have a limited ability to interact with items through the ARP system (e.g., click an “expand item” button) but the system will translate that interaction into automatic commands that the agent will then execute against the web-based source. In a controlled embodiment, the speed achieved via an ARP system may return results within five (5) seconds. Conversely, a synchronous process might require thirty-sixty (30-60) seconds to provide a result. Actual return times may be dependent on processing power, speed of the underlying sites, internet connection and more. The asynchronous process will, however, return results more quickly than prior art systems (using similar external environments) because modern websites are generally single page design (meaning the page is all or mostly viewable without scrolling up or down). That is, instead of presenting all the information on the screen in one request, they present more limited information and expect the user to interactively work with the single page (e.g., via links) to reveal the information of interest. Traditional parsing techniques fail in this environment because all the data is not on the page and additional data is retrieved interactively. Within procurement systems, most product data is still held in hosted catalogs where real-time may be approximated through a punchout (i.e., where a supplier site implements an API to return results in a transactional way). One request is intended to get all information at once (even though the underlying supplier websites do not present it that way). An agent may retrieve all of the possible data in one pass which may be cached and passed through a parsing pipeline. Instead of a traditional request/response paradigm, embodiments which could be implemented based on this disclosure may make progressive requests of the agent as the end user interacts with the data. The agent is able to push data (e.g., utilizing WebSockets) as it is extracted and maintain user state such that requests and responses can flow in both directions asynchronously enabling interactive navigation and extraction of rich single page design websites.
Referring to
Referring to
One or more Agents (231 . . . N) may interact with multiple supplier sites to gather items from each site's search pages. This may be accomplished directly or even using the underlying punchout. The end user experience, however, preferably will not resemble that of a punchout experience, even when that is the underlying source, because the end user experience preferably will not jump to a supplier website. This would represent the procurement system losing control of its user. From the end-user's perspective, they will preferably remain in the procurement system even if the platform is using a punchout to get the data it needs. Another advantage to this paradigm is that the supplier site does not need to implement anything specific.
A live crawl retrieving data in real-time from a punchout search in the background solves the problem of a given supplier web site being too large or complex to realistically crawl. Results are achieved in approximately the same amount of time (e.g., a few seconds longer (e.g., five seconds) than searching the website directly so long as external factors outside the control of the platform do not interfere (e.g., slow connection speeds from the end-user). An end user gains a drastic advantage over searching the supplier website directly because they are able to view results in a single harmonized platform from multiple suppliers. Data may be gathered progressively to provide more immediate results and then updated continuously as the session continues and more data is pushed back to the ARP Server (220). In an embodiment, a limited data set might be initially returned (e.g., results from one or a limited set of pages accessible within a limited amount of time as configured according to user preference such as result set retrievable within 5 seconds). As more data is retrieved by Agents (231A . . . N), the initial result set may be updated continually. Alternatively, a “more results” feature may be provided to override the preconfigured timing restraints and perform longer searching for richer result sets in either the initial or subsequent retrieval calls. In another embodiment, “more results” may be configured to initiate an Agent(s) (231 . . . N) call to provide results from subsequent pages on the result set (i.e., many end-users do not go past the first page so many sites have moved to lazy loading or some other in-page mechanism). But even with lazy loading, if a user asks for more information, the platform can act like an end-user and retrieve the new information loaded on the page for dynamic updating of the result set in the platform.
In an embodiment, a Client Browser (210) comprises the end-user browser. Websockets (or equivalent computer communications protocol which provides full-duplex communication channels over a single transmission control protocol (TCP) connection) may be configured to support an asynchronous but bidirectional communication stream. A user interface embodied in the client browser is configured to process data pushed to it in real-time from the ARP server. In this case, Web Sockets may be used to allow the ARP Server to push items to the browser. A FederatorRequest/FederatorResponse object may be used for communication. The object may utilize XML, JavaScript Object Notation (JSON) or other equivalents to structure the data exchanged between the ARP and the user interface.
In an embodiment, an ARP Server (220) may utilize an interactive, asynchronous data extraction to make progressive requests of Agent(s) (231 . . . N) as the end user interacts with a procurement platform. Agent(s) (231 . . . N) may push data back to the ARP Server, as such data is extracted and maintain user state such that requests and responses can flow in both directions asynchronously, enabling interactive navigation and extraction of rich single page design websites. Referring to
Within the ARP Server, a Federator (221) may combine data from multiple Agents (231 . . . N). As new results are received, a Federator (221) may order items and generate combined facet information. An ARP Server may also provide punchout functionality to get punchout uniform resource locators (URLs) to pass along to the Agent(s) (231 . . . N). Agent(s) (231 . . . N) may also manage customer specific items like punchout but, in a preferred embodiment, having an ARP Server perform the punchout keeps Agent(s) (231 . . . N) stateless so they simply do an extraction and are done. Additionally, it is preferred for the ARP Server to cache the startURL so each subsequent agent request does not require a new startURL to maintain performance. In another embodiment, the Agent(s) (231 . . . N) may also be utilized to search locally stored catalogs so that the user gets integrated search results (including item details) from all suppliers in one place and the ability to purchase the items across multiple disparate suppliers and/or local catalogs as if the entire resultset was within a local catalog.
One or more Agents (231 . . . N) may run within an Agent Server (230) that may run in a separate environment form the ARP Server (120). One or more ARP servers (220) may access Agents (231 . . . N) running in an Agent Server (230) thereby sharing those resources across multiple end-users. Centralized agents (versus distributed agents customized for each end-user customer) creates efficiency through sharing resources that are also easier to maintain. In a preferred embodiment, a platform may comprise agents matched to a given supplier site. Any changes to the supplier site that “break” the system may be fixed and that fix will allow the agent to work again across all end-users. In this way, many end-users across multiple, disparate end-clients may utilize the same agent since it has been configured to work with a specific supplier site but may be customized with the end-users preferences with regard to that interaction.
Referring to
As results are returned to the ARP Server (220), they may be stored in a resultset cache instead of an item cache. This prevents the injection of low relevance items into the system for all types of queries.
A Grid Server (240) may support large numbers of browsers on a machine or spread across a cluster of machines. Since real-time works best with massive parallelism, a Grid Server (240) allows parallel real-time searches across multiple machines. In an embodiment, a Selenium Grid Server and Nodes may be utilized to achieve a real-time experience via a rich JS-based site through a browser. In one embodiment, a Grid Server (240) may be configured with Selenium based Chrome Browser extensions due to popularity (although any browser extensions may be configured within a Grid Server (240) to achieve broad browser capabilities). Alternatively, a NodeJS/Cheerio Server (241 . . . N) may be utilized instead of a Grid Server (140) if full browser support is not needed (e.g., if a given webpage does not load data dynamically via AJAX). Also, a combination of these technologies may be utilized in a hybrid environment to provide both scalability as well as increased speed wherever possible.
In an embodiment, a search may execute as follows:
Real-Time Cross-Catalog Relevance with Tuning
In an embodiment, a platform uses a unique stream-based relevancy technique where each product item is sorted based on supplier and item relevance as it enters the system. Supplier and item relevance may be determined via a core configuration set through a user interface by an end-user which identifies desired suppliers, categories, and items. Results may be customized on-the-fly using other filters but the core configuration serves as the starting point.
This supports the asynchronous addition of items. The resulting data is streamed to the interface with position information so items may enter the system in any order but be presented to the user in preferred relevance order. The algorithm may be configured with multiple weighted factors including supplier preference, supplier item relevance, category relevance, and user preference. An initial configuration, based on empiric testing, may be initially set. In an embodiment, each factor may be prioritized on a scale of 0.000 to 1.000 and then each factor may be further weighted according to user preference (e.g. 20%) to compute a score which will present results in a certain order. In another embodiment, tuning may be achieved via a Supplier Tag Priority Score calculates a score based on a template of attributes that may be configured for each supplier (e.g. minority owned business) with an associated priority that translates to a score. In an alternative embodiment, a Supplier Relevance Score may be calculated based on the matching count normalized to total number of items (i.e., score quantifies the quality of coverage for a query for a supplier or do they have a lot of items for a query?) A Supplier Category Relevance Score may be used based on human categorized suppliers and automated item categorization. This score quantifies how well the results match the categories assigned to that supplier. In another embodiment, a Query Category Relevance Score quantifies how well the results match the category for the query based on automated query categorization and automated item categorization. The scores may be combined using a configurable weighted system (one company might weight tag priority high, another might weight query category high). Ultimately, this provides a combined supplier score which may be used to meld the results from multiple suppliers together in a way that balances supplier preference and supplier relevance.
One difficulty in harmonizing results from different catalogs (local+external supplier; competitive suppliers; etc.) is that each catalog may store its items with different sets of facets. Facets may represent a conceptual grouping of features under a specific umbrella category (e.g., the facet “height” might include a variety of measurements from which one or more may be selected to create a specific filter on the result set. Referring to
Additional facets may be presented with an indicator that such facets are unique to the specific supplier. In an alternative embodiment, text mining can be utilized to “fill in” missing facets to allow for a richer comparison of items. Other embodiments may utilize categories to “fill in” missing facets as categories are generally part of the structured data present in an e-catalog. Finally, facets that are not readily apparent from an early query (e.g., price which may only be revealed interactively after multiple clicks) may be surfaced at a later point in the interaction. Thus, a facet may become dynamically available while the user is interacting with the platform.
In an embodiment with a single supplier, if the result set is filtered to a specific supplier, all available facets may be shown in the user interface (note from
Real-Time Guided Buying
Referring to
In another embodiment, a preset list of universal categories may be configured to work across a multitude of customer needs or even industries. These categories may be turned off/on to allow for a coarser filter set according to user preference. Each supplier may be mapped into the pre-selected universal categories. A supplier can self-identify their categories. And the customer can override (so Staples might say they sell Computer Equipment, but a customer could override that to not use Staples for computer equipment). A supplier can also be set as a preferred supplier in a category to boost its relevancy. A query classifier may identify the category of a query. The classifier can be trained with past purchase data using UNSPSC classification. It can also use the supplier site's own classification mapped to a preselected set of categories or determine a set of classifiers based on text mining. Through categorization and classification, a user may be guided to a more finite set of relevant results.
Referring to
Administrative interfaces may be provided to set up and manage guided buying rules suitable for a given company.
Real-Time Universal Alternate Supplier Checking and Real-Time Price Dispersion Analytics
In an embodiment, once an end-user selects an item for purchase and adds it to their cart, the ARP server (220) may initiate a call to Agents (231 . . . N) to run a search across all suppliers using key product attributes such as suppler, part #, and price to search for alternate products to find, suggest (and even enforce) the purchase of items consistent with procurement rules (such as the best price item). Machine learning may be achieved to allow comparison across items with different names or even comparable items by loading historical purchase data and tokenizing it into terms and UNSPSC categorization. Category based classifiers which recognize varied terminology and word form may be built using, for instance, a variety of classifiers. In an embodiment a modified Naïve Bayes classifier may be utilized. A Naive Bayes classifier assumes that the presence of a particular feature in a class is unrelated to the presence of any other feature. The ARP Server may further track price history and present graphs to educate end-users with a picture of price volatility for a given item or type of items over a certain period of time.
Referring to
The ARP Server may log if the user switched sources and, if so, which item the user selected to enable tracking of the benefits of this feature. Other intelligence may be calculated and presented related to price dispersion. A bar chart may be created showing the top 100 products configured in the analytics server (from left to right). Each product is basically a stacked bar with the bottom bar in the stack being the min price and it has the dispersion above it (so the total bar is the max). This gives a quick visual of price dispersion across the training set. Hovering could show details (min price, actual price paid, max price). The bar chart may be configured to allow interaction from the user so that if it is clicked, a filtering means focuses on that bar (or portion thereof) to send a request against one or more supplier sources in real-time to perform a price check.
Real-Time Porting of Shopping Items from a Disparate Source with Rules
Referring to
Thus, the provision, in real-time, of embodiments including at least one of the following features (or various combinations thereof) comprising: dual mode agents, relevance tuning, guided buying, alternative supplier checking and price dispersion analytics solves specific problems engendered by both traditional procurement systems as well as the ability of procurement systems to interact with modern supplier sources. These embodiments solve problems across the spectrum from poor, stale supplier data and high rogue spend to savings leak and lack of timely insights.
When used in the claims, a statement that something is “based on” something else should be understood to mean that something is determined at least in part by the thing that it is indicated as being “based on.” When something is required to be completely determined by a thing, it will be described as being “based EXCLUSIVELY on” the thing.
When used in the claims, “means for using asynchronous progressive requests to accommodate websites which interactively reveal data” should be understood as a means plus function limitation as provided for in 35 U.S.C. § 112(f) where the function is “using asynchronous progressive requests to accommodate websites which interactively reveal data” and the corresponding structure is a platform comprising an ARP Server (220), an agent server (230), and a grid server (240) configured as described in the discussion of those elements and their sub-elements (e.g., federator (221)).
When used in the claims, “means for using asynchronous progressive requests to accommodate multi-page hyperlinked sources” should be understood as a means plus function limitation as provided for in 35 U.S.C. § 112(f) where the function is “using asynchronous progressive requests to accommodate multi-page hyperlinked sources” and the corresponding structure is a platform comprising an ARP Server (220), an agent server (230), and a grid server (240) configured as described in the discussion of those elements and their sub-elements (e.g., federator (221)).
When used in the claims, “means for using asynchronous progressive requests to accommodate multiple multi-page hyperlinked sources” should be understood as a means plus function limitation as provided for in 35 U.S.C. § 112(f) where the function is “using asynchronous progressive requests to accommodate multiple multi-page hyperlinked sources” and the corresponding structure is a platform comprising an ARP Server (220), an agent server (230), and a grid server (240) configured as described in the discussion of those elements and their sub-elements (e.g., federator (221)).
This is a non-provisional of, and claims priority from, U.S. provisional patent application 62/520,756, filed in Jun. 16, 2017. The disclosure of that application is hereby incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5317737 | Barton | May 1994 | A |
5628011 | Ahamed et al. | May 1997 | A |
5712989 | Johnson et al. | Jan 1998 | A |
5768580 | Wical | Jun 1998 | A |
5859972 | Subramaniam et al. | Jan 1999 | A |
5940821 | Wical | Aug 1999 | A |
6028605 | Conrad et al. | Feb 2000 | A |
6038560 | Wical | Mar 2000 | A |
6119101 | Peckover | Sep 2000 | A |
6175830 | Maynard | Jan 2001 | B1 |
6233586 | Chang et al. | May 2001 | B1 |
6263342 | Chang et al. | Jul 2001 | B1 |
6272488 | Chang et al. | Aug 2001 | B1 |
6330714 | Hicks et al. | Dec 2001 | B1 |
6370541 | Chou et al. | Apr 2002 | B1 |
6446083 | Leight et al. | Sep 2002 | B1 |
6463430 | Brady et al. | Oct 2002 | B1 |
6466933 | Huang et al. | Oct 2002 | B1 |
6484166 | Maynard | Nov 2002 | B1 |
6513027 | Powers et al. | Jan 2003 | B1 |
6556976 | Callen | Apr 2003 | B1 |
6578046 | Chang et al. | Jun 2003 | B2 |
6647383 | August et al. | Nov 2003 | B1 |
6650998 | Rutledge et al. | Nov 2003 | B1 |
6654813 | Black et al. | Nov 2003 | B1 |
6665681 | Vogel | Dec 2003 | B1 |
6728704 | Mao et al. | Apr 2004 | B2 |
6732160 | Ambrosini et al. | May 2004 | B2 |
6735760 | Dice | May 2004 | B1 |
6768999 | Prager et al. | Jul 2004 | B2 |
6772153 | Bacon et al. | Aug 2004 | B1 |
6778975 | Anick et al. | Aug 2004 | B1 |
6792416 | Soetarman et al. | Sep 2004 | B2 |
6792601 | Dimpsey et al. | Sep 2004 | B1 |
6859937 | Narayan et al. | Feb 2005 | B1 |
6868525 | Szabo | Mar 2005 | B1 |
6895407 | Romer et al. | May 2005 | B2 |
6920448 | Kincaid et al. | Jul 2005 | B2 |
6922691 | Flank | Jul 2005 | B2 |
6941294 | Flank | Sep 2005 | B2 |
6944611 | Flank et al. | Sep 2005 | B2 |
6988099 | Wiser et al. | Jan 2006 | B2 |
6994612 | Cron | Feb 2006 | B2 |
7031961 | Pitkow et al. | Apr 2006 | B2 |
7035870 | McGuire et al. | Apr 2006 | B2 |
7069308 | Abrams | Jun 2006 | B2 |
7073133 | Hughes et al. | Jul 2006 | B2 |
7085771 | Chung et al. | Aug 2006 | B2 |
7113939 | Chou et al. | Sep 2006 | B2 |
7117214 | Wiser et al. | Oct 2006 | B2 |
7177818 | Nair | Feb 2007 | B2 |
7177879 | Flank et al. | Feb 2007 | B2 |
7181438 | Szabo | Feb 2007 | B1 |
7188153 | Lunt et al. | Mar 2007 | B2 |
7222090 | Oddo | May 2007 | B2 |
7272833 | Yaung | Sep 2007 | B2 |
7330846 | Dirisala et al. | Feb 2008 | B1 |
7343371 | Ibuki et al. | Mar 2008 | B2 |
7418444 | Flank et al. | Aug 2008 | B2 |
7451161 | Zhu et al. | Nov 2008 | B2 |
7461024 | Montgomery | Dec 2008 | B2 |
7519605 | Vailaya et al. | Apr 2009 | B2 |
7536386 | Samji et al. | May 2009 | B2 |
7555448 | Hsieh | Jun 2009 | B2 |
7565425 | Vleet et al. | Jul 2009 | B2 |
7567953 | Kadayam et al. | Jul 2009 | B2 |
7567963 | Shpeisman et al. | Jul 2009 | B2 |
7610585 | Shpeisman et al. | Oct 2009 | B2 |
7620572 | Bowman et al. | Nov 2009 | B2 |
7660783 | Reed | Feb 2010 | B2 |
7703030 | Smirin et al. | Apr 2010 | B2 |
7707167 | Kishore et al. | Apr 2010 | B2 |
7721192 | Milic-Frayling et al. | May 2010 | B2 |
7739218 | Arguello et al. | Jun 2010 | B2 |
7756750 | Venkiteswaran | Jul 2010 | B2 |
7761385 | Hutchison et al. | Jul 2010 | B2 |
7801879 | Jones | Sep 2010 | B2 |
7860852 | Brunner et al. | Dec 2010 | B2 |
7865358 | Green et al. | Jan 2011 | B2 |
7957985 | Kashani et al. | Jun 2011 | B2 |
7996282 | Scott et al. | Aug 2011 | B1 |
8036957 | Ettl et al. | Oct 2011 | B2 |
8046273 | Welter et al. | Oct 2011 | B2 |
8051450 | Robarts et al. | Nov 2011 | B2 |
8055673 | Churchill et al. | Nov 2011 | B2 |
8060513 | Basco et al. | Nov 2011 | B2 |
8126882 | Lawyer | Feb 2012 | B2 |
8166016 | Higgins et al. | Apr 2012 | B2 |
8204797 | Wanker | Jun 2012 | B2 |
8249885 | Berkowitz et al. | Aug 2012 | B2 |
8266130 | Jones et al. | Sep 2012 | B2 |
8396859 | Green et al. | Mar 2013 | B2 |
8554755 | Richardson et al. | Oct 2013 | B2 |
8744922 | Altschuler | Jun 2014 | B2 |
9070164 | Venkiteswaran | Jun 2015 | B2 |
9552597 | Godsey | Jan 2017 | B2 |
9607324 | Reed et al. | Mar 2017 | B1 |
9996863 | Venkiteswaran | Jun 2018 | B2 |
10007729 | Reed et al. | Jun 2018 | B1 |
20010014905 | Onodera | Aug 2001 | A1 |
20010034659 | Kobayashi | Oct 2001 | A1 |
20010037332 | Miller et al. | Nov 2001 | A1 |
20010039592 | Carden | Nov 2001 | A1 |
20020065744 | Collins | May 2002 | A1 |
20020077929 | Knorr et al. | Jun 2002 | A1 |
20020082952 | Johnston | Jun 2002 | A1 |
20020120685 | Srivastava et al. | Aug 2002 | A1 |
20020147656 | Tam et al. | Oct 2002 | A1 |
20020165856 | Gilfillan et al. | Nov 2002 | A1 |
20020194208 | Knoll et al. | Dec 2002 | A1 |
20030084010 | Bigus et al. | May 2003 | A1 |
20030120653 | Brady et al. | Jun 2003 | A1 |
20040167827 | Vincent et al. | Aug 2004 | A1 |
20050010561 | de Bois et al. | Jan 2005 | A1 |
20050027611 | Wharton | Feb 2005 | A1 |
20050149538 | Singh | Jul 2005 | A1 |
20050160107 | Liang | Jul 2005 | A1 |
20070027811 | Jackson et al. | Feb 2007 | A1 |
20080040332 | Lee et al. | Feb 2008 | A1 |
20080275719 | Davis et al. | Nov 2008 | A1 |
20080281793 | Mathur | Nov 2008 | A1 |
20080306924 | Paolini | Dec 2008 | A1 |
20090157490 | Lawyer | Jun 2009 | A1 |
20090271212 | Savjani et al. | Oct 2009 | A1 |
20090327006 | Hansan et al. | Dec 2009 | A1 |
20100169228 | Rothley et al. | Jul 2010 | A1 |
20100306080 | Trandal | Dec 2010 | A1 |
20120143721 | Hutchinson et al. | Jun 2012 | A1 |
20120143725 | Hutchinson et al. | Jun 2012 | A1 |
20150262270 | Venkiteswaran | Sep 2015 | A1 |
20160140607 | Urban | May 2016 | A1 |
20170161283 | Reed et al. | Jun 2017 | A1 |
20170366566 | Demirjian | Dec 2017 | A1 |
20180234496 | Ratias | Aug 2018 | A1 |
Entry |
---|
Basware, Realize Tomorrow's Financial Goals Today, downloaded Jul. 19, 2018 from https:// www.basware.com/en-us/about-basware, 2018, 20 pgs. |
BirchStreet Systems, Procure-to-Pay on Demand, downloaded Jul. 19, 2018 from https://www.birchstreetsystems.com/about-us/, 2017, 6 pgs. |
CapGemini, Annual Report, 2017, downloaded Jul. 19, 2018 from https://reports.capgemini.com/2017/wp-content/uploads/2018/03/CapG_RA17_UK-2.pdf, 41 pgs. |
Cheeriojs/cheerio, GitHub, Inc., 2018, downloaded from https://github.com/cheeriojs/cheerio. |
Coupa Software, Inc., Why Coupa, downloaded Jul. 19, 2018 from https://www.coupa.com/why-coupa/, 2018, 25 pgs. |
Determine, Inc., About us, downloaded Jul. 19, 2018 from https://www.determine.com/about-us, 2018, 12 pgs. |
GEP, Who we are: About GEP, downloaded Jul. 19, 2018 from https://www.gep.com/company, 2018, 28 pgs. |
Holst, C., “Infinite Scrolling, Pagination or “Load More” Buttons? Usability Findings In eCommerce,” Smashing Magazine, Mar. 1, 2016, downloaded from https://www.smashingmagazine.com/2016/03/pagination-infinite-scrolling-load-more-buttons/, 23 pgs. |
Ivalua, Inc., About Ivalua: The Procurement Empowerment Platform, downloaded Jul. 19, 2018 from https://www.ivalua.com/company/about-us/, 2018, 10 pgs. |
Perfect Commerce, About Us, downloaded Jul. 19, 2018 from https://www.linkedin.com/company/perfect-commerce, 2017, 4 pgs. |
PhantonJS—Scriptable Headless Browser, Mar. 2018, dowloaded from http://phantomjs.org/, 1 pg. |
Proactis, ReThink Commerce, downloaded Jul. 19, 2018 from https://www.proactis.com/us/company/about/, 2018, 24 pgs. |
Real-Time Computing, description, May 24, 2018, dowloaded from https://en.wikipedia.org/wiki/Real-time_computing, citing Martin, J., Programming Real-time Computer Systems, Prentice-Hall, Inc., Englewood Cliffs, NJ, 1965, p. 4, https://en.wikipedia.org/wiki/Real-time_computing#cite_note-3, 3 pgs. |
SAP SE, Procurement and Networks, downloaded Jul. 19, 2018 from https://www.sap.com/products/e-procurement.html, 2018, 12 pgs. |
SeleniumHQ—Browser Automation, Apr. 4, 2018, downloaded from https://www.seleniumhq.org/, 3 pgs. |
Version 4.0 of ViniSyndicate Catalog Integration System™ for E-Procurement. Dec. 6, 2010, 2 pgs. Downloaded from ProQuest Direct on the Internet on Oct. 17, 2014. |
Wax Digital Limited, A Little Bit About Wax Digital, downloaded Jul. 19, 2018 from https://www.waxdigital.com/who-we-are/, 2018, 21 pgs. |
www.ask.com—Website of fetching answer to any question asked owned by InterActiveCorp. Viewd Apr. 8, 2010. |
www.clusty.com—Website of combining several top search engines owned by Vivisimo, Viewed Apr. 8, 2010. |
www.facebook.con—Website of social networking owned by Facebook, Inc. Viewed on Apr. 8, 2010. |
www.google.com—Website of hunting for text in webpages owned by Google Inc. Viewed Apr. 8, 2010. |
www.linkedin.com—Website of business-oriented social networking. Viewed on Apr. 8, 2010. |
www.myspace.com—Website of social networking owned by News Corporation. Viewed Apr. 8, 2010. |
www.yahoo.com—Website of knowledge-sharing for the community. Viewed Apr. 8, 2010. |
U.S. Appl. No. 12/692,117, filed Jan. 22, 2010, by Reed et al. |
U.S. Appl. No. 15/889,815, filed Feb. 6, 2018, by Venkiteswaran. |
U.S. Appl. No. 16/016,931, filed Jun. 25, 2018, by Reed et al. |
U.S. Appl. No. 16/053,157, filed Aug. 2, 2018, by Hutchinson et al. |
U.S. Appl. No. 60/336,057, filed Nov. 30, 2001. |
U.S. Appl. No. 61/146,967, filed Jan. 23, 2009, by Reed et al. |
U.S. Appl. No. 61/146,999, filed Jan. 23, 2009, by Reed et al. |
U.S. Appl. No. 61/372,688, filed Aug. 11, 2010, by Reed et al. |
U.S. Appl. No. 61/418,936, filed Dec. 2, 2010, by Hutchinson et al. |
U.S. Appl. No. 61/418,947, filed Dec. 2, 2010, by Hutchinson et al. |
U.S. Appl. No. 62/520,756, filed Jun. 16, 2017, by Reed et al. |
“Glovia Rolls Out a Powerful, Web-Enabled Configuration Solution.” Business Editors and High-tech Writers. Business Wire. New York: May 16, 2001, p. 1, Retrieved via ProQuest on Feb. 27, 2010. |
http://findarticles.com/p/articles/mi_hb3381/is_200011/aLn8119940/, Vinimaya Inc. (business to business online shopping services), Purchasing, Nov. 16, 2000, (p. 1). |
http://findarticles.com/p/articles/mi_hb5932/is_2001 0/ai_n23885081/, Vinimaya Upgrades ViniSyndicate. (Brief Article) (Product Announcement), The online Reporter, Oct. 15, 2001, (p. 1). |
http://findarticles.com/p/articles/mi_mOEIN/is_2000_Nov_6/ai_66626613/, “Vinimaya Expands B2B e-Procurement Platform to 20 Verticles; B2B Marketplaces and Suppliers Can Join the Network to Instantly Reach Fortune 2000 Purchasing Managers,” Business Wire, Nov. 6, 2000 (pp. 1-3). |
http://findarticles.com/p/articles/mLmOEIN/is_2000_Oct_11/aL65946458/, “Vinimaya Partners with AnswerPal to Establish B2B Content Development Arm,” Business Wire, Oct. 11, 2000, (pp. 1-2). |
http://kapowtech.com/index.php/about-us, “About Kapow Technologies,” Kapow Technologies website, 2009. |
http://www.inc.com/inc5000/2008/company-profile.html?id-200836760, “Company Profile,” Inc. 5000, 2009. |
Letter from PurchasingNet, Inc., May 24, 2006 (4 pages). |
Vinimaya website screenshots, Vinimaya website, purported 2000, pp. 1-3. |
Number | Date | Country | |
---|---|---|---|
62520756 | Jun 2017 | US |