# Patent

## Title
Relevance estimation and actions based thereon

## Abstract

Computer-based systems, methods, and articles of manufacture are disclosed. In a social network embodiment, information regarding a first user is obtained and formed into a first dataset. Conceptual spaces are selected for the first user, and the first user's location is determined in the spaces. Distances between the first user and other users and their datasets are computed in the selected conceptual spaces. Actions are taken based on the distances, such as including or excluding the other users from a friends list of the first user.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation-in-part and claims priority from U.S. patent application Ser. No. 14/562,615, entitled RELEVANCE ESTIMATION AND ACTIONS BASED THEREON, filed on Dec. 5, 2014; which is a continuation of and claims priority from U.S. patent application Ser. No. 13/658,516, entitled RELEVANCE ESTIMATION AND ACTIONS BASED THEREON, filed on Oct. 23, 2012, now U.S. Pat. No. 8,930,385; which claims priority from U.S. provisional patent application Ser. No. 61/554,778, entitled APPARATUS, METHODS, AND ARTICLES OF MANUFACTURE FOR RELEVANCE ESTIMATION AND ACTIONS BASED THEREON, filed on Nov. 2, 2011. Each of the above-referenced patent documents is hereby incorporated by reference in its entirety as if fully set forth herein, including text, figures, claims, tables, and computer program listing appendices (if present), and all other matter therein.


FIELD
The present description relates generally to estimation/determination of relevance or relatedness of entities and datasets and actions based on the resulting estimates/determinations. In selected embodiments, the present description relates to social networking and virtual reality.
BACKGROUND
Estimating relatedness of various data sets is useful in many applications. In social networking, for example, estimating potential interest of a first user in another user may be useful when selecting users to suggest as potential “friends” to the first user, and vice versa. It is also useful in selecting advertising to present (render) to a particular user. To estimate relatedness, a virtual space may be defined so that it describes a given number of dimensions representing different qualities. For example, a virtual reality space may be defined so that the distance between avatars represents similarity of their qualities rather than or in addition to the distance in the “physical” space or distance as it appears on a computer screen or another display. There are other uses for estimating relevance/relatedness as well.
Therefore, it is desirable to facilitate the process of estimating relatedness of real or notional objects, and taking action based on the resulting estimates.
SUMMARY
A need thus exists for improved ways to make determinations and estimations of relevance/relatedness, and to act in response to the determinations and estimations.
Embodiments of the present invention are directed to methods, apparatus, and articles of manufacture that satisfy one or more of these needs. Some described embodiments are used to define a distance in a virtual reality or a social network between objects, concepts, and/or other datasets.
In an embodiment, a computer-implemented method is used to manage groups in a computer environment implemented on an apparatus that having at least one computing device coupled to a computer network, the computer environment interconnecting a first entity and a plurality of other entities, the first entity and each entity of the plurality of other entities being associated with a plurality of characteristics. The method includes assigning by the apparatus a numerical value to each characteristic of the first entity and said each entity of the plurality of other entities to obtain (1) a first dataset associated with the first entity, the first dataset comprising the numerical values of the characteristics of the first entity, and (2) a plurality of datasets of the plurality of other entities, a dataset of the plurality of datasets per entity of the plurality of other entities, each dataset of the plurality of datasets comprising the numerical values of the characteristics of the entity with which said each dataset is associated, the step of assigning being performed for the first entity based at least on information regarding the characteristics provided by the first entity, the step of assigning being performed for said each entity of the plurality of other entities based at least on information regarding the characteristics provided by said each entity of the plurality of other entities; computing by the apparatus for said each entity of the plurality of other entities a distance in a first conceptual space between (1) a point in the first conceptual space defined by the first dataset, and (2) a point in the first conceptual space defined by numerical values of the characteristics of the dataset of said each entity of the plurality of other entities, thereby obtaining a plurality of distances in the first conceptual space, a distance of the plurality of distances corresponding to a different entity of the plurality of other entities, wherein each dimension of the first conceptual space corresponds to a different one of said plurality of characteristics, and wherein distances along at least one of the dimensions in the first conceptual space are weighted by a weight assigned by the first entity to characteristic associated with said at least one of the dimensions; and selecting by the apparatus entities for a first group from the plurality of other entities so that distance in the first conceptual space corresponding to each entity included in the first group does not exceed a first predetermined distance limit.
In an embodiment, a computing apparatus includes at least one processor, program code storage storing machine-executable instructions, the program code storage being coupled to the at least one processor to enable the processor to read the machine-executable instructions, and a network interface coupling the at least one processor to a computer network. When the at least one processor executes the machine-executable instructions, the at least one processor causes the computing apparatus to: (1) form a first numerical dataset from information submitted for a first entity; (2) select one or more conceptual spaces for the first entity; (3) determine one or more locations of the first entity in the one or more conceptual spaces, at least one location of the one or more locations of the first entity per each conceptual space of the one or more conceptual spaces; (4) compute one or more distances from the first entity to a second entity in the one or more conceptual spaces, at least one distance of the one or more distances per conceptual space of the one or more conceptual spaces, the second entity having a second numerical dataset formed based on information regarding the second entity; (5) test each distance of the one or more distances under one or more criteria; and (6) in response to the step of testing, make available to the first entity information regarding relatedness of the first entity and the second entity whereby the information regarding relatedness of the first entity and the second entity is at least one of (1) rendered on a display, (2) stored in a memory, and (3) transmitted electronically.
In an embodiment, a computing apparatus includes at least one processor; program code storage storing machine-executable instructions, the program code storage being coupled to the at least one processor to enable the processor to read the machine-executable instructions; and a network interface coupling the at least one processor to a computer network. When the at least one processor executes the machine-executable instructions, the at least one processor causes the computing apparatus to: (1) implement an environment interconnecting a first entity and a plurality of other entities, the first entity and each entity of the plurality of other entities being associated with a plurality of characteristics; (2) assign a numerical value to each characteristic of the first entity and said each entity of the plurality of other entities to obtain (i) a first dataset associated with the first entity, the first dataset comprising the numerical values of the characteristics of the first entity, and (ii) a plurality of datasets of the plurality of other entities, a dataset of the plurality of datasets per entity of the plurality of other entities, each dataset of the plurality of datasets comprising the numerical values of the characteristics of the entity with which said each dataset is associated, wherein the numerical values for the first entity are assigned based at least on information regarding the characteristics provided by the first entity, and wherein the numerical values for said each entity of the plurality of other entities are assigned based at least on information regarding the characteristics provided by said each entity of the plurality of other entities; (3) compute for said each entity of the plurality of other entities a distance in a first conceptual space between (i) a point in the first conceptual space defined by the first dataset, and (ii) a point in the first conceptual space defined by numerical values of the characteristics of the dataset of said each entity of the plurality of other entities, thereby obtaining a plurality of distances in the first conceptual space, a distance of the plurality of distances corresponding to a different entity of the plurality of other entities, wherein each dimension of the first conceptual space corresponds to a different one of said plurality of characteristics, and wherein distances along at least one of the dimensions in the first conceptual space are weighted by a weight assigned to characteristic associated with said at least one of the dimensions by the first entity; and (4) select entities for a first group from the plurality of other entities so that distance corresponding to each entity of the first group in the first conceptual space does not exceed a first predetermined distance limit.
In an embodiment, a computer-implemented method is used to manage groups in a computer environment implemented on an apparatus comprising at least one computing device coupled to a computer network, the computer environment interconnecting a first entity and a plurality of other entities, the first entity and each entity of the plurality of other entities being associated with a plurality of characteristics. The method includes assigning by the apparatus a numerical value to each characteristic of the first entity and said each entity of the plurality of other entities to obtain (1) a first dataset associated with the first entity, the first dataset comprising the numerical values of the characteristics of the first entity, and (2) a plurality of datasets of the plurality of other entities, a dataset of the plurality of datasets per entity of the plurality of other entities, each dataset of the plurality of datasets comprising the numerical values of the characteristics of the entity with which said each dataset is associated, the step of assigning being performed for the first entity based at least on information regarding the characteristics provided by the first entity, the step of assigning being performed for said each entity of the plurality of other entities based at least on information regarding the characteristics provided by said each entity of the plurality of other entities. The method also includes step for computing distances between the first entity and each entity of the plurality of other entities in a first conceptual space, thereby obtaining a plurality of distances in the first conceptual space, a distance of the plurality of distances corresponding to a different entity of the plurality of other entities, wherein each dimension of the first conceptual space corresponds to a different one of said plurality of characteristics, and wherein distances along at least one of the dimensions in the first conceptual space are weighted by a weight assigned by the first entity to characteristic associated with said at least one of the dimensions. The method also includes step for selecting entities for a first group from the plurality of other entities so that distance in the first conceptual space corresponding to each entity included in the first group does not exceed a first predetermined distance limit. The method additionally includes transmitting to the first entity the identities of the entities in the first group to enable the first entity to include one or more of the entities of the first group in an affinity group of the first entity.
These and other features and aspects of the present invention will be better understood with reference to the following description, drawings, and appended claims.



BRIEF DESCRIPTION OF THE FIGURES
FIG. 1 illustrates selected components of a computer-based system configured to perform steps of a method in accordance with an embodiment described in this document;
FIG. 2 illustrates selected steps of a method for making estimations of relevance/relatedness and acting based on the estimations, in accordance with an embodiment disclosed in this document;
FIG. 3 illustrates selected aspects of a two-dimensional conceptual space; and
FIG. 4 illustrates selected aspects of a conceptual distance in a two-dimensional conceptual space.



DETAILED DESCRIPTION
In this document, the words “embodiment,” “variant,” “example,” and similar expressions refer to a particular apparatus, process, or article of manufacture, and not necessarily to the same apparatus, process, or article of manufacture. Thus, “one embodiment” (or a similar expression) used in one place or context can refer to a particular apparatus, process, or article of manufacture; the same or a similar expression in a different place can refer to a different apparatus, process, or article of manufacture. The expression “alternative embodiment” and similar expressions and phrases are used to indicate one of a number of different possible embodiments. The number of possible embodiments is not necessarily limited to two or any other quantity. Characterization of an item as “exemplary” means that the item is used as an example. Such characterization of an embodiment does not necessarily mean that the embodiment is a preferred embodiment; the embodiment may but need not be a currently preferred embodiment. The embodiments are described for illustration purposes and are not necessarily strictly limiting.
The words “couple,” “connect,” and similar expressions with their inflectional morphemes do not necessarily import an immediate or direct connection, but may include connections through mediate elements within their meaning, unless otherwise specified or inherently required.
“Contiguous” and its inflectional morphemes are used to describe a dimension that is not entirely discrete; the dimension may be entirely continuous (i.e., the value of the dimension's variable is allowed to assume any real number), or continuous in one or more intervals (i.e., the value of the dimension's variable is allowed to assume any number within the one or more intervals). A contiguous dimension may have one or more discrete values in addition to the one or more continuous intervals. A contiguous interval may be bounded on one side only, or bounded on one side and unbounded on the other side.
Other and further definitions and clarifications of definitions may be found throughout this document.
A “user” may be a person, a business entity, or another organization or entity.
A “dataset” is a collection of information (such as an ordered collection of numerical values) about at least one particular user, person (such as a natural person, firm, company, partnership, business), avatar, virtual actor, place, event, business transaction, or actual/potential occurrence. For a person, generation of a dataset is described below. An advertisement may have a dataset associated with it, including, for example, descriptions of a product or service, and demographic data and personality traits of those person who are likely to be interested in one or more of the products/services marketed through the advertisement.
Reference will now be made in detail to several embodiments and accompanying drawings. Same reference numerals are used in the drawings and the description to refer to the same apparatus elements and method steps. The drawings are in simplified form, not to scale, and omit apparatus elements and method steps that can be added to the described apparatus and methods, while including certain optional elements and steps.
In a physical world, all objects, including people, exist in physical space and have specific place in the physical space. A distance between two objects is calculated as the distance in the space between two points corresponding to the respective positions of the objects. In a three-dimensional Euclidean space, R3, for example, the distance ΔS between two points A(x1, y1, z1) and B(x2, y2, z2) is defined as a solution to the following equation:

ΔS2=Δx2+Δy2+Δz2,  (1.1)

where ΔS=SA−Sb; Δx=x1−x2; Δy=y1−y2; and Δz=z1−z2. In a more general non-Euclidian metric space, such as Riemannian space, the geometry is defined by the metric

ds2=gijdxidxj,   (1.2)

where gik is a metric tensor and xi are coordinates. In a more general non-Euclidian metric space, the distance between point A and point B is defined as





  
    
      
        S
        =
        
          
            
              ∫
              A
              B
            
            ⁢
            
              d
              ⁢
              
                
              
              ⁢
              s
            
          
          =
          
            
              ∫
              A
              B
            
            ⁢
            
              
                
                  (
                  
                    
                      g
                      
                        i
                        ⁢
                        
                          
                        
                        ⁢
                        j
                      
                    
                    ⁢
                    d
                    ⁢
                    
                      
                    
                    ⁢
                    
                      x
                      i
                    
                    ⁢
                    d
                    ⁢
                    
                      
                    
                    ⁢
                    
                      x
                      j
                    
                  
                  )
                
                
                  1
                  2
                
              
              .
            
          
        
      
    
    
      
        (
        1.3
        )
      
    
  




A mathematical concept of space need not be confined to the notion of physical space. In physics, for example, so called configuration space for N particles is defined as 3N-dimensional space, R3n, which represents all possible positions of all N particles. A phase space is a space, in which all possible states of a system are represented, wherein each possible state corresponds to a unique point in the phase space. In mechanics, a phase space may consist of all possible positions and momentum values of all particles. A phase space for N particles is defined as 6N-dimensional space R6n, wherein each particle has six coordinates: three spatial coordinates −x1, x2, x3, and three components of momentum −p1, p2, p3. Phase space need not necessarily be flat Euclidian space and may be a Riemannian space with curvature. Other geometries may include non-metricity (non-vanishing covariant derivative of the metric tensor) or torsion (the anti-symmetric part of the connection). Different topologies can be used as well.
An abstract mathematical space can be used to describe any number of variables. For example, a logical variable P that can have only two values, True and False, can be described as a 1-dimensional discrete space consisting of two points: x1=True and x2=False. In such space, we can define the distance S between two logical values P and Q as S=0, if A=B, and S=∞ (infinity), if B=Ā (not A). In other words, two concepts occupy the same space in a conceptual space if they are identical, or they are infinitely far from each other if they are opposites. (A predetermined number may be substituted for infinity.) Such conceptual space need not be discrete. A contiguous space may represent a concept that changes contiguously. In such conceptual space, the more two concepts are alike or similar, the closer they are in the conceptual space. The more dissimilar they are, the further apart they are from each other in the conceptual space.
Let us define, for example, a two-dimensional conceptual space (x, y) occupied by objects having two qualities—X and Y—wherein dimension (coordinate) x represents the quality of X and dimension (coordinate) y represents the quality Y, as shown in FIG. 3. Such conceptual space may be a “sound” space, wherein the pair of qualities X and Y may represent, respectively, frequency (measured in Hertz, for example) and volume (measured in Decibels, for example) of a sound. Two notes of the same frequency and the same volume will occupy the same point in this “musical” space. The “distance” ΔS between note A and note B may be defined as a solution to ΔS from the following equation:

ΔS2=Δx2+Δy2,   (1.4)

where Δx=x2−x1 is the difference in frequency and Δy=y2−yi is the difference in volume. See FIG. 4. When corresponding to frequency such as in the example above, the coordinate X is contiguous. However, it may instead correspond to musical notes, in which case coordinate X will be discrete. An addition to a third dimension—time—allows to see the evolution of sound in time such as in music score.

