The invention relates to databases, and in particular, to a multi-contextual, multi-dimensional database optimized for processing of concepts.
Conventional databases are typically designed with a single purpose in mind, within a closed system. There is a growing interest in the marketplace to share data in order to have multiple systems interoperate and, in some cases, benefit from a larger body of experience.
Much research has been done over the years to solve the challenge of a uniform representation of human knowledge. Solutions ranging from fixed taxonomies and ontologies to the more recent specification for the Semantic Web have made noble attempts at overcoming these challenges, but important gaps remain. Persistent problems can be summarized as follows:
The system, method, and devices of the invention each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this invention, its more prominent features will now be briefly discussed.
In one aspect, there is a computer-implemented method of processing records in a database, the method comprising a) calculating, by a processor, a source quality for each source in the database based on records associated with the source; b) applying, by a processor, user preferences corresponding with a user request to search the database, wherein the user request comprises a source quality range, and a query expression; and c) determining, by a processor, the records in the database that satisfy the user request, wherein the determined records match the source quality range.
In another aspect, there is a computer-implemented system for processing records in a database, the system comprising means, operable on a processor, for calculating a source quality for each source in the database based on records associated with the source; means, operable on a processor, for applying user preferences corresponding with a user request to search the database, wherein the user request comprises a source quality range, and a query expression; and means, operable on a processor, for determining the records in the database that satisfy the user request, wherein the determined records match the source quality range.
In another aspect, there is a computer-implemented system for processing records in a database, the system comprising a memory; and a processor configured to calculate a source quality for each source in the database based on records associated with the source; apply user preferences corresponding with a user request to search the database, wherein the user request comprises a source quality range, and a query expression; and determine the records in the database that satisfy the user request, wherein the determined records match the source quality range.
In yet another aspect, there is a computer-implemented method of processing records in a database. The method comprises evaluating, by a processor, all records in the database that are associated with a same phenomenon or object. The method further comprises applying, by a processor, user preferences corresponding with a user request. The method further comprises determining, by a processor, the records in the database that satisfy the user request.
The following detailed description of certain embodiments presents various descriptions of specific embodiments of the invention. However, the invention can be embodied in a multitude of different ways as defined and covered by the claims. In this description, reference is made to the drawings wherein like parts are designated with like numerals throughout.
The terminology used in the description presented herein is not intended to be interpreted in any limited or restrictive manner, simply because it is being utilized in conjunction with a detailed description of certain specific embodiments of the invention. Furthermore, embodiments of the invention may include several novel features, no single one of which is solely responsible for its desirable attributes or which is essential to practicing the inventions herein described.
This system builds on the premise that mankind will never agree on a single definition of anything. Broad collaboration will always result in a multitude of data sets describing the same experiment or object—each claiming to be the definitive representation. Likewise, there will always be a multitude of definitions or classifications each vying to be the authority. The prevailing approach to database design or data mining today is to restrict input data sources as a means of overcoming this problem. As a result, not only do designers unwittingly introduce a bias that affects all system results, but they effectively ignore the inherent volatility of information: it is in a constant state of update, addition and revision.
In contrast, the system and method described herein embraces the aforementioned social and cultural aberrations by describing a system that performs the equivalent of an Esperanto language, optimized for machine rather than human processing of complex, imperfect data sets. Further, the system provides a logical mechanism for storing a multitude of related versions of a concept and the means for resolving disparities in a common fashion, thus constricting ambiguity to a minimum. The potential benefits from this invention are immeasurable. Traditionally, researchers have been largely relegated to data mining information generated within their own limited domain without the benefit of understanding the related successes and failures of other comparable international efforts. This system provides a foundation for the creation and maintenance of a single body of human knowledge and experience—thus increasing by several orders of magnitude, the velocity and efficiency of innovation and learning.
The system is focused on solving the Achilles heel of machine analysis of knowledge—the creation of a universal knowledge repository, such as a multidimensional, context-rich database or data structure, that reflects the nature of the real world. The system describes methods for taking advantage of the fact that any given concept may be represented in a hundred different ways. Rather than selecting one record as “authoritative” like conventional methods, this system analyzes all the versions in a multi-step process to distill the raw material to a series of unique patterns representing human concepts optimized for machine analysis. Each record is analyzed for its relative context in the source document, subject-matter templates, semantic trees and other source documents to build a statistical model representing the aggregation of all perspectives on the topic. This process effectively produces a single abstracted answer with the highest confidence level.
The system applies to both physical and virtual objects (e.g., a book and a digital file) as well as ideas or language elements (e.g., concepts, nouns, verbs, adjectives). Data records can be imported from, or exported to a multitude of static or linked file formats such as: text, MS Word, hypertext markup language (HTML), extensible markup language (XML), and symbolic link (SYLK). Rather than attempting to force the world into a single view, the system supports multiple perspectives/values for any given object and provides the consumer/user with a way for dynamically setting filters based on variables such as information source, source authority, record robustness, timeliness, statistical performance, popularity, etc.
Example uses are as follows:
Referring to
Referring to
Each record in the system data repository 200 can include the following features (Entries are either selected from a predefined list of valid terms or validated against a criteria):
In the data repository 200, fields, records and clusters may be delimited by symbols or advanced syntax like XML. The specification shows a flattened, expanded record but implementation is preferred in a relational or linked structure. Each data entry preferably includes attributes clarifying information relevant to interoperability, e.g., format, rate, measurement system, data type, etc.
Referring to
Referring to
Referring to
The system may comprise a parse unstructured data module 610 configured to map unstructured data into data organized in a context-rich data structure. The system may comprise a structured data entry module 620 configured to receive data input from a source which is compatible with a context-rich data structure. The source could be, for example, a user.
The system may comprise a subject template resource module 630 configured to receive data organized from the parse unstructured data module 610 and the structured data entry module 620. The subject template resource module 630 is configured to look up each element of the object in one or more topic structures such as ontologies, taxonomies, or lists related to the selected template. The upper and lower tree elements for each word are retrieved and stored as a reference to the word along with an identification of what resource is used for the match. A contextualization process is run to calculate results for the newly acquired subject terms. Each calculated context value resulting from the foregoing processes is then compared to each field of the template in order to determine the probability of a match with previously analyzed objects of the same meaning.
The system may comprise a qualitative assessment module 650 configured to receive input from the subject template resource module 630 and then look up the recorded attributes in a table for each category in order to calculate a qualitative score for such things as sources, authors or other deterministic variables.
The system may comprise a context-rich mapping module 660 configured to receive input from the qualitative assessment module 650 and then add further information into the structured data.
The system may comprise a universal knowledge repository 670 configured to store data in the form of context-rich data clusters that have a logical structure that facilitates efficient access by any one of many data retrieval engines such as: data mining tools, relational databases, multi-dimensional databases, etc. The universal knowledge repository 670 may be configured to receive structured data from the context-rich mapping module 660. The data stored in the universal knowledge repository 670 may be accessed by other modules. The universal knowledge repository 670 may be any suitable software or hardware for data storage. In one embodiment, the universal knowledge repository 670 is a database.
The system may comprise a search module 690 configured to access the universal knowledge repository 670 for a search directly or via a network. The search module 690 may be any tools or programs suitable for returning a set of search results by searching a database based on a user query request, including search engines provided by Google Inc., Microsoft or Verity.
The system may comprise a filter module 680 in connection with the universal knowledge repository 670 and the search module 690, all connected directly or via a network. The filter module 680 is configured to interpret user preferences from a user message that indicates how to manage ambiguous data sets, and then provide the query syntax containing relevant variables for the search module 690.
The system may comprise an interaction module 692 in communication with the universal knowledge repository 670 and the search module 690, all connected directly or via a network. The interaction module 692 is configured to interact with a user to narrow a search result returned by the search module 690.
The system may comprise a data request evaluation module 694 configured to receive a user query and return a final search result to the user. The data request evaluation module 694 is configured to manage requests for access to and delivery of data stored in the universal knowledge repository 670 by communicating to the filter module 680 and/or the search module 690.
The system may comprise an accounting module 640 configured to communicate with other modules in the system to track user activities such as data submission and for administrative purposes such as billing, credit, or reporting. The accounting module may be useful for, for example, applications where searching or data entry is a service for fee or where detailed user auditing is required.
The system may be implemented in any suitable software or hardware. In an exemplary embodiment, the system may be implemented in one or more software applications. Each module may run on any suitable general purpose single- or multi-chip microprocessor, or any suitable special purpose microprocessor such as a digital signal processor, microcontroller, or a programmable gate array. The system may further comprise a memory for data storage. The processor may visit the memory, for example, in the process of performing any of the modules discussed here.
In the exemplary method, a data stream is received and then parsed into one or more grammatical elements (e.g. word, sentence, paragraph, etc.), assigned a unique identification code and attributes as to what other elements it is a member of (e.g. a word is a member of a sentence, a paragraph and a page). Depending upon the origin of the data, other key field may be extracted such as: source, date, author, descriptive markup language (e.g. XML, HTML, SGML), etc. Each element is stored in a suitable memory structure together with associated links.
The method starts at a block 1510, where an input data string or stream is parsed into one or more grammatical objects (e.g. word, sentence, paragraph, etc.). The input data string may be received, for example, from an external web crawler, a data stream such as RSS, or a conventional file transfer protocol. A reference to the location of each grammatical object within the data string is stored. A unique identification number is assigned to each object and stored in memory.
Next at a block 1520, words within each grammatical object are looked up in the index to determine equivalents to one or more words. The equivalent may include, for example, synonym in the same language or a word or word group in a foreign language having equivalent meaning. In one example, English is used as the system reference language and the data being parsed is French. Each word is looked up in all foreign language indexes to determine the best translation and then a pointer to each language equivalent word is stored. In one embodiment, numbers, measures, and all other non-Grammatik objects are converted using the respective cultural indexes.
Moving to a block 1530, each word is statistically analyzed to determine a probability score indicating how close the word is related to each subject matter field. A series of statistical routines are applied to each element parsed in the previous processes in order to calculate results that uniquely reflect the word positions and relative associations within the object. This result is then compared to an archive of subject matter specific templates that contain similar context-values of other known objects that belong to the subject field represented by the template. If the match results in a probability result over a certain threshold, a link is established in both the record of the object and in the template. The pointer to each word is then stored in at least one subject matter index.
Next at a block 1540, a value is stored for each attribute within each object. The attributes of each object may include, e.g., source, author, date, time, location, version, security level, and user permissions. In one embodiment, not all attributes within an object have a value stored. One or more attributes may be left unassigned.
Referring to
Process 620 begins at a start state and moves to state 1610 where a user logs on to the system (e.g., server 510,
Proceeding to state 1615, process 620 starts an accounting log. In some applications, data entry is a service for fee or where detailed user auditing is required. The Accounting module 640 (
Proceeding to state 1630, process 620 generates a new record or copies/inherits from an existing record and, at state 1635, assigns a unique identification code to the record. Continuing at state 1640, process 620 stores, in certain embodiments, the user ID, date, time and location for each data modification.
Advancing to state 1645, process 620 calls upon the Subject Template and Resource module 630 (
Proceeding to state 1655, processing moves to the Qualitative Assessment module 650 (
Proceeding to state 1660, processing continues at the Context-rich Mapping module 660 (
The method looks up each element of the parsed object in one or more topic structures such as ontologies, taxonomies or lists related to the selected template. An example of the template is illustrated in
The method starts at a block 1710, where a first object is loaded. Next at a block 1720, each object is looked up in template index to identify one or more related templates. Moving to a block 1730, a reference link is established between an object and each related template. Next at a block 1740, the results from block 1730 are compared to values stored in the index of subject templates.
If a match is found at a block 1750, the method moves to a block 1760. At the block 1760, the associates are stored with both the template and the object before the method moves next to block 1770. If no match is found at block 1750, the method jumps to block 1770.
Next at block 1770, statistical analysis of each object in relation to another object is performed. The analysis result is then stored in the index with pointers to the objects. As described earlier, each object could be, e.g., a word, a sentence, a paragraph, an article, and so on.
Moving to a block 1780, mathematical analysis is performed of other objects in the associated template. Again, the analysis result is stored in the index with pointers to the objects. In one embodiment, pointers to templates are stored as parallel syntax for each object.
Next at a block 1790, a word is looked up from the container in a semantic tree to retrieve upper and lower tree elements for storage or association with the word. The semantic tree could be, for example, several different ontologies or taxonomies.
In the method, the attributes recorded in the object are looked up in a table for each category in order to calculate a qualitative score. In one example, the source of the information in the object comes from a French government agency with a high score indicating that the source has been authenticated, the data is valid, and has been of high quality in past experience. The score is returned for association with the element and the source table is updated.
The method starts a block 1820, where an object is loaded. Moving to a block 1830, the object is looked up in associated table. The table could be, for example, SOURCE, SYSTEM, DATA, or AUTHOR. Next at a block 1840, attributes associated with the object is read. In one embodiment, a mathematical function is applied to generate a score. In another embodiment, a stored score is retrieved.
Last at a block 1850, the score/value associated with the object is returned. In one embodiment, the score/value indicates the quality of the data object.
In this method, the first word of the first element of the current object is first loaded into the Primary Source record of a mapping table, such as the mapping table illustrated in
The method starts at a block 1910, where, for each object, source values of the object and of parallel syntaxes are analyzed to generate unique string values, which are indicative of a narrow meaning or concept. Each parallel syntax expresses a different level of abstraction from the primary source. In one example, it may be possible to have several source documents that appear to present conflicting information but following the process described here, the second highest parallel syntax might reveal that all the documents merely express the same idea in different terms. The concept strings are then stored in the index.
Moving to a block 1920, a parallel syntax record is created for each object where each source word has parallel field entry.
Moving to a block 1930, context-rich data clusters are created as concatenated strings of delimited values or references that group contextual data related to the object into logical structures. The logical structures may be, for example, a field, a record, a document, URLs, a file or a stream.
Next at a block 1940, the context-rich data cluster may optionally be exported to a data exchange format (e.g., XML, HTML, RTF, DBF, PDF). In the data exchange format, reference links are retrieved together with page layout/rendering attributes.
The method starts at a block 2010, where a user query message is received and loaded. The user query message may be in various formats. In the exemplary embodiment, the message is in the format of the request message illustrated in
Moving to a block 2020, message fields are parsed according to the message format and stored in a registry.
Next at a block 2030, each parsed field is loaded and a lookup is performed in the profile database. In the profile database, a requestor identification number is linked to an authorized person or entity. Based on the requestor identification number provided in the user query message, parameters related to a particular use may be determined, such as security level, render level preference, permissions, and billing rate. The render level preference indicates the depth or robustness of information desired for the application. Depending upon the user permissions and render level preference, a query reply may contain several words or several terabytes.
In another embodiment, the parsed message may further comprise one or more of the following: a template identification code, a response identification, a query expression, a set of source quality parameters. The template identification code indicates if the search query is to be directed to a specific element of a subject-matter specific template. The response identification refers to specific information needed to send a reply to the requesting party. The query expression may be any one of many query syntaxes in use such as SQL. The set of source quality parameters indicates how the raw data will be filtered prior to conducting the query so as to conform with the requesting party's qualitative restrictions. The qualitative restrictions may pertain to, for example, source, author, data, system, etc.
One example is illustrated earlier in
Moving to a block 2040, the template identification code is looked up if it is provided in the user query message. A template corresponding to the template identification code is then retrieved.
Next at a block 2050, certain user variables (e.g., source quality) are loaded into the query filter.
Moving to a block 2060, the user query message and filter variables are sent to a search module such as the search module 690 as described earlier in
Next at a block 2070, search results are received from the search module. In one embodiment, a determination is made as to whether the received search results reflect two or more plausible search paths matching different subject templates.
Moving to a block 2080, the user query and its results are logged into the requestor's profile and the template profile for tracking.
Next at a block 2090, the results are forwarded to the user in accordance with the user's preferences. In some cases, additional user input is required in order to further refine the search result to a single subject area.
The method starts at a block 2110, where one or more user filter parameters are received from a parsed user query message. Next at a block 2120, a table may be created for storing each filter parameter. Moving to a block 2130, each filter parameter value is looked up in the parameter index to determine proper query syntax in order to achieve the desired search result. Next at a block 2140, the syntax message is passed to the search module as described in
The method starts at a block 2210, where a query reply including a search result is received from a search module (e.g., the search module 690 in
Moving to a block 2230, it is determined whether there are less than two subject trees. If the answer at block 2230 is yes, the method moves to a block 2280. If the answer at block 2230 is no, the method then moves to a block 2240.
Next at block 2240, the user profiler associated with the user issuing this query and templates are evaluated to determine which subject trees have the highest probability of satisfying the user query. Moving to a block 2250, a message is sent to the user requesting him to select one of the trees representing a path, for example, which is most likely to narrow the search result. Next at a block 2260, a reply is received from the user and a new search query is generated based on the current user query and the user reply. Moving to a block 2270, the new query is sent to the search module and the method moves back to block 2220.
At block 2280, it is determined whether the matches in the search result exceed a user-defined preference. If the answer at block 2280 is yes, the method goes back to block 2220. Otherwise, the method moves to a block 2290.
At block 2290, a final search result is forwarded to the user. The final search result may be narrower than the original search result included in the query reply from the search module.
Next at a block 2292, information related to the current search is stored in user profile and subject matter profile for future reference.
One example embodiment of the system would be the creation of a comprehensive, industry-wide database with full transparency. One of the main inhibitors to free trade is the imperfect availability of real-time commerce information. Referring to the domestic grocery industry as an example, many participants up and down the value chain from consumer to manufacturer make daily decisions with impartial information. A consumer who wants to purchase a list of products at the lowest possible price can rarely afford to comparison shop every product on the list. The industry exploits this fact by running promotions on certain products to draw a consumer in the door on the expectation of making up the difference with higher margins on other products.
All parties stand to gain if this system were implemented. To illustrate the point, this discussion focuses on the consumer-retailer benefits, but it will become apparent that it is equally applicable to other value chain participants as well. A service provider operating the system 400 (
The end result of the above process is a real-time knowledge repository that provides consumers with near perfect insight into what products are available on the best terms from a retailer. Moreover, the context-rich mapping and subject specific template has created associations for each product record so that consumers can instantly see which retailer is the best for their specific shopping list taking in consideration special offers from related parties, available stock, and other incentives.
A consumer might access the system 400 shown in
The foregoing description details certain embodiments of the invention. It will be appreciated, however, that no matter how detailed the foregoing appears in text, the invention may be practiced in many ways. It should be noted that the use of particular terminology when describing certain features or aspects of the invention should not be taken to imply that the terminology is being re-defined herein to be restricted to including any specific characteristics of the features or aspects of the invention with which that terminology is associated.
While the above detailed description has shown, described, and pointed out novel features of the invention as applied to various embodiments, it will be understood that various omissions, substitutions, and changes in the form and details of the device or process illustrated may be made by those skilled in the technology without departing from the spirit of the invention. The scope of the invention is indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
This application is a continuation of U.S. application Ser. No. 16/921,689, filed Jul. 6, 2020, entitled SYSTEM AND METHOD FOR MANAGING CONTEXT-RICH DATABASE, which is a continuation of U.S. application Ser. No. 13/103,875, filed May 9, 2011, entitled SYSTEM AND METHOD FOR MANAGING CONTEXT-RICH DATABASE, which is a divisional of U.S. application Ser. No. 11/656,885, filed Jan. 22, 2007, entitled SYSTEM AND METHOD FOR MANAGING CONTEXT-RICH DATABASE, issued as U.S. Pat. No. 7,941,433, which claims the benefit of U.S. Provisional Patent Application No. 60/760,729 filed on Jan. 20, 2006 entitled “SYSTEM AND METHOD FOR INFORMATION RETRIEVAL”, and U.S. Provisional Patent Application No. 60/760,751 filed on Jan. 20, 2006 entitled “SYSTEM AND METHOD FOR STANDARDIZING THE DESCRIPTION OF INFORMATION”, all of which are incorporated herein by reference in their entirety. This application is related to U.S. application Ser. No. 17/093,463, filed on Nov. 9, 2020, which is a continuation of U.S. application Ser. No. 13/437,362, filed on Apr. 2, 2012, which is a continuation of U.S. application Ser. No. 11/625,761, filed on Jan. 22, 2007, and titled “SYSTEM AND METHOD FOR CONTEXT-RICH DATABASE OPTIMIZED FOR PROCESSING OF CONCEPTS”, issued as U.S. Pat. No. 8,150,857, all of which are hereby incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
60760729 | Jan 2006 | US | |
60760751 | Jan 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11656885 | Jan 2007 | US |
Child | 13103875 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16921689 | Jul 2020 | US |
Child | 17939850 | US | |
Parent | 13103875 | May 2011 | US |
Child | 16921689 | US |