COMPUTER BASED LEARNING SYSTEM FOR ANALYZING AGREEMENTS

The described system may contain one of more processor based module which attempt to automate the process of verifying that vendors are in compliance with relevant requirements.

BACKGROUND

Seldom does a business exist which does not require vendors. The relationship between vendors and clients is often governed by contracts. Contracts are often dense documents which have a variety of formats and are written using legalese which is a challenge to understand. In addition, customers often want to be sure that the vendors are following required protocols which are often backed up by documents. For example, if the customer wants to be compliant with a certification organization, the vendors used by the company also have to demonstrate compliance with the certification requirements. Trying to verify that the vendors are following the required protocols or requirements is a significant challenge as collecting the paperwork for verification and actually reading the paperwork takes a significant amount of time and effort.

SUMMARY

The following presents a simplified summary of the present disclosure in order to provide a basic understanding of some aspects of the disclosure. This summary is not an extensive overview. It is not intended to identify key or critical elements of the disclosure or to delineate its scope. The following summary merely presents some concepts in a simplified form as a prelude to the more detailed description provided below.

The described system may contain one of more processor based module which attempt to automate the process of verifying that vendors are in compliance with relevant requirements. The system may communicate a self-assessment request to a vendor and the system may receive a self-assessment response from the vendor. In response to the self-assessment determined to be acceptable, the system may determine whether the vendor is due for a random audit. In response to the random audit being determined to be due, the random audit may begin which may entail receiving contracts, reviewing contracts, noting exceptions and updating a customer user dashboard. In response to the random audit not being determined to be due, the customer user dashboard may be updated. Whether the self-assessment is determined to be acceptable may take on a variety of forms. In some embodiments, a simple word comparison may be used. Logically, the determination may be more complex and the system may learn from past contracts to better understand whether future contracts are in compliance with the relevant requirements.

Persons of ordinary skill in the art will appreciate that elements in the figures are illustrated for simplicity and clarity so not all connections and options have been shown to avoid obscuring the inventive aspects. For example, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are not often depicted in order to facilitate a less obstructed view of these various embodiments of the present disclosure. It will be further appreciated that certain actions and/or steps may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required. It will also be understood that the terms and expressions used herein are to be defined with respect to their corresponding respective areas of inquiry and study except where specific meanings have otherwise been set forth herein.

SPECIFICATION

The present invention now will be described more fully with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific exemplary embodiments by which the invention may be practiced. These illustrations and exemplary embodiments are presented with the understanding that the present disclosure is an exemplification of the principles of one or more inventions and is not intended to limit any one of the inventions to the embodiments illustrated. The invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Among other things, the present invention may be embodied as methods, systems, computer readable media, apparatuses, or devices. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.

Seldom does a business exist which does not require vendors. The relationship between vendors and clients is often governed by documents such as contracts. Contracts are often dense documents which have a variety of formats and are written using legalese which is a challenge to understand. In addition, customers often want to be sure that the vendors are following required protocols which are often backed up by documents. For example, if the customer wants to be compliant with a certification organization, the vendors used by the company also have to demonstrate compliance with the certification requirements. Trying to verify that the vendors are following the required protocols or requirements is a significant challenge as collecting the paperwork for verification and actually reading the paperwork takes a significant amount of time and effort.

The described system100illustrated inFIG. 1may contain one of more processor based module which attempt to automate the process of verifying that vendors are in compliance with relevant requirements. The system may communicate a self-assessment request to a vendor and the system may receive a self-assessment response from the vendor. In response to the self-assessment determined to be acceptable, the system may determine whether the vendor is due for a random audit. In response to the random audit being determined to be due, the random audit may begin which may entail receiving contracts, reviewing contracts, noting exceptions and updating a customer user dashboard. In response to the random audit not being determined to be due, the customer user dashboard may be updated. Whether the self-assessment is determined to be acceptable may take on a variety of forms. In some embodiments, a simple word comparison may be used. Logically, the determination may be more complex and the system may learn from past contracts to better understand whether future contracts are in compliance with the relevant requirements.

The system and methods which operate on the system address several technical problems. First, for many corporations have a large number of vendors and even more contracts which have to be reviewed. If there are issues, then follow up is required. Using humans to undertake this task takes a significant amount of time and is prone to errors. The system uses rules to review the documents such that errors will be minimized. Further, the rules may be improved over time by using algorithms to technically analyzed previous documents and learn from them. Finally, blockchain storage methods may be used to communicate and track the documents and results.

The system100may operate over a network. The network may be described variously as a communication link, computer network, internet connection, etc. The system100may include various software or computer-executable instructions stored on tangible memories and specialized hardware components or modules that employ the software and instructions to securely facilitate managing the in-store inventory and transaction process within a checkout-free store of a merchant, as described herein.

The various modules may be implemented as computer-readable storage memories containing computer-readable instructions (i.e., software) for execution by one or more processors of the system100within a specialized or unique computing device. The modules may perform the various tasks, methods, modules, etc., as described herein. The system100may also include both hardware and software applications, as well as various data communications channels for communicating data between the various specialized and unique hardware and software components.

Referring toFIG. 1, the system100control a flow for customers/users and for vendors. At a high level, customers may select that vendors to be invited to use the system and may monitor the vendors progress through the process. Vendors may receive an invitation to be part of the system and may add the relevant data and documents such as upload documents to the system to be analyzed. The vendors may view their status in the system and may be able to update the data in the system.

At a high level, the system100may work as follows:Vendors may address a set of applicable controls by directly answering questions over their level of conformance with each control.The applicable controls may be derived by the answers provided in vendor surveys/questionnaires.Vendor workflow may require the vendors to upload documents which may be called upload documents in complying with their applicable controls.As part of vendor's scoring, the relevance of the upload documents may assessed with respect to the controls they target.Additionally, in terms of scoring methodology:Controls may be defined as mandatory or optional as objective;Controls may have a mandatory document upload requirement;A single document can address upload requirements for multiple controls; andControls may be associated with weights in terms of prioritization or penalties in terms of the failure to meet the conformance criteria.

At a high level, the approach may use a search-inference framework to assess the relevance of an upload document to address an associated control objective. In such search scenario:Each control may be associated with a normalized search query which may be defined in terms of relevant terms, phrases, concepts, and in more advanced stages simple relations captured as subject-predicate-object tuples.The match score of an upload document with its associated control query may be a measure of the upload document's relevance.In case the relevance score is below a threshold (including the lack of a document uploaded in the first place), the match over the control-query may be expanded to all upload documents uploaded by the vendor however relevance score would incur a penalty.

At a high level, the matching of upload documents may take a simplistic form and may become more sophisticated.1. BASELINE SEARCH without external ontologies: May match on exact terms, n-ary expressions (phrases) avoiding stop-words2. ENHANCED SEARCH without external ontologies: May match with query expansion incorporating the following:Search incorporating stemming;Search incorporating synonyms, preferred forms; andSearch incorporating spelling errors.3. ENHANCED SEARCH with external ontologies: May match with queries incorporating concepts and simple relations such as incorporating broader and narrower sense of terms. This stage may require the creation of ontologies and their incorporation into No-SQL Database. Some examples include:Manual thesaurus incorporating broader (generic), and narrower (specific) terms in addition to the preferred terms and synonymsControlled vocabulary with a canonical term for each conceptAuto-generated thesaurus based on co-occurrence statistics

As large vendor document-bases are acquired in no-sql database for advanced analytics, mining, and learning, it may be possible to devise more advanced inference features in support of scoring and document-relevance assessment, going beyond the scope of search methods such as:Term occurrence analysis and weight assignment to certain terms for documents deemed relevant per associated control type;Concept linking which goes beyond the matching on broader/narrower sense of terms/phrases (is-a relationship) and involves finding known associations per control type (utilizes NLP techniques i.e. POS tagging, entity recognition in the text content);Clustering for discovering similar documents (including the assessment of relevance as a feature), on the fly and creating a vector of topics which can be used to measure the relevance of new documents;Mining for association rules, concept correlation in large data sets; andDeep Learning

First Time Customer Onboarding

Referring toFIG. 2, a customer or user first using the system may first need to set up the company in the system. The customer may find the system in a variety of ways. In some situations, the customer may have sought out the solution to the technical problem of managing a large number of contracts. In other embodiments, the customer may have received an email invitation205to try the system such as illustrated inFIG. 2a.

Once the customer accepts the invitation, a one time on-boarding process may being. A wizard or simple guided set up may be used to make the onboarding process easier. The customer may be presented a license agreement210which may be reviewed and accepted by the customer such as illustrated inFIG. 2b. If the license is not accepted, the onboarding process may end. If the license is accepted, information on customer may be requested215to create an account by adding information such as addresses, user names and passwords and an account as illustrated inFIG. 2c. A comprehensive profile220may occur which may include gathering additional information about the customer and the needs of the customer such as whether all agreements and contracts contain arbitration clauses or indemnity clauses as illustrated inFIG. 2d. At block225and as illustrated inFIG. 2evendors of the customer may be added such that the customer may communicate messages to the vendors that materials such as contracts and agreements needs to be added to the system such that the customer can verify the vendor is in compliance with relevant rules set by the customer. A user may skip this step and perform this task once he/she is in the application. A user interface including a side bar may familiarize user with the vendor functionality.

In some embodiments, some of the later steps such as215,220or225may be optional, but the steps may be presented to the user to educate them about the application basic setup. A user may skip these steps but may be presented the navigation to update these information later.

Existing Customer

In some scenarios such as illustrated inFIG. 3, a customer may already be a user of the system. Thus, a returning customers will sign in to the application305as illustrated inFIG. 3aby entering the credentials they established during onboarding described briefly inFIG. 2. Once inside the application, the customer may be presented with help and guidance to get started quickly in the key tasks. They may also be presented with very intuitive and easy to follow task model (navigation et al.) as illustrated inFIG. 3b. User may be navigated inside the application to complete the setup—in this case, building the company profile and defining the organization (Department, et al.) as illustrated inFIG. 3c. Users may also quickly add the Vendor's either manually as illustrated inFIG. 3d, or by importing the formatted list. This process will also help educate users about managing vendors profile in the system before they start the assessment.

Based on the setup with individual customer, each customers may be provided with set of assessment questionnaire (aka Catalogs) as illustrated inFIG. 3e. Customers may view the assessments, but initially the customers may not be able to modify and create new catalogs.

Various options may be presented to the customer once the customer has logged into the system. A dashboard310may be presented which may have a summary of the present status of the vendors in the system. Various reports may be available at block315for quick viewing. The reports may be standard reports or may be reports that are created by the customer. The reports may summarize any aspect of the system that is of interest to the customer.

At block320, the customer may also be able to review information that has been previously entered into the system. For example, the company information may be available to be reviewed and edited, such as the department breakdown at block325and the users and the permissions available to the various users330.

At block335, the customer may also be able to review vendor details on a vendor landing page as illustrated inFIG. 3f. User may also be able to view all about this vendor in one place at block340and as illustrated inFIG. 3g. By selecting the name, he/she may be presented with the Vendor Detail page, that may include Vendor, Company, Assignment (due & past items), etc. The customer may be able to view vendor details assuming some of the vendor details are in the system. If the vendor is not in the system, the vendor may be created in the system at block345. If the vendor is in the system but has not been asked to join the part of the system that tracks adherence to rules, at block350an option to communicate an invitation to the vendor may be available. Either the creation of the new vendor request for data or the invite to join the assessment system may be communicated to the vendor at block355which may be described in relation toFIG. 3g.

An assessment landing page360also may be available. This scenario describes how user may send an assessment to a vendor from “vendor” tab. This scenario assumes that user's has already established Vendors in the system and her/his goal is to send the assignment to complete an assessment to a vendor and watch the progress. The customer may be able to view the assessment detail for each vendor at block365. As illustrated inFIG. 3g, a customer may review the past assignments, currently in assignment in process or if there was an assignment in progress (but not sent to the vendor). As illustrated inFIG. 3h, the customer may also create a new assignment at block370and the assignment may be communicated to the vendor at block375. Before sending the assignment, the user may want to preview the details of the assignment before communicating the assessment to the vendor as illustrated inFIG. 3i. The user may assign a completion date to the assignment as illustrated inFIG. 3j. Once sent, progress and reminders are tracked against this date. Once user has completed the task of sending the assignment, the user may be able to keep track of this assignment from Dashboard as well as from the Vendor's detail page as well as illustrated inFIG. 3k.

The User may also have an inbox380to receive messages from vendors. In addition, at block385the user may have the ability to check on their account such as the time left on a subscription, the number of vendors that are using the system, the dates upcoming for vendor responses, overall responses, etc.

Referring toFIG. 4, from a vendor perspective, if the vendor is new to the system, the vendor may have a separate logical flow. The vendor may receive an email invite at block400to use the system to track assignment of assessments. Once the vendor accepts the invitation, the vendor may have to accept a license agreement at block405. Once the license agreement has been accepted, the vendor may input the personal information for the vendor at block410and may set up a profile for the vendor at block415. The user interface may use a wizard to assist the vendor in setting up the system.

If the vendor is a returning user of the system100, the flow ofFIG. 5may be used and the vendor may log into the system at block500. The vendor may then view a dashboard at block505which may contain status and updates for the vendor. The vendor may also see company information510and information on users and permissions of the users at block515. The vendor may also have an assessment landing page at block520which may contain information on ongoing assessments525and whether assessments are ready to be submitted at block530. The vendor may also have an inbox535to receive notifications from the system and from the user. The vendor may also have access to their account at block540where they can review their status, any fees upcoming, any deadlines, etc.

Referring toFIG. 6, an illustration of a sample flow of the system100from the perspective of the company601, the vendor602and the system603may be disclosed. At block605, a user may set itself up in the system. At block610, a vendor may then be added by the user. At block615, the user may communicate an invitation to the vendor to use the system and provide assessment materials to the system. At block620, The system may communicate the self-assessment request to the vendor. At block625, the vendor may receive the self-assessment request and answer the questionnaire at block630. At block635, the vendor may start the self-assessment review by submitting the requested materials.

At block640, the system may ingest and score the materials from the vendor. At block645, the system may then communicate the self-assessment results to the user. At block650, the user may receive the analysis from the system and may decide whether the assessment meets the minimum assessment criteria at block655. If the self-assessment meets the criteria, at block660the system may create a vendor approval package in the system at block665. The vendor package may be reviewed again at block670and the system may determine whether the package is approved at block670. If the package is approved, it may be saved in the system at block675.

If the self-assessment fails the criteria in block655, a message may be communicated to the customer at block680and at block685the system may communicate a correction request to the vendor. The assessment may take on a variety of forms.

In one embodiment, a relevance score of the uploaded documents which may be referred to as upload documents may be determined with respect to the control. The control may be a document or contract that has been previously reviewed and may be determined to have the desired elements. The control may be defined as mandatory or optional and the elements may be mandatory or optional. The control may have a mandatory document upload requirement for documents considered of high importance. In other words, a vendor may not be able to self-certify as to certain elements and it may be mandatory to upload documents to satisfy certain elements. A single document may be used for multiple controls. The controls may have weights and compliance may be determined based on a weighted score of compliance.

Logically, the relevance of a uploaded document may be compared to a control objective. In some embodiments, each control may be associated with a normalized search query defined to search for relevant search terms, phrases or concepts. In some an embodiment, an exact match may not be required to illustrate that an element is present in a contract/document. For example, a normalized search query may search for subject-predicate-object tuples.