In a conceptual “musical” space coordinates may represent tastes in different genre of music so that users with similar musical tastes would find themselves in close proximity in such musical space. The coordinates in this space may represent different musical genre, such as baroque, chamber, romanticism, symphony, opera, jazz, rock, etc. The specific values of each of the coordinates may be obtained by interviewing a user and translating answers into discrete values such as hate=−4, dislike=−2, neutral=0, like=+1, like very much=+2, can't live without=+4, or a similar system. Alternatively, the values may be calculated by an algorithm from the purchasing pattern of music, say on iTune or through Amazon.com.
In a “political” space, for example, the qualities X and Y may represent different political views. For example, X may represent views about fiscal policy and Y may represent views about social policies. Two people having the same views on both issues will occupy the same point in such “political” space. The distance between political views of two people may be calculated as before, from the equation ΔS2=Δx2+Δy2. One can add to such “political” space a third dimension representing, for example, foreign policy. The distance between political views of two people in such three-dimensional space may be calculated as before, from the equation ΔS2=Δx2+Δy2+Δz2. The distance along a specific dimension, say, X, will show how far two people or two ideas are from each other in this dimension (in this example, in fiscal policy). However, the overall distance in three-dimensional space will signify the overall difference in political positions. This may be useful as a first user of a social network may be willing to connect to other users of such network who are no further from the first user in overall political views than a given distance 1, irrespective of how their view differ in each particular dimension. A political candidate, for example, may consider all people within a given radius to be his likely supporters and/or voters. An overall distance in a multidimensional space may be used as a proxy to calculate the probability of voting for a political candidate. Such political space may have as many dimensions as there are issues on which a given candidate took a position, and possibly other qualities (such as demographic and socioeconomic dimensions).
A financial space may be a two-dimensional space plotting price and trading volume of various securities or commodities. Or it can be a three-dimensional space wherein coordinate X is price of the security or commodity, coordinate Y is the trading volume of the security or commodity and coordinate Z is the volatility of the security or commodity. This may be useful in mapping securities and commodities according to their price, trading volume and volatility to easily see clusters of securities and commodities similar in these characteristics. Adding the fourth dimension—time T—allows observing the evolution of the security or the commodity in time with respect to all three trading characteristics. Calculating first and second derivatives (i.e., velocity and acceleration) of price and trading volume with respect to time may be helpful in forecasting financial markets.
We can similarly build a 3-D “color” space, where the three coordinates (x, y, z) represent three primary colors, say x for red, y for green, and z for yellow. Two points in this space will coincide if they have the same color ingredients, i.e., have the same color.
A conceptual space may have any number of dimensions representing a given number of qualities that objects occupying such space possess. Such spaces may be contiguous or discrete. Indeed, such spaces can be contiguous in one or more dimensions, and discrete in one or more other dimensions.
A simple topological space has topological dimensions represented by a natural number. Thus, a well-familiar physical space has dimension 3. The surface of a sphere has a dimension of 2. The Minkowski spacetime of Special Theory of Relativity has a dimension of 4. The phase space in mechanics may have a dimension of 6N. In fractal mathematics, there are spaces defined with dimensions which are represented by numbers which are not natural. A Housdorf dimension does not have to be whole. One can interpret such a dimension having a whole part n and a fractional part p as a space whose topological dimension is uncertain and may be n or n+1 with the probability 0≦p≦1.
Virtual spaces known today attempt to emulate physical reality. Virtual worlds are 2-D or 3-D virtual spaces that look like physical worlds wherein avatars and other objects can move around in a virtual space. Online games allow players to build virtual worlds, such as a virtual store or a virtual city. Virtual space, however, is essentially a conceptual space and can represent conceptual reality, rather than merely mimicking physical reality, however whimsical. A virtual space can be defined so that it describes a given number of qualities. For example, a virtual reality space can be defined so that the distance between two avatars represents similarity of their qualities rather than the distance in the simulated “physical” space as it appears on a computer screen or other display.
Examples of discrete dimensions within a conceptual space may include race, ethnicity, nationality, religion, and sexual orientation.
The same characteristic may in some conceptual spaces be represented by a discrete dimension but in another conceptual space as a contiguous dimension. For example, in one conceptual space, religion can be a discrete dimension taking such values as Judaism, Christianity, Islam, Hinduism, and non-affiliation. In another conceptual space, religion can be a subspace with contiguous dimensions for each of said religions representing a level of observance, say, on a scale of 0 to 10. This may be important to children of and spouses in mixed marriages where each spouse has different religious affiliation. People with certain backgrounds may have mixed affinity to one or more religious traditions.
A conceptual space does not need to exclude physical space. One can conceive of a multidimensional space wherein two or three dimensions represent two or three dimensions of our physical space and additional dimensions represent other characteristics. For example, one can construct a three-dimensional space wherein first two dimensions are respectively longitude and latitude of our physical space on earth, and the third dimension is a conceptual dimension representing similarity of living environment. For example, a person living in New York may have more in common with another person living in Los Angeles, albeit thousands of miles away physically, than with a person living “next door” in New York suburbs. Therefore, in this dimension, residents of New York and Los Angeles will appear in close proximity to each other. A homeowner in suburban New York may have a more similar life style to another homeowner in suburban Chicago than to a tenant renting an apartment in the same town.
Another conceptual space may be constructed around personality types or personality traits. This may be a two-dimensional space based on extravert and introvert types; or on Type A and Type B personality types; or four-dimensional space based on Four Temperaments of Galen: choleric, melancholic, sanguine, and phlegmatic; or five-dimensional space based on Big Five personality traits (Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism); or any other personality typology. Similarly, one can construct a multidimensional conceptual space to depict personality traits such as a sixteen-dimensional space based on sixteen Personality Factors as measured by 16PF Questionnaire. Such conceptual spaces may be used, for example, in dating networks where users can determine their place in the conceptual personality space by answering a questionnaire and then selecting a radius to determine the hyper-sphere of space that one considers an area of compatibility. Other users of such network of opposite gender that are positioned within such hyper-sphere may be considered as suitable candidates for dating.
In constructing a conceptual space one may choose orthogonal (uncorrelated) characteristics.
Social networks currently known may define rigid groups (such as on FaceBook or LinkedIn) or circles (Google+) to which each member of the network either belongs or does not belong. A social network, however, can be constructed using a conceptual space wherein the “distance” in the network between people is defined by their relationship and the affinity of their views and interests. For example, a multi-dimensional conceptual space can be defined wherein one dimension is family relationship (so that close relatives will be closer to each other than distant relatives); another dimension can represent professional occupation (so that the closer the professional occupations of two people are, the closer the two people will appear in this dimension of the conceptual space); yet another dimension can represent political views (the closer the political views of members, the closer they are in the political dimension of this space); still another dimension can represent age; yet another discrete dimension can represent gender; still another dimension can represent religious views; yet another dimension can represent the frequency of communications between members; other dimensions can represent various hobbies, interests, and other affinities. The physical proximity can be one of the dimensions in such conceptual space. The degree of separation (such as in LinkedIn, immediate friends—1st degree, friends of friends—2d degree, etc.) can be another discrete dimension in such conceptual space. In such space, people with similar views, occupation, hobbies, age, etc., may occupy locations in close proximity to each other, thereby creating a conceptual neighborhood.
People tend to socialize with their family members, neighbors, classmates, colleagues, relatives, friends, people of the same nationality and/or religion, and people with similar views and interests. A social network, constructed as a conceptual space, groups people together by their closeness in all such categories, or in a subset of the categories. Such social network can represent the real human interaction in its full spectrum and richness much more natural than existing social networks.
Any member who likes another member can “drag” this member closer overriding the distance calculated by the algorithm based on a given set of characteristics of these two members. One member can bring another member closer or push the other member further, overriding the calculated positions. This can be done, for example, visually by dragging an avatar of the member in a virtual space to or from one's own position, or, for example, by selecting a member of the social network and clicking on “Like” or “Dislike” (or similar analogously-named) buttons and specifying the degree of similarity/attraction or dissimilarity/repulsion towards that person on a given scale.
The distance between network members can be used as a proxy for the degree of influence of a particular member on another and used, for example, in selecting advertisements for the particular member.
FIG. 1 is a simplified block diagram representation of a computer-based exemplary system 100 configured in accordance with selected aspects of the present description. As shown in FIG. 1, the system 100 is coupled to user computers (including mobile devices) 180 via a communication network 190. FIG. 1 does not show many hardware and software modules, and omits several physical and logical connections. The system 100 can be implemented as a special purpose data processor; a general-purpose computer; a computer system; or a group of networked computers connected in local area network (LAN), wide area network (WAN), or connected to the Internet, an extranet or an intranet; or computer systems configured to perform the steps of methods described throughout this document, either alone or in conjunction with other elements such as the user computers 180. In some embodiments, the system 100 is built on a personal computer platform, such as a Wintel PC or a Mac computer. The personal computer may be a desktop or a notebook computer. In another embodiment, the system 100 includes at least one central server or a sever farm.
The system 100 includes a processor 110, read only memory (ROM) module 120, random access memory (RAM) module 130, network interface 140, a mass storage device 150, and a database 160. These components are coupled together by a bus 115. In the illustrated embodiment, the processor 110 is a microprocessor, and the mass storage device 150 is a magnetic or solid state disk drive. The mass storage device 150 and each of the memory modules 120 and 130 are connected to the processor 110 to allow the processor 110 to write data into and read data from these storage and memory devices. The network interface 140 couples the processor 110 to the network 190, for example, the Internet. The nature of the network 190 and of the devices that may be interposed between the system 100 and the network 190 determine the kind of network interface 140 used in the system 100. In some embodiments, for example, the network interface 140 is an Ethernet interface that connects the system 100 to a local area network, which, in turn, connects to the Internet. In some embodiments, the network 190 is wired network, while in other embodiments, the network 190 is a wireless network. In embodiments, the network 190 is a combination of several different networks of the same type or of different types.
The database 160 is used for organizing and storing data that may be needed or desired in performing the method steps described in this document. The database 160 may be a physically separate system coupled to the processor 110, as illustrated in FIG. 1. In one alternative embodiment, the processor 110 and the mass storage device 150 are configured to perform the functions of the database 160.
The processor 110 reads and executes program code instructions stored in the ROM module 120. Under control of the program code, the processor 110 configures the system 100 to perform all or some of the steps of the methods described below. In addition to the ROM module 120, the program code instructions may be embodied in machine-readable storage media, such as hard drives, floppy diskettes, CD-ROMs, DVDs, USB-drives and similar devices that can store the instructions permanently or temporarily, in a non-transitory manner. The program code can also be transmitted over a transmission medium, for example, over electrical wiring or cabling, through optical fiber, wirelessly, or by any other form of physical transmission. The transmission can take place over a dedicated link between telecommunication devices, or through a wide- or local-area network, such as the Internet, an intranet, extranet, or any other kind of public or private network. In one embodiment, the program code is downloaded to the system 100 through the network interface 140.
The system 100 may implement a social network server or a virtual reality server.
FIG. 2 is a process flow diagram illustrating selected steps and decision blocks of a process 200 for determining the degree of potential interest of a first user in a second user. The users may be at their respective user computers 180. The process 200 may be performed, in whole or in part, by the system 100 of FIG. 1, for example, in communication with the user computers 180. The process 200 may also be performed by various other systems.
Although the process steps and decisions are described serially, certain steps and decisions may be performed by separate elements in conjunction or in parallel, asynchronously or synchronously, in a pipelined manner, or otherwise. There is no particular requirement that the steps and decisions be performed in the same order in which this description lists them, except where a specific order is inherently required, explicitly indicated, or is otherwise made clear from the context. Furthermore, not every illustrated step and decision block may be required in every embodiment in accordance with the invention, while some steps and decision blocks that have not been specifically illustrated, may be desirable or necessary in some embodiments in accordance with the invention.
At flow point 201, the system 100 is properly configured and ready to perform the steps of the process 200. In step 205, the system registers a user, generating a corresponding dataset. (In variants, the system obtains a dataset of a different entity, and the steps below are the same or substantially the same mutatis mutandis as applicable to such entity. In other variants, the system obtains a dataset of a user from other available sources, and the steps below may be the same.) The user may be at one of the user computers 180 connected to the system 100 via the network 190, as is illustrated in FIG. 1. Registration entails, for example, obtaining the user's name, postal address, email address, twitter handle, telephone number, and demographic information (e.g., age, gender, physical location, income, race), and personality profile (e.g., interests, hobbies, likes, dislikes, self-evaluation of the user's personality), communication device ownership and communication device preferences. The user may be given an option to attach relative weights to the user's different interests, hobbies, likes, dislikes, and other attributes. Questions designed to elicit information for determining a psychological profile of the user may also be offered to the user. Legally mandated or desirable disclosures, disclaimers, and terms of the agreement between the operator of the system 100 and the user may also be presented to the user at the time of registration. The disclosures and disclaimers may vary depending on the physical site of the user, in order to tailor these documents to the requirements of the user's country, state, or another jurisdiction. The responses received from the user and records indicating which documents have been provided to the user may be stored in the database 160.
In step 210, the user's “location” is determined in one or more conceptual spaces; the position of the user in each of the dimensions of each of the conceptual spaces correspond to all or some of the data provided by the user, which may include the weights the user assigned to one or more of the dimensions (interests, hobbies, etc.); the weights can be applied linearly or in some other fashion. When applied linearly, a weight of w can double the distance (say Δx) in the dimension to which the weight corresponds (e.g., relative to the distance with the default weight such as 1). The weights may be assigned by the users explicitly (e.g., 1, 2, 3, etc.), through a translation algorithm applied to words signifying importance or affection (e.g., “don't care much”=0.5, “neutral”=1, “important”=2, “very important”=3, “can't live without”=4, etc.), based on data regarding the user's internet activity on the site of the system 100 or other sites (previous searches, web pages visited, links selected, advertisements responded to, etc.), or through application of results of a psychological profile applied to answers provided by the user during registration or otherwise. The psychological profile may be a known profile, such as a Myers-Briggs Type Indicator profile or a Wilson Learning Systems profile, or another possibly custom profiling technique. Additional dimensions may also be selected and weighted based on other data, for example, based on data regarding the user's internet activity on the site of the system 100 or other sites (previous searches, web pages visited, links selected, advertisements responded to, books purchased, movies rented, etc.), or through application of results of the psychological profile applied to answers provided by the user during registration or otherwise.
It should be noted that some conceptual spaces may not have a dimension corresponding to a particular data point provided by the user; and the user may not have provided data for one or more dimensions of a particular conceptual space. When a conceptual space has one or more dimensions in which the user's coordinate is not known, the user's “location” in such a space may be extrapolated or considered to correspond to the location of other users having similar locations with the user in the other dimensions.
In step 215, one or more of the conceptual spaces in which the coordinates of location have been determined are selected for the user. Note that this step may in fact precede the step 210, so that the conceptual spaces are selected before the locations are determined.
In step 220, the user's distance(s) from one or more other users (or, more generally, from other datasets) is (or are, as the case may be) computed in one or more of the conceptual spaces. Distance computation may be static or dynamic. When dynamically computed, the distance in a particular conceptual space may depend on dynamically changing information, such as the user's internet activity (searches etc.), internet activity of another user (or another dataset) to which the distance is computed, and on other dynamically varying conditions. The dynamically varying conditions may include financial data (stock markets indices, bond markets indices, individual security quotations, commodity indices, individual commodities, real estate indices, volatility indicators, released survey data, and similar financial data), breaking news items, weather (local or at predetermined locations), sports events and competition results, price changes of consumer products/services, geographic location of the user (which may be dynamically obtainable from the user's portable communication device), geographic location of another user or another entity, and similar live or recent data.
It should be noted that the distance between two users may be the same in both directions or perspectives. The distance may also vary depending on the perspective. For example, the distance between a first user and a second user measured from the first user's perspective, may differ from the distance between the users measured from the second user's perspective. This may be caused by the different conceptual spaces for the two users, and the different weights assigned to one or more dimensions by the two users.
In decision block 225, a distance of the user/dataset from another user/dataset is evaluated using (tested against) one or more criteria. If the one or more criteria are met, an action is performed in step 230.
In the social network context, for example, a simple criteria may be a first limit value: if the distance is not greater than the first limit value, for example, the distance meets the criteria, and the user/dataset from which perspective the distance was measured is offered (via an email or another electronic or physical message, for example) the other user/dataset as a potential object for inclusion in the first user's group of interest, such as a group of the first user's friends. The second user may also be automatically included in the group if the criteria are met. Similarly, an advertisement may be targeted and sent/presented to the first user if the distance from the first user's perspective meets one or more criteria, or if the distance from the advertisement's dataset perspective meets the one or more criteria. More generally, any real-world action may be taken if the one or more criteria is/are met.
More than one distance may be evaluated/tested in the decision block 225, and more than one set of criteria may be used in the decision block 225.
The one or more criteria by which a distance is evaluated may depend (1) on a particular user/dataset from whose perspective the distance is measured, (2) on the other user/dataset (to whom the distance is measured), and/or (3) other parameters, such as time and business necessity.
After the step 230, the process may terminate at flow point 299. If the one or more criteria are not met in the decision block 225, the process may terminate at the flow point 299 without performing the action in the step 230. The process may then be repeated for other users or for the same user, for example, when information is dynamically updated.
This document describes in detail the inventive apparatus, methods, and articles of manufacture for making estimations/determinations of relevance, relatedness, and/or affinity of datasets and actions based on the resulting estimates/determinations. This was done for illustration purposes. Neither the specific embodiments of the invention as a whole, nor those of its features necessarily limit the general principles underlying the invention. The specific features described herein may be used in some embodiments, but not in others, without departure from the spirit and scope of the invention as set forth herein. Various physical arrangements of components and various step sequences also fall within the intended scope of the invention. Many additional modifications are intended in the foregoing disclosure, and it will be appreciated by those of ordinary skill in the art that in some instances some features of the invention will be employed in the absence of a corresponding use of other features. The illustrative examples therefore do not define the metes and bounds of the invention and the legal protection afforded the invention, which function is carried out by current and future claims and their equivalents.

## Claims

1. A method of group management in a computer environment implemented on an apparatus comprising at least one computing device coupled to a computer network, the computer environment interconnecting a first entity and a plurality of other entities, the first entity and each entity of the plurality of other entities being associated with a plurality of characteristics, the method comprising:
assigning by the apparatus a numerical value to each characteristic of the first entity and said each entity of the plurality of other entities to obtain (1) a first dataset associated with the first entity, the first dataset comprising the numerical values of the characteristics of the first entity, and (2) a plurality of datasets of the plurality of other entities, a dataset of the plurality of datasets per entity of the plurality of other entities, each dataset of the plurality of datasets comprising the numerical values of the characteristics of the entity with which said each dataset is associated, the step of assigning being performed for the first entity based at least on information regarding the characteristics provided by the first entity, the step of assigning being performed for said each entity of the plurality of other entities based at least on information regarding the characteristics provided by said each entity of the plurality of other entities;
computing by the apparatus for said each entity of the plurality of other entities a distance in a first conceptual space between (1) a point in the first conceptual space defined by the first dataset, and (2) a point in the first conceptual space defined by numerical values of the characteristics of the dataset of said each entity of the plurality of other entities, thereby obtaining a plurality of distances in the first conceptual space, a distance of the plurality of distances corresponding to a different entity of the plurality of other entities, wherein each dimension of the first conceptual space corresponds to a different one of said plurality of characteristics, and wherein distances along at least one of the dimensions in the first conceptual space are weighted by a weight assigned by the first entity to characteristic associated with said at least one of the dimensions; and
selecting by the apparatus entities for a first group from the plurality of other entities so that distance in the first conceptual space corresponding to each entity included in the first group does not exceed a first predetermined distance limit.

2. A method according to claim 1, further comprising:
making available to the first entity information about the entities of the first group for inclusion in one or more affinity groups of the first entity.

3. A method according to claim 1, further comprising:
making available to the first entity information about the entities of the first group.

4. A method according to claim 3, wherein:
the step of assigning comprises receiving over the computer network from the first entity first data from which the first dataset can be determined, and receiving over the computer network from a second entity of the plurality of other entities second data from which dataset associated with the second entity can be determined; and
said computer network comprises the Internet.

5. A method according to claim 4, wherein said computer network further comprises a cellular communication network.

6. A method according to claim 4, wherein the first conceptual space is a Riemannian metric conceptual space.

7. A method according to claim 4, wherein the first conceptual space is a Euclidean conceptual space.

8. A method according to claim 4, wherein at least one of said plurality of characteristics is a physical characteristic.

9. A method according to claim 4, wherein at least one of said plurality of characteristics is a psychological profile characteristic.

10. A method according to claim 4, wherein the step of assigning is performed at least in part dynamically.

11. A method according to claim 4, wherein the first conceptual space comprises at least one discrete dimension.

12. A method according to claim 4, wherein the first conceptual space comprises at least one contiguous dimension comprising a plurality of intervals.

13. A method according to claim 4, wherein the first conceptual space comprises at least one dimension with one or more discrete numerical values and at least one continuous interval.

14. A method according to claim 4, further comprising:
computing a second perspective distance for a third entity of the plurality of other entities, by calculating a distance in a second conceptual space between (1) a point in the second conceptual space defined by the first dataset of the first entity, and (2) a point in the second conceptual space defined by dataset corresponding to the third entity of the plurality of other entities, wherein the second conceptual space is defined so that each dimension of the second conceptual space corresponds to a different one of said plurality of characteristics, and wherein distances along at least one of the dimensions in the second conceptual space are weighted by a weight assigned to characteristic associated with said at least one of the dimensions in the second conceptual space by the third entity; and
including in a second group the first entity if the second perspective distance is does not exceed a second predetermined distance limit in the second conceptual space, the second group being associated with the third entity.

15. A method according to claim 4, wherein the step of assigning comprises applying a translation algorithm to words signifying importance or affection.

16. A computing apparatus comprising:
at least one processor;
program code storage storing machine-executable instructions, the program code storage being coupled to the at least one processor to enable the processor to read the machine-executable instructions; and
a network interface coupling the at least one processor to a computer network;
wherein, when the at least one processor executes the machine-executable instructions, the at least one processor causes the computing apparatus to:
form a first numerical dataset from information submitted for a first entity;
select one or more conceptual spaces for the first entity;
determine one or more locations of the first entity in the one or more conceptual spaces, at least one location of the one or more locations of the first entity per each conceptual space of the one or more conceptual spaces;
compute one or more distances from the first entity to a second entity in the one or more conceptual spaces, at least one distance of the one or more distances per conceptual space of the one or more conceptual spaces, the second entity having a second numerical dataset formed based on information regarding the second entity;
test each distance of the one or more distances under one or more criteria; and
in response to the step of testing, make available to the first entity information regarding relatedness of the first entity and the second entity whereby the information regarding relatedness of the first entity and the second entity is at least one of (1) rendered on a display, (2) stored in a memory, and (3) transmitted electronically.

17. An apparatus according to claim 16, wherein, when the at least one processor executes the machine-executable instructions, the at least one processor causes the computing apparatus to select the one or more conceptual spaces for the first entity so that the one or more conceptual spaces include at least one Riemannian metric conceptual space.

18. An apparatus according to claim 16, wherein, when the at least one processor executes the machine-executable instructions, the at least one processor causes the computing apparatus to select the one or more conceptual spaces for the first entity so that the one or more conceptual spaces include at least one Euclidean metric conceptual space.

19. A computing apparatus comprising:
at least one processor;
program code storage storing machine-executable instructions, the program code storage being coupled to the at least one processor to enable the processor to read the machine-executable instructions; and
a network interface coupling the at least one processor to a computer network;
wherein, when the at least one processor executes the machine-executable instructions, the at least one processor causes the computing apparatus to:
implement an environment interconnecting a first entity and a plurality of other entities, the first entity and each entity of the plurality of other entities being associated with a plurality of characteristics;
assign a numerical value to each characteristic of the first entity and said each entity of the plurality of other entities to obtain (1) a first dataset associated with the first entity, the first dataset comprising the numerical values of the characteristics of the first entity, and (2) a plurality of datasets of the plurality of other entities, a dataset of the plurality of datasets per entity of the plurality of other entities, each dataset of the plurality of datasets comprising the numerical values of the characteristics of the entity with which said each dataset is associated, wherein the numerical values for the first entity are assigned based at least on information regarding the characteristics provided by the first entity, and wherein the numerical values for said each entity of the plurality of other entities are assigned based at least on information regarding the characteristics provided by said each entity of the plurality of other entities;
compute for said each entity of the plurality of other entities a distance in a first conceptual space between (1) a point in the first conceptual space defined by the first dataset, and (2) a point in the first conceptual space defined by numerical values of the characteristics of the dataset of said each entity of the plurality of other entities, thereby obtaining a plurality of distances in the first conceptual space, a distance of the plurality of distances corresponding to a different entity of the plurality of other entities, wherein each dimension of the first conceptual space corresponds to a different one of said plurality of characteristics, and wherein distances along at least one of the dimensions in the first conceptual space are weighted by a weight assigned to characteristic associated with said at least one of the dimensions by the first entity; and
select entities for a first group from the plurality of other entities so that distance corresponding to each entity of the first group in the first conceptual space does not exceed a first predetermined distance limit.

20. A computing apparatus according to claim 19, wherein, when the at least one processor executes the machine-executable instructions, the at least one processor further causes the computing apparatus to transmit to the first entity information about the entities of the first group.

21. A computing apparatus according to claim 19, wherein, when the at least one processor executes the machine-executable instructions, the at least one processor further causes the computing apparatus to transmit to the entities of the first group information about the first entity.

22. A computing apparatus according to claim 19, wherein, when the at least one processor executes the machine-executable instructions, the at least one processor causes the computing apparatus to receive over the computer network from the first entity first data from which the first dataset can be determined, and receive over the computer network from a second entity of the plurality of other entities second data from which dataset associated with the second entity can be determined; and wherein the computer network comprises the Internet.

23. A computing apparatus according to claim 19, wherein the first conceptual space is a Riemannian metric conceptual space, and when the at least one processor executes the machine-executable instructions, the at least one processor causes the computing apparatus to compute distances in the Riemannian metric conceptual space.

24. A computing apparatus according to claim 19, wherein the first conceptual space is a Euclidean conceptual space, and when the at least one processor executes the machine-executable instructions, the at least one processor causes the computing apparatus to compute distances in the Euclidean conceptual space.

25. A computing apparatus according to claim 19, wherein at least one of said plurality of characteristics is a psychological profile characteristic.

26. A computing apparatus according to claim 19, wherein, when the at least one processor executes the machine-executable instructions, the at least one processor causes the computing apparatus to assign characteristic numerical values dynamically.

27. A method of group management in a computer environment implemented on an apparatus comprising at least one computing device coupled to a computer network, the computer environment interconnecting a first entity and a plurality of other entities, the first entity and each entity of the plurality of other entities being associated with a plurality of characteristics, the method comprising:
assigning by the apparatus a numerical value to each characteristic of the first entity and said each entity of the plurality of other entities to obtain (1) a first dataset associated with the first entity, the first dataset comprising the numerical values of the characteristics of the first entity, and (2) a plurality of datasets of the plurality of other entities, a dataset of the plurality of datasets per entity of the plurality of other entities, each dataset of the plurality of datasets comprising the numerical values of the characteristics of the entity with which said each dataset is associated, the step of assigning being performed for the first entity based at least on information regarding the characteristics provided by the first entity, the step of assigning being performed for said each entity of the plurality of other entities based at least on information regarding the characteristics provided by said each entity of the plurality of other entities;
step for computing distances between the first entity and each entity of the plurality of other entities in a first conceptual space, thereby obtaining a plurality of distances in the first conceptual space, a distance of the plurality of distances corresponding to a different entity of the plurality of other entities, wherein each dimension of the first conceptual space corresponds to a different one of said plurality of characteristics, and wherein distances along at least one of the dimensions in the first conceptual space are weighted by a weight assigned by the first entity to characteristic associated with said at least one of the dimensions;
step for selecting entities for a first group from the plurality of other entities so that distance in the first conceptual space corresponding to each entity included in the first group does not exceed a first predetermined distance limit; and
transmitting to the first entity the identities of the entities in the first group to enable the first entity to include one or more of the entities of the first group in an affinity group of the first entity.

28. A computing apparatus according to claim 19, wherein at least one of said plurality of characteristics is a physical characteristic.