The embodiments described herein comprise a free association engine running on a server for capturing input data and recorded observations received from one or more electronic devices or other sources, optionally during user encounters with physical objects associated to the input data and observations; deriving underlying entities and associations of the input data using rules applied to the input data and observations; storing the input data, recorded observations, and derived entities and associations in a graph or triplestore database; executing dynamic operations based on the derived entities and associations; and generating visualizations concerning the derived entities and associations. The embodiments allow a user to create rules that are applied to input data and observations to generate entities and associations. The embodiments provide the ability to generate dynamic views of the derived entities and associations based upon a user's selection of sources of the input data and observations and use these views to visualize the data in different ways to different users under different circumstances and power semantically precise user searches, automated recommendations and other dynamic application logic.
The prior art includes embodiments for collecting data from various sources and categorizing the data through manual tagging by human beings. For example, a music provider might manually tag each piece of music to indicate its genre (e.g., contemporary jazz). Users thereafter can search for music based on genre. Other fields can be created and populated as well, but the data is generated through tedious manual tagging by human beings.
Graph databases also are known in the prior art. In a prior art graph database, nodes represent entities, and the edges between nodes represent associations between the entities. This is illustrated in
What is lacking in the prior art is a free association engine that can analyze input data received from one or more electronic devices or other sources and derive and store underlying entities and associations (such as object encountered by a user at place with GPS coordinates of lat 40.7614327 and long −73.97762160000002 has label “title=“Demoiselles d'Avignon” and artist=Pablo Picasso” and “medium=oil on canvas” so it is an object located at the known place “Museum of Modern Art” that is previously known to contain the GPS coordinates of lat 40.7614327 and long −73.97762160000002 that is a manifestation of the creative work named “Demoiselles d'Avignon” with an association of “created by” to a previously known person named “Pablo Picasso” and an association to the previously known medium/technique “oil on canvas”). What is further lacking are additional inferred associations of that input data (such as “Demoiselles d'Avignon is a cubist painting”) by applying rules to the associations to derive additional associations without requiring a human being to manually tag the data. What is further lacking is the ability for a user to create rules that can be used to generate inferred associations. What is further lacking is the ability for a user to generate visualizations of a prioritized subset of the input data based upon a user's selections and priorities of known attributes of sources of the input data (for example, to display genre information based solely on express associations or inferred associations generated from input data collected from reputable critics). What is further lacking is the use of a graph database that allows new associations or edges to be created dynamically. What is further lacking is a graph database that allows for associations or edges between other associations or edges. What is further lacking is the ability for application logic to traverse multiple degrees of associations or edges, such as searching for paintings created by artists of Native American descent that were associated as students or academic colleagues of a given other artist.
The embodiments described herein comprise a free association engine running on a server for capturing input data and recorded observations received from one or more electronic devices or other sources, optionally during user encounters with physical objects associated to the input data and observations; deriving underlying entities and associations of the input data using rules applied to the input data and observations; storing the input data, recorded observations, and derived entities and associations in a graph or triplestore database; executing dynamic operations based on the derived entities and associations; and generating visualizations concerning the input data and express and inferred associations. The embodiments allow a user to create rules that are applied to input data and observations to generate entities and associations. The embodiments provide the ability to generate dynamic views of the derived entities and associations based upon a user's selection and prioritization of attributes of sources of the input data and observations and use these views to visualize the data in different ways to different users under different circumstances and power semantically precise user searches and automated recommendations. The embodiments utilize a graph or triplestore database that allows new associations or edges to be created dynamically. The graph or triplestore database allows for associations or edges between other associations or edges. The graph or triplestore database allows for application logic to traverse multiple levels of edges or associations.
Hardware and Software Components
With reference to
With reference to
With reference to
Server 310 can comprise the same hardware components and software components described previously for computing device 110. In addition, server 310 comprises free association engine 315, visualization engine 316, search engine 317, and recommendation engine 318. Free association engine 315, visualization engine 316, search engine 317, and recommendation engine 318 each comprise lines of software code that can be stored in memory and executed by a processing unit within server 310.
Generation and Collection of Input Data and Recorded Observations
With reference to
In one embodiment, communication devices 460 and 461 are wireless beacons that emit a signal, which is a type of recorded observation 420, and the strength of the signal as received by computing device 110 enables computing device 110 to determine the relative proximity of object 450 to computing device 110 using well-known triangulation techniques.
In another embodiment, communication devices 460 and 461 are wireless appliances that can communicate with computing device 110 (and/or other computing devices such as computing devices 111 or 112) using a network or link. The network or link can comprise a wireless or wired network or link, such as the Internet, a local area network, an 802.11 network, Bluetooth, or other RF communication.
Computing device 110 can capture input data 520 and recorded observations 420 relating to object 450 in a multitude of different ways. For example, computing device 110 can be used to take a photograph (another example of input data 520) of object 450 or of placards or other posted information regarding object 450 using image capture device 170 and can then perform optical character recognition to extract text (another form of input data 520) from the placards or posted information. Computing device 110 can record the date, time, and location (further examples of recorded observations 420) of the encounter with object 450. Computing device 110 can obtain input data 520 from the user of computing device 110 through web browser 220 or software application 230. A non-exhaustive list of examples of such input data 520 that can be obtained from the user of computing device 110 includes the exemplary fields shown in Table 1:
An example of this process is shown in
Input data 520 also can be collected from other computing devices, such as computing devices 111 and 112, as well as the users of such devices. Computing devices such as computing devices 110, 111, and 112 can be servers as well. For example, if computing device 112 is a server, then collected data from computing device 112 might comprise data that is scraped from a website operated by computing device 112 or data that is provided by computing device 112 in response to a query, request, or API. For example, if computing device 112 operates an information website such as Wikipedia or an art catalog database, and data can be obtained from computing device 112 using an API.
Input data 520 also can comprise data about a user. For example, if User X is a user of computing device 110, he or she can enter profile information about himself or herself, such as “User X is male/female” or “User X is 42 years old.” Input data 520 can comprise data about the user's specific expertise in an area, such as number of years of formal education in a subject, degrees obtained, number of years working in the relevant industry, certification and licenses received, number of peer-reviewed publications, etc. Input data 520 also can relate to any entity stored in database 320, such as persons (including users, authors, artists, etc.), organizations, places, concepts, events, objects, or other entities.
With reference to
Examples of types of associations 620 are shown in Table 3:
The associations and entities in Table 3 are merely exemplary. Unlike in prior art systems, users can add new associations or entities to the system.
With reference to
Generation of Derived Entities and Associations Using Rules
With reference to
Other examples of rules 725 are shown in Table 4 below. It is to be understood that rules 725 can comprise thousands of rules. Rules 725 can be established by a user, website or application administrator, or an organization such as a museum.
Optionally, User X can extend free association engine 315. For example, User X can create his or her own set of rules to add to rules 725. For example, User X might create an rule that states, “If the painting was created by an artist active between two dates, then it was created between those dates.” Optionally, only users with certain privileges or credentials (e.g., museum curators; art appraisers; art historians; administrators; etc.) will be allowed to create rules 725.
Thus, database 320 can collect input data 520 and metadata 630 from a variety of sources, can collect or derive associations 610, and can generate associations 620 using rules 725, including rules created by users.
A comparison of the embodiments described herein to the prior art can be seen in
Dynamic Views of Input Data, Recorded Observations, Derived Entities, and Associations to Drive Visualizations, Searches, or Recommendations
A user can instruct server 310 to generate a dynamic view of derived entities 610, and/or associations 620 using only those derived from a subset of input data 520 and/or recorded observations 420 and prioritizing the display and use of different sources within that subset. For example, a user might wish to see a visualization of all input data 520 collected regarding Object 450 (e.g., a specific painting), or the user might wish to see a visualization of only the derived entities and associations from input data 520 regarding Object 450 that was collected from specific sources, such as users who are reputable art critics or museum curators. Optionally, the user also can specify a priority for the dynamic view, for example, by ordering the derived entities 610 and associations 620 within the dynamic view based on reputation or ranking data received for each source (e.g., applying greater weight to data derived from a source who has the strongest reputation as indication by reputation-related associations stored in database 320 to that source).
In another example, the user can establish a prioritization for entities and associations and that prioritization can be used to create or order the dynamic view of derived entities 610 and/or associations 620 (e.g., applying a date cutoff for the creation date of the input data 520 or recorded observations 420 from which the derived entities 610 or associations 620 were created and arranging the results based on creation date from most recent to least recent).
This is shown in
With reference to
Similarly, once data subset 920 is created, the user can instruct server 310 to generate visualization 1020 of data subset 920 using visualization engine 316, to perform a search within data subset 920 to generate search results 1021 using search engine 317, or to provide recommendations 1022 based on data subset 920 using recommendation engine 318.
With reference to
Visualization 1100 comprises a graph comprising four quadrants: quadrant 1110 indicates Sensation, quadrant 1120 indicates Content, quadrant 1130 indicates Context, and quadrant 1140 indicates Form.
Visualization 1100 depicts positive reaction profile 1150, negative reaction profile 1160, and knowledge profile 1170. Each of these profiles 1150, 1160, and 1170 is generated using input data 520, express associations 610, and inferred associations 620 that are associated with User X and reflects aspects of art that User X likes, dislikes, and knows about, respectively. Each of the profiles 1150, 1160, and 1170 comprises a point in each of the quadrants 1110, 1120, 1130, and 1140. Visualization 1100 thus can show User X what aspect evokes the most positive or negative feelings in User X. For example, positive reaction profile 1150 and negative reaction profile 1160 both indicate that Sensation is an important quality for User X. User X might like dark artwork but dislike rough artwork. Visualization 1100 also shows User X what aspects he or she is most knowledgeable about.
With reference to
Visualization 1200 depicts views of subsets of users, specifically, general public view 1250, verified experts view 1260, and high reputation users view 1270. Each of these views 1250, 1260, and 1270 is generated using a data subset limited to users of a certain background (determined by analyzing metadata 630), which in this example includes normal users, verified experts (such as art historians or museum curators), and high reputation users (such as serious art collectors), respectively.
Each of the views 1250, 1260, and 1270 comprises a point in each of the quadrants 1110, 1120, 1130, and 1140. Visualization 1200 thus can show what aspects of object 450 most resonated with each collection of users. In this example, Sensation was most important to the general public view 1250 and verified experts view 1260, but Form and Context were most important to high reputation users view 1270 as to object 450.
References to the present invention herein are not intended to limit the scope of any claim or claim term, but instead merely make reference to one or more features that may be covered by one or more of the claims. Materials, processes and numerical examples described above are exemplary only, and should not be deemed to limit the claims. It should be noted that, as used herein, the terms “over” and “on” both inclusively include “directly on” (no intermediate materials, elements or space disposed there between) and “indirectly on” (intermediate materials, elements or space disposed there between). Likewise, the term “adjacent” includes “directly adjacent” (no intermediate materials, elements or space disposed there between) and “indirectly adjacent” (intermediate materials, elements or space disposed there between).