A match score may be determined where the match score may be a measure of the documents relevance where the terms from the document are compared to desired text using at least one of exact text, n-ary expressions, search with stemming, search with synonyms and search with minor errors. The match score may also include comparing the document manual thesaurus incorporating broader/generic and narrower/specific terms in addition to the preferred terms and synonyms/The comparison may include comparing the contract language to a controlled vocabulary with a canonical term for each concept in the contract. In other embodiments, the comparison further includes auto-generating a thesaurus based on co-occurrence statistics. In yet another embodiment, the document comparison may include acquiring large vendor document-base and analyzing the document base using a concept identification algorithm. Further, the comparison may include executing a term occurrence analysis algorithm and assigning a weight assignment to certain terms for documents deemed relevant per associated control type. In yet another embodiment, a concept linking algorithm may be executed to go beyond the matching on broader/narrower sense of terms/phrases to find known associations per control type where the control type may include a NLP techniques such as POS tagging or entity recognition in the text content. The comparison may further include clustering for discovering similar documents (including the assessment of relevance as a feature), on the fly and creating a vector of topics to be used to measure the relevance of new documents.

The comparison may be a learning algorithm. For example, large data sets of previously analyzed contracts may be reviewed and the contracts may be mined for association rules and concept correlation. For example, a set of documents may be split into 4 groups. One group may be used to test an algorithm and the other three groups may be used to train the algorithm. Once the training is complete, the groups may rotate places and the previous test group may become a training group and one of the training group may become the test group. The trained algorithm may then be used to evaluate new contracts received in the future.

Referring again toFIG. 6, the vendor may receive the correction request at block688, may revise the response to the questionnaire at block689and may initiate a correction review at block690. The system may receive corrected materials at block691and the materials may be re-scored by the system at block693. The corrected score may then by communicated to the user at block695. If the score is still below the criteria, the steps680-695may repeat until the vendor scores over the criteria threshold. If the vendor is unable to provide additional materials, the user may make a decision whether to accept the risk of the vendor. If the risk is not acceptable, a message may be communicated from the customer to the vendor at block699and a new vendor may be located. If the risk is acceptable, the system may create a vendor approval package in the system as described with respect to blocks660-675. More specifically, the vendor package may be reviewed again at block670and the system may determine whether the package is approved. If the package is approved, it may be saved in the system at block675.

Looking at the system from another perspective as illustrated inFIG. 7, there may be a plurality of computing levels to be considered. The highest level710may be user insights and actions. From a user interface perspective, the system may have a plurality of applications712. The applications may be on separate servers which may be specifically built to execute the applications. In other embodiments, a single server may execute the various aspects of the applications. In yet a further embodiment, a server may have a plurality of processors with the processors being assigned specific aspects. The applications may include applications for surveys, company-vendor management, template maintenance such as maintaining questionnaires, catalogs, controls, mapping, risk assessments, etc. The user insights may include dashboards714, reporting applications716and applications to provide alerts718.

At another level720, the system may provide service interfaces such as application program interfaces (APIs). The APIs may ease the ability to efficiently and reliably communicate data to the system. There may be an API that covers data access722such as indexing, searching, querying and pre-processing interfaces for structured and unstructured data. There may also be APIs for event notification724, monitoring726and messaging728. The APIs may have specific fields in specific places in specific formats such that communicating with the applications will be known. By having the API be set, other applications may be able to easily work with the system and applications to provide even more options for using the system. Related there may be a data structures to govern the manner of storing and communicating data such that the data may be efficiently understood and communicated.

At another level730, analytics and business logic may be provided. The analytics and business logic may allow for indexing and search stack operations732such as an elastic search cluster. The analytics and business logic may also include text analytics and natural language processing (NLP)734, descriptive and predictive analytics736and business rules738.

At yet another level740, the system manage data. The data management may include data stores742such as structured data stores such as my SQL and may also include artifact data stores such as NoSQL or Hadoop distributed file systems. Data sources744also may be in this level with structured user provided data such as surveys and forms along with artifacts such as documents and binaries.

At yet another level750, an infrastructure layer may be provided. The infrastructure may assist in the cloud provisioned virtual resources and network part of the system752. For example, the virtual hosting and storage aspects of the system may be controlled at this level. In addition, on-demand applications and service streaming such as Amazon Web Services App Stream may be controlled at this level.

The manner of saving the data may occur in a variety of ways. In some embodiments, the data may be stored in a database for easy access and review. In some embodiments, the data may be encrypted for security. In other embodiments, the data may be stored in a cloud based storage system such that the data may be easily accessed by a variety of users using a variety of computing device from a variety of locations.

In other embodiments, the data may be stored in a blockchain format. Blockchain uses a distributed database or ledger that is used to maintain a continuously growing list of records, called blocks. Each block may contain a timestamp and a link to a previous block. A blockchain may be typically managed by a peer-to-peer network collectively adhering to a protocol for validating new blocks. By design, blockchains may be inherently resistant to modification of the data. Once recorded, the data in any given block may not be altered retroactively without the alteration of all subsequent blocks and a collusion of the network majority. Functionally, a blockchain may serve as “an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way. Many users may have copies of the ledger. When information is added to the ledger, information from older entries to the ledger may be compared among the copies of the ledger to ensure the new information belongs in the ledger. The information may then be stored in the various ledgers and the blockchain grows. The advantage of blockchain may be the security and the lack of a need for a centralized authority.

In this implementation, the data for the vendors may be stored in the blockchain. The increase in security may be useful in thwarting attempts to impermissibly manipulate the data. The distributed nature of the data storage may provide comfort to both user and vendors. User may be confident that the data will not be hacked by attacking a central storage location that may be the responsibility of the user. Vendors may be comforted that their data may be safe from being hacked.

By using blockchain, several technical problems may be addressed. Logically, the data may be safer and harder to hack as a result of it being stored in a blockchain. In addition, the blockchain may be more secure than a traditional database. Finally, the software to enable the blockchain may be technically sophisticated and specifically adapted to the needs of the system.

FIG. 8is a high-level block diagram of an example computing environment1000for the system100and method for purchasing and returning items in a checkout-free store, as described herein. The computing device1001may include a server (e.g., the payment processing server, a mobile computing device (e.g., user computing device), a cellular phone, a tablet computer, a Wi-Fi-enabled device or other personal computing device capable of wireless or wired communication), a thin client, or other known type of computing device. As will be recognized by one skilled in the art, in light of the disclosure and teachings herein, other types of computing devices can be used that have different architectures. Processor systems similar or identical to the example systems and methods described herein may be used to implement and execute the example systems ofFIG. 1and methods ofFIGS. 3A and 3B. Although the example system1000is described below as including a plurality of peripherals, interfaces, chips, memories, etc., one or more of those elements may be omitted from other example processor systems used to implement and execute the example systems and methods. Also, other components may be added.

As shown inFIG. 8, the computing device1001includes a processor1002that is coupled to an interconnection bus. The processor1002includes a register set or register space1004, which is depicted inFIG. 10as being entirely on-chip, but which could alternatively be located entirely or partially off-chip and directly coupled to the processor1002via dedicated electrical connections and/or via the interconnection bus. The processor1002may be any suitable processor, processing unit or microprocessor. Although not shown inFIG. 8, the computing device1001may be a multi-processor device and, thus, may include one or more additional processors that are identical or similar to the processor1002and that are communicatively coupled to the interconnection bus.

The processor1002ofFIG. 8is coupled to a chipset1006, which includes a memory controller1008and a peripheral input/output (I/O) controller1010. As is well known, a chipset typically provides I/O and memory management functions as well as a plurality of general purpose and/or special purpose registers, timers, etc. that are accessible or used by one or more processors coupled to the chipset1006. The memory controller1008performs functions that enable the processor1002(or processors if there are multiple processors) to access a system memory1012and a mass storage memory1014, that may include either or both of an in-memory cache (e.g., a cache within the memory1012) or an on-disk cache (e.g., a cache within the mass storage memory1014).

