US20150309685A1 - Traversing data utilizing data relationships - Google Patents
Traversing data utilizing data relationships Download PDFInfo
- Publication number
- US20150309685A1 US20150309685A1 US14/795,614 US201514795614A US2015309685A1 US 20150309685 A1 US20150309685 A1 US 20150309685A1 US 201514795614 A US201514795614 A US 201514795614A US 2015309685 A1 US2015309685 A1 US 2015309685A1
- Authority
- US
- United States
- Prior art keywords
- adjustment mechanism
- search
- association
- user interface
- attribute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—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
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- G06F17/30554—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—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
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
- G06F3/04855—Interaction with scrollbars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Definitions
- Embodiments generally relate to traversing data relationships. More particularly, embodiments relate to utilizing data relationships to analyze contextual information about one or more objects to determine object attributes and relationships, and utilizing the attributes and relationships during data search/retrieval.
- Existing search applications may typically only return a set of results based on keywords treated with equal importance, wherein the applications may fail to provide any contextual information regarding the results. As a result, searches may yield sub-optimal results from the user's perspective.
- FIG. 1 is a block diagram of an example of an object space generation scheme according to an embodiment
- FIG. 2 is a block diagram of a logic architecture according to an embodiment
- FIG. 3 is a block diagram of an example of an object data structure according to an embodiment
- FIG. 4 is a flowchart of an example of a method of associating an object with an object space according to an embodiment
- FIG. 5 is a block diagram of an example of a cluster data structure according to an embodiment
- FIG. 6 is a table of an example of relative attributes according to an embodiment
- FIGS. 7A-7C are block diagrams of a graphical user interface (GUI) according to an embodiment
- FIG. 8 is a flowchart of an example of a method of traversing data according to an embodiment
- FIG. 9 is a block diagram of an example of a processor according to an embodiment.
- FIG. 10 is a block diagram of an example of a system according to an embodiment.
- FIG. 1 shows a plurality of objects 24 having a corresponding plurality of textual descriptions 26 of the objects 24 , wherein each illustrated textual description 26 includes words and/or phrases that depict an associated object 24 .
- the objects 24 may be any data element that might serve as a basis of a data traversal effort.
- the objects 24 may represent, for example, items, locations, individuals, products and/or services that are the subject of commercial transactions, non-commercial data research efforts, social networking inquiries, and so forth.
- one or more topics 28 are identified based on the textual descriptions 26 , wherein the textual descriptions 26 and the topics 28 may be further used to obtain association information 30 .
- the association information 30 may reflect degrees of association between each textual description 26 and the topics 28 , degrees of association between each object 24 and the topics 28 , degrees of association between each textual description 26 and the words in the textual description 26 , degrees of association between words in the textual descriptions 26 and the topics 28 , and so forth.
- the association information 30 may be used to group the objects 24 into clusters 32 of an object space 34 , wherein the object space 34 may be used to respond to, and facilitate, search requests.
- use of the association information 30 in conjunction with the textual descriptions 26 may enable searches to be formulated and/or guided by words that are not normally used to distinguish the objects 24 from one another. Accordingly, the illustrated scheme provides an unexpectedly high level of granularity and flexibility to the end user.
- FIG. 2 shows a logic architecture 36 ( 36 a - 36 i ) that may be used to both generate and traverse object spaces.
- a topic generation module 36 a identifies one or more topics based on a plurality of textual descriptions of a corresponding plurality of objects.
- the topic generation module 36 a may use a topic model to identify the one or more topics.
- a first association module 36 b may determine a first degree of association between each of the textual descriptions and the one or more topics in order to obtain first association information.
- the first association information may be structured as a first set of vectors corresponding to the plurality of textual descriptions.
- each vector in the first set of vectors may hold weight values, where each weight value indicates the degree of association between a textual description and a particular topic.
- the illustrated architecture 36 also includes a second association module 36 c that determines a second degree of association between each of the plurality of objects and the one or more topics in order to obtain second association information.
- the second association information may be structured as a second set of vectors corresponding to the plurality of objects, where each vector in the second set of vectors may hold weight values.
- each weight value may indicate a degree of association between an object and a particular topic.
- the architecture 36 also includes a third association module 36 d that determines a third degree of association between each textual description and one or more words in the textual description in order to obtain third association information.
- the third association module 36 d may structure the third association information as a third set of vectors corresponding to the plurality of textual descriptions, wherein each vector in the third set of vectors may have weight values that identify a frequency of occurrence of the one or more words in a respective textual description.
- a fourth association module 36 e may determine a fourth degree of association between each word and the one or more topics in order to obtain fourth association information.
- the fourth association module 36 e may structure the fourth association information as a fourth set of vectors corresponding to the one or more words.
- the first association module 36 b may use the third and fourth association information to obtain the first association information, which reflects the degree of association between the textual descriptions and the topics.
- the first association module 36 b might use a probabilistic graphical model (PGM) to propagate the fourth association information (e.g., word-topic relationships) to the plurality of textual descriptions in the first association information.
- the second association module 36 c may use a PGM to propagate the fourth association information to the plurality of objects in the second association information.
- Other approaches may also be used to obtain the first and second association information.
- the illustrated architecture 36 also includes a cluster module 36 f to group the plurality of objects into clusters based on the first association information from the first association module 36 b and the second association information from the second association module 36 c.
- the architecture 36 may also provide for traversing the object space in accordance with search requests from end users. More particularly, the illustrated architecture 36 includes a first result module 36 g that generates a first set of results based on a scope of a requested search and the object space.
- the object space includes a first object and a second object arranged according to a relative relationship based on an attribute.
- an adjustment module 36 h may generate a user interface having a first adjustment mechanism configured to adjust a scope of the requested search and a second adjustment mechanism configured to adjust results of a search based on the attribute.
- the illustrated architecture 36 also includes a second result module 36 i to generate a second set of results based on a user input received via one or more of the first adjustment mechanism and the second adjustment mechanism, wherein the second set of results includes the second object.
- the data structure 10 may include one or more elements, wherein these elements may include an object, a metadata entry, a word, and an object space. As will be discussed in greater detail, each of these elements of a data structure may represent a level (or layer) of data that may be analyzed alone or in combination with another to enhance traversing of related data (e.g., in a data search).
- the illustrated data structure 10 includes an object 11 .
- the object 11 may be any data element that may be a basis of a data traversal effort (e.g., a data search). So, in this example, the object 11 is a graphical novel, “The Dark Knight Returns”, that may be available for purchase from an online vendor. The object 11 may therefore represent a first level of data.
- the object 11 may be sold in electronic commerce by more than one online vendor. Each of these online vendors may associate a textual description of the object 11 to aid in a customer's purchase of the product. Textual descriptions (or metadata) associated with the object 11 may represent a second level of data.
- the textual descriptions may include one or more words, wherein words relating to a textual description of an object may represent a third level of data.
- a first vendor e.g., Amazon
- the first vendor's metadata 12 may include words 15 - 17 (i.e., “comics”, “graphical” and “novels”) to describe the object 11 .
- a second vendor e.g., Ebay
- the second vendor's metadata 13 may include the words 15 , 16 , 18 , 19 , 21 (i.e., “superheroes”, “comics”, “graphical”, “literature”, and “book”) to describe the object 11 .
- a third vendor may associate metadata 14 with the object 11 .
- the third vendor's metadata 14 may include the words 16 , 18 , 20 , 21 (i.e., “graphical”, “superheroes”, “DC”, “graphical”, and “book”) to describe the object 11 .
- vendors may uniquely use a word (e.g., “DC”) to describe the object 11 , may use the same words to describe the object 11 (e.g., “graphical”), or a vendor may use the same word more than once (e.g., the third vendor's use of “Graphical”) when describing the object 11 .
- data pertaining to the object 11 may be used to analyze contextual information about the object 11 to determine attributes of the object 11 , wherein the attributes may then be used as parameters during a search.
- the use of the word 18 “superheroes” may be regarded as an attribute of object 11 (i.e., the object has some relation to the notion of superheroes).
- Another example may be the use of the word “date” in the description of a purse (as in “I took the purse with me to go on a date with my boyfriend”), or “beach” in the description of summer banana split truffles.
- An attribute may then be used as a parameter in a search resulting in the return of an object as a result.
- date may not commonly be used by purse vendors to quantify and/or distinguish between purses.
- beach may not typically be used to quantify truffles.
- data pertaining to the object 11 may be used to associate the object 11 with one or more clusters.
- a cluster may also viewed as a category, a topic, a group, a community, or any other grouping of objects that may be relevant to traversing data relating to the object 11 .
- the object 11 may be associated with a cluster and/or topic 22 , “Graphic Novels”, and a second cluster and/or topic 23 , “Books”.
- a cluster may therefore represent a fourth level of data.
- a search application may associate an object, such as the object 11 ( FIG. 3 ), with one or more topics, such as the topics 22 , 23 ( FIG. 3 ).
- the object may be a graphic novel, “The Dark Knight Returns.”
- the method 40 may be implemented as a set of logic and/or firmware instructions stored in a machine- or computer-readable storage medium such as random access memory (RAM), read only memory (ROM), programmable ROM (PROM), flash memory, etc., in configurable logic such as, for example, programmable logic arrays (PLAs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), in fixed-functionality logic hardware using circuit technology such as, for example, application specific integrated circuit (ASIC), complementary metal oxide semiconductor (CMOS) or transistor-transistor logic (TTL) technology, or any combination thereof.
- RAM random access memory
- ROM read only memory
- PROM programmable ROM
- flash memory etc.
- PLAs programmable logic arrays
- FPGAs field programmable gate arrays
- CPLDs complex programmable logic devices
- ASIC application specific integrated circuit
- CMOS complementary metal oxide semiconductor
- TTL transistor-transistor logic
- computer program code to carry out operations shown in the method 40 may be written in any combination of one or more programming languages, including an object oriented programming language such as C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
- the method may begin at processing block 42 .
- a search application may gather a textual description, such as the metadata 12 ( FIG. 3 ), from a first source.
- the search application may parse the textual description into one or more words. So, in the example, of metadata 12 ( FIG. 3 ), the application parses the metadata into three words (i.e., “comics”, “graphical”, and “novels”).
- the application may be configured to parse each of the words in the textual description.
- other approaches may be used.
- the application may be configured to parse and utilize only particular words (e.g., unique words, nouns, adjectives, etc.) in the textual description, or even extract keywords and replace them with equivalent metadata.
- the application may utilize one or more words of the textual description of the first source to generate a vector representing the textual description.
- the vector may describe how many times a word or a concept appears in the textual description provided by the source, and may be used to describe the textual description.
- the vector may be part of the third association information generated by the third association module 36 d ( FIG. 2 ), already discussed. So, in the case of the metadata 12 ( FIG. 3 ), a first vector, representing the metadata from the first vendor, may be based on the words “comics”, “graphical” and “novels”, each of which appears once.
- the application may generate a vector for each textual description relating to the object.
- each vector may be weighted.
- each vector may be weighted equally, while in another, different weights may be assigned based on, for example, relevance to the object.
- the vector may also be used to effectively determine a degree of association between a word and an object.
- a first word that is mentioned twice in a description pertaining to an object will have a greater degree of association with an object than a second word that is mentioned once.
- the vector may be used to describe a degree of association between the attribute and the object.
- the application may assign a weight value to each word in the vector.
- This weight value may represent the relevance or importance of a word within its vector.
- words in a vector may be weighted using a probabilistic graphical model (PGM) to determine a weight of each word in the vector. So, in the case of the vector associated with the metadata 12 ( FIG. 3 ), the first word “comics” may be assigned a first weight, the second word “graphical” a second weight, and the third word “novels” a third weight. In the case that each word in the vector is to be weighted equally, each of these words would be given a weight of one-third (1 ⁇ 3). In the case of multiple vectors, a word's weight in a first vector may not be the same as the same word's weight in a second vector.
- the weight attributed to each word may be used to determine a degree of association between a word and its vector.
- a word may be related to an attribute of the object, and a vector may be related to a textual description of the object. So, the weight attributed to each word may also represent a degree of association between the word and its associated textual description, and a degree of association between an attribute and the word's associated textual description.
- the application may associate one or more clusters with each word relating to the object.
- the search application may utilize a topic model (e.g., Latent Dirichlet Allocation (LDA)) to analyze a word to determine a weight value.
- This weight value may represent a probability (ranging from zero to one hundred percent) that the word is associated with one or more clusters.
- the topic model may return, for example, a probability for a first cluster in an object space, “Books”, and a probability for a second cluster in the object space, “Graphic Novels”.
- the probability that a word is associated with a cluster may be viewed as a degree of association between the word and the cluster as well.
- the application may associate one or more of the determined clusters with the object.
- the application may utilize Bayes theorem and a PGM of each object to generate a topic vector.
- the topic vector may represent a probability that a cluster is associated with the object. So, in the case of the metadata 12 ( FIG. 3 ), the application may find a 98% degree of association between the category “Graphic Novels” and the object, and only a 2% degree of association between the category “Books” and the object.
- the probability of an object belonging to a topic may be calculated as follows:
- P ⁇ ( object , topic ) ⁇ document ⁇ ⁇ ⁇ word ⁇ P ⁇ ( object , document , word , topic )
- P ⁇ ( object , document , word , topic ) P ⁇ ( object ) ⁇ P ⁇ ( document
- the application may calculate an overall probability of the object in the cluster.
- the overall probability of the object may be 1/n, where n represents the number of objects in the cluster. If appropriate, this weight may be modified to provide preferences to certain objects.
- the process may terminate.
- these various calculations may be used to represent various relationships between different layers of data pertaining to an object. As discussed above, these relationships may then be used to determine various degrees of association, including (but not limited to):
- a degree of association between a textual description and a topic e.g., first association information
- a degree of association between an object and a topic e.g., second association information
- a degree of association between a word and a topic e.g., fourth association information
- These relationships between various data types may each be considered random variables, which may be used to traverse data (e.g., in a data search pertaining to an object). More specifically, as will be discussed in greater detail, these relationships may offer a user several options during data search, each of which may be used to focus a search to an aspect of an object in which a user may be interested.
- a degree of association between an object and an attribute may be used to focus a search.
- a degree of association between an object and an attribute may be used to focus a search.
- “books” may not be a word typically used to quantify and/or distinguish between backpacks.
- a degree of association between a first object and a second object may be used to focus a search.
- the degree of association between a first object and a second object may be determined by, for example, a degree of association between an attribute and the first object and the degree of association between the attribute and the second object.
- the degree of association between a first object and a second object may be used to generate a relative relationship (i.e., similarity, dissimilarity, etc.), wherein the relative relationship may be calculated utilizing, for example, the topic vector of each object with respect to a cluster.
- the frequent presence of the word “book” in a textual description of a first backpack and the absence of the word “book” in the description of a second backpack may generate a relative relationship between the first backpack and the second backpack around the attribute “book” (i.e., that the first backpack is better for carrying books than the second backpack).
- This relative relationship may be used during a “back-to-school” search for a backpack to be used by a student.
- a degree of association between an object and a cluster may allow a search application to organize and arrange the objects within the cluster.
- a search for a particular object with respect to a particular attribute may, in some cases, begin with a search for a cluster.
- the desired attributes may then be used to further focus the search to the desired object within the cluster.
- one or more objects within one or more clusters may be arranged to generate a map, or a graph of one or more dimensions or attributes.
- a cluster of ten backpacks may be organized within the object space according to their various attributes using, for example, the topic vector of each object with respect to that cluster. That is, one backpack (i.e., an object) may be organized within the cluster (i.e., backpacks) utilizing its relative relationship to other objects in the space. So, in the case where the relevant attribute is books, the ten backpacks may be contextually arranged from best suitable for carrying books to least suitable for carrying books, wherein the backpack whose textual description includes heavy use of words like “books”, “class” and “school” would be placed among the most suitable for carrying books. Any cluster (e.g., backpacks) affiliated with an object may be arranged and organized according to the attribute (e.g., book carrying suitability) in a similar manner.
- the attribute e.g., book carrying suitability
- the degrees of association e.g., between an object and an attribute, between an object and a cluster
- the relative relationship between objects may allow a search application to derive inferences about aspects of one or more objects (as appropriate). Take, for example, the case of a first cluster, truffles, and a second cluster, pet products.
- the repeated inclusion of the word “cuisine” in the textual description of objects in the first cluster, and the dearth of the word in the textual description of objects in the second cluster may allow a search application to determine that truffles are more related to gourmet cuisine than pet products. This inference may then be used to focus a search (e.g., for a gourmet cuisine) as well.
- degrees of association as described herein may be used to retrieve different objects within a cluster based on non-traditional attributes.
- these relative relationships may be presented to a user as knobs that he/she can manipulate, during retrieval of search results to provide context to the user regarding how the returned results may be related.
- the parameters determined as discussed above e.g., attributes, degrees of association, and relative relationships
- FIG. 5 illustrates a group of objects and clusters according to one embodiment.
- a primary cluster 100 may pertain to “gourmet” objects that, for example, may be offered by vendors online. Also, as discussed above, data associated with an object may be analyzed to arrange the object within the primary cluster 100 .
- the illustrated primary cluster 100 includes three secondary clusters.
- the secondary cluster 101 may pertain to “truffles”, the secondary cluster 102 may pertain to “olives”, and the third cluster 103 may pertain to “cheeses”.
- the arrangement of the secondary clusters from most gourmet to least gourmet may be illustrated by arranging them from left (i.e., most gourmet) to right (i.e., least gourmet).
- the illustrated secondary cluster 101 includes four objects.
- the object 104 may be sea salt truffles
- the object 105 may be Scorzone truffles
- the object 106 may be Bohemian truffles
- the object 107 may be Summer Banana Split truffles.
- the arrangement of the objects from most gourmet to least gourmet may be illustrated by arranging them from left (i.e., most gourmet) to right (i.e., least gourmet) within the secondary cluster.
- FIG. 6 illustrates degrees of association between various products according to various attributes.
- the objects 104 - 107 of FIG. 5 illustrates that the objects may be arranged according to a first attribute 108 and a second attribute 109 .
- the first attribute 108 may pertain to the “beach”
- the second attribute 109 may pertain to “gourmet”.
- the sea salt truffles may be the most gourmet, followed by the Scorzone truffles, the Bohemian truffles, and the Summer Banana Split truffles.
- the summer banana split truffles may be the most suitable for a day at the beach, followed by the sea salt truffles, the Bohemian truffles, and the Scorzone truffles.
- these relationships between the objects may be derived from analysis of, for example, related textual information originating from various online vendors. Indeed, other unexpected attributes such as “breakfast” (e.g., suitability for breakfast) and “garden” (e.g., ease of growing in a home garden) may be used to characterize the relative relationships between the objects.
- FIGS. 7A-7C illustrate a graphical user interface (GUI) 110 that may facilitate a search according to one embodiment.
- the GUI 110 may include a search bar 111 , a results window 112 , a first adjustment mechanism 113 , a second adjustment mechanism 114 , and a third adjustment mechanism 115 .
- the search bar 111 may be used to input search terms. For example, a user may enter the words “gourmet mushrooms” as a search request, wherein the results window 112 may be used to display the results of the search. In the illustrated example, the search request has returned “Sea salt truffles” as a primary result. As already noted, the user may decide that sea salt truffles are not what he or she is looking for, and therefore use the adjustment mechanisms 113 - 115 to dynamically adapt the search. More particularly, the first adjustment mechanism 113 , the second adjustment mechanism 114 , and the third adjustment mechanism 115 may be graphical widgets that may be used to adjust the search. In this example, the adjustment mechanisms 113 - 115 may take the form of rotatable knobs. In another embodiment, the adjustment mechanisms may 113 - 115 take the form of, for example, scrollable bars.
- the first adjustment mechanism 113 may relate to a first aspect of the original search request, while the second adjustment mechanism 114 may relate to a second aspect of the search request. So, for example, the first adjustment mechanism 113 may be used to focus a set of retrieved results more on the attribute gourmet, while the second adjustment mechanism 114 may be used to focus the retrieved results more on the attribute mushrooms. In other words, the user might increase the second adjustment mechanism 114 and/or decrease the first adjustment mechanism 113 , to retrieve results that are more closely related to mushrooms than gourmet. Doing so may cause the search application to analyze the association information related to sea salt truffles to determine whether there are any other objects that, while related to gourmet, have a stronger relationship to mushrooms.
- the adjustment process may result in a book entitled “Anatomy of a Mushroom” (e.g., wherein the book might have a chapter dealing with mushrooms as a delicacy).
- the user may decrease the second adjustment mechanism 114 and/or increase the first adjustment mechanism 113 , to retrieve results that are more closely related to gourmet than mushrooms.
- Such an action may cause the search application to analyze the association information related to sea salt truffles to determine whether there are any objects that, while related to mushrooms, have a stronger relationship to gourmet.
- the third adjustment mechanism 115 may be used to adjust the search based on an attribute associated with two or more objects in the object space.
- the third adjustment mechanism 115 may be used to adjust a beach influence on the search results. So, for example, when a user searches for gourmet mushrooms (i.e., a primary cluster), and the retrieved search results pertain to truffles (i.e., a secondary cluster) generally, the user (if she wishes) may use the third adjustment mechanism 115 to further focus the search on truffles for a beach excursion.
- a search application may analyze the association information related to the sea salt truffles in order to retrieve more focused results pertaining to beach-appropriate truffles.
- the search application may return “Summer banana split truffles” as a primary result in response to such an adjustment.
- a user may also use the third adjustment mechanism 115 in the opposite manner (to reduce, as opposed to increase, the beach influence in the search results) as well.
- the function of the third adjustment mechanism 115 may not include any terms of a user's original search request. Indeed, it may be determined that the “beach” is a term that is not characteristically used to quantify truffles, yet may be a useful term to end users in finding objects of interest.
- FIG. 8 a method 60 of traversing data is shown.
- a user may utilize a GUI, such as the GUI 110 ( FIGS. 7A-7C ) to search for gourmet truffles to purchase from products offered by online vendors.
- the method 60 may be implemented as a set of logic and/or firmware instructions stored in a machine- or computer-readable storage medium such as random access memory (RAM), read only memory (ROM), programmable ROM (PROM), flash memory, etc., in configurable logic such as, for example, programmable logic arrays (PLAs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), in fixed-functionality logic hardware using circuit technology such as, for example, application specific integrated circuit (ASIC), complementary metal oxide semiconductor (CMOS) or transistor-transistor logic (TTL) technology, or any combination thereof.
- RAM random access memory
- ROM read only memory
- PROM programmable ROM
- flash memory etc.
- PLAs programmable logic arrays
- FPGAs field programmable gate arrays
- CPLDs complex programmable logic devices
- ASIC application specific integrated circuit
- CMOS complementary metal oxide semiconductor
- TTL transistor-transistor logic
- computer program code to carry out operations shown in the method 60 may be written in any combination of one or more programming languages, including an object oriented programming language such as C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
- the method may begin at processing block 62 .
- a user may use a search bar, such as the search bar 111 ( FIGS. 7A-7C ) to input a term such as, for example, “gourmet mushrooms” and initiate a search.
- a search application may associate the search terms with a primary cluster, such as the primary cluster 100 ( FIG. 5 ) based on the attribute of “gourmet”.
- the search application may further focus the search to one or more secondary clusters to return search results.
- a first secondary cluster such as the cluster 101 ( FIG. 5 ) may pertain to truffles.
- a second secondary cluster such as the secondary cluster 102 ( FIG. 5 ), may pertain to olives.
- the search application may return results that pertain to truffles.
- the search application may provide adjustments mechanisms to navigate the search results.
- the search application may analyze various aspects pertaining to the cluster (e.g., attributes, degrees of association, etc.) to determine that a first aspect of the user's search may be “gourmet”, and a second aspect may be “mushroom”.
- the search application may also provide a first adjustment mechanism pertaining to gourmet, such as the first adjustment mechanism 115 ( FIGS. 7A-7C ), and a second adjustment mechanism pertaining mushrooms, such as the second adjustment mechanism 114 ( FIGS. 7A-7C ).
- the search application may include a third search mechanism, similar to the third adjustment mechanism 115 ( FIGS. 7A-7C ) that may be used to adjust the results of the search based on an attribute such as the “beach”.
- the adjustment mechanisms may take the form of a knobs.
- the user may review the results, and utilize the first and second adjustment mechanisms to focus the search to return results more preferred. So, in this example, the user may use the second adjustment mechanism to request that the search results focus more toward mushrooms than gourmet.
- the search application may utilize the user's input to recognize that the user prefers mushrooms. So, in this case, the search application may analyze objects within the object space (e.g., using degrees of association and relative relationships, as discussed above) to determine that the most appropriate result is a particular object, such as the book “Anatomy of a Mushroom”. At processing block 76 , the search application may return the result to the user.
- the user may view the result and determine that the book “Anatomy of a Mushroom” is too closely related to mushrooms and not related enough to beach-appropriate gourmet foods.
- the user may therefore use the first adjustment mechanism (relating to gourmet) to focus the search results back towards gourmet foods and use the third adjustment mechanism to incorporate the attribute “beach” into the data traversal process.
- the search application may analyze objects within the object space first secondary cluster based on the user's request. That is, the search application may (e.g., using degrees of association, relative relationships, etc.) determine that Summer banana split truffles are both more related to gourmet foods and more related to a day at the beach than the other objects in the object map.
- the search application may return the second result to the user.
- the user may conduct a transaction to purchase the Summer banana split truffles from the online vendor offering them.
- the process may terminate.
- the sequence and numbering of blocks depicted in FIG. 8 is not intended to imply an order of operations to the exclusion of other possibilities.
- the objects may be analyzed according to attributes relating to objects. More specifically, the results to be returned to the user were being analyzed with respect to a beach attribute of truffle objects.
- An analysis of a search application need not be limited, however, to attributes pertaining to objects.
- a search application may take into account other information as well. So, for example, a search application may analyze a user profile to determine that the user is environmentally-conscious. In this case, the search application may account for this aspect by providing an adjustment mechanism to adjust for eco-friendly products.
- FIG. 9 illustrates a processor core 200 according to one embodiment.
- the processor core 200 may be the core for any type of processor, such as a micro-processor, an embedded processor, a digital signal processor (DSP), a network processor, or other device to execute code. Although only one processor core 200 is illustrated in FIG. 9 , a processing element may alternatively include more than one of the processor core 200 illustrated in FIG. 9 .
- the processor core 200 may be a single-threaded core or, for at least one embodiment, the processor core 200 may be multithreaded in that it may include more than one hardware thread context (or “logical processor”) per core.
- FIG. 9 also illustrates a memory 270 coupled to the processor 200 .
- the memory 270 may be any of a wide variety of memories (including various layers of memory hierarchy) as are known or otherwise available to those of skill in the art.
- the memory 270 may include one or more code 213 instruction(s) to be executed by the processor 200 core, wherein the code 213 may implement the logic architecture 36 ( FIG. 2 ), already discussed.
- the processor core 200 follows a program sequence of instructions indicated by the code 213 . Each instruction may enter a front end portion 210 and be processed by one or more decoders 220 .
- the decoder 220 may generate as its output a micro operation such as a fixed width micro operation in a predefined format, or may generate other instructions, microinstructions, or control signals which reflect the original code instruction.
- the illustrated front end 210 also includes register renaming logic 225 and scheduling logic 230 , which generally allocate resources and queue the operation corresponding to the convert instruction for execution.
- the processor 200 is shown including execution logic 250 having a set of execution units 255 - 1 through 255 -N. Some embodiments may include a number of execution units dedicated to specific functions or sets of functions. Other embodiments may include only one execution unit or one execution unit that can perform a particular function.
- the illustrated execution logic 250 performs the operations specified by code instructions.
- back end logic 260 retires the instructions of the code 213 .
- the processor 200 allows out of order execution but requires in order retirement of instructions.
- Retirement logic 265 may take a variety of forms as known to those of skill in the art (e.g., re-order buffers or the like). In this manner, the processor core 200 is transformed during execution of the code 213 , at least in terms of the output generated by the decoder, the hardware registers and tables utilized by the register renaming logic 225 , and any registers (not shown) modified by the execution logic 250 .
- a processing element may include other elements on chip with the processor core 200 .
- a processing element may include memory control logic along with the processor core 200 .
- the processing element may include I/O control logic and/or may include I/O control logic integrated with memory control logic.
- the processing element may also include one or more caches.
- FIG. 10 shown is a block diagram of a system embodiment 1000 in accordance with an embodiment of the present invention. Shown in FIG. 10 is a multiprocessor system 1000 that includes a first processing element 1070 and a second processing element 1080 . While two processing elements 1070 and 1080 are shown, it is to be understood that an embodiment of system 1000 may also include only one such processing element.
- System 1000 is illustrated as a point-to-point interconnect system, wherein the first processing element 1070 and second processing element 1080 are coupled via a point-to-point interconnect 1050 . It should be understood that any or all of the interconnects illustrated in FIG. 10 may be implemented as a multi-drop bus rather than point-to-point interconnect.
- each of processing elements 1070 and 1080 may be multicore processors, including first and second processor cores (i.e., processor cores 1074 a and 1074 b and processor cores 1084 a and 1084 b ).
- Such cores 1074 , 1074 b , 1084 a , 1084 b may be configured to execute instruction code in a manner similar to that discussed above in connection with FIG. 9 .
- Each processing element 1070 , 1080 may include at least one shared cache 1896 .
- the shared cache 1896 a , 1896 b may store data (e.g., instructions) that are utilized by one or more components of the processor, such as the cores 1074 a , 1074 b and 1084 a , 1084 b , respectively.
- the shared cache may locally cache data stored in a memory 1032 , 1034 for faster access by components of the processor.
- the shared cache may include one or more mid-level caches, such as level 2 (L2), level 3 (L3), level 4 (L4), or other levels of cache, a last level cache (LLC), and/or combinations thereof.
- LLC last level cache
- processing elements 1070 , 1080 may be present in a given processor.
- processing elements 1070 , 1080 may be an element other than a processor, such as an accelerator or a field programmable gate array.
- additional processing element(s) may include additional processors(s) that are the same as a first processor 1070 , additional processor(s) that are heterogeneous or asymmetric to processor a first processor 1070 , accelerators (such as, e.g., graphics accelerators or digital signal processing (DSP) units), field programmable gate arrays, or any other processing element.
- accelerators such as, e.g., graphics accelerators or digital signal processing (DSP) units
- DSP digital signal processing
- processing elements 1070 , 1080 there can be a variety of differences between the processing elements 1070 , 1080 in terms of a spectrum of metrics of merit including architectural, microarchitectural, thermal, power consumption characteristics, and the like. These differences may effectively manifest themselves as asymmetry and heterogeneity amongst the processing elements 1070 , 1080 .
- the various processing elements 1070 , 1080 may reside in the same die package.
- First processing element 1070 may further include memory controller logic (MC) 1072 and point-to-point (P-P) interfaces 1076 and 1078 .
- second processing element 1080 may include a MC 1082 and P-P interfaces 1086 and 1088 .
- MC's 1072 and 1082 couple the processors to respective memories, namely a memory 1032 and a memory 1034 , which may be portions of main memory locally attached to the respective processors. While the MC logic 1072 and 1082 is illustrated as integrated into the processing elements 1070 , 1080 , for alternative embodiments the MC logic may be discrete logic outside the processing elements 1070 , 1080 rather than integrated therein.
- the first processing element 1070 and the second processing element 1080 may be coupled to an I/O subsystem 1090 via P-P interconnects 1076 , 1086 and 1084 , respectively.
- the I/O subsystem 1090 includes P-P interfaces 1094 and 1098 .
- I/O subsystem 1090 includes an interface 1092 to couple I/O subsystem 1090 with a high performance graphics engine 1038 .
- bus 1049 may be used to couple graphics engine 1038 to I/O subsystem 1090 .
- a point-to-point interconnect 1039 may couple these components.
- I/O subsystem 1090 may be coupled to a first bus 1016 via an interface 1096 .
- the first bus 1016 may be a Peripheral Component Interconnect (PCI) bus, or a bus such as a PCI Express bus or another third generation I/O interconnect bus, although the scope of the present invention is not so limited.
- PCI Peripheral Component Interconnect
- various I/O devices 1014 may be coupled to the first bus 1016 , along with a bus bridge 1018 which may couple the first bus 1016 to a second bus 1010 .
- the second bus 1020 may be a low pin count (LPC) bus.
- Various devices may be coupled to the second bus 1020 including, for example, a keyboard/mouse 1012 , network controller(s)/communication device(s) 1026 (which may in turn be in communication with a computer network, 503 ), and a data storage unit 1018 such as a disk drive or other mass storage device which may include code 1030 , in one embodiment.
- the communications devices 1026 may be used to receive text descriptions of objects, as already discussed.
- the code 1030 may include instructions for performing embodiments of one or more of the methods described above.
- the illustrated code 1030 may implement the logic architecture 36 ( FIG. 2 ) and could be similar to the code 213 ( FIG. 9 ), already discussed.
- an audio I/O 1024 may be coupled to second bus 1020 .
- a system may implement a multi-drop bus or another such communication topology.
- the elements of FIG. 10 may alternatively be partitioned using more or fewer integrated chips than shown in FIG. 10 .
- Examples may therefore include an object space generation system having a network controller to receive a plurality of textual descriptions, wherein each textual description includes one or more words and phrases that depict an object in a plurality of objects. Additionally, the system may include a first association module to determine a first degree of association between each of the plurality of textual descriptions and the one or more topics to obtain first association information, and a second association module to determine a second degree of association between each of the plurality of objects and the one or more topics to obtain second association information. In addition, the system may include a cluster module to group the plurality of objects into clusters based on the first association information and the second association information.
- system may further include a topic generation module to identify the one or more topics based on a plurality of textual descriptions.
- the topic generation module may use a topic module to identify the one or more topics.
- first association module may structure the first association information as a first set of vectors corresponding to the plurality of objects
- second association module may structure the second association information as a set of vectors corresponding to the plurality of textual descriptions.
- system may further include a third association module to determine a third degree of association between each textual description and one or more words in the textual description to obtain third association information, and a fourth association module to determine a fourth degree of association between each word and the one or more topics to obtain fourth association information.
- the first association module may use the third and fourth association information to obtain the first association information
- the second association module may use the third and fourth association information to obtain the fourth association information.
- the first association module may use a probabilistic graphical model (PGM) to propagate the fourth association information to the plurality of textual descriptions.
- PGM probabilistic graphical model
- the second association module may use a probabilistic graphical model (PGM) to propagate the fourth association information to the plurality of objects.
- PGM probabilistic graphical model
- the third association module may structure the third association information as a third set of vectors corresponding to the plurality of textual descriptions
- the fourth association module may structure the fourth association information as a fourth set of vectors corresponding to the one or more words.
- each vector in the third set of vectors may have weight values that identify a frequency of occurrence of the one or more words in a respective textual description.
- the cluster module may spatially order the clusters based on relative relationships between the objects and clusters.
- a method of generating an object space includes determining a first degree of association between each of a plurality of textual descriptions and one or more topics to obtain first association information, determining a second degree of association between each of a plurality of objects and the one or more topics to obtain second association information, and grouping the plurality of objects into clusters based on the first association information and the second association information.
- each textual description may include one or more of words and phrases that depict an object in the plurality of objects, wherein the method further includes identifying the one or more topics based on the plurality of textual descriptions.
- the method may further include using a topic model to identify the one or more topics.
- the method may further include structuring the first association information as a first set of vectors corresponding to the plurality of objects, and structuring the second association information as a second set of vectors corresponding to the plurality of textual descriptions.
- determining the first degree of association and the second degree of association may include determining a third degree of association between each textual description and one or more words in the textual description to obtain third association information, and determining a fourth degree of association between each word and the one or more topics to obtain fourth association information.
- the method may further include using a probabilistic graphical model (PGM) to propagate the fourth association information to the plurality of textual descriptions.
- PGM probabilistic graphical model
- the method may further include using a probabilistic graphical model (PGM) to propagate the fourth association information to the plurality of objects.
- PGM probabilistic graphical model
- the method may further include structuring the third association information as a third set of vectors corresponding to the plurality of textual descriptions, and structuring the fourth association information as a fourth set of vectors corresponding to the one or more words.
- each vector in the third set of vectors may have weight values that identify a frequency of occurrence of the one or more words in a respective textual description.
- grouping the plurality of objects may include spatially ordering the dusters based on relative relationships between the objects.
- Other examples may include at least one computer readable storage medium comprising a set of traversal instructions which, if executed by a processor, cause a computer to generate a first set of results based on a scope of a requested search and an object space, wherein the object space is to include a first object and a second object arranged according to a relative relationship based on an attribute.
- the traversal instructions if executed, may further cause a computer to generate a user interface including a first adjustment mechanism configured to adjust a scope of the requested search and a second adjustment mechanism configured to adjust results of a search based on the attribute, and generate a second set of results based on a user input received via one or more of the first adjustment mechanism and the second adjustment mechanism, wherein the second set of results is to include the second object.
- the attribute of the medium may be based on a word included in a first textual description of the first object and a second textual description of the second object.
- the user interface of the medium may be a graphical user interface (GUI) and the first adjustment mechanism may be one of a knob and a scrollable bar.
- GUI graphical user interface
- the user interface of the medium may be a graphical user interface (GUI) and the second adjustment mechanism may be one of a knob and a scrollable bar.
- GUI graphical user interface
- Examples may also include a data traversal apparatus including a first result module to generate a first set of results based on a scope of a requested search and an object space, wherein the object space is to include a first object and a second object arranged according to a relative relationship based on an attribute.
- the data traversal apparatus may also include an adjustment module to generate a user interface including a first adjustment mechanism configured to adjust a scope of the requested search and a second adjustment mechanism configured to adjust results of a search based on the attribute, and a second result module to generate a second set of results based on a user input received via one or more of the first adjustment mechanism and the second adjustment mechanism, wherein the second set of results is to include the second object.
- the attribute of the apparatus may be based on a word included in a first textual description of the first object and second textual description of the second object.
- the user interface of the apparatus may be a graphical user interface (GUI) and the first adjustment mechanism is to be one of a knob and a scrollable bar.
- GUI graphical user interface
- the user interface of the apparatus may be a graphical user interface (GUI) and the second adjustment mechanism is to be one of a knob and a scrollable bar.
- GUI graphical user interface
- Various embodiments may be implemented using hardware elements, software elements, or a combination of both.
- hardware elements may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth.
- Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether an embodiment is implemented using hardware elements and/or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints.
- IP cores may be stored on a tangible, machine readable medium and supplied to various customers or manufacturing facilities to load into the fabrication machines that actually make the logic or processor.
- Embodiments of the present invention are applicable for use with all types of semiconductor integrated circuit (“IC”) chips.
- IC semiconductor integrated circuit
- Examples of these IC chips include but are not limited to processors, controllers, chipset components, programmable logic arrays (PLAs), memory chips, network chips, and the like.
- PPAs programmable logic arrays
- signal conductor lines are represented with lines. Some may be different, to indicate more constituent signal paths, have a number label, to indicate a number of constituent signal paths, and/or have arrows at one or more ends, to indicate primary information flow direction. This, however, should not be construed in a limiting manner. Rather, such added detail may be used in connection with one or more exemplary embodiments to facilitate easier understanding of a circuit.
- Any represented signal lines may actually comprise one or more signals that may travel in multiple directions and may be implemented with any suitable type of signal scheme, e.g., digital or analog lines implemented with differential pairs, optical fiber lines, and/or single-ended lines.
- Example sizes/models/values/ranges may have been given, although embodiments of the present invention are not limited to the same. As manufacturing techniques (e.g., photolithography) mature over time, it is expected that devices of smaller size could be manufactured.
- well known power/ground connections to IC chips and other components may or may not be shown within the figures, for simplicity of illustration and discussion, and so as not to obscure certain aspects of the embodiments of the invention.
- arrangements may be shown in block diagram form in order to avoid obscuring embodiments of the invention, and also in view of the fact that specifics with respect to implementation of such block diagram arrangements are highly dependent upon the platform within which the embodiment is to be implemented, i.e., such specifics should be well within purview of one skilled in the art.
- Some embodiments may be implemented, for example, using a machine or tangible computer-readable medium or article which may store an instruction or a set of instructions that, if executed by a machine, may cause the machine to perform a method and/or operations in accordance with the embodiments.
- a machine may include, for example, any suitable processing platform, computing platform, computing device, processing device, computing system, processing system, computer, processor, or the like, and may be implemented using any suitable combination of hardware and/or software.
- the machine-readable medium or article may include, for example, any suitable type of memory unit, memory device, memory article, memory medium, storage device, storage article, storage medium and/or storage unit, for example, memory, removable or non-removable media, erasable or non-erasable media, writeable or re-writeable media, digital or analog media, hard disk, floppy disk, Compact Disk Read Only Memory (CD-ROM), Compact Disk Recordable (CD-R), Compact Disk Rewriteable (CD-RW), optical disk, magnetic media, magneto-optical media, removable memory cards or disks, various types of Digital Versatile Disk (DVD), a tape, a cassette, or the like.
- memory removable or non-removable media, erasable or non-erasable media, writeable or re-writeable media, digital or analog media, hard disk, floppy disk, Compact Disk Read Only Memory (CD-ROM), Compact Disk Recordable (CD-R), Compact Disk Rewriteable (CD-RW), optical disk, magnetic
- the instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, encrypted code, and the like, implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language.
- processing refers to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulates and/or transforms data represented as physical quantities (e.g., electronic) within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices.
- physical quantities e.g., electronic
- Coupled may be used herein to refer to any type of relationship, direct or indirect, between the components in question, and may apply to electrical, mechanical, fluid, optical, electromagnetic, electromechanical or other connections.
- first”, second”, etc. may be used herein only to facilitate discussion, and carry no particular temporal or chronological significance unless otherwise indicated.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Systems and methods may provide traversing data using metadata. In one example, a method may include gathering a textual description of a first object, wherein the textual description includes a word, generating a vector represent the textual description, assigning a first weight value to the word, associating an object space with the word including assigning a second weight value to the word, and associating an object space with the first object.
Description
- The present application claims the benefit of priority to U.S. patent application Ser. No. 13/588,828 filed Aug. 17, 2012.
- Embodiments generally relate to traversing data relationships. More particularly, embodiments relate to utilizing data relationships to analyze contextual information about one or more objects to determine object attributes and relationships, and utilizing the attributes and relationships during data search/retrieval.
- Existing search applications may typically only return a set of results based on keywords treated with equal importance, wherein the applications may fail to provide any contextual information regarding the results. As a result, searches may yield sub-optimal results from the user's perspective.
- The various advantages of the embodiments of the present invention will become apparent to one skilled in the art by reading the following specification and appended claims, and by referencing the following drawings, in which:
-
FIG. 1 is a block diagram of an example of an object space generation scheme according to an embodiment; -
FIG. 2 is a block diagram of a logic architecture according to an embodiment; -
FIG. 3 is a block diagram of an example of an object data structure according to an embodiment; -
FIG. 4 is a flowchart of an example of a method of associating an object with an object space according to an embodiment; -
FIG. 5 is a block diagram of an example of a cluster data structure according to an embodiment; -
FIG. 6 is a table of an example of relative attributes according to an embodiment; -
FIGS. 7A-7C are block diagrams of a graphical user interface (GUI) according to an embodiment; -
FIG. 8 is a flowchart of an example of a method of traversing data according to an embodiment; -
FIG. 9 is a block diagram of an example of a processor according to an embodiment; and -
FIG. 10 is a block diagram of an example of a system according to an embodiment. -
FIG. 1 shows a plurality ofobjects 24 having a corresponding plurality oftextual descriptions 26 of theobjects 24, wherein each illustratedtextual description 26 includes words and/or phrases that depict anassociated object 24. Theobjects 24 may be any data element that might serve as a basis of a data traversal effort. Thus, theobjects 24 may represent, for example, items, locations, individuals, products and/or services that are the subject of commercial transactions, non-commercial data research efforts, social networking inquiries, and so forth. In the illustrated example, one ormore topics 28 are identified based on thetextual descriptions 26, wherein thetextual descriptions 26 and thetopics 28 may be further used to obtainassociation information 30. - As will be discussed in greater detail, the
association information 30 may reflect degrees of association between eachtextual description 26 and thetopics 28, degrees of association between eachobject 24 and thetopics 28, degrees of association between eachtextual description 26 and the words in thetextual description 26, degrees of association between words in thetextual descriptions 26 and thetopics 28, and so forth. Theassociation information 30 may be used to group theobjects 24 intoclusters 32 of anobject space 34, wherein theobject space 34 may be used to respond to, and facilitate, search requests. Of particular note is that use of theassociation information 30 in conjunction with thetextual descriptions 26 may enable searches to be formulated and/or guided by words that are not normally used to distinguish theobjects 24 from one another. Accordingly, the illustrated scheme provides an unexpectedly high level of granularity and flexibility to the end user. -
FIG. 2 shows a logic architecture 36 (36 a-36 i) that may be used to both generate and traverse object spaces. In the illustrated example, atopic generation module 36 a identifies one or more topics based on a plurality of textual descriptions of a corresponding plurality of objects. Thetopic generation module 36 a may use a topic model to identify the one or more topics. Additionally, afirst association module 36 b may determine a first degree of association between each of the textual descriptions and the one or more topics in order to obtain first association information. As will be discussed in greater detail, the first association information may be structured as a first set of vectors corresponding to the plurality of textual descriptions. Thus, each vector in the first set of vectors may hold weight values, where each weight value indicates the degree of association between a textual description and a particular topic. - The illustrated
architecture 36 also includes asecond association module 36 c that determines a second degree of association between each of the plurality of objects and the one or more topics in order to obtain second association information. Similarly, the second association information may be structured as a second set of vectors corresponding to the plurality of objects, where each vector in the second set of vectors may hold weight values. In this example, each weight value may indicate a degree of association between an object and a particular topic. - In one example, the
architecture 36 also includes athird association module 36 d that determines a third degree of association between each textual description and one or more words in the textual description in order to obtain third association information. Thethird association module 36 d may structure the third association information as a third set of vectors corresponding to the plurality of textual descriptions, wherein each vector in the third set of vectors may have weight values that identify a frequency of occurrence of the one or more words in a respective textual description. Additionally, afourth association module 36 e may determine a fourth degree of association between each word and the one or more topics in order to obtain fourth association information. As will be discussed in greater detail, thefourth association module 36 e may structure the fourth association information as a fourth set of vectors corresponding to the one or more words. - The
first association module 36 b may use the third and fourth association information to obtain the first association information, which reflects the degree of association between the textual descriptions and the topics. In this regard, thefirst association module 36 b might use a probabilistic graphical model (PGM) to propagate the fourth association information (e.g., word-topic relationships) to the plurality of textual descriptions in the first association information. Additionally, thesecond association module 36 c may use a PGM to propagate the fourth association information to the plurality of objects in the second association information. Other approaches may also be used to obtain the first and second association information. The illustratedarchitecture 36 also includes acluster module 36 f to group the plurality of objects into clusters based on the first association information from thefirst association module 36 b and the second association information from thesecond association module 36 c. - The
architecture 36 may also provide for traversing the object space in accordance with search requests from end users. More particularly, the illustratedarchitecture 36 includes afirst result module 36 g that generates a first set of results based on a scope of a requested search and the object space. In one example, the object space includes a first object and a second object arranged according to a relative relationship based on an attribute. As will be discussed in greater detail, anadjustment module 36 h may generate a user interface having a first adjustment mechanism configured to adjust a scope of the requested search and a second adjustment mechanism configured to adjust results of a search based on the attribute. The illustratedarchitecture 36 also includes a second result module 36 i to generate a second set of results based on a user input received via one or more of the first adjustment mechanism and the second adjustment mechanism, wherein the second set of results includes the second object. - Turning now to
FIG. 3 , anobject data structure 10 is shown. Thedata structure 10 may include one or more elements, wherein these elements may include an object, a metadata entry, a word, and an object space. As will be discussed in greater detail, each of these elements of a data structure may represent a level (or layer) of data that may be analyzed alone or in combination with another to enhance traversing of related data (e.g., in a data search). - The illustrated
data structure 10 includes anobject 11. As already noted, theobject 11 may be any data element that may be a basis of a data traversal effort (e.g., a data search). So, in this example, theobject 11 is a graphical novel, “The Dark Knight Returns”, that may be available for purchase from an online vendor. Theobject 11 may therefore represent a first level of data. - The
object 11 may be sold in electronic commerce by more than one online vendor. Each of these online vendors may associate a textual description of theobject 11 to aid in a customer's purchase of the product. Textual descriptions (or metadata) associated with theobject 11 may represent a second level of data. - Moreover, the textual descriptions may include one or more words, wherein words relating to a textual description of an object may represent a third level of data. So, in this example, a first vendor (e.g., Amazon) may associate
metadata 12 with theobject 11. The first vendor'smetadata 12 may include words 15-17 (i.e., “comics”, “graphical” and “novels”) to describe theobject 11. Similarly, a second vendor (e.g., Ebay) may associatemetadata 13 with theobject 11. The second vendor'smetadata 13 may include thewords object 11. A third vendor (e.g., Barnes & Noble) may associatemetadata 14 with theobject 11. The third vendor'smetadata 14 may include thewords object 11. As shown inFIG. 3 , vendors may uniquely use a word (e.g., “DC”) to describe theobject 11, may use the same words to describe the object 11 (e.g., “graphical”), or a vendor may use the same word more than once (e.g., the third vendor's use of “Graphical”) when describing theobject 11. - As will be discussed in greater detail, data pertaining to the object 11 (e.g.,
metadata 12,word 15, etc.) may be used to analyze contextual information about theobject 11 to determine attributes of theobject 11, wherein the attributes may then be used as parameters during a search. So, in this example, the use of theword 18 “superheroes” may be regarded as an attribute of object 11 (i.e., the object has some relation to the notion of superheroes). Another example may be the use of the word “date” in the description of a purse (as in “I took the purse with me to go on a date with my boyfriend”), or “beach” in the description of summer banana split truffles. An attribute may then be used as a parameter in a search resulting in the return of an object as a result. Of particular note is that “date” may not commonly be used by purse vendors to quantify and/or distinguish between purses. Similarly, “beach” may not typically be used to quantify truffles. - Furthermore, data pertaining to the object 11 (e.g.,
metadata 12,word 15, etc.) may be used to associate theobject 11 with one or more clusters. Depending on the circumstance, a cluster may also viewed as a category, a topic, a group, a community, or any other grouping of objects that may be relevant to traversing data relating to theobject 11. So, in this example, theobject 11 may be associated with a cluster and/ortopic 22, “Graphic Novels”, and a second cluster and/ortopic 23, “Books”. A cluster may therefore represent a fourth level of data. - Turning now to
FIG. 4 , amethod 40 of associating an object with a cluster in an object space is shown. In this example, a search application may associate an object, such as the object 11 (FIG. 3 ), with one or more topics, such as thetopics 22, 23 (FIG. 3 ). In this example the object may be a graphic novel, “The Dark Knight Returns.” - The
method 40 may be implemented as a set of logic and/or firmware instructions stored in a machine- or computer-readable storage medium such as random access memory (RAM), read only memory (ROM), programmable ROM (PROM), flash memory, etc., in configurable logic such as, for example, programmable logic arrays (PLAs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), in fixed-functionality logic hardware using circuit technology such as, for example, application specific integrated circuit (ASIC), complementary metal oxide semiconductor (CMOS) or transistor-transistor logic (TTL) technology, or any combination thereof. For example, computer program code to carry out operations shown in themethod 40 may be written in any combination of one or more programming languages, including an object oriented programming language such as C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The method may begin at processingblock 42. - At processing
block 44, a search application may gather a textual description, such as the metadata 12 (FIG. 3 ), from a first source. At processingblock 46, the search application may parse the textual description into one or more words. So, in the example, of metadata 12 (FIG. 3 ), the application parses the metadata into three words (i.e., “comics”, “graphical”, and “novels”). - In this example, the application may be configured to parse each of the words in the textual description. However, other approaches may be used. In another example, the application may be configured to parse and utilize only particular words (e.g., unique words, nouns, adjectives, etc.) in the textual description, or even extract keywords and replace them with equivalent metadata.
- At processing
block 48, the application may utilize one or more words of the textual description of the first source to generate a vector representing the textual description. The vector may describe how many times a word or a concept appears in the textual description provided by the source, and may be used to describe the textual description. Thus, the vector may be part of the third association information generated by thethird association module 36 d (FIG. 2 ), already discussed. So, in the case of the metadata 12 (FIG. 3 ), a first vector, representing the metadata from the first vendor, may be based on the words “comics”, “graphical” and “novels”, each of which appears once. - In the case of multiple textual descriptions (from more than one source), the application may generate a vector for each textual description relating to the object. In such a case (i.e., multiple vectors), each vector may be weighted. In one example, each vector may be weighted equally, while in another, different weights may be assigned based on, for example, relevance to the object.
- As will be discussed in greater detail, the vector may also be used to effectively determine a degree of association between a word and an object. In one example, a first word that is mentioned twice in a description pertaining to an object will have a greater degree of association with an object than a second word that is mentioned once. Moreover, by extension, if the word is regarded as an attribute of the object (as discussed above), the vector may be used to describe a degree of association between the attribute and the object.
- At processing
block 50, the application may assign a weight value to each word in the vector. This weight value may represent the relevance or importance of a word within its vector. In one example, words in a vector may be weighted using a probabilistic graphical model (PGM) to determine a weight of each word in the vector. So, in the case of the vector associated with the metadata 12 (FIG. 3 ), the first word “comics” may be assigned a first weight, the second word “graphical” a second weight, and the third word “novels” a third weight. In the case that each word in the vector is to be weighted equally, each of these words would be given a weight of one-third (⅓). In the case of multiple vectors, a word's weight in a first vector may not be the same as the same word's weight in a second vector. - As will be discussed in greater detail, the weight attributed to each word may be used to determine a degree of association between a word and its vector. As discussed above, a word may be related to an attribute of the object, and a vector may be related to a textual description of the object. So, the weight attributed to each word may also represent a degree of association between the word and its associated textual description, and a degree of association between an attribute and the word's associated textual description.
- At processing block 52, the application may associate one or more clusters with each word relating to the object. In one example, the search application may utilize a topic model (e.g., Latent Dirichlet Allocation (LDA)) to analyze a word to determine a weight value. This weight value may represent a probability (ranging from zero to one hundred percent) that the word is associated with one or more clusters. So in the case of the metadata 12 (
FIG. 3 ), utilizing the three words “comics”, “graphical”, and “novels”, the topic model may return, for example, a probability for a first cluster in an object space, “Books”, and a probability for a second cluster in the object space, “Graphic Novels”. The probability that a word is associated with a cluster may be viewed as a degree of association between the word and the cluster as well. - At processing block 54, the application may associate one or more of the determined clusters with the object. In one example, the application may utilize Bayes theorem and a PGM of each object to generate a topic vector. The topic vector may represent a probability that a cluster is associated with the object. So, in the case of the metadata 12 (
FIG. 3 ), the application may find a 98% degree of association between the category “Graphic Novels” and the object, and only a 2% degree of association between the category “Books” and the object. The probability of an object belonging to a topic may be calculated as follows: -
- At processing
block 56, the application may calculate an overall probability of the object in the cluster. In one example, the overall probability of the object may be 1/n, where n represents the number of objects in the cluster. If appropriate, this weight may be modified to provide preferences to certain objects. At processingblock 58, the process may terminate. - The sequence and numbering of blocks depicted in
FIG. 4 is not intended to imply an order of operations to the exclusion of other possibilities. Those of skill in the art will appreciate that the foregoing systems and methods are susceptible of various modifications, variations, and alterations. - Accordingly, these various calculations may be used to represent various relationships between different layers of data pertaining to an object. As discussed above, these relationships may then be used to determine various degrees of association, including (but not limited to):
- a degree of association between a textual description and a topic (e.g., first association information);
- a degree of association between an object and a topic (e.g., second association information),
- a degree of association between a word and a topic (e.g., fourth association information);
- a degree of association between a topic and a word;
- a degree of association between a word and a textual description; and
- a degree of association between a textual description and an object.
- These relationships between various data types may each be considered random variables, which may be used to traverse data (e.g., in a data search pertaining to an object). More specifically, as will be discussed in greater detail, these relationships may offer a user several options during data search, each of which may be used to focus a search to an aspect of an object in which a user may be interested.
- For example, a degree of association between an object and an attribute (based on a word found in a textual description of the object) may be used to focus a search. Take, for example, the case of a consumer looking for a large backpack to carry many schoolbooks. The presence of the word “books” multiple times in a textual description of the backpack may be reflected in a vector pertaining to the object. The vector may be then used to focus a user's search based on the attribute (i.e., looking for a backpack to carry books rather than hiking). Similarly, a degree of association between an object and a textual description may be used to focus a user's search as well. In this regard, “books” may not be a word typically used to quantify and/or distinguish between backpacks.
- Next, in another example, a degree of association between a first object and a second object may be used to focus a search. The degree of association between a first object and a second object may be determined by, for example, a degree of association between an attribute and the first object and the degree of association between the attribute and the second object. In one example, the degree of association between a first object and a second object may be used to generate a relative relationship (i.e., similarity, dissimilarity, etc.), wherein the relative relationship may be calculated utilizing, for example, the topic vector of each object with respect to a cluster.
- So, for example, the frequent presence of the word “book” in a textual description of a first backpack and the absence of the word “book” in the description of a second backpack may generate a relative relationship between the first backpack and the second backpack around the attribute “book” (i.e., that the first backpack is better for carrying books than the second backpack). This relative relationship may be used during a “back-to-school” search for a backpack to be used by a student.
- In still another example, a degree of association between an object and a cluster may allow a search application to organize and arrange the objects within the cluster. As such, a search for a particular object with respect to a particular attribute may, in some cases, begin with a search for a cluster. Once a proper cluster has been ascertained, the desired attributes may then be used to further focus the search to the desired object within the cluster. In this way, one or more objects within one or more clusters may be arranged to generate a map, or a graph of one or more dimensions or attributes.
- So, for example, taking from the example described immediately above, a cluster of ten backpacks may be organized within the object space according to their various attributes using, for example, the topic vector of each object with respect to that cluster. That is, one backpack (i.e., an object) may be organized within the cluster (i.e., backpacks) utilizing its relative relationship to other objects in the space. So, in the case where the relevant attribute is books, the ten backpacks may be contextually arranged from best suitable for carrying books to least suitable for carrying books, wherein the backpack whose textual description includes heavy use of words like “books”, “class” and “school” would be placed among the most suitable for carrying books. Any cluster (e.g., backpacks) affiliated with an object may be arranged and organized according to the attribute (e.g., book carrying suitability) in a similar manner.
- Moreover, the degrees of association (e.g., between an object and an attribute, between an object and a cluster) and the relative relationship between objects may allow a search application to derive inferences about aspects of one or more objects (as appropriate). Take, for example, the case of a first cluster, truffles, and a second cluster, pet products. The repeated inclusion of the word “cuisine” in the textual description of objects in the first cluster, and the dearth of the word in the textual description of objects in the second cluster may allow a search application to determine that truffles are more related to gourmet cuisine than pet products. This inference may then be used to focus a search (e.g., for a gourmet cuisine) as well. Indeed, degrees of association as described herein may be used to retrieve different objects within a cluster based on non-traditional attributes. Also, if appropriate, these relative relationships may be presented to a user as knobs that he/she can manipulate, during retrieval of search results to provide context to the user regarding how the returned results may be related. Furthermore, as will be discussed in greater detail, the parameters determined as discussed above (e.g., attributes, degrees of association, and relative relationships) may be used to provide search adjustment mechanisms that may allow a user to dynamically adjust aspects of a search.
-
FIG. 5 illustrates a group of objects and clusters according to one embodiment. In this example, aprimary cluster 100 may pertain to “gourmet” objects that, for example, may be offered by vendors online. Also, as discussed above, data associated with an object may be analyzed to arrange the object within theprimary cluster 100. - The illustrated
primary cluster 100 includes three secondary clusters. Thesecondary cluster 101 may pertain to “truffles”, thesecondary cluster 102 may pertain to “olives”, and thethird cluster 103 may pertain to “cheeses”. In this example, with regard to the attribute “gourmet”, the arrangement of the secondary clusters from most gourmet to least gourmet may be illustrated by arranging them from left (i.e., most gourmet) to right (i.e., least gourmet). - The illustrated
secondary cluster 101, truffles, includes four objects. Theobject 104 may be sea salt truffles, theobject 105 may be Scorzone truffles, theobject 106 may be Bohemian truffles, and theobject 107 may be Summer Banana Split truffles. Again, in this example, with regard to the attribute “gourmet”, the arrangement of the objects from most gourmet to least gourmet may be illustrated by arranging them from left (i.e., most gourmet) to right (i.e., least gourmet) within the secondary cluster. -
FIG. 6 illustrates degrees of association between various products according to various attributes. In the case of the objects 104-107 ofFIG. 5 ,FIG. 6 illustrates that the objects may be arranged according to afirst attribute 108 and asecond attribute 109. In this example, thefirst attribute 108 may pertain to the “beach”, while thesecond attribute 109 may pertain to “gourmet”. As shown, when arranged according to “gourmet”, the sea salt truffles may be the most gourmet, followed by the Scorzone truffles, the Bohemian truffles, and the Summer Banana Split truffles. When arranged according to the “beach”, on the other hand, the summer banana split truffles may be the most suitable for a day at the beach, followed by the sea salt truffles, the Bohemian truffles, and the Scorzone truffles. As discussed above, these relationships between the objects may be derived from analysis of, for example, related textual information originating from various online vendors. Indeed, other unexpected attributes such as “breakfast” (e.g., suitability for breakfast) and “garden” (e.g., ease of growing in a home garden) may be used to characterize the relative relationships between the objects. -
FIGS. 7A-7C illustrate a graphical user interface (GUI) 110 that may facilitate a search according to one embodiment. TheGUI 110 may include asearch bar 111, aresults window 112, afirst adjustment mechanism 113, asecond adjustment mechanism 114, and athird adjustment mechanism 115. - The
search bar 111 may be used to input search terms. For example, a user may enter the words “gourmet mushrooms” as a search request, wherein theresults window 112 may be used to display the results of the search. In the illustrated example, the search request has returned “Sea salt truffles” as a primary result. As already noted, the user may decide that sea salt truffles are not what he or she is looking for, and therefore use the adjustment mechanisms 113-115 to dynamically adapt the search. More particularly, thefirst adjustment mechanism 113, thesecond adjustment mechanism 114, and thethird adjustment mechanism 115 may be graphical widgets that may be used to adjust the search. In this example, the adjustment mechanisms 113-115 may take the form of rotatable knobs. In another embodiment, the adjustment mechanisms may 113-115 take the form of, for example, scrollable bars. - The
first adjustment mechanism 113 may relate to a first aspect of the original search request, while thesecond adjustment mechanism 114 may relate to a second aspect of the search request. So, for example, thefirst adjustment mechanism 113 may be used to focus a set of retrieved results more on the attribute gourmet, while thesecond adjustment mechanism 114 may be used to focus the retrieved results more on the attribute mushrooms. In other words, the user might increase thesecond adjustment mechanism 114 and/or decrease thefirst adjustment mechanism 113, to retrieve results that are more closely related to mushrooms than gourmet. Doing so may cause the search application to analyze the association information related to sea salt truffles to determine whether there are any other objects that, while related to gourmet, have a stronger relationship to mushrooms.FIG. 7B demonstrates that, in one example, the adjustment process may result in a book entitled “Anatomy of a Mushroom” (e.g., wherein the book might have a chapter dealing with mushrooms as a delicacy). Similarly, the user may decrease thesecond adjustment mechanism 114 and/or increase thefirst adjustment mechanism 113, to retrieve results that are more closely related to gourmet than mushrooms. Such an action may cause the search application to analyze the association information related to sea salt truffles to determine whether there are any objects that, while related to mushrooms, have a stronger relationship to gourmet. - The
third adjustment mechanism 115 may be used to adjust the search based on an attribute associated with two or more objects in the object space. In this example, thethird adjustment mechanism 115 may be used to adjust a beach influence on the search results. So, for example, when a user searches for gourmet mushrooms (i.e., a primary cluster), and the retrieved search results pertain to truffles (i.e., a secondary cluster) generally, the user (if she wishes) may use thethird adjustment mechanism 115 to further focus the search on truffles for a beach excursion. At this point, a search application may analyze the association information related to the sea salt truffles in order to retrieve more focused results pertaining to beach-appropriate truffles.FIG. 7C demonstrates that, in one example, the search application may return “Summer banana split truffles” as a primary result in response to such an adjustment. A user may also use thethird adjustment mechanism 115 in the opposite manner (to reduce, as opposed to increase, the beach influence in the search results) as well. Of particular note is that the function of thethird adjustment mechanism 115 may not include any terms of a user's original search request. Indeed, it may be determined that the “beach” is a term that is not characteristically used to quantify truffles, yet may be a useful term to end users in finding objects of interest. - Turning now to
FIG. 8 , amethod 60 of traversing data is shown. In this example, a user may utilize a GUI, such as the GUI 110 (FIGS. 7A-7C ) to search for gourmet truffles to purchase from products offered by online vendors. - The
method 60 may be implemented as a set of logic and/or firmware instructions stored in a machine- or computer-readable storage medium such as random access memory (RAM), read only memory (ROM), programmable ROM (PROM), flash memory, etc., in configurable logic such as, for example, programmable logic arrays (PLAs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), in fixed-functionality logic hardware using circuit technology such as, for example, application specific integrated circuit (ASIC), complementary metal oxide semiconductor (CMOS) or transistor-transistor logic (TTL) technology, or any combination thereof. For example, computer program code to carry out operations shown in themethod 60 may be written in any combination of one or more programming languages, including an object oriented programming language such as C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The method may begin at processingblock 62. - At processing
block 64, a user may use a search bar, such as the search bar 111 (FIGS. 7A-7C ) to input a term such as, for example, “gourmet mushrooms” and initiate a search. At processing block 66, a search application may associate the search terms with a primary cluster, such as the primary cluster 100 (FIG. 5 ) based on the attribute of “gourmet”. - At processing block 68, the search application may further focus the search to one or more secondary clusters to return search results. For example, a first secondary cluster, such as the cluster 101 (
FIG. 5 ) may pertain to truffles. A second secondary cluster, such as the secondary cluster 102 (FIG. 5 ), may pertain to olives. At processingblock 70, the search application may return results that pertain to truffles. - Along with the returned results, the search application may provide adjustments mechanisms to navigate the search results. In particular, the search application may analyze various aspects pertaining to the cluster (e.g., attributes, degrees of association, etc.) to determine that a first aspect of the user's search may be “gourmet”, and a second aspect may be “mushroom”. As such, the search application may also provide a first adjustment mechanism pertaining to gourmet, such as the first adjustment mechanism 115 (
FIGS. 7A-7C ), and a second adjustment mechanism pertaining mushrooms, such as the second adjustment mechanism 114 (FIGS. 7A-7C ). In addition, the search application may include a third search mechanism, similar to the third adjustment mechanism 115 (FIGS. 7A-7C ) that may be used to adjust the results of the search based on an attribute such as the “beach”. In this example, the adjustment mechanisms may take the form of a knobs. - At processing block 72, the user may review the results, and utilize the first and second adjustment mechanisms to focus the search to return results more preferred. So, in this example, the user may use the second adjustment mechanism to request that the search results focus more toward mushrooms than gourmet.
- At processing
block 74, the search application may utilize the user's input to recognize that the user prefers mushrooms. So, in this case, the search application may analyze objects within the object space (e.g., using degrees of association and relative relationships, as discussed above) to determine that the most appropriate result is a particular object, such as the book “Anatomy of a Mushroom”. At processingblock 76, the search application may return the result to the user. - At processing
block 78, the user may view the result and determine that the book “Anatomy of a Mushroom” is too closely related to mushrooms and not related enough to beach-appropriate gourmet foods. At processing block 80, the user may therefore use the first adjustment mechanism (relating to gourmet) to focus the search results back towards gourmet foods and use the third adjustment mechanism to incorporate the attribute “beach” into the data traversal process. - At processing block 82, the search application may analyze objects within the object space first secondary cluster based on the user's request. That is, the search application may (e.g., using degrees of association, relative relationships, etc.) determine that Summer banana split truffles are both more related to gourmet foods and more related to a day at the beach than the other objects in the object map. At processing
block 84, the search application may return the second result to the user. At processingblock 86, the user may conduct a transaction to purchase the Summer banana split truffles from the online vendor offering them. At processingblock 88, the process may terminate. The sequence and numbering of blocks depicted inFIG. 8 is not intended to imply an order of operations to the exclusion of other possibilities. Those of skill in the art will appreciate that the foregoing systems and methods are susceptible of various modifications, variations, and alterations. - For example, in the embodiment illustrated in
FIG. 8 , the objects may be analyzed according to attributes relating to objects. More specifically, the results to be returned to the user were being analyzed with respect to a beach attribute of truffle objects. An analysis of a search application need not be limited, however, to attributes pertaining to objects. In other embodiments, a search application may take into account other information as well. So, for example, a search application may analyze a user profile to determine that the user is environmentally-conscious. In this case, the search application may account for this aspect by providing an adjustment mechanism to adjust for eco-friendly products. -
FIG. 9 illustrates aprocessor core 200 according to one embodiment. Theprocessor core 200 may be the core for any type of processor, such as a micro-processor, an embedded processor, a digital signal processor (DSP), a network processor, or other device to execute code. Although only oneprocessor core 200 is illustrated inFIG. 9 , a processing element may alternatively include more than one of theprocessor core 200 illustrated inFIG. 9 . Theprocessor core 200 may be a single-threaded core or, for at least one embodiment, theprocessor core 200 may be multithreaded in that it may include more than one hardware thread context (or “logical processor”) per core. -
FIG. 9 also illustrates amemory 270 coupled to theprocessor 200. Thememory 270 may be any of a wide variety of memories (including various layers of memory hierarchy) as are known or otherwise available to those of skill in the art. Thememory 270 may include one ormore code 213 instruction(s) to be executed by theprocessor 200 core, wherein thecode 213 may implement the logic architecture 36 (FIG. 2 ), already discussed. Theprocessor core 200 follows a program sequence of instructions indicated by thecode 213. Each instruction may enter afront end portion 210 and be processed by one ormore decoders 220. Thedecoder 220 may generate as its output a micro operation such as a fixed width micro operation in a predefined format, or may generate other instructions, microinstructions, or control signals which reflect the original code instruction. The illustratedfront end 210 also includesregister renaming logic 225 andscheduling logic 230, which generally allocate resources and queue the operation corresponding to the convert instruction for execution. - The
processor 200 is shown includingexecution logic 250 having a set of execution units 255-1 through 255-N. Some embodiments may include a number of execution units dedicated to specific functions or sets of functions. Other embodiments may include only one execution unit or one execution unit that can perform a particular function. The illustratedexecution logic 250 performs the operations specified by code instructions. - After completion of execution of the operations specified by the code instructions,
back end logic 260 retires the instructions of thecode 213. In one embodiment, theprocessor 200 allows out of order execution but requires in order retirement of instructions.Retirement logic 265 may take a variety of forms as known to those of skill in the art (e.g., re-order buffers or the like). In this manner, theprocessor core 200 is transformed during execution of thecode 213, at least in terms of the output generated by the decoder, the hardware registers and tables utilized by theregister renaming logic 225, and any registers (not shown) modified by theexecution logic 250. - Although not illustrated in
FIG. 9 , a processing element may include other elements on chip with theprocessor core 200. For example, a processing element may include memory control logic along with theprocessor core 200. The processing element may include I/O control logic and/or may include I/O control logic integrated with memory control logic. The processing element may also include one or more caches. - Referring now to
FIG. 10 , shown is a block diagram of a system embodiment 1000 in accordance with an embodiment of the present invention. Shown inFIG. 10 is a multiprocessor system 1000 that includes afirst processing element 1070 and asecond processing element 1080. While twoprocessing elements - System 1000 is illustrated as a point-to-point interconnect system, wherein the
first processing element 1070 andsecond processing element 1080 are coupled via a point-to-point interconnect 1050. It should be understood that any or all of the interconnects illustrated inFIG. 10 may be implemented as a multi-drop bus rather than point-to-point interconnect. - As shown in
FIG. 10 , each ofprocessing elements FIG. 9 . - Each
processing element memory 1032, 1034 for faster access by components of the processor. In one or more embodiments, the shared cache may include one or more mid-level caches, such as level 2 (L2), level 3 (L3), level 4 (L4), or other levels of cache, a last level cache (LLC), and/or combinations thereof. - While shown with only two
processing elements processing elements first processor 1070, additional processor(s) that are heterogeneous or asymmetric to processor afirst processor 1070, accelerators (such as, e.g., graphics accelerators or digital signal processing (DSP) units), field programmable gate arrays, or any other processing element. There can be a variety of differences between theprocessing elements processing elements various processing elements -
First processing element 1070 may further include memory controller logic (MC) 1072 and point-to-point (P-P) interfaces 1076 and 1078. Similarly,second processing element 1080 may include aMC 1082 and P-P interfaces 1086 and 1088. As shown inFIG. 10 , MC's 1072 and 1082 couple the processors to respective memories, namely amemory 1032 and a memory 1034, which may be portions of main memory locally attached to the respective processors. While theMC logic 1072 and 1082 is illustrated as integrated into theprocessing elements processing elements - The
first processing element 1070 and thesecond processing element 1080 may be coupled to an I/O subsystem 1090 viaP-P interconnects 1076, 1086 and 1084, respectively. As shown inFIG. 10 , the I/O subsystem 1090 includes P-P interfaces 1094 and 1098. Furthermore, I/O subsystem 1090 includes an interface 1092 to couple I/O subsystem 1090 with a highperformance graphics engine 1038. In one embodiment, bus 1049 may be used to couplegraphics engine 1038 to I/O subsystem 1090. Alternately, a point-to-point interconnect 1039 may couple these components. - In turn, I/
O subsystem 1090 may be coupled to afirst bus 1016 via an interface 1096. In one embodiment, thefirst bus 1016 may be a Peripheral Component Interconnect (PCI) bus, or a bus such as a PCI Express bus or another third generation I/O interconnect bus, although the scope of the present invention is not so limited. - As shown in
FIG. 10 , various I/O devices 1014 may be coupled to thefirst bus 1016, along with abus bridge 1018 which may couple thefirst bus 1016 to asecond bus 1010. In one embodiment, the second bus 1020 may be a low pin count (LPC) bus. Various devices may be coupled to the second bus 1020 including, for example, a keyboard/mouse 1012, network controller(s)/communication device(s) 1026 (which may in turn be in communication with a computer network, 503), and adata storage unit 1018 such as a disk drive or other mass storage device which may include code 1030, in one embodiment. The communications devices 1026 may be used to receive text descriptions of objects, as already discussed. The code 1030 may include instructions for performing embodiments of one or more of the methods described above. Thus, the illustrated code 1030 may implement the logic architecture 36 (FIG. 2 ) and could be similar to the code 213 (FIG. 9 ), already discussed. Further, an audio I/O 1024 may be coupled to second bus 1020. - Note that other embodiments are contemplated. For example, instead of the point-to-point architecture of
FIG. 10 , a system may implement a multi-drop bus or another such communication topology. Also, the elements ofFIG. 10 may alternatively be partitioned using more or fewer integrated chips than shown inFIG. 10 . - Examples may therefore include an object space generation system having a network controller to receive a plurality of textual descriptions, wherein each textual description includes one or more words and phrases that depict an object in a plurality of objects. Additionally, the system may include a first association module to determine a first degree of association between each of the plurality of textual descriptions and the one or more topics to obtain first association information, and a second association module to determine a second degree of association between each of the plurality of objects and the one or more topics to obtain second association information. In addition, the system may include a cluster module to group the plurality of objects into clusters based on the first association information and the second association information.
- Moreover, the system may further include a topic generation module to identify the one or more topics based on a plurality of textual descriptions.
- In addition, the topic generation module may use a topic module to identify the one or more topics.
- In addition, the first association module may structure the first association information as a first set of vectors corresponding to the plurality of objects, and the second association module may structure the second association information as a set of vectors corresponding to the plurality of textual descriptions.
- Additionally, the system may further include a third association module to determine a third degree of association between each textual description and one or more words in the textual description to obtain third association information, and a fourth association module to determine a fourth degree of association between each word and the one or more topics to obtain fourth association information. The first association module may use the third and fourth association information to obtain the first association information, and the second association module may use the third and fourth association information to obtain the fourth association information.
- In addition, the first association module may use a probabilistic graphical model (PGM) to propagate the fourth association information to the plurality of textual descriptions.
- In addition, the second association module may use a probabilistic graphical model (PGM) to propagate the fourth association information to the plurality of objects.
- Moreover, the third association module may structure the third association information as a third set of vectors corresponding to the plurality of textual descriptions, and the fourth association module may structure the fourth association information as a fourth set of vectors corresponding to the one or more words.
- In addition, each vector in the third set of vectors may have weight values that identify a frequency of occurrence of the one or more words in a respective textual description.
- In addition, the cluster module may spatially order the clusters based on relative relationships between the objects and clusters.
- In another example, a method of generating an object space includes determining a first degree of association between each of a plurality of textual descriptions and one or more topics to obtain first association information, determining a second degree of association between each of a plurality of objects and the one or more topics to obtain second association information, and grouping the plurality of objects into clusters based on the first association information and the second association information.
- Moreover, each textual description may include one or more of words and phrases that depict an object in the plurality of objects, wherein the method further includes identifying the one or more topics based on the plurality of textual descriptions.
- In addition, the method may further include using a topic model to identify the one or more topics.
- In addition, the method may further include structuring the first association information as a first set of vectors corresponding to the plurality of objects, and structuring the second association information as a second set of vectors corresponding to the plurality of textual descriptions.
- Additionally, determining the first degree of association and the second degree of association may include determining a third degree of association between each textual description and one or more words in the textual description to obtain third association information, and determining a fourth degree of association between each word and the one or more topics to obtain fourth association information.
- In addition, the method may further include using a probabilistic graphical model (PGM) to propagate the fourth association information to the plurality of textual descriptions.
- In addition, the method may further include using a probabilistic graphical model (PGM) to propagate the fourth association information to the plurality of objects.
- Moreover, the method may further include structuring the third association information as a third set of vectors corresponding to the plurality of textual descriptions, and structuring the fourth association information as a fourth set of vectors corresponding to the one or more words.
- In addition, each vector in the third set of vectors may have weight values that identify a frequency of occurrence of the one or more words in a respective textual description.
- In addition, grouping the plurality of objects may include spatially ordering the dusters based on relative relationships between the objects.
- Other examples may include at least one computer readable storage medium comprising a set of traversal instructions which, if executed by a processor, cause a computer to generate a first set of results based on a scope of a requested search and an object space, wherein the object space is to include a first object and a second object arranged according to a relative relationship based on an attribute. The traversal instructions, if executed, may further cause a computer to generate a user interface including a first adjustment mechanism configured to adjust a scope of the requested search and a second adjustment mechanism configured to adjust results of a search based on the attribute, and generate a second set of results based on a user input received via one or more of the first adjustment mechanism and the second adjustment mechanism, wherein the second set of results is to include the second object.
- Moreover, the attribute of the medium may be based on a word included in a first textual description of the first object and a second textual description of the second object.
- In addition, the user interface of the medium may be a graphical user interface (GUI) and the first adjustment mechanism may be one of a knob and a scrollable bar.
- In addition, the user interface of the medium may be a graphical user interface (GUI) and the second adjustment mechanism may be one of a knob and a scrollable bar.
- Examples may also include a data traversal apparatus including a first result module to generate a first set of results based on a scope of a requested search and an object space, wherein the object space is to include a first object and a second object arranged according to a relative relationship based on an attribute. The data traversal apparatus may also include an adjustment module to generate a user interface including a first adjustment mechanism configured to adjust a scope of the requested search and a second adjustment mechanism configured to adjust results of a search based on the attribute, and a second result module to generate a second set of results based on a user input received via one or more of the first adjustment mechanism and the second adjustment mechanism, wherein the second set of results is to include the second object.
- Moreover, the attribute of the apparatus may be based on a word included in a first textual description of the first object and second textual description of the second object.
- In addition, the user interface of the apparatus may be a graphical user interface (GUI) and the first adjustment mechanism is to be one of a knob and a scrollable bar.
- In addition, the user interface of the apparatus may be a graphical user interface (GUI) and the second adjustment mechanism is to be one of a knob and a scrollable bar.
- Various embodiments may be implemented using hardware elements, software elements, or a combination of both. Examples of hardware elements may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether an embodiment is implemented using hardware elements and/or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints.
- One or more aspects of at least one embodiment may be implemented by representative instructions stored on a machine-readable medium which represents various logic within the processor, which when read by a machine causes the machine to fabricate logic to perform the techniques described herein. Such representations, known as “IP cores” may be stored on a tangible, machine readable medium and supplied to various customers or manufacturing facilities to load into the fabrication machines that actually make the logic or processor.
- Embodiments of the present invention are applicable for use with all types of semiconductor integrated circuit (“IC”) chips. Examples of these IC chips include but are not limited to processors, controllers, chipset components, programmable logic arrays (PLAs), memory chips, network chips, and the like. In addition, in some of the drawings, signal conductor lines are represented with lines. Some may be different, to indicate more constituent signal paths, have a number label, to indicate a number of constituent signal paths, and/or have arrows at one or more ends, to indicate primary information flow direction. This, however, should not be construed in a limiting manner. Rather, such added detail may be used in connection with one or more exemplary embodiments to facilitate easier understanding of a circuit. Any represented signal lines, whether or not having additional information, may actually comprise one or more signals that may travel in multiple directions and may be implemented with any suitable type of signal scheme, e.g., digital or analog lines implemented with differential pairs, optical fiber lines, and/or single-ended lines.
- Example sizes/models/values/ranges may have been given, although embodiments of the present invention are not limited to the same. As manufacturing techniques (e.g., photolithography) mature over time, it is expected that devices of smaller size could be manufactured. In addition, well known power/ground connections to IC chips and other components may or may not be shown within the figures, for simplicity of illustration and discussion, and so as not to obscure certain aspects of the embodiments of the invention. Further, arrangements may be shown in block diagram form in order to avoid obscuring embodiments of the invention, and also in view of the fact that specifics with respect to implementation of such block diagram arrangements are highly dependent upon the platform within which the embodiment is to be implemented, i.e., such specifics should be well within purview of one skilled in the art. Where specific details (e.g., circuits) are set forth in order to describe example embodiments of the invention, it should be apparent to one skilled in the art that embodiments of the invention can be practiced without, or with variation of, these specific details. The description is thus to be regarded as illustrative instead of limiting.
- Some embodiments may be implemented, for example, using a machine or tangible computer-readable medium or article which may store an instruction or a set of instructions that, if executed by a machine, may cause the machine to perform a method and/or operations in accordance with the embodiments. Such a machine may include, for example, any suitable processing platform, computing platform, computing device, processing device, computing system, processing system, computer, processor, or the like, and may be implemented using any suitable combination of hardware and/or software. The machine-readable medium or article may include, for example, any suitable type of memory unit, memory device, memory article, memory medium, storage device, storage article, storage medium and/or storage unit, for example, memory, removable or non-removable media, erasable or non-erasable media, writeable or re-writeable media, digital or analog media, hard disk, floppy disk, Compact Disk Read Only Memory (CD-ROM), Compact Disk Recordable (CD-R), Compact Disk Rewriteable (CD-RW), optical disk, magnetic media, magneto-optical media, removable memory cards or disks, various types of Digital Versatile Disk (DVD), a tape, a cassette, or the like. The instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, encrypted code, and the like, implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language.
- Unless specifically stated otherwise, it may be appreciated that terms such as “processing,” “computing,” “calculating,” “determining,” or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulates and/or transforms data represented as physical quantities (e.g., electronic) within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices. The embodiments are not limited in this context.
- The term “coupled” may be used herein to refer to any type of relationship, direct or indirect, between the components in question, and may apply to electrical, mechanical, fluid, optical, electromagnetic, electromechanical or other connections. In addition, the terms “first”, “second”, etc. may be used herein only to facilitate discussion, and carry no particular temporal or chronological significance unless otherwise indicated.
- Those skilled in the art will appreciate from the foregoing description that the broad techniques of the embodiments of the present invention can be implemented in a variety of forms. Therefore, while the embodiments of this invention have been described in connection with particular examples thereof, the true scope of the embodiments of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, specification, and following claims.
Claims (12)
1. At least one computer readable storage medium comprising a set of traversal instructions which, if executed by a processor, cause a computer to:
generate a first set of results based on a scope of a requested search and an object space, wherein the object space is to include a first object and a second object arranged according to a relative relationship based on an attribute;
generate a user interface including a first adjustment mechanism configured to adjust a scope of the requested search, and a second adjustment mechanism configured to adjust results of a search based on the attribute; and
generate a second set of results based on a user input received via one or more of the first adjustment mechanism and the second adjustment mechanism, wherein the second set of results is to include the second object.
2. The at least one computer readable storage medium of claim 1 , wherein the attribute is to be based on a word included in a first textual description of the first object and a second textual description of the second object.
3. The at least one computer readable storage medium of claim 1 , wherein the user interface comprises a graphical user interface (GUI) and the first adjustment mechanism is to be one of a knob and a scrollable bar.
4. The at least one computer readable storage medium of claim 1 , wherein the user interface comprises a graphical user interface (GUI) and the second adjustment mechanism is to be one of a knob and a scrollable bar.
5. A data traversal apparatus comprising:
a first result module to generate a first set of results based on a scope of a requested search and an object space, wherein the object space includes a first object and a second object arranged according to a relative relationship based on an attribute;
an adjustment module to generate a user interface including a first adjustment mechanism configured to adjust a scope of the requested search and a second adjustment mechanism configured to adjust results of a search based on the attribute; and
a second result module to generate a second set of results based on a user input received via one or more of the first adjustment mechanism and the second adjustment mechanism, wherein the second set of results is to include the second object.
6. The apparatus of claim 5 , wherein the attribute is to be based on a word included in a first textual description of the first object and second textual description of the second Object.
7. The apparatus of claim 5 , wherein the user interface comprises a graphical user interface (GUI) and the first adjustment mechanism is to be one of a knob and a scrollable bar.
8. The apparatus of claim 5 , wherein the user interface comprises a graphical user interface (GUI) and the second adjustment mechanism is to be one of a knob and a scrollable bar.
9. A method, comprising:
generating a first set of results based on a scope of a requested search and an object space, wherein the object space includes a first object and a second object arranged according to a relative relationship based on an attribute;
generating a user interface including a first adjustment mechanism configured to adjust a scope of the requested search, and a second adjustment mechanism configured to adjust results of a search based on the attribute; and
generating a second set of results based on a user input received via one or more of the first adjustment mechanism and the second adjustment mechanism, wherein the second set of results includes the second object.
10. The method of claim 9 , wherein the attribute is based on a word included in a first textual description of the first object and a second textual description of the second object.
11. The method of claim 9 , wherein the user interface comprises a graphical user interface (GUI) and the first adjustment mechanism is one of a knob and a scrollable bar.
12. The method of claim 9 , wherein the user interface comprises a graphical user interface (GUI) and the second adjustment mechanism is one of a knob and a scrollable bar.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/795,614 US20150309685A1 (en) | 2012-08-17 | 2015-07-09 | Traversing data utilizing data relationships |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/588,828 US9110983B2 (en) | 2012-08-17 | 2012-08-17 | Traversing data utilizing data relationships |
US14/795,614 US20150309685A1 (en) | 2012-08-17 | 2015-07-09 | Traversing data utilizing data relationships |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/588,828 Division US9110983B2 (en) | 2012-08-17 | 2012-08-17 | Traversing data utilizing data relationships |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150309685A1 true US20150309685A1 (en) | 2015-10-29 |
Family
ID=50100824
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/588,828 Expired - Fee Related US9110983B2 (en) | 2012-08-17 | 2012-08-17 | Traversing data utilizing data relationships |
US14/795,614 Abandoned US20150309685A1 (en) | 2012-08-17 | 2015-07-09 | Traversing data utilizing data relationships |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/588,828 Expired - Fee Related US9110983B2 (en) | 2012-08-17 | 2012-08-17 | Traversing data utilizing data relationships |
Country Status (6)
Country | Link |
---|---|
US (2) | US9110983B2 (en) |
EP (1) | EP2885721A4 (en) |
JP (1) | JP5964516B2 (en) |
KR (2) | KR101642365B1 (en) |
CN (1) | CN104428762B (en) |
WO (1) | WO2014028225A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10558679B2 (en) * | 2016-02-10 | 2020-02-11 | Fuji Xerox Co., Ltd. | Systems and methods for presenting a topic-centric visualization of collaboration data |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8682823B2 (en) * | 2007-04-13 | 2014-03-25 | A-Life Medical, Llc | Multi-magnitudinal vectors with resolution based on source vector features |
US7908552B2 (en) | 2007-04-13 | 2011-03-15 | A-Life Medical Inc. | Mere-parsing with boundary and semantic driven scoping |
US10333820B1 (en) | 2012-10-23 | 2019-06-25 | Quest Software Inc. | System for inferring dependencies among computing systems |
US9557879B1 (en) | 2012-10-23 | 2017-01-31 | Dell Software Inc. | System for inferring dependencies among computing systems |
US10771247B2 (en) | 2013-03-15 | 2020-09-08 | Commerce Signals, Inc. | Key pair platform and system to manage federated trust networks in distributed advertising |
US11222346B2 (en) | 2013-03-15 | 2022-01-11 | Commerce Signals, Inc. | Method and systems for distributed signals for use with advertising |
US10803512B2 (en) * | 2013-03-15 | 2020-10-13 | Commerce Signals, Inc. | Graphical user interface for object discovery and mapping in open systems |
US11005738B1 (en) | 2014-04-09 | 2021-05-11 | Quest Software Inc. | System and method for end-to-end response-time analysis |
US9479414B1 (en) | 2014-05-30 | 2016-10-25 | Dell Software Inc. | System and method for analyzing computing performance |
US10291493B1 (en) * | 2014-12-05 | 2019-05-14 | Quest Software Inc. | System and method for determining relevant computer performance events |
US9996577B1 (en) | 2015-02-11 | 2018-06-12 | Quest Software Inc. | Systems and methods for graphically filtering code call trees |
JP2016162163A (en) * | 2015-03-02 | 2016-09-05 | 富士ゼロックス株式会社 | Information processor and information processing program |
US10187260B1 (en) | 2015-05-29 | 2019-01-22 | Quest Software Inc. | Systems and methods for multilayer monitoring of network function virtualization architectures |
KR101705556B1 (en) * | 2015-06-26 | 2017-02-22 | 주식회사 파수닷컴 | Method and apparatus for providing associated note using degree of association |
US10078858B2 (en) * | 2015-08-05 | 2018-09-18 | Amadeus S.A.S. | Systems, methods, and computer program products for implementing a free-text search database |
US10200252B1 (en) | 2015-09-18 | 2019-02-05 | Quest Software Inc. | Systems and methods for integrated modeling of monitored virtual desktop infrastructure systems |
US10230601B1 (en) | 2016-07-05 | 2019-03-12 | Quest Software Inc. | Systems and methods for integrated modeling and performance measurements of monitored virtual desktop infrastructure systems |
EP3475888A1 (en) * | 2016-08-22 | 2019-05-01 | Oracle International Corporation | System and method for ontology induction through statistical profiling and reference schema matching |
US10212181B2 (en) * | 2016-11-18 | 2019-02-19 | Bank Of America Corporation | Network security database sorting tool |
DE102017125232A1 (en) | 2017-10-27 | 2019-05-02 | Nexwafe Gmbh | Method and apparatus for continuous vapor deposition of silicon on substrates |
CN110750498B (en) * | 2018-07-19 | 2023-01-06 | 成都华为技术有限公司 | Object access method, device and storage medium |
CN114579730A (en) * | 2020-11-30 | 2022-06-03 | 伊姆西Ip控股有限责任公司 | Information processing method, electronic device, and computer program product |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2178007A3 (en) * | 1999-01-26 | 2010-08-25 | Xerox Corporation | Multi-modal information access |
US6751621B1 (en) * | 2000-01-27 | 2004-06-15 | Manning & Napier Information Services, Llc. | Construction of trainable semantic vectors and clustering, classification, and searching using trainable semantic vectors |
EP1290574B1 (en) * | 2000-05-17 | 2013-02-13 | Microsoft Corporation | System and method for matching a textual input to a lexical knowledge base and for utilizing results of that match |
GB2377046A (en) * | 2001-06-29 | 2002-12-31 | Ibm | Metadata generation |
US6886010B2 (en) * | 2002-09-30 | 2005-04-26 | The United States Of America As Represented By The Secretary Of The Navy | Method for data and text mining and literature-based discovery |
US7562068B2 (en) | 2004-06-30 | 2009-07-14 | Microsoft Corporation | System and method for ranking search results based on tracked user preferences |
US8065316B1 (en) * | 2004-09-30 | 2011-11-22 | Google Inc. | Systems and methods for providing search query refinements |
US7440948B2 (en) | 2005-09-20 | 2008-10-21 | Novell, Inc. | System and method of associating objects in search results |
JP2009026195A (en) * | 2007-07-23 | 2009-02-05 | Yokohama National Univ | Article classification apparatus, article classification method and program |
US20090070346A1 (en) * | 2007-09-06 | 2009-03-12 | Antonio Savona | Systems and methods for clustering information |
JP5098631B2 (en) * | 2007-12-25 | 2012-12-12 | 日本電気株式会社 | Mail classification system, mail search system |
KR100945163B1 (en) * | 2008-01-15 | 2010-03-08 | 백기영 | Web-Site Proving System and Method for Giving Personalized Service |
US8504488B2 (en) * | 2008-04-30 | 2013-08-06 | Cisco Technology, Inc. | Network data mining to determine user interest |
US8886637B2 (en) | 2008-05-12 | 2014-11-11 | Enpulz, L.L.C. | Web browser accessible search engine which adapts based on user interaction |
CN102193936B (en) * | 2010-03-09 | 2013-09-18 | 阿里巴巴集团控股有限公司 | Data classification method and device |
US20120011119A1 (en) | 2010-07-08 | 2012-01-12 | Qualcomm Incorporated | Object recognition system with database pruning and querying |
-
2012
- 2012-08-17 US US13/588,828 patent/US9110983B2/en not_active Expired - Fee Related
-
2013
- 2013-08-01 EP EP13829556.3A patent/EP2885721A4/en not_active Withdrawn
- 2013-08-01 KR KR1020157001059A patent/KR101642365B1/en active IP Right Grant
- 2013-08-01 JP JP2015523308A patent/JP5964516B2/en active Active
- 2013-08-01 WO PCT/US2013/053170 patent/WO2014028225A1/en active Application Filing
- 2013-08-01 KR KR1020167001627A patent/KR101692798B1/en active IP Right Grant
- 2013-08-01 CN CN201380037983.XA patent/CN104428762B/en active Active
-
2015
- 2015-07-09 US US14/795,614 patent/US20150309685A1/en not_active Abandoned
Non-Patent Citations (1)
Title |
---|
Ewing, Experiments in Interactive Map Retrieval, Doctoral Thesis, University of Canterbury, 1992, pp. 1-240. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10558679B2 (en) * | 2016-02-10 | 2020-02-11 | Fuji Xerox Co., Ltd. | Systems and methods for presenting a topic-centric visualization of collaboration data |
Also Published As
Publication number | Publication date |
---|---|
EP2885721A1 (en) | 2015-06-24 |
CN104428762B (en) | 2017-10-17 |
EP2885721A4 (en) | 2016-04-20 |
JP2015528173A (en) | 2015-09-24 |
JP5964516B2 (en) | 2016-08-03 |
KR101642365B1 (en) | 2016-07-25 |
CN104428762A (en) | 2015-03-18 |
KR20160014106A (en) | 2016-02-05 |
KR101692798B1 (en) | 2017-01-05 |
WO2014028225A1 (en) | 2014-02-20 |
KR20150021115A (en) | 2015-02-27 |
US9110983B2 (en) | 2015-08-18 |
US20140052712A1 (en) | 2014-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9110983B2 (en) | Traversing data utilizing data relationships | |
Pranckevičius et al. | Comparison of naive bayes, random forest, decision tree, support vector machines, and logistic regression classifiers for text reviews classification | |
Kranjc et al. | Active learning for sentiment analysis on data streams: Methodology and workflow implementation in the ClowdFlows platform | |
WO2015192667A1 (en) | Advertisement recommending method and advertisement recommending server | |
Tran et al. | Hashtag recommendation approach based on content and user characteristics | |
US20170330241A1 (en) | Determination of targeted food recommendation | |
TWI710917B (en) | Data processing method and device | |
KR20210022873A (en) | Method and system for providing improved review information to users by analyzing cosmetic review information collected through the Internet | |
US11200985B2 (en) | Utilizing unstructured literature and web data to guide study design in healthcare databases | |
Hogan | From invisible algorithms to interactive affordances: Data after the ideology of machine learning | |
Gramyak et al. | Intelligent Method of a Competitive Product Choosing based on the Emotional Feedbacks Coloring. | |
Lee et al. | Can book covers help predict bestsellers using machine learning approaches? | |
Kumari et al. | Importance of data standardization methods on stock indices prediction accuracy | |
El-Kishky et al. | k NN-Embed: Locally Smoothed Embedding Mixtures for Multi-interest Candidate Retrieval | |
US20190385089A1 (en) | Social network navigation based on content relationships | |
Ezenwoke et al. | Integrating fuzzy theory and visualization for QoS-aware selection of SaaS in cloud e-Marketplaces | |
US10592480B1 (en) | Affinity scoring | |
Kurtz et al. | Finding and recommending scholarly articles | |
Jha et al. | Ctr prediction: A bibliometric review of scientific literature | |
US10176607B2 (en) | Interactive pattern detection in data sets | |
Yakunin et al. | News popularity prediction using topic modelling | |
Naing et al. | Analyzing sentiment level of social media data based on SVM and Naïve Bayes algorithms | |
Nassar et al. | GPU_MF_SGD: A novel GPU-based stochastic gradient descent method for matrix factorization | |
Lu et al. | How restaurant attributes affect customer satisfaction: A study based on sentiment analysis, neural network modelling and Kano model classification | |
US11741123B2 (en) | Visualization and exploration of probabilistic models for multiple instances |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SAVAGE, NORMA SAIPH;WOUHAYBI, RITA H.;SIGNING DATES FROM 20150923 TO 20150930;REEL/FRAME:036972/0545 |
|
STCV | Information on status: appeal procedure |
Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS |
|
STCV | Information on status: appeal procedure |
Free format text: BOARD OF APPEALS DECISION RENDERED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |