US20120117516A1
2012-05-10
13/348,913
2012-01-12
The present invention allows for an easy-to-use, web-based, schema-less database system that provides organizations the ability to organically model, store, and access information in an iterative and evolutionary manner. Users are encouraged to grow and explore the information domain intuitively. One embodiment is a method of collaboratively managing an entity-relationship graph, including: displaying the entity-relationship graph to a voting user; collecting data on expert status of the voting user indicating whether the voting user is an expert on a given topic; assigning a voting weight to one or more relationships in said entity-relationship graph in response to an input from the voting user and based on the voting user's expert status; and sorting the relationships in the entity-relationship graph based at least on said voting weight.
Get notified when new applications in this technology area are published.
G06F16/211 » CPC main
Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data; Design, administration or maintenance of databases Schema design and management
G06F3/048 IPC
Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements; Input arrangements or combined input and output arrangements for interaction between user and computer Interaction techniques based on graphical user interfaces [GUI]
The present application is a Continuation of and claims priority from U.S. Ser. No. 13/290,106, filed on Nov. 6, 2011 and entitled “SYSTEMS AND METHODS FOR INFORMATION MANAGEMENT USING SOCIALLY CONSTRUCTED GRAPHS,” which itself claims priority from provisional application U.S. Ser. No. 61/412,263, entitled “Simfo Information Management System,” filed on Nov. 10, 2010, the entirety of both of which are hereby incorporated by reference herein.
The present disclosure relates to electronic information systems and in particular, a graph-based information system that provides for flexible, intuitive, and organic development of information models, including socially constructed graphs.
The statements in this section merely provide background information related to the present disclosure and may not constitute prior art.
There exists a gap in current information technologies between spreadsheets and documents with their ease of use and flexibility—and relational databases with their organizational structure, configuration management, and query capabilities. A large number of users are managing a large portion of their information in spreadsheets and documents because of the relatively large investment required to develop and maintain a database. Many organizations never develop databases due to the expertise required to develop and manage a database. In other organizations, databases may exist for certain types of information, but for ad hoc and recently created/acquired information, the information is at least temporarily managed in documents and spreadsheets.
The present invention is directed towards lowering the investment barrier for information management systems by providing an intuitive and organically-built information management service that is both easy to use and flexible, yet capable of queries and configuration management normally associated with relational databases.
A similar gap exists in the domain of public knowledge bases, such as WIKIPEDIA and FREEBASE. For example, WIKIPEDIA lacks the relational structure and query capabilities of a database, whereas FREEBASE lacks the ease of use and flexibility of a spreadsheet or document tool. Thus, for society at large, there is lacking a comprehensive public database of information that the average Internet user is likely to contribute to in meaningful ways.
Effective and efficient management of information is key to the success of many complex endeavors, ranging from running a business enterprise to managing a large research and development project.
The technological solution described below to flexibly store this kind of information in a way that can be queried falls under the realm of graph theory, where information is organized into entities, and then relationships are built by combing entities with relations. As entities are linked into relationships, the resulting graph forms an interconnecting web of relational information, which is searchable via queries of these relationships.
It is against this background that various embodiments of the present invention have been developed.
Accordingly, one embodiment of the present invention is a computer-implemented method of collaboratively managing an entity-relationship graph, comprising: displaying the entity-relationship graph to a voting user; collecting data on expert status of the voting user indicating whether the voting user is an expert on a given topic; assigning a voting weight to one or more relationships in said entity-relationship graph in response to an input from the voting user and based on the voting user's expert status; and sorting the relationships in the entity-relationship graph based at least on said voting weight.
Another embodiment is the method of collaboratively managing an entity-relationship graph as described above, further comprising the step of calculating a relationship path between two entities stored in said entity-relationship graph.
Another embodiment is the method of collaboratively managing an entity-relationship graph as described above, wherein the relationship path is displayed on said entity-relationship graph as a chain of nodes and edges.
Another embodiment is the method of collaboratively managing an entity-relationship graph as described above, wherein the input from the voting user is represented by an indication of the voting user's opinion about the relationship.
Another embodiment is the method of collaboratively managing an entity-relationship graph as described above, further comprising the step of collapsing said entity-relationship graph by replacing two or more relationships in the entity-relationship graph with a single relationship.
Another embodiment is the method of collaboratively managing an entity-relationship graph as described above, wherein said second new relationship represents a modification to said first new relationship.
Another embodiment is the method of collaboratively managing an entity-relationship graph as described above, further comprising the step of displaying to an advertiser an ordered list of viewing users that have recent activity associated with a predetermined keyword, weighted by an importance weight of the keyword to the advertiser.
Another embodiment is the method of collaboratively managing an entity-relationship graph as described above, further comprising the step of displaying to the advertiser a price to display an advertisement to each viewing user on the ordered list of viewing users, said price based on a market supply and demand for serving advertisements to said viewing users.
Another embodiment is the method of collaboratively managing an entity-relationship graph as described above, further comprising the steps of receiving an input from the voting user indicating that the voting user would like to be designated as an expert, receiving credentials from said voting user to substantiate the voting user's expert status, assigning a credibility weight to the voting weight from the voting user based on the received credentials, and disambiguating two or more relationships based on said credibility weight and said voting weight. Yet another embodiment is the method of collaboratively managing an entity-relationship graph as described above, further comprising the steps of collecting expert data about the voting user's activity indicating that the voting user is an expert on a given topic, assigning a credibility weight to the voting weight from the voting user based on the expert data, and disambiguating two or more relationships based on said credibility weight and said voting weight.
Another embodiment of the present invention is the method described above, further comprising displaying the sorted relationships in an updated version of the entity-relationship graph to one or more additional users, and creating a new relationship in the entity-relationship database in response to an input from said one or more additional users.
Yet another embodiment of the present invention is a computer system for collaboratively managing an entity-relationship graph. This system comprises one or more memories for storing program code, and one or more processors, operatively connected to the one or more memories, for executing the stored program code. When the stored program code is executed, it causes the system to perform a process comprising the steps of displaying the entity-relationship graph to a voting user; collecting data on expert status of the voting user indicating whether the voting user is an expert on a given topic; assigning a voting weight to one or more relationships in the entity-relationship graph in response to an input from the voting user and based on the voting user's expert status; and sorting the relationships in the entity-relationship graph based at least on the voting weight.
Another embodiment is the computer system as described above, further comprising the step of calculating a relationship path between two entities stored in said entity-relationship graph.
Another embodiment is the computer system as described above, wherein the relationship path is displayed on said entity-relationship graph as a chain of nodes and edges.
Another embodiment is the computer system as described above, wherein said input from said voting user is represented by an indication of the voting user's opinion about the relationship.
Another embodiment is the computer system as described above, further comprising the step of collapsing said entity-relationship graph by replacing two or more relationships in the entity-relationship graph with a single relationship.
Another embodiment is the computer system as described above, wherein said second new relationship represents a modification to said first new relationship.
Another embodiment is the computer system as described above, further comprising the step of displaying to an advertiser an ordered list of viewing users that have recent activity associated with a predetermined keyword, weighted by an importance weight of the keyword to the advertiser.
Another embodiment is the computer system as described above, further comprising the step of displaying to the advertiser a price to display an advertisement to each viewing user on the ordered list of viewing users, said price based on a market supply and demand for serving advertisements to said viewing users.
Another embodiment is the computer system as described above, further comprising the steps of receiving an input from the voting user indicating that the voting user would like to be designated as an expert, receiving credentials from said voting user to substantiate the voting user's expert status, assigning a credibility weight to the voting weight from the voting user based on the received credentials, and disambiguating two or more relationships based on said credibility weight and said voting weight. Yet another embodiment is the computer system as described above, further comprising the steps of collecting expert data about the voting user's activity indicating that the voting user is an expert on a given topic, assigning a credibility weight to the voting weight from the voting user based on the expert data, and disambiguating two or more relationships based on said credibility weight and said voting weight.
Another embodiment is the computer system as described above, further comprising the steps of displaying the sorted relationships in an updated version of the entity-relationship graph to one or more additional users, and creating a new relationship in the entity-relationship graph in response to an input from said one or more additional users
Other embodiments of the present invention include systems having program code stored in memory and executed by a processor that cause the system to execute the methods described here. Yet other embodiments of the present invention include storage media storing program code thereon, which when loaded in a computer system cause the system to execute the methods described here. The computer systems and storage media used to execute the methods of the present invention include the computer systems known in the art, including those running various operating systems, and include various storage media known in the art, including optical storage, magnetic storage, and the like. Further embodiments of the present invention will become apparent from the detailed description of the invention and the accompanying drawings.
FIG. 1 illustrates an entity relationship graph with a single relationship, in accordance with one embodiment of the present invention.
FIG. 2 illustrates a second entity relationship graph with a plurality of relationships, in accordance with one embodiment of the present invention.
FIG. 3 illustrates a third entity relationship graph with a plurality of relationships, in accordance with one embodiment of the present invention.
FIG. 4 illustrates a fourth entity relationship graph with a plurality of relationships, in accordance with one embodiment of the present invention.
FIG. 5 illustrates a fifth entity relationship graph with a plurality of relationships, in accordance with one embodiment of the present invention.
FIG. 6 illustrates one embodiment of the disclosed invention, showing a landing page where a user can either view a tutorial, or start to relate or search data.
FIG. 7 illustrates one embodiment of the disclosed invention, showing an editor (“relate page”).
FIG. 8 illustrates one embodiment of the disclosed invention, showing a search interface (“search page”), view 1.
FIG. 9 illustrates one embodiment of the disclosed invention, showing a search page, view 2.
FIG. 10 illustrates one embodiment of the disclosed invention, showing a search page, view 3.
FIG. 11 illustrates an information management interface, in accordance with another embodiment of the disclosed invention.
FIG. 12 illustrates a flowchart of a process of one embodiment of the present invention.
FIG. 13 illustrates a system according to one embodiment in which the present invention may be practiced.
As used throughout the specification and claims, the following concepts and phrases shall have the below defined meanings and their equivalents.
An entity is defined as anything (person, place, thing, or abstraction) that the user wishes to define in relation to other entities and represent as a character string or other electronic representation. Essentially, any word or phrase can become an entity, as well as numerical values. In addition, electronic files, such as a digital image, or other digital sets of information, can also be defined as entities.
A relationship (sometimes called an entity-relationship or entity relationship) is a statement relating two entities. For example, “Leonardo da Vinci is a painter,” where “Leonardo da Vinci” is one entity and “painter” is a second entity. In other words, a relationship is a specific instance of two entities being linked by a particular relation (defined below). A general example of a relationship would be:
Entity A is linked to Entity B by Relation 1.
If Entity A is “an apple,” Entity B is “fruit,” and Relation 1 is “is a,” then this relationship can more concisely and clearly be stated as “An apple is a fruit.”
A relation is the part of the entity relationship statement that denotes the relation between the entities. For example, “is a” is the relation in the entity relationship “Leonardo da Vinci is a painter.” A relation can be any link that can be made between two or more entities that the user wishes to impart a certain meaning. Other examples include “is a”, “has a”, “is located in,” and “is a member of,” or more specific relations like “is a citizen of,” “was written by,” and “is sold by”.
An entity-relationship database comprises one or more entity relationships or equivalents, as described in the specification. Also called an entity relationship database. An entity-relationship database is a computer representation of an information model.
An entity-relationship graph is a graphical representation of an entity-relationship database. For example, FIGS. 1-5. A graph is a mathematical construct that comprises nodes connected by edges. Also called an entity relationship graph.
A relationship path is a path comprising a set of connected nodes and edges that connect two or more entities.
A voting weight is a weight assigned to a relationship by a voting user that represents the user's position or opinion concerning the relationship, which can be indicated as confirms, disputes, likes, dislikes, is a positive indicator, is a negative indicator or equivalents.
A position value is the relative importance, validity, approval level, preference, or other pre-determined metric of one relationship relative to another based on weights assigned by voting users, experts, or general users.
An expert is a user who has special expertise in a subject area.
An expert status designates a given user's expertise in a give subject area indicating that a user is an expert in a given subject area.
A credential is a piece of evidence that justifies an expert having expert status on a given topic.
A credibility weight is a weight assigned to a voting user's voting weight, based on the voting user's expert status, as supported by one or more credentials or as supposed by the voting user's activity in a given subject area or by some other means and the like. For example, a number between 0 and 1.
Disambiguating comprises the action of modifying the entity-relationship database to reduce or eliminate ambiguities, contradictions or apparent contradictions. Disambiguating also comprises the action of modifying the entity-relationship database to alter any weights, such as voting weights or credibility weights, assigned to relationships, in such a way that affects the entity-relationship graph or its representations. In one embodiment, disambiguating refers to a step of differentiating between two or more relationships that otherwise appear similar or have similar meanings, based on a predefined weight assigned to the relationships, including but not limited to the relationships' position value.
Collapsing comprises replacing two or more relations in an entity-relationship database with a single relationship based on the disambiguation. For example, the three relationships “Leonardo is a painter” and “Leonardo da Vinci is a painter” and “da Vinci is a painter” are replaced with the single relationship “Leonardo da Vinci is a painter.” The relationships may be replaced in the database, or in the graphical representation only and not in the backend database.
An advertisement is information displayed to a viewing user paid for by an advertiser to advertise goods or services.
A keyword is a word that an advertiser links to an advertisement to be displayed when the word is associated with a viewing user.
An importance weight of the keyword is a weight corresponding to a value that the advertiser places on that keyword. For example, a number between 0 and 100%.
One embodiment of the present invention is an easy-to-use, web-based, “schema neutral” database system that allows users and organizations to organically model, store, and access their information in exactly the way that they want to. In this context, “organically” means “in an iterative and evolutionary manner”. Users of this system are not “locked down” into any particular schema while their data set and data model are immature. Rather, users are encouraged by the system to grow and explore their information domain in an intuitive way.
These characteristics are enabled by a number of features which will be described below; however, the flexible nature is enabled by employing a graph-based structure, based upon linking entities and relations into relationships, as defined above.
A constantly evolving schema is one result of the present invention. The system and associated applications are designed in a way that allows constant changes to the schema. In order to manage the challenge of many people editing a schema and most likely adding different and competing relationships, the system employs a “voting system” which gives higher visibility to more popular and “active” relationships. Also, by analyzing commonality in links between certain entities, the system suggests the appropriate relations to users. For example, if someone adds the relationship “Steve Jobs—worked at—Apple”, and then another user adds “Steve Jobs—was employed by—Apple,” the system is able to recognize that “worked at” and “was employed by” are nearly equivalent relations and suggest that the user use the more popular one (though the user will always have the choice to use whatever wording he/she wants).
Over time, certain types of entities will have developed a common set of properties, and they can be suggested to the user. So, for example, if a user adds a new recording artist, the system suggests the most common properties (i.e. relations) associated with recording artists. The user is never, however, limited to a fixed set of properties.
Relationships according to the present invention use natural, everyday language, rather than “database language” (“Steve Jobs worked at Apple.” vs. “Steve Jobs→Employer: Apple”). This assists with developing human-readable text from the relationships stored in the system. It also makes for a more intuitive way of building information models. Users can start with existing text about a subject and start building a basic information model by extracting simple relationships from the text.
As described in more detail below, the system has a voting system used to promote (or demote) relationships in importance. The system can display relationships in priority or popularity order. Also, the system distinguishes between a user promoting a relationship because he/she finds it interesting vs. promoting it because he/she confirms it to be true. In the disclosed system, certain users could be identified as experts on certain topics, and therefore their confirmation of the validity of a relationship would give more value in promoting the veracity of a relationship.
One way to illustrate a method of organizing information as described in this application is to provide examples. Let's start with another simple relationship as shown in the entity relationship graph of FIG. 1.
This statement is a generally known statement expressed in the form described above. “Leonardo da Vinci” is our first entity (in this case, a human entity). “Painter” is our second entity, and these two entities are related by the relation “was a” to create the relationship “Leonardo da Vinci was a Painter.”
Now let's build on this single relationship. What are some other things a user can say about Leonardo da Vinci? Some examples are shown in FIG. 2.
As one can see, in addition to being a painter, he was also a sculptor, was born in year 1452 in Vinci, and he lived in Florence. We are beginning to build up the basic biographical information about Leonardo da Vinci. Let's go a little further as shown in FIG. 3.
Now in addition to the biographical information about Leonardo da Vinci, we have added some information about where Vinci and Florence are located. We now have an indirect link between Vinci and Florence, and we know they are both located in Tuscany, which is located in Italy. Let's go a step further as shown in FIG. 4.
Now we have added a second person, Verrocchio, who is related to Leonardo da Vinci by the fact that Leonardo worked in his workshop and he also influenced Leonardo (according to this information model). We know some additional info about Verrocchio, namely that he was also a painter and sculptor, and that he was born in year 1435. We also have added the additional fact that the years 1452 and 1435 are in the 15th Century. This is interesting because at this point we could query our information model to find out all the painters born in the 15th century. At this point our information model is very incomplete, and the result would be only two painters, but it is important that this possibility now exists. Let's go one step further as shown in FIG. 5.
Now we have added several other players to the picture, including a painter who Leonardo influences, a painting that Leonardo painted, and a church where the painting is located. We also find out that Leonardo also lived in Milan, which happens to also be the place where the church where his painting is located. Let's go one step further as shown in FIG. 6.
Now we have added some additional information about Leonardo's painting, the Last Supper, as well as another painter/sculptor, Michelangelo, who happens to also have done some paintings located in Italy. At this point it starts to be very difficult to legibly portray this entire information model on a single sheet of letter-sized paper, but a computer can easily store all this information within a small data volume.
The purpose of this example is to show how users could quickly and easily create an interconnected web of related information on any imaginable subject. The technical details of how the user will enter the information, how the information will be stored, and how it will be accessed are described below. The example is intended to demonstrate that as the volume and completeness of this interconnected information is increased, the value of the “information model” increases. After a certain critical mass is achieved, the information model becomes a useful reference for other users interested in similar subjects.
A representative example of a useful search query that a user could perform using the type of information described above would be, if you wanted to search for a list of Italian Renaissance painters, you could easily do that by searching for all the people linked to “is a painter,” “lived in . . . Italy,” and “was born in . . . ” a certain range of years corresponding to the Renaissance movement. The methods and search technology described below will help the user to do that by typing in a single phrase, or maybe a small series of search terms. By contrast, for WIKIPEDIA to have this capability, a human would have to “manually” create an article with a list of Italian Renaissance painters with links to the articles about them.
The method and process for making these kinds of relationships through the World Wide Web along with a set of related features that allow and promote “crowd-sourcing” or community development of information models, resulting in a system for organic development of useful information models by users and organizations with little or no information technology expertise, form a novel structure and set of processes useful for managing information.
Let us now walk through a user experience of the present invention. First, a user sees a screen as shown in FIG. 6. After clicking “Relate,” a user is taken to a screen as shown in FIG. 7. After clicking on “Search,” a user is taken to a screen as shown in FIG. 8. FIG. 9 shows what the search screen should look like after the user has clicked the “+” button. The highlighting around the “And/Or” box is to remind the user to fill out whether the 2nd query refines or expands the search. FIG. 10 shows what the search screen should look like after the user has made the “And/Or” selection.
The disclosed invention contains a process for adding relationships, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for modifying relationships, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for deleting relationships, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for sorting relationships by “from entity”, “relation”, or “to entity”, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for reversing entries in the “From Entities” and “To Entity” fields, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for saving or committing changes to the entity-relationship database, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for organizing and displaying a set of relationships into text and allowing a user to rearrange and edit the relationships in the text, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for searching for entities, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for searching for a relation, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for modifying relationships from search results, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for refining and organizing search results through an interface accessed from the World Wide Web. Once a user enters a search term or search terms and the system displays results, the user may wish to organize, filter, and refine these search results into a form more useful for him or her. This process is comprised of the following steps:
The disclosed invention contains a process for adding a “category” or grouping of entities, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for filtering entities by “category” or grouping of entities, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for adding an entity to a “category” or grouping of entities, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for exporting search results to a comma-delimited file, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for importing relationships from a comma-delimited file, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for creating relationships from a spreadsheet with headers, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for discovering relationships from a text document, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for arranging entities into hierarchies, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for navigating through hierarchies, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for detecting units of measurement indicated in the entity field and converting between related units, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for searching between a numerical range of numerical values, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for generating suggested search queries, based on the user's input, through an interface accessed from the World Wide Web, comprising the following steps:
In some embodiments of the disclosed invention, the invention contains a process for a voting user to indicate that a particular relationship is valid or “confirmed,” thereby generating a voting weight (which can be a positive or negative position value as described below), through an interface accessed from the World Wide Web, comprising the following steps:
In some embodiments of the disclosed invention, the invention contains a process for a voting user to indicate that they are interested in a particular relationship or entity, thereby also generating a voting weight, through an interface accessed from the World Wide Web, comprising the following steps:
In some embodiments of the disclosed invention, the invention contains a process for sorting relationships by the number of times “confirmed” or the number of times “liked/followed,” or some combination of these two numbers, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for users to indicate that relations are equivalent or highly similar in meaning, through an interface accessed from the World Wide Web, resulting in a system that can group together disparate relationships of equivalent or highly similar meanings, comprising the following steps:
The disclosed invention contains a process for users to identify entities and relations that have an equivalent or highly similar meaning in another language (also indicated by the user), through an interface accessed from the World Wide Web, resulting in a system that can group together disparate text strings of equivalent or highly similar meanings and the associated language to which they belong, comprising the following steps:
In some embodiments of the disclosed invention, the invention contains a process for disambiguating the entity-relationship database to reduce or eliminate ambiguities, contradictions or apparent contradictions. Disambiguating can also include the action of modifying the entity-relationship database to alter any weights, such as voting weights or credibility weights, assigned to relations, in such a way that affects the entity-relationship graph or its representations.
In some embodiments of the disclosed invention, the invention contains a process for collapsing two or more relations in an entity-relationship database into a single relation based on the disambiguation. For example, the three relations “Leonardo is a painter” and “Leonardo da Vinci is a painter” and “da Vinci is a painter” are replaced with the single relation “Leonardo da Vinci is a painter.” In one embodiment, the three relationships are all stored in the database, but only one relationship is displayed to the user, along with an indication that alternative versions of the relationship exist.
The disclosed invention contains a process for viewing relationships in a graph representation, known as an entity relationship graph, also known as “graph view,” through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for zooming in or out in the entity relationship graph, panning left, right, up, or down, and centering on a particular entity, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for toggling between “graph view” and “table view,” through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for navigating “forward” and “backward” through “entity links” in an entity relationship graph having a “hybrid view” showing both graphical and non-graphical representation of the entity-relationship database, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for determining and listing the entity relationship paths (also known as “routes”) of connections between any two given entities, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for allowing the user to create “views,” which are custom displays of specific relationships, created through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for “tagging” relationships or entities, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for displaying advertisements based on a user's activity in the system. The purpose of this process is to allow advertisers, both large and small, to target ads to specific users, based on their recent activity, which likely is a reflection of the users' current interests. At the same time, the process is designed to protect the privacy of the users. For example, it does not require the direct sharing of the names, email addresses, location, or even the unique ID number of the users with the advertisers. Rather, the system shares aggregate statistics concerning the activity of users of the system. By “activity” we mean the following set of actions that a user can perform in the system that involve “interacting” with entities, including, but not limited to:
For each of these actions, the system should store a record of the action, the user ID of the user that performed the action, the entity ID of the entity it was performed on, and the date and time of the action. These records are stored in an “actions” table, an example of which is shown in Table 1.
| TABLE 1 | |||||
| ID | User ID | Entity ID | Action ID | Date | |
| 1 | 1 | 3 | 1 | 10/09/2011 09:21:16 | |
| 2 | 1 | 6 | 7 | 11/09/2011 15:40:21 | |
| 3 | 2 | 2 | 5 | 11/09/2011 11:10:25 | |
| 4 | 3 | 8 | 3 | 12/09/2011 18:23:31 | |
The system also has a table that records the sum totals of the time-dependent “values” for each of these actions, as well as the corresponding user ID and entity ID. This table will be referred to as the “action-values” table, an example of which is shown in Table 2
| TABLE 2 | ||||||||||
| User | Entity | |||||||||
| ID | ID | ID | Action1 | Action2 | Action3 | Action4 | Action5 | Action6 | Action7 | Total |
| 1 | 1 | 3 | 50 | 25 | 36 | null | 20 | 100 | 60 | 291 |
| 2 | 1 | 6 | 45 | 65 | 15 | 10 | 55 | 90 | 46 | 326 |
| 3 | 2 | 2 | 45 | 15 | 65 | 20 | 54 | 180 | 65 | 444 |
| 4 | 3 | 8 | 125 | null | 24 | null | null | 80 | 25 | 254 |
| 5 | 3 | 4 | 80 | null | 45 | 35 | 80 | 45 | 26 | 311 |
On a periodic basis, the system updates this table by querying the “actions” table. The value for each of the actions should be re-calculated according to Equation 1:
∑ i = 1 N C action * D - F action
where Caction is a coefficient associated with the importance of the associated action, and D is the number of days since the action was performed, and Faction is a coefficient associated with the time-dependence of the value for the associated action.
Creating an ad: When an advertiser wants to create an advertisement to be displayed in the system, they select a set of keywords that they would like to associate with the advertisement. For example, an advertisement for a golf shop located in Saint Louis, Mo. might have the following keywords:
The advertiser then assigns a set of importance weights to each of these keywords. The total of the weights should sum to 100%. For example:
The advertiser can choose as many or as few keywords as they wish, but the weights must always sum to 100%.
Choosing which users to display ads to: What the advertiser can then purchase is the following:
A key step in this process is first determining which users' activity information to purchase and secondly which of those users to display ads to.
Below is an example of this process, applied for a small highly-targeted advertising campaign, using the golf store example above. Although this advertiser has selected a number of keywords for its ad campaign, for demonstration purposes, we will first show how the process works for a single keyword.
For the single keyword “golf store”, the advertiser can purchase an ordered list of users that have recent activity associated with the keyword “golf store”. They can choose as many or as few users as they want. For demonstration purposes, let's say they purchase a list of 10 users, as shown in Table 3.
| TABLE 3 | ||
| Value for “golf | ||
| ID in list | store” | |
| 1 | 1245 | |
| 2 | 1156 | |
| 3 | 1025 | |
| 4 | 1011 | |
| 5 | 985 | |
| 6 | 952 | |
| 7 | 920 | |
| 8 | 911 | |
| 9 | 905 | |
| 10 | 894 | |
For each of these users, the advertiser will probably want to know some additional information about the user's interests. By default, the purchase of the list above should include a list of the “top 10” entities for each of the user in the list. For example, for “user 1” in the list, the advertiser would see the following “top 10” list, as shown in Table 4.
| TABLE 4 | |
| ID in list | Top entities for ID 1 |
| 1 | golf store |
| 2 | golf equipment |
| 3 | golf courses |
| 4 | tennis |
| 5 | PGA |
| 6 | Tiger Woods |
| 7 | Roger Federer |
| 8 | US Open |
| 9 | Saint Louis |
| 10 | golf |
The advertiser can then decide whether they want to target ads to this user or not, based on the information available in this list. The advertiser can also choose to purchase additional “top entities” from the user, up to some limit specified by the system for privacy reasons.
More complex example, using all of the keywords: The process is the same as above, except the calculation of “value” is instead a weighted value for each of the keywords. From the example above, we saw that “user 1” had value of 1245 for the keyword “golf store”. Since for the advertiser, “golf store” has a weight of 30, the weighted value for “golf store” is 30*1245 or 37350. The weighted value for each keyword is calculated as shown in the table below, as well as the final “weighted average,” as shown in Table 5.
| TABLE 5 | |||
| Keyword | Weight | Keyword Value | Weighted Value |
| Golf store | 30 | 1245 | 37350 |
| Golf equipment | 25 | 965 | 24125 |
| Saint Louis | 20 | 1725 | 34500 |
| golf | 10 | 1520 | 15200 |
| PGA | 5 | 425 | 2125 |
| Golf course | 5 | 295 | 1475 |
| Golf club | 5 | 457 | 2285 |
| Total | 117060 |
| Weighted Average | 1170.6 |
Finally, what the advertiser will receive is a list of users, ordered by the weighted average for their set of keywords, similar to the list of users shown above for the single keyword example, as shown in Table 6.
| TABLE 6 | ||
| ID in list | Weighted Average | |
| 1 | 1170.6 | |
| 2 | 1136.2 | |
| 3 | 1035.4 | |
| 4 | 1021.0 | |
| 5 | 975.2 | |
| 6 | 963.1 | |
| 7 | 941.7 | |
| 8 | 932.4 | |
| 9 | 927.6 | |
| 10 | 899.4 | |
Again, the advertiser will also receive a “top 10” list of entities for each of the users in the list.
Selecting which users to display advertisements to: Finally, after the advertiser receives a list of users that have high activity in the keywords of their choice, the advertiser can select which of users to display advertisements to. Based on the “top 10” lists, the advertiser can already “weed out” users that they are not interested in. Notice in Table 7 below that several users from the original ten have been removed from the list.
The next step is to see the cost to display ads for each of the users. This is expressed as a price to purchase a percentage of the users “views” per day. For our “golf store” example, the price and the approximate number of views that the targeted users generate per day is shown in Table 7.
| TABLE 7 | |||
| Approximate views | |||
| ID in | Price per % of views | (Impressions) Per | |
| list | Weighted Average | per day | Day |
| 1 | 1170.6 | 0.25 | 150 |
| 2 | 1136.2 | 0.24 | 160 |
| 3 | 1035.4 | 0.35 | 140 |
| 4 | 1021.0 | 0.22 | 180 |
| 6 | 963.1 | 0.45 | 200 |
| 7 | 941.7 | 0.36 | 120 |
| 9 | 927.6 | 0.10 | 220 |
These prices are determined based on the market supply and demand for serving advertisements to those specific users. For example, if there are already a lot of orders for ads to be served to “user 6,” the cost of displaying new ads to him or her will be higher than a user who has not generated many ads. If a particular user already has ads representing 100% of his/her views for a particular time period, then the system will indicate to the advertiser that ads for this user are only available after that particular period.
| TABLE 8 | ||||||
| ID in | Weighted | Price per % of | Percent | |||
| ID | list | Average | views per day | ordered | Days | Totals |
| 1 | 1 | 1170.6 | 0.25 | 25% | 14 | 0.875 |
| 2 | 2 | 1136.2 | 0.24 | 25% | 14 | 0.84 |
| 3 | 3 | 1035.4 | 0.35 | 25% | 14 | 1.225 |
| 4 | 4 | 1021.0 | 0.22 | 20% | 14 | 0.77 |
| 5 | 7 | 941.7 | 0.36 | 20% | 14 | 1.26 |
| 6 | 9 | 927.6 | 0.10 | 20% | 14 | 0.35 |
| Grand Total | 5.32 |
For large campaigns: The above example works well for a small business that wants to run a small, highly-targeted ad campaign. Larger companies, however, may not want to devote time and resources to exploring in detail the set of users that they will serve ads to. Thus, the system has a query engine for such companies to quickly perform the following types of queries. For example, “Select top 1000 users for given keywords that have price below 0.30 and only if they have weighted average above 800.” Thus it is thus possible to select a large number of users and filter them based on the advertisers' desired criteria.
The disclosed invention contains a process for a user to submit credentials to be designated an expert on a particular subject, through an interface accessed from the World Wide Web.
The disclosed invention contains a process for users to assign their position concerning a relationship and for calculating a value that represents the relationship's “position value” and sorting relationships by this value, through an interface accessed from the World Wide Web. For any relationship in the system, users have the option to assert a “position” concerning that relationship as either positive or negative (in some embodiments may also be known as “confirm/dispute”, “like/dislike,” “agree/disagree,” “approve/disapprove,” etc.). Thus, this process for users to indicate a position and calculating a value based on these user positions consists of the following steps:
As described above, the system contains a process for sorting a set of relationships based on the relationships' “position value,” comprising the following steps:
The disclosed invention contains a process for automatically designating a user as an “expert” on a particular subject, based on the user's activity. If a user is very “active” in a particular information domain (creating many relationships, confirming or disputing many relationships, following many entities), then it is likely that this user has some level of expertise in that information domain. Based on this likeliness, the system contains a process to analyze this activity and “automatically” assign an expertise level based on this activity.
The means of determining discrete “subject areas” is based on sets of highly “clustered” or connected entities. For example, you might expect the subject area of “astronomy” to contain a highly connected set of relationships containing the following entities:
For a user to be automatically designated as an “expert” on the subject “astronomy”, he or she should have a lot of “activity” involving these entities: for example, creating many relationships containing these entities, confirming or disputing many relationships containing these entities, or following a large number of these entities. Thus, the system contains a process for automatically determining a user's expert status on specific subject areas, which is similar to the process described in process above for determining users' interests. The main difference between these two processes is that, in the “expert designation” process, different weights are assigned to the possible actions that a user can perform. In other words, the weights are adjusted to more closely reflect activities that experts would be expected to perform, for example, creating relationships. Another characteristic that one might expect is that the relationships this user has created in this subject area are confirmed by many other users and disputed by few other users. Thus, the “expert designation” process also differs from process described above, in that the weight applied to creation of relationships is affected by confirmations or disputations of those relationships.
Utilizing the processes described above, the system contains a process to automatically designate certain users as experts on particular subject areas, where the subject areas represent “clusters” of highly connected entities which have been assigned specific subject area names (for example, astronomy). Expert designation follows a process, where each time a user creates a relationship using an entity in this cluster, he or she receives expert “points” for that subject area (for example, 50 points for each relationship created). Each time another user confirms that relationship, the original user (who created the relationship) receives additional points (for example, 2 points). Similarly, each time another user disputes that relationship, the original user loses some amount of expert points (for example, 2 points).
In the same manner, a user receives expert points by following entities in this cluster or confirming/disputing relationships containing entities in this cluster.
Based on this point system, the system categorizes users within this subject area based on the amount of expert points they have accumulated for that subject area. For example, users in the top 1st percentile would have a “world-class expert” level, users in the 2nd to 10th percentile would have a “advanced expert” level, users in the 11th to 20th percentile would have an “intermediate expert” level, etc. The expert level determines the effect of the expert's “position” on relationships in that subject area, in the same way as described above.
The disclosed invention contains a process for allowing users to create a “sandbox,” which is defined as an area where users can make changes to a certain portion of the entity-relationship database and view the results without committing the changes to the entity-relationship database, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for a user to merge a “sandbox” back into the full entity-relationship database, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for controlling the “workflow” of approval of changes to the entity-relationship database, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for displaying results based on the geolocation (position) of the user, as indicated by the user or by a positioning device supplying data to the system, through an interface accessed from the World Wide Web, comprising the following steps:
Relationships are sorted from “nearest” to “furthest,” based on the distance between the user's location and the location associated with the relationship. For relationships that have an equal distance value, a secondary sorting criteria is used, as determined by the user's sorting preferences (e.g. default sorting has been set to “time descending,” so secondary sorting criteria is the time that the relationship was created in descending order). In some embodiments of the invention “specificity” may also be used as a sorting criteria. For example, the relationship “St. Louis is a city,” in addition to a location parameter, may also have a specificity parameter of 50 km. Thus, the system could use specificity as a secondary sorting criteria to show relationships with an associated location that are both near to the user and having a high level of specificity.
The disclosed invention contains a process for grouping users into user groups, through an interface accessed from the World Wide Web, comprising the following steps:
The disclosed invention contains a process for viewing relationships created or modified by a particular user or group of users, through an interface accessed from the World Wide Web, comprising the following steps:
Accordingly, FIG. 12 illustrates a flowchart 1200 of a process of one embodiment of the present invention. The process starts at step 1202, which then proceeds to step 1204, displaying an entity-relationship graph to a first user, said graph showing one or more items selected from a group consisting of nodes representing entities stored in a database and edges representing relations stored in said database. The process then proceeds to step 1206, receiving an input from said first user. The process then proceeds to step 1208, in response to said input from said first user, creating a new relationship. The process then proceeds to step 1210, storing said new relationship in said database. The process then proceeds to step 1212, displaying said entity-relationship graph to a second user, said graph showing one or more items selected from a group consisting of nodes representing entities stored in said database and edges representing relations stored in said database. The process then proceeds to step 1214, receiving an input from said second user. The process then proceeds to step 1216, in response to said input from said second user, creating a second new relationship. The process then proceeds to step 1218, storing said second new relationship in said database. The process then proceeds to step 1220, receiving an input from a voting user. The process then proceeds to step 1222, in response to said input from said voting user, assigning weights to one or more relationships in said database. The process then proceeds to step 1224, disambiguating a plurality of said relationships based on said assigned weights. The end of the process is achieved at step 1226.
FIG. 13 illustrates a system 1300 according to one embodiment in which the present invention may be practiced. The system includes a user interface 1302, which may be displayed to a user of the system through a display device. The system also includes a processor 1304, operatively connected to memory unit 1310. The memory unit 1310 has loaded information management routine 1312, which when executed causes the system to perform a process comprising the steps of displaying an entity-relationship graph to a first user, said graph showing one or more items selected from a group consisting of nodes representing entities stored in a database and edges representing relations stored in said database; receiving an input from said first user; in response to said input from said first user, creating a new relationship; storing said new relationship in said database; displaying said entity-relationship graph to a second user, said graph showing one or more items selected from a group consisting of nodes representing entities stored in said database and edges representing relations stored in said database; receiving an input from said second user; in response to said input from said second user, creating a second new relationship; storing said second new relationship in said database; receiving an input from a voting user; in response to said input from said voting user, assigning weights to one or more relationships in said database; and disambiguating a plurality of said relationships based on said assigned weights. Finally, system 1300 includes a connection between processor 1304 and a cloud 1308. This cloud may, for example, be a network connection to the Internet, connecting the processor 1304 to a remote information management database 1314 where information management data, such as entities and relationships, are stored and referenced.
While the methods disclosed herein have been described and shown with reference to particular operations performed in a particular order, it will be understood that these operations may be combined, sub-divided, or re-ordered to form equivalent methods without departing from the teachings of the present invention. Accordingly, unless specifically indicated herein, the order and grouping of the operations is not a limitation of the present invention.
While the present invention has been particularly shown and described with reference to embodiments thereof, it will be understood by those skilled in the art that various other changes in the form and details may be made without departing from the scope of the present invention as defined by the claims.
1. A computer-implemented method of collaboratively managing an entity-relationship graph, comprising:
displaying the entity-relationship graph to a voting user;
collecting data on expert status of the voting user indicating whether the voting user is an expert on a given topic;
assigning a voting weight to one or more relationships in said entity-relationship graph in response to an input from the voting user and based on the voting user's expert status; and
sorting the relationships in the entity-relationship graph based at least on said voting weight.
2. The method of claim 1, further comprising:
calculating a relationship path between two entities in said entity-relationship graph.
3. The method of claim 2, wherein the relationship path is displayed on said entity-relationship graph as a chain of nodes and edges.
4. The method of claim 1, wherein said input from said voting user is represented by an indication of the voting user's opinion about one or more relationships.
5. The method of claim 1, further comprising:
collapsing said entity-relationship graph by replacing two or more relationships in the entity-relationship graph with a single relationship.
6. The method of claim 1, wherein said second new relationship represents a modification to said first new relationship.
7. The method of claim 1, further comprising:
displaying to an advertiser an ordered list of viewing users that have recent activity associated with a predetermined keyword, weighted by an importance weight of the keyword to the advertiser.
8. The method of claim 7, further comprising:
displaying to the advertiser a price to display an advertisement to each viewing user on the ordered list of viewing users, said price based on a market supply and demand for serving advertisements to said viewing users.
9. The method of claim 1, further comprising:
receiving an input from the voting user indicating that the voting user would like to be designated as an expert; and
receiving credentials from said voting user to substantiate the voting user's expert status.
10. The method of claim 1, further comprising:
displaying the sorted relationships in an updated version of the entity-relationship graph to one or more additional users; and
creating a new relationship in the entity-relationship database in response to an input from said one or more additional users.
11. A computer system for collaboratively managing an entity-relationship graph, comprising:
one or more memories for storing program code; and
one or more processors, operatively connected to the one or more memories, for executing the stored program code, which when executed causes the system to perform a process comprising the steps of:
displaying the entity-relationship graph to a voting user;
collecting data on expert status of the voting user indicating whether the voting user is an expert on a given topic;
assigning a voting weight to one or more relationships in said entity-relationship graph in response to an input from the voting user and based on the voting user's expert status; and
sorting the relationships in the entity-relationship graph based at least on said voting weight.
12. The computer system of claim 11, wherein the stored program code when executed further causes the system to perform the step of:
calculating a relationship path between two entities stored in said entity-relationship graph.
13. The computer system of claim 12, wherein the relationship path is displayed on said entity-relationship graph as a chain of nodes and edges.
14. The computer system of claim 11, wherein said input from said voting user is represented by an indication of the voting user's opinion about one or more relationships.
15. The computer system of claim 11, wherein the stored program code when executed further causes the system to perform the step of:
collapsing said entity-relationship graph by replacing two or more relationships in the entity-relationship graph with a single relationship.
16. The computer system of claim 11, wherein said second new relationship represents a modification to said first new relationship.
17. The computer system of claim 11, wherein the stored program code when executed further causes the system to perform the step of:
displaying to an advertiser an ordered list of viewing users that have recent activity associated with a predetermined keyword, weighted by an importance weight of the keyword to the advertiser.
18. The computer system of claim 17, wherein the stored program code when executed further causes the system to perform the step of:
displaying to the advertiser a price to display an advertisement to each viewing user on the ordered list of viewing users, said price based on a market supply and demand for serving advertisements to said viewing users.
19. The computer system of claim 11, wherein the stored program code when executed further causes the system to perform the steps of:
receiving an input from the voting user indicating that the voting user would like to be designated as an expert; and
receiving credentials from said voting user to substantiate the voting user's expert status.
20. The computer system of claim 11, wherein the stored program code when executed further causes the system to perform the steps of:
displaying the sorted relationships in an updated version of the entity-relationship graph to one or more additional users; and
creating a new relationship in the entity-relationship graph in response to an input from said one or more additional users.