The system memory1012may include any desired type of volatile and/or non-volatile memory such as, for example, static random access memory (SRAM), dynamic random access memory (DRAM), flash memory, read-only memory (ROM), etc. The mass storage memory1014may include any desired type of mass storage device. For example, the computing device1001may be used to implement a module1016(e.g., the various modules as herein described). The mass storage memory1014may include a hard disk drive, an optical drive, a tape storage device, a solid-state memory (e.g., a flash memory, a RAM memory, etc.), a magnetic memory (e.g., a hard drive), or any other memory suitable for mass storage. As used herein, the terms module, block, function, operation, procedure, routine, step, and method refer to tangible computer program logic or tangible computer executable instructions that provide the specified functionality to the computing device1001, the system100, and method300. Thus, a module, block, function, operation, procedure, routine, step, and method can be implemented in hardware, firmware, and/or software. In one embodiment, program modules and routines are stored in mass storage memory1014, loaded into system memory1012, and executed by a processor1002or can be provided from computer program products that are stored in tangible computer-readable storage mediums (e.g. RAM, hard disk, optical/magnetic media, etc.).

The peripheral I/O controller1010performs functions that enable the processor1002to communicate with a peripheral input/output (I/O) device1024, a network interface1026, a local network transceiver1028, (via the network interface1026) via a peripheral I/O bus. The I/O device1024may be any desired type of I/O device such as, for example, a keyboard, a display (e.g., a liquid crystal display (LCD), a cathode ray tube (CRT) display, etc.), a navigation device (e.g., a mouse, a trackball, a capacitive touch pad, a joystick, etc.), etc. The I/O device1024may be used with the module1016, etc., to receive data from the transceiver1028, send the data to the components of the system100, and perform any operations related to the methods as described herein.

The local network transceiver1028may include support for a Wi-Fi network, Bluetooth, Infrared, cellular, or other wireless data transmission protocols. In other embodiments, one element may simultaneously support each of the various wireless protocols employed by the computing device1001. For example, a software-defined radio may be able to support multiple protocols via downloadable instructions. In operation, the computing device1001may be able to periodically poll for visible wireless network transmitters (both cellular and local network) on a periodic basis. Such polling may be possible even while normal wireless traffic is being supported on the computing device1001. The network interface1026may be, for example, an Ethernet device, an asynchronous transfer mode (ATM) device, an 802.11 wireless interface device, a DSL modem, a cable modem, a cellular modem, etc., that enables the system100to communicate with another computer system having at least the elements described in relation to the system100.

While the memory controller1008and the I/O controller1010are depicted inFIG. 10as separate functional blocks within the chipset1006, the functions performed by these blocks may be integrated within a single integrated circuit or may be implemented using two or more separate integrated circuits. The computing environment1000may also implement the module1016on a remote computing device1030. The remote computing device1030may communicate with the computing device1001over an Ethernet link1032. In some embodiments, the module1016may be retrieved by the computing device1001from a cloud computing server1034via the Internet1036. When using the cloud computing server1034, the retrieved module1016may be programmatically linked with the computing device1001. The module1016may be a collection of various software platforms including artificial intelligence software and document creation software or may also be a Java® applet executing within a Java® Virtual Machine (JVM) environment resident in the computing device1001or the remote computing device1030. The module1016may also be a “plug-in” adapted to execute in a web-browser located on the computing devices1001and1030. In some embodiments, the module1016may communicate with back end components1038via the Internet1036.

The system1000may include but is not limited to any combination of a LAN, a MAN, a WAN, a mobile, a wired or wireless network, a private network, or a virtual private network. Moreover, while only one remote computing device1030is illustrated inFIG. 10to simplify and clarify the description, it is understood that any number of client computers are supported and can be in communication within the system1000.

As used herein any reference to “some embodiments” or “an embodiment” or “teaching” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in some embodiments” or “teachings” in various places in the specification are not necessarily all referring to the same embodiment.

Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for the systems and methods described herein through the disclosed principles herein. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the disclosed embodiments are not limited to the precise construction and components disclosed herein. Various modifications, changes and variations, which will be apparent to those skilled in the art, may be made in the arrangement, operation and details of the systems and methods disclosed herein without departing from the spirit and scope defined in any appended claims.