WO2014170901A1 - A method for mapping social groups of a person - Google Patents

A method for mapping social groups of a person Download PDF

Info

Publication number
WO2014170901A1
WO2014170901A1 PCT/IL2014/050363 IL2014050363W WO2014170901A1 WO 2014170901 A1 WO2014170901 A1 WO 2014170901A1 IL 2014050363 W IL2014050363 W IL 2014050363W WO 2014170901 A1 WO2014170901 A1 WO 2014170901A1
Authority
WO
WIPO (PCT)
Prior art keywords
group
groups
data
contacts
contact
Prior art date
Application number
PCT/IL2014/050363
Other languages
French (fr)
Inventor
Lior SHACHAM
Ofir Oron
Shlomi ATIA
Avraham SALOMON
Original Assignee
Rolllo Ltd.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Rolllo Ltd. filed Critical Rolllo Ltd.
Publication of WO2014170901A1 publication Critical patent/WO2014170901A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Definitions

  • the present invention is in the technical field of information systems. More particularly, the present invention relates to a method for mapping social groups of a person who is connected to a data network.
  • Another deficiency of this method is that the people who are added to this contact list are sorted in one list with no structure, thus the only way to find a person is by scrolling the list or conducting a search. As the list grows larger, these methods of retrieving become more difficult. Finding a name in a list of multiple hundreds of contacts by scrolling takes time and concentration. Searching requires typing which is also time consuming and requires attention. This may be cumbersome or even dangerous when driving for example. Another deficiency of search is that many results may appear under the same name with no way for the system to anticipate if the user is looking in one example, for John from work, John your friend, or John your uncle or John father of Jeff.
  • One way of obtaining the results is by identifying the person by last name (if available), but in many cases one may not know or remember the Target Person's last name. In other cases where the user has manually entered the person's job, he may be able to view this role and understand, but the manual nature of feeding this role prevents many from ever doing so, and thus this information is not available for use during the search.
  • Some address books or contact lists provide a manual facility for creating groups, but the task of maintaining these groups up to date and filling them completely is usually beyond the efforts most users are willing to make.
  • Some address books of recent years allow a person to connect with social services (such as Facebook, Linkedln, Gmail) and retrieve contacts or contact information from there. This method usually results in a more comprehensive list of people. But again, these solutions suffer from problems of partialness and access as described above. All the above sources usually don't hold a comprehensive description of each social circle you belong to, but only a partial list of people you were in contact with. Even if the list is comprehensive, the resulting address book is not structured and thus as the list gets much longer, access to individuals become even harder than described above.
  • a more ideal address book would include every person that a user may know or has been in contact with, in present or in the past.
  • the present invention directed to a method for mapping social groups of a Target Person, according to which data is collected from communications applications and/or data related to communication and/or files attached to communication messages, and messages and/or data related to the communications are retrieved or indexed. Then groups are generated, such that they have a composition of members similar to the composition of recipients of group communications that were collected. The significance of each group to the Target Person is evaluated, based on one or more parameters being indicative about the expected significance of a group to the target person and assigning a significance score or a relevance indicator to the group.
  • the method comprises the following steps: DATA COLLECTION
  • Data is collected from one or multiple sources relevant to the user such as his email, his messaging applications, his social applications, some of his files, different address books or contact lists and other information such communication software and applications.
  • the goal of data collecting is usually but not always correspondences, groups, contacts, messages and message content.
  • Data is being collected via known API's or by crawling sources of such information.
  • the Collected data is usually content, data of and metadata of messages, contacts info, communication logs, associated or attached files.
  • the purpose of data collecting is to identify the people associated with the said Target Person and create contacts and map them to the person and group multiple contacts together in clusters, by identifying contact type data in the above mentioned sources. For example, one a crawler as mentioned above may scan the 'to' and 'cc' fields of every message in an email database and retrieve all the email addresses, it finds and associate them to the Target Person (for example, by analyzing the 'CC field in an email message and creating contacts from people the Target Person has been in contact with in the past). Another way is to locate personal names appearing in the file attached to an email message and create a contact for each such name and associate them to the Target Person.
  • Collecting the data in one aspect of the invention may be based on rules. More specifically crawlers employed in fetching the data may use rules. For example, one such rule may be : retrieve all the strings that include the symbol '@' (as they are suspected to be email addresses). Another example of a rule is a rule that tells the crawler to look only in messages where the number of recipients of the message is predefined to be over a certain number. More specifically, the rule instructs a Crawler to scan all email messages in a user's email inbox and go over all the 'to' and 'cc' fields of messages, whose total number of recipients is over 3 (or any other predefined number) and thus, collecting data that may be used to map potential groups of the user.
  • rules may be : retrieve all the strings that include the symbol '@' (as they are suspected to be email addresses).
  • Another example of a rule is a rule that tells the crawler to look only in messages where the number of recipients of the message is predefined to be over a certain
  • multiple crawlers may be used and sub crawlers. For example, one crawler may retrieve all the found contacts from the recipient list of the user's emails and another crawler may retrieve all the identified signatures in the content of the same emails.
  • Some crawlers or API's may be used to identify the signatures found in messages, by common attributes and more specifically, in emails, by identifying objects such as name, phone and email address in very close proximity, and the relative proximity to the end of the message! and then parsing the signatures in such way as to extract contact data such as phone, full name, address, email address about the sender of the message and then consolidate this data with the sender's contact info in the system.
  • the collection of all the above mentioned data and the various sources and ways of collecting this data has the object of maximizing the number of contacts to be extracted from the sources and added to the Target Persons Address Book, in order to achieve an Address Book as comprehensive as possible.
  • data collection may be targeted at already trying to map groups at the collection stage, for example, by assigning rules to the crawler to only retrieve data from messages which have multiple recipients and then collecting data that will help to create a profile these groups in later steps, for example the number of recipients.
  • the next objective of the data is to map the data in such way as to create an address book that is structure by groups (social circles for example), in order for example to facilitate easier access of Target Person to his many different contacts.
  • the collected data then goes through a process of Mapping Groups.
  • This process may include consolidating the data, generating distinct groups of contacts and associating both groups and contacts with related data and metadata and/or creating relevant profiles for them.
  • the groups may be further evaluated for significance to Target Person in order to be able to give preference in any given software interface to more significant groups or in other applications (such as marketing analysis). This for example, can be used to later on sort the groups in one possible application by the likelihood a Target Person will need them. As such, in a mobile application for example, while using the Address Book, more significant groups will appear first, on top the groups list and allow the Target Person to contact more important groups with more ease (less scrolling).
  • groups are generated and a group profile is assigned to them containing data about the group.
  • contacts may be groups by common parameters of contacts or of the message the contacts are associated with or any other common data associated with the contacts. For example, all contacts that appear in the 'to' and 'cc' field of an email message may be considered a group. Alternatively, all contacts found in file attached to an email titled 'employees' and containing rows of names and emails may be used to create a group of contacts (using the extracted and parsed names and emails).
  • Group Mapping may comprise also the creation of groups by finding a common denominator, such as a common key words or common parameters that indicate association to a preset group, like family, work, class, club, unit, customers, suppliers, friends, kindergarten etc.
  • a common denominator can be many times found in contacts data or in email subject or in email content or in an attached file name, such as a quotation.
  • all emails found in a contact list that share a common domain name such as nokia.com, may be groups under a one group. Some of these groups may be then eliminated if the domain is known to be too general such as 'gmail.com' or 'yahoo.com' (a preset list of such emails may be used in reference).
  • Another preset group may be 'family' by identifying all contact information collected where the last name of the contact is similar to the Target Person's last name.
  • a common denominator may be used specifically for the creation of asymmetric groups of people which are not defined, operate or usually communicate as a group.
  • a 'customers' groups may be created by collecting the names in the 'to' field of all emails that have been sent with the subject 'Price Quote' (or a similar set of words from a preset list). This analysis then can be made more complex by for example, by crossing it with emails of senders (found in the 'From' field of incoming emails) where the subject of these emails is 'Payment'
  • Group Mapping of a Target Person may be also based on Content Analysis, and especially certain identifying names and words that act as hints for discovering such social groups. For example, in order to find members of a family group any email which may mention a family relation in it's opening clause, for example 'Dear Dad', 'Dear Aunt', may be classified as sent by a family member and sender of the email may be grouped with other family members.
  • Group Mapping of a Target Person may also relay on communication data, for example senders emails that are sent at certain hour or dates, that are clustered together, may be grouped together.
  • Group Mapping of a Target Person can also be performed by characterizing groups based on preset names (e.g. class, club), or non-frequent words appearing in contacts data of group members, that is found in signatures, address books or contact list files (e.g. the word apple appearing in many group members signatures)
  • preset names e.g. class, club
  • non-frequent words appearing in contacts data of group members that is found in signatures, address books or contact list files (e.g. the word apple appearing in many group members signatures)
  • To evaluate significance to user of groups to Target User - parameters for evaluating the expected significance of a group to said Target Person are one or more of frequencies, recentness, duration of a communication and the involvement of the Target Person in the communication may be used. For example groups found in the 'To' and 'CC fields of emails that happened more recently and more frequently may contribute to a higher significance evaluation.
  • Group mapping of social groups of the Target Person may also be used to map groups according to being symmetric or asymmetric groups and to the group composition and characteristics. For example, a group found in the 'to' field of an email subjected 'To my Class' maybe be considered a Symmetric group, if the word Class has been included in a predefined reference list of key keywords associated with Symmetric groups, and flagged by the system as one. However, a group of 'Customers' as described above may be flagged by nature as 'Asymmetric'.
  • the method may use a step of filtering.
  • the filtering step may filter groups or individuals/contacts.
  • One such way may be clustering Similar Groups and choosing the group that are expected to be the most significant for the Target Person and that may update group score. For example, if several groups overlap in members by 90%, they can be clustered together by the filter, which will then choose the group with highest significance score, such as the group that has been contacted more frequently or more recently or a weighted average of the said frequency and recentness.
  • Sorting stage of the method may be employed in order to facilitate easier and quicker access to groups and contacts by the Target Person.
  • the sorting mechanism may employ the groups' significance score as mentioned above in order to sort the groups in a list displayed to the user, thus, making access to more significant groups easier and faster.
  • Another way of facilitating easier access based on the group significance score (or any other profile data is to employ a stage of Choosing, wherein only groups that pass a certain threshold of significance (or any other set threshold), may be displayed for the user, reducing the amount of distraction a Target Person has to face, and allowing him to direct his attention only to high significance groups. This way, an easier and quicker method is created, for accessing contacts in the generated Address Book.
  • Another step in the method may be a step of naming groups automatically or setting their type by using extensions of group members email addresses, or non- frequent words appearing in group members contact information or in subjects of communications. For example, if certain keywords, listed in a preset list, such as class, club, team, appear in a subject field of an email, this subject string may be used as a name for the group of contacts derived from the 'To' and 'CC fields of the same email. For example, if the subject name is 'Class of 2014' , this name can be assigned to the group as describe above, especially if this subject is repeated in many emails share between members of said groups, or if the term 'Class' is found in a reference list of present names that might be used as a group name.
  • Hints of a group name or type like preset common group names in communication or in communication subjects (e.g. class, team)
  • contacts may be generated and data is associated with them as well as profile information.
  • the present invention may be used in more application then the suggested address book, for example it might help profile people for security purposes or marketing purposes, or in order to facilitate better networking between individuals and groups. It may also aid group applications and related functionality and aid groups in collaborating and sharing.
  • Fig. 1 illustrates at the process proposed by the the invention and the main components for performing it!
  • FIG. 2A illustrates a way to use an email crawler!
  • Fig. 2B is a complementary diagram, showing a way to use different kinds of crawlers!
  • FIG. 2C illustrates a detailed view of inputs and outputs!
  • Fig. 3 illustrates a contact list files crawler.
  • the proposed method allows mapping a person's social groups an easier and faster way to create a very comprehensive address book.
  • the address book is structured in groups, thus also offering the potential for easier, quicker and more natural way to access any given contact in the address book.
  • the proposed method described in the invention is superior over existing methods in creating a contacts database, address book that is more comprehensive on one hand, but at the same time, provides in many cases easier, quicker and faster access.
  • the invention is a method for mapping social groups (i.e., social circles) of a person, for example, by collecting data by crawling or by using APIs.
  • the person whose social groups are mapped by the invention is referred as 'The Target Person'
  • Fig. 1 The process proposed by the present invention is shown in Fig. 1 and includes the following steps ⁇
  • Fig. 1 the method, as shown in Fig. 1 is performed by the following components ⁇
  • Component 1- a Data Collector
  • the Data Collector crawls communication applications data, and/or files of the Target person and extracts data related to groups, correspondences (optional), and contacts (optional). Crawling can be done by conventional crawling methods, and can use a set of rules to discover and index needed data.
  • the Crawler can consist of one or more Sutrcrawlers (which are crawlers that operate as a part of component l). Each of the sub-crawlers can operate on a different input source, including sources like :
  • API Set which includes instructions on how to operate in conjunction with communication applications which provide access via proprietary or open API's, such as can be found with popular email website, social website and the likes. More specifically, those API's are provided by Gmail, Facebook and Linkedln. API's also include any software or service that is open to collaboration and data extraction via a software interface.
  • the Data Consolidator consolidates data extracted by the Crawler, in order to generate groups. It uses a Group Profile Generator, and a Contact Profile Generator (optional), to generate maximum number of distinct groups and contacts (optional), and their profiles (optional).
  • the Group Generator can enrich a group profile by adding group members profiles, originated from the Contact Profile Generator.
  • Group profiles can include a score indicating the expected significance of the group to the Target Person.
  • the Group Filter (optional), filters groups generated by the Data Consolidator. It can use a Group Sorter to sort groups to similar and non-similar groups. It can then use a Similar Group Chooser to compare similar groups and chose the best non- similar groups. Chosen groups can get a new, updated Group Score.
  • the output of the Group Filter can be a set of distinct social groups of a person. Each group can have a Group Profile that includes group important Characteristics, including a Group Score.
  • the Group Sorter can sort groups generated by Group Filter, according to group score.
  • the Groups Chooser may be used in addition to components 1-4 and with optionally in combination with Component 5, to evaluate the group significance by for example evaluating Group Significance Score, to choose the only most significant groups for Target Person.
  • the Groups Name Assigner may be used in additional to components 1-4 or 1-5 to automatically assign descriptive names for groups, based on common unique common denominators for a group.
  • Fig 2A illustrates a way to use the method proposed by the present invention with an Email crawler.
  • Fig 3 describes a contact list files crawler.
  • Fig 2B is a complementary diagram, showing a way to use the method proposed by the present invention with other kinds of Crawlers.
  • the method proposed by the present invention can work with many different kinds of crawlers (e.g., a voice communication crawler), as long as the crawler can extract data about groups, as described below.
  • crawlers e.g., a voice communication crawler
  • Component 1 Email crawler
  • the main function of the email crawler is to scan the Target person's email messages and extract data of correspondences, groups and contacts (the utilization of the Email crawler by the invention is described below.
  • other types of message crawlers can be utilized in a similar manner. For example, it can be done by replacing email messages with other types of messages, and performing other such small adjustments if needed).
  • Crawling may be done by using conventional methods for crawling, Using API's, oath authorization, and/or any other methods to get access to email messages. Crawling may use all (recommended), or a part of the email messages of the Target person accessible.
  • Crawling email messages may be performed using an Email fields crawler or a Signature crawler.
  • Email fields crawler is used to index data on email message fields, including one or more of the fields : To, Cc, Bcc.
  • the Email fields crawler is used to scan messages, extract and index data, merge data of specific contacts and/or correspondences if possible.
  • A. Contacts data Data about contacts appearing in email messages.
  • Each contact data should include one or more of the following:
  • Email address(es) Contact email address, as appears in To/Cc/Bcc fields
  • Role related data Data that can help establish a person's role in an organization, a group, other person's life, etc. Role related data may be found in text appearing in a contact's name (e.g., Father, Mom) as appearing in To/Cc/Bcc fields
  • Correspondence data Data of correspondences found within the email messages.
  • Correspondence members composition The contacts composing the group of correspondents, including all contacts in From, To, Cc and Bcc fields of the correspondence.
  • Senders correspondent data Data about contacts who sent emails within a correspondence. Data can include: Frequency, Freshness and Duration of messages sent by each sender.
  • the Signature crawler is used to index data on contact's signatures and enrich the contacts data. Encoding a signature can be done by analyzing the signature according to known patterns of email signatures. For Example, it is possible to use rules like the following:
  • the output data of Signature crawler should include contacts data.
  • Contact data should include one or more of the following:
  • Name Contact's first, middle and last names, in one or more languages.
  • Email address(es) Contact email address(es).
  • Contact information All information that can help contact a person and/or information that appears in communication applications profile information, including: name, email addresses, phone numbers, Skype id's, profile picture, company, title, etc.
  • Role related data Data that can help establish a person's role in an organization, a group, other person's life, etc.
  • Role related data may include data of the contact's organization, company, occupation, title, etc., appearing in the contact's signature.
  • the Data consolidator' s main function is to consolidate data extracted by Crawler/s and generate group profiles. Another, optional, function is generating contact profiles.
  • the data consolidator consists of two main components: Group profile generator, and Contact profile generator (optional).
  • the data consolidator is adapted to Generate contact profiles by using a Contact profile generator
  • the Contact profile generator uses the following components: Component 2.1.1 - Role generator
  • Role types The role generator can set various types of roles, including:
  • General role A general role a contact have, not unique to the role he has in relation to the Target person, or to one of the generated groups, (e.g., a general in the army, an astronaut, a teacher)
  • a contact can have more than one role, including more than one role of each kind.
  • a contact can be have:
  • Role 3- Lawyer The role generator analyzes the contact data extracted by crawler, to set role/s for contacts. Set a role score for each role found is a score indicating the expected significance of the role to the Target person. If more than one role is found for a contact, set a general role score, weighting all separate role scores.
  • Setting role score - Setting the role score can be done by using a rule.
  • the rule can set role scores to contacts according to the type of role(s) found for them.
  • the rule can set a high score to a special role, and a low score to a general role.
  • Example scores can be:
  • the general role score set to a contact can be the sum of all his role scores.
  • the output of the role generator is contact role data, including:
  • the Contact information gatherer uses contacts data extracted by Crawler/s as well as contact role from Role generator (optional) to gather, index, and merge contact information. Create a minimum number of distinct contacts, with maximum data/contact information for each contact.
  • Contacts are merged by scanning all the data extracted by crawler(s) and the role generator. Merging contacts is done by using rules including the following:
  • Contacts have the same unique id (for example a same state id, passport id, Skype id, etc.,).
  • Target person e.g., values appearing in address books of the contact, in outgoing email messages, etc.,
  • Example of using these rules Assuming contact A is merged with contact B to create a new contact C. If the source for Contact A is the email inbox, and the source for contact B is the Target person's phone dialer. Use the name, phone number, email address, etc., of contact B as the primary values for name, phone, email fields of contact C. Use the name, phone number, email address, etc., of contact A as the secondary values for name, phone, email fields of contact C (Name2, Phone2, Email2, etc..)
  • the gathered information provided by the Contact information gatherer includes ⁇
  • Distinct contacts contacts which doesn't represent the same person (or at least doesn't have enough information to conclude that they represent the same person).
  • Profile data for each contact including one or more of Name, Role, Contact information, Power of communication with the Target person.
  • the Contact scorer (optional) sets the Contact score which is a score indicating the expected significance of the contact to the Target person.
  • the Contact scorer uses a formula to set contact score, out of data originated from contact gatherer.
  • Parameters of the formula can include : Role score, power of communication with the Target person, affluence of data on contact profile (which can be set as the number of information fields, containing data, the contact has in his profile), and existence of specific, more important contact information (e.g., name, phone number, profile picture).
  • the Contact scorer outputs a contact score for each contact.
  • the Profile builder builds contact profiles containing all information gathered and/or generated by the Role generator, the Contact information gatherer and the Contact scorer by using their outputs as an input. All information of a contact is sorted into a contact profile. It uses conventional contact profile fields, similar to those used by common communication applications (e.g., Facebook, phone dialer) as well as contact score field.
  • the output of profile builder includes :
  • a Profile for each contact (preferably, as comprehensive as possible).
  • Profile includes one or more of the following: Name, Role, Contact information fields and contact score.
  • Correspondence data and contact profiles of group members are used to generate group profiles.
  • the profile generator may use the following components to generate group profiles.
  • the Group information gatherer uses correspondences data and/or groups data from Crawler/sand contact profiles from Contact profile generator (optional) to gather, index and merge all information of groups.
  • A. Merging groups All data extracted by crawler/s is scanned. All groups with identical member composition are merged. When merging one or more groups, a new group is created with all data/ all information fields from merged groups. When merging, if merged information field overlap (e.g., group 1 and group 2 are merged, they both have group names), use the following rules to set priority for overlapping information fields :
  • Target person e.g., values appearing in address books of the contact, in outgoing email messages, etc.,
  • the gathered information of the Group information gatherer may include one or more of the following:
  • Number of group appearances Number of times a group/correspondence with an identical member composition was found by Crawler/s.
  • the Group Characterizer & scorer (optional) can be used for setting:
  • Group characteristics Attributes of the groups, which may include: group name, group type, group members roles, etc.
  • Group score A score indicating the expected significance of the group to the Target person.
  • Setting group name can be done in various methods, including the following methods:
  • a unique email extension (an extension which is not widespread in email messages) appearing on a significant amount (e.g., 3 or more, or 30% or more) of group members email addresses.
  • a common group name (a name which is widespread for describing groups, like : Family, Class, Work, etc.) which appears in group message subjects, or appears significant amount of times (e.g., 3 or more) in group messages content.
  • Set group type can be done in various methods, including the following methods:
  • Group score can be set in various methods. One option of setting group score is using a group score formula. Group score formula can weight parameters gathered by group information gatherer, and/or contact profiles of group members.
  • Parameters used in group score formula may include the following parameters :
  • Coefficients can be attached to parameters in the formula, to set an accurate group score. It is recommended to set a higher coefficient to more important parameters.
  • One embodiment of the group score formula uses the power of group communication, the Group type score and the Group source score as the most important parameters. It is also possible to use a group score formula using only part of these parameters.
  • One embodiment of a group score formula may be : (P2 + P4) ⁇ PI
  • Another embodiment of a group score formula may be : (P2 + P4) ⁇ PI
  • Setting group score parameter values can be done in various ways, including the ones described below :
  • PI.2 1.5 if last group message was sent within last 30 days.
  • PI.2 1.2 if last group message was sent within last 60 days.
  • P1.4 value is setting PI.4 value as the number of times the Target person has initiated group communication.
  • a recommended option for PI formula is setting the highest coefficient in the formula to Pl. l, second highest coefficient to P1.4, and lower coefficients to P1.2 and P1.3.
  • the PI formula may be :
  • the score given to group admins can be multiplied (for example by 5) to represent the significance of the admins in the group.
  • the group profile builder builds group profiles by integrating group information, including information from the Group information gatherer and the Group Characterizer and scorer while using their outputs as an input. All information of a group is sorted into a group profile.
  • the output fields described below are used as the group profile fields.
  • Group profile builder's output may include all distinct groups. Profile for each group may include :
  • the Group filter's main function is filtering the groups created by the data consolidator. Filtering can be used to reduce the number of similar groups. Though it is not mandatory to use the group filter, it is highly recommended, as a step toward mapping the significant groups of the Target person.
  • the Group filter can be consisted of 3 main components as described in Fig. 2.0- Group sorter, Similar group chooser, and a group 2nd scorer.
  • the Group sorter is used to sort groups generated by data consolidator into similar group chunks + non-similar groups.
  • the main parameter of the rule or the formula can be the percentage of identical members in the groups.
  • One embodiment of such a rule can be :
  • Groups that were non-similar to any other groups can be sorted to the 'Non-similar' groups output. All groups that were similar to other groups, can be sorted to chunks of similar groups. Each chunk can contain all groups that are similar to one another. Chunks differ, so a group from one chunk is not similar to a group in another chunk.
  • the output of the Group sorter may consist of two elements :
  • the Similar group chooser chooses the groups which are expected to be the most significant for the Target person, out of each similar group chunk.
  • a possible method of choosing groups out of chunks is comparing two similar groups at a time. This can be done by matching two groups, choosing the more significant one, than matching the chosen group with the next similar group, and so forth. This process can be done until all groups in the chunk are matched. Choosing the most significant group can be done in various ways.
  • One embodiment of the choosing can be using one or more of the following rules. Rules can be used in the following order to choose or screen groups. If the 1st rule isn't enough to choose the most significant group, then use the 2nd rule as well. If the 2nd rule is also not enough use the 3rd rule, and so forth.
  • Rule 1 Choose the group with the highest group score.
  • Rule 2- Choose the group which has a name.
  • Rule 4- Choose a random group.
  • the output of the Similar Group Chooser can be non-similar chosen groups and their group profiles. It is recommended to add the number of similar groups that were in the chosen group chunk to each chosen group.
  • the Group 2nd scorer updates the score of the groups chosen by the Similar Group Chooser.
  • Updating the group score can be done by using the number of groups that were similar to the chosen group. For example by multiplying the chosen group score with a number derived from the number of groups that were similar to the chosen group.
  • Updated group score chosen group score (l+number of similar groups/frequency score of the group).
  • the output of the Group 2nd scorer are non-similar chosen groups + their group profile, including an updated group score.
  • the group sorter can sort non- similar groups, generated in previous steps, by significance to the Target person. Sorting can be done based on group scores. One possible method for sorting most significant groups is sorting all groups, from the highest significant ones (the ones that have the highest group score) to the most insignificant (that have the lowest group score).
  • the output of the group sorter can be the most significant groups, including their group profiles. One embodiment of output is choosing a limited amount of groups (for example, 5"50 groups).
  • Admin related words Words related to an administrative or managerial role in a group.
  • Example of such words can be: Manager, Teacher, Boss, Secretary, etc.
  • Application's Address Book An address book, or the list of contacts a person has, in an application. For example the contacts a user has in Gmail, the address book a person has in his phone dialer, etc. The term can also appear as Address Book or alternatively Contact List.
  • Application's contact list An address book, or the list of contacts a person has, in an application. For example the contacts a user has in Gmail, the address book a person has in his phone dialer, etc. The term can also appear as Contact List or alternatively Address Book.
  • A-symmetric group A group of people which are not defined, operate or usually communicate as a group, but has a common denominator, for example a common denominator for a specific person (A-symmetric groups examples are the group of customers a person has, his suppliers, friends etc.)
  • Communication applications Applications enabling human communication. For example, Gmail, Facebook, iPhones dialer, Skype or Instagram.
  • Collecting Data a process by which the system access a data source by crawling or by using API's provided by the source, and scans all data from the source or subsets of it in and/or preset sections of it order to retrieve such data as communication logs, message meta data, contacts information, correspondents information ("to” and "cc" fields in an email or message, for example)
  • a contact in a communication application an address book, a contact list, etc.
  • a contact can be identified in many ways, including a full name, an id, or any other unique identifier, such as email address, or mobile phone number.
  • Contact information All information that can help contact a person and/or information that appears in communication applications profile information, including: name, email addresses, phone numbers, Skype id's, profile picture, company, title, etc.
  • Contact list file A file containing a list of contacts, usually including contact information of one or more of the contacts in the file.
  • Contact list file hint a text that can serve as a hint of the possibility that a file is containing a list of contact information of people. Hints should include, among others, words like : Contact, Phone, Address, Directory, Personal, or any misspell, synonymy, etc., of those words.
  • Contact's signature Contact's name and personal information appended at the end of an outgoing message.
  • Content analysis Analysis based on content. Usually qualitative information originated from text.
  • Crawling Systematically scanning a source of information (such as a file system, an email inbox of a user, etc.) using a computer program, for gathering, categorization and indexing information.
  • a source of information such as a file system, an email inbox of a user, etc.
  • First Lines of a file The 10 lines of text, including headers, appearing in a file, starting from the top of the file, and going down, in the reading direction. If the file has more than 1 column, or more than 1 way in which 10 lines can be counted, according to this explanation, then "first lines of the file" can contain more than 10 lines, and up to the maximum of possibilities to count the lineslO.
  • Group A group of people related to each other in any way.
  • Group Admin The formal or known managers, leaders or administrators of the group, and/ or people highly involved with activating or informing the group, and/or people highly involved in group communication.
  • Group important characteristics Attributes of the groups. Those may include: group name, group type, group member composition, group members roles or group admins.
  • Group characteristics Attributes of the groups. Those may include: group name, group type, group members roles, etc.
  • Group appearances The times a specific group appears. For example the times a group appears in group communication, group sources, etc.
  • Group/Group Generating clustering or associating several contacts or people together.
  • Group mapping Identifying and portraying group characteristics, such as group name, group type, etc.
  • Group members The members of the group - people or contacts which are part of the group. Contacts which are correspondences of a message can be considered group members. Contact in a contact list file can be considered group members as well.
  • Group member composition Group members - the members composing the group, and/or the members which are part of the group.
  • Group member roles The roles the members have in the group. For example : Manger, Hr manager, in a work group! Teacher, Student in a class group! Mother in a family group.
  • Group message a message sent within a group.
  • Group name The name of the group as given by a group member, another person, or a component of the algorithm, such as the Group characterizer.
  • Group size The number of group members.
  • Group score The score given to a group.
  • Group source The source in which the group is listed, and/or appears, and or discovered by a crawler.
  • Group type score The score given to the group type.
  • Group type The type of group (e.g., family, friends, work, class etc.).
  • Main parameter in a formula A parameter which has the highest impact on the formula's result.
  • Email message SMS message SMS message, chat message, Facebook post, a letter, a memo a voice message, or any other communications transferred between people.
  • Message associated with the file The email message, Facebook post, Skype conversation, MMS message, etc., to which the file was attached or connected, or any message sent in reply, or within the thread of the message to which the file was attached, or connected.
  • Meta-group A group consisted of 2 or more groups.
  • Non-similar ⁇ Doesn't have the defined degree of similarity (ABCD, AEGH for similarity degree higher than 25%)
  • PI formula A formula for finding PI parameter.
  • Perceived group significance The significance a person (usually the Target Person) attributes to a group.
  • Power of group communication A score evaluating the group communication strength, usually by weighing parameters of group communication such as communication frequency, freshness and/or duration.
  • Power of communication of a Target person with group members A score evaluating the communication strength of a target person with members of a group. It is usually evaluated by weighing parameters of group communication such as communication frequency, freshness and/or duration.
  • Profile score A score indicating the strength of a profile, or the significance of the group to the Subject.
  • Target person The groups which are expected to be significant for the Target person.
  • the significance of groups can be derived from their importance, their closeness, their emotional value, etc., to the Target person.
  • Sub-group A group which is a part of another group.
  • Symmetric group A group of people which are defined, operate, and/or communicate as a group (for example, a basketball team, a class, a unit of a company).
  • User's Files Any file that the user has, or had, in any kind of storage, including all kinds of virtual storage. User's files also include any file sent, received or viewed by the user, in any communication applications he used.
  • Target Person The person whose social groups are mapped.

Abstract

A method for mapping social groups of a Target Person, according to which data is collected from communications applications and/or data related to communication and/or files attached to communication messages, and messages and/or data related to the communications are retrieved or indexed. Then groups are generated, such that they have a composition of members similar to the composition of recipients of group communications that were collected. The significance of each group to the Target Person is evaluated, based on one or more parameters being indicative about the expected significance of a group to the target person and assigning a significance score or a relevance indicator to the group.

Description

A METHOD FOR MAPPING SOCIAL GROUPS OF A PERSON Field of the Invention-
The present invention is in the technical field of information systems. More particularly, the present invention relates to a method for mapping social groups of a person who is connected to a data network.
Background of the Invention
Most of the users (persons who are connected online) of a data network such as the internet have social relationships with others users. The social groups to which a user belongs is very important, since it allows directing messages and content which may be of interest to him by building a comprehensive address book, which can be accessed.
One prior art method is very popular in such address books of mobile phones, for example the native address book of the Apple iPhone, is to enter contacts manually. However, this method is time consuming, and as a result, most people only enter a few people from every social circle they attend, usually the key people with whom they contact mostly. As a result, when one needs to contact someone from work, for example, which he hasn't entered to his phone's address book (which includes an updated contact list), he will not have him accessible via his phone's contact list. Please note that the term contact list and address book are used alternatively in this document.
Another deficiency of this method is that the people who are added to this contact list are sorted in one list with no structure, thus the only way to find a person is by scrolling the list or conducting a search. As the list grows larger, these methods of retrieving become more difficult. Finding a name in a list of multiple hundreds of contacts by scrolling takes time and concentration. Searching requires typing which is also time consuming and requires attention. This may be cumbersome or even dangerous when driving for example. Another deficiency of search is that many results may appear under the same name with no way for the system to anticipate if the user is looking in one example, for John from work, John your friend, or John your uncle or John father of Jeff. One way of obtaining the results is by identifying the person by last name (if available), but in many cases one may not know or remember the Target Person's last name. In other cases where the user has manually entered the person's job, he may be able to view this role and understand, but the manual nature of feeding this role prevents many from ever doing so, and thus this information is not available for use during the search.
Some address books or contact lists provide a manual facility for creating groups, but the task of maintaining these groups up to date and filling them completely is usually beyond the efforts most users are willing to make. Some address books of recent years, allow a person to connect with social services (such as Facebook, Linkedln, Gmail) and retrieve contacts or contact information from there. This method usually results in a more comprehensive list of people. But again, these solutions suffer from problems of partialness and access as described above. All the above sources usually don't hold a comprehensive description of each social circle you belong to, but only a partial list of people you were in contact with. Even if the list is comprehensive, the resulting address book is not structured and thus as the list gets much longer, access to individuals become even harder than described above.
Thus, a more ideal address book would include every person that a user may know or has been in contact with, in present or in the past.
It is therefore an object of the present invention to provide a method for mapping social groups of a person who is connected to other persons over a data network.
It is another object of the present invention to provide a method for mapping social groups of a person, which is easy and fast to create, preferably automatically.
It is a further object of the present invention to provide a method for mapping social groups of a person, which can be maintained automatically and for allowing easy access the people in this list which can be considerably larger.
It is a further object of the present invention to provide a method for mapping social groups of a person, and for extracting more contacts and more contact information from a person's existing social connections over a data network.
Other objects and advantages of the present invention will become clear as the description proceeds.
Summary of the Invention
The present invention directed to a method for mapping social groups of a Target Person, according to which data is collected from communications applications and/or data related to communication and/or files attached to communication messages, and messages and/or data related to the communications are retrieved or indexed. Then groups are generated, such that they have a composition of members similar to the composition of recipients of group communications that were collected. The significance of each group to the Target Person is evaluated, based on one or more parameters being indicative about the expected significance of a group to the target person and assigning a significance score or a relevance indicator to the group.
In one aspect, the method comprises the following steps: DATA COLLECTION
Data is collected from one or multiple sources relevant to the user such as his email, his messaging applications, his social applications, some of his files, different address books or contact lists and other information such communication software and applications. The goal of data collecting is usually but not always correspondences, groups, contacts, messages and message content. Data is being collected via known API's or by crawling sources of such information. The Collected data is usually content, data of and metadata of messages, contacts info, communication logs, associated or attached files.
In some aspect of the invention, the purpose of data collecting is to identify the people associated with the said Target Person and create contacts and map them to the person and group multiple contacts together in clusters, by identifying contact type data in the above mentioned sources. For example, one a crawler as mentioned above may scan the 'to' and 'cc' fields of every message in an email database and retrieve all the email addresses, it finds and associate them to the Target Person (for example, by analyzing the 'CC field in an email message and creating contacts from people the Target Person has been in contact with in the past). Another way is to locate personal names appearing in the file attached to an email message and create a contact for each such name and associate them to the Target Person.
Collecting the data in one aspect of the invention may be based on rules. More specifically crawlers employed in fetching the data may use rules. For example, one such rule may be: retrieve all the strings that include the symbol '@' (as they are suspected to be email addresses). Another example of a rule is a rule that tells the crawler to look only in messages where the number of recipients of the message is predefined to be over a certain number. More specifically, the rule instructs a Crawler to scan all email messages in a user's email inbox and go over all the 'to' and 'cc' fields of messages, whose total number of recipients is over 3 (or any other predefined number) and thus, collecting data that may be used to map potential groups of the user.
In some aspects of the invention, multiple crawlers may be used and sub crawlers. For example, one crawler may retrieve all the found contacts from the recipient list of the user's emails and another crawler may retrieve all the identified signatures in the content of the same emails.
Some crawlers or API's may be used to identify the signatures found in messages, by common attributes and more specifically, in emails, by identifying objects such as name, phone and email address in very close proximity, and the relative proximity to the end of the message! and then parsing the signatures in such way as to extract contact data such as phone, full name, address, email address about the sender of the message and then consolidate this data with the sender's contact info in the system. The collection of all the above mentioned data and the various sources and ways of collecting this data, has the object of maximizing the number of contacts to be extracted from the sources and added to the Target Persons Address Book, in order to achieve an Address Book as comprehensive as possible. However some of data collection may be targeted at already trying to map groups at the collection stage, for example, by assigning rules to the crawler to only retrieve data from messages which have multiple recipients and then collecting data that will help to create a profile these groups in later steps, for example the number of recipients.
GROUPS MAPPING
The next objective of the data is to map the data in such way as to create an address book that is structure by groups (social circles for example), in order for example to facilitate easier access of Target Person to his many different contacts.
The collected data then goes through a process of Mapping Groups. This process may include consolidating the data, generating distinct groups of contacts and associating both groups and contacts with related data and metadata and/or creating relevant profiles for them. The groups may be further evaluated for significance to Target Person in order to be able to give preference in any given software interface to more significant groups or in other applications (such as marketing analysis). This for example, can be used to later on sort the groups in one possible application by the likelihood a Target Person will need them. As such, in a mobile application for example, while using the Address Book, more significant groups will appear first, on top the groups list and allow the Target Person to contact more important groups with more ease (less scrolling).
As part of the Mapping Groups process, groups are generated and a group profile is assigned to them containing data about the group.
To create groups from the collected data, several methods may be used alone or in conjunctions, such as:
Analyzing Messages (such as email, SMS, voice calls, video calls, instant messages and/or letters);
Analyzing Contact List files!
Analyzing Email signatures
Analyzing Contact information in an Address Book or a Contact List of a communication application
Analyzing the name, company, title and education fields of contacts, stored in address books or contact lists of communication applications!
- Parsing contact list file/s.
Crawling In one aspect of the invention, contacts may be groups by common parameters of contacts or of the message the contacts are associated with or any other common data associated with the contacts. For example, all contacts that appear in the 'to' and 'cc' field of an email message may be considered a group. Alternatively, all contacts found in file attached to an email titled 'employees' and containing rows of names and emails may be used to create a group of contacts (using the extracted and parsed names and emails).
Group Mapping may comprise also the creation of groups by finding a common denominator, such as a common key words or common parameters that indicate association to a preset group, like family, work, class, club, unit, customers, suppliers, friends, kindergarten etc. A common denominator can be many times found in contacts data or in email subject or in email content or in an attached file name, such as a quotation. For example, all emails found in a contact list that share a common domain name such as nokia.com, may be groups under a one group. Some of these groups may be then eliminated if the domain is known to be too general such as 'gmail.com' or 'yahoo.com' (a preset list of such emails may be used in reference). Another preset group may be 'family' by identifying all contact information collected where the last name of the contact is similar to the Target Person's last name.
A common denominator may be used specifically for the creation of asymmetric groups of people which are not defined, operate or usually communicate as a group. For example, a 'customers' groups may be created by collecting the names in the 'to' field of all emails that have been sent with the subject 'Price Quote' (or a similar set of words from a preset list). This analysis then can be made more complex by for example, by crossing it with emails of senders (found in the 'From' field of incoming emails) where the subject of these emails is 'Payment'
Group Mapping of a Target Person may be also based on Content Analysis, and especially certain identifying names and words that act as hints for discovering such social groups. For example, in order to find members of a family group any email which may mention a family relation in it's opening clause, for example 'Dear Dad', 'Dear Aunt', may be classified as sent by a family member and sender of the email may be grouped with other family members.
Group Mapping of a Target Person, may also relay on communication data, for example senders emails that are sent at certain hour or dates, that are clustered together, may be grouped together.
Group Mapping of a Target Person, can also be performed by characterizing groups based on preset names (e.g. class, club), or non-frequent words appearing in contacts data of group members, that is found in signatures, address books or contact list files (e.g. the word apple appearing in many group members signatures)
To evaluate significance to user of groups to Target User - parameters for evaluating the expected significance of a group to said Target Person are one or more of frequencies, recentness, duration of a communication and the involvement of the Target Person in the communication may be used. For example groups found in the 'To' and 'CC fields of emails that happened more recently and more frequently may contribute to a higher significance evaluation.
Group mapping of social groups of the Target Person may also be used to map groups according to being symmetric or asymmetric groups and to the group composition and characteristics. For example, a group found in the 'to' field of an email subjected 'To my Class' maybe be considered a Symmetric group, if the word Class has been included in a predefined reference list of key keywords associated with Symmetric groups, and flagged by the system as one. However, a group of 'Customers' as described above may be flagged by nature as 'Asymmetric'.
FILTERING:
In order to create more efficient and usable Address Book for the target user, the method may use a step of filtering. The filtering step may filter groups or individuals/contacts.
Several ways may be used to filter out groups that may be unusable or of less value to Target Person. One such way may be clustering Similar Groups and choosing the group that are expected to be the most significant for the Target Person and that may update group score. For example, if several groups overlap in members by 90%, they can be clustered together by the filter, which will then choose the group with highest significance score, such as the group that has been contacted more frequently or more recently or a weighted average of the said frequency and recentness.
SORTING and CHOOSING:
Sorting stage of the method may be employed in order to facilitate easier and quicker access to groups and contacts by the Target Person. The sorting mechanism may employ the groups' significance score as mentioned above in order to sort the groups in a list displayed to the user, thus, making access to more significant groups easier and faster.
Another way of facilitating easier access based on the group significance score (or any other profile data is to employ a stage of Choosing, wherein only groups that pass a certain threshold of significance (or any other set threshold), may be displayed for the user, reducing the amount of distraction a Target Person has to face, and allowing him to direct his attention only to high significance groups. This way, an easier and quicker method is created, for accessing contacts in the generated Address Book.
NAMING:
Another step in the method may be a step of naming groups automatically or setting their type by using extensions of group members email addresses, or non- frequent words appearing in group members contact information or in subjects of communications. For example, if certain keywords, listed in a preset list, such as class, club, team, appear in a subject field of an email, this subject string may be used as a name for the group of contacts derived from the 'To' and 'CC fields of the same email. For example, if the subject name is 'Class of 2014' , this name can be assigned to the group as describe above, especially if this subject is repeated in many emails share between members of said groups, or if the term 'Class' is found in a reference list of present names that might be used as a group name.
Other naming methods may include :
- Preset names of contacts (e.g. mom, teacher, boss)
- Preset contact titles (e.g. teacher, guide)
Hints of a group name or type, like preset common group names in communication or in communication subjects (e.g. class, team)
- Preset email extensions (e.g. ac, gov)
As part of the Mapping Groups process, contacts may be generated and data is associated with them as well as profile information.
The present invention may be used in more application then the suggested address book, for example it might help profile people for security purposes or marketing purposes, or in order to facilitate better networking between individuals and groups. It may also aid group applications and related functionality and aid groups in collaborating and sharing.
Other examples may include :
1. Creating an address book for an application (e.g., a group application, or a communication application).
2. Broadening, and/or enriching the address book of an existing application.
3. Sorting the address book contacts of an existing application into groups of contacts.
4. Gaining a better understanding of a person, by better understanding his social groups, and/or by better understanding his communication patterns. This can be used to a variety of purposes, including:
4.1 Surveillance
4.2 Building a psychological profile of a person
4.3 Creating a biography of a person, or a 'Picture' of his social life
Brief Description of the Drawings In the drawings :
Fig. 1 illustrates at the process proposed by the the invention and the main components for performing it!
- Fig. 2A illustrates a way to use an email crawler!
Fig. 2B is a complementary diagram, showing a way to use different kinds of crawlers!
- Fig. 2C illustrates a detailed view of inputs and outputs! and
- Fig. 3 illustrates a contact list files crawler.
Detailed Description of the Invention
The proposed method allows mapping a person's social groups an easier and faster way to create a very comprehensive address book. The address book is structured in groups, thus also offering the potential for easier, quicker and more natural way to access any given contact in the address book. The proposed method described in the invention is superior over existing methods in creating a contacts database, address book that is more comprehensive on one hand, but at the same time, provides in many cases easier, quicker and faster access.
The invention is a method for mapping social groups (i.e., social circles) of a person, for example, by collecting data by crawling or by using APIs.
The person whose social groups are mapped by the invention, is referred as 'The Target Person'
The process proposed by the present invention is shown in Fig. 1 and includes the following steps^
1. Data Collecting communications applications data and/or files of the Target Person.
2. Consolidating the data and generating distinct group profiles, and optionally also contact profiles.
3. Filtering the groups, reducing the number of similar groups.
4. Sorting the remaining groups, choosing the ones that are expected to be the most significant groups for the target person.
In more detail, the method, as shown in Fig. 1 is performed by the following components^
Component 1- a Data Collector
The Data Collector (such as a Crawler or APIs) crawls communication applications data, and/or files of the Target person and extracts data related to groups, correspondences (optional), and contacts (optional). Crawling can be done by conventional crawling methods, and can use a set of rules to discover and index needed data. The Crawler can consist of one or more Sutrcrawlers (which are crawlers that operate as a part of component l). Each of the sub-crawlers can operate on a different input source, including sources like:
A. Messages
B. Applications address books
C. Contact list files
Another way to collect data is via an API Set which includes instructions on how to operate in conjunction with communication applications which provide access via proprietary or open API's, such as can be found with popular email website, social website and the likes. More specifically, those API's are provided by Gmail, Facebook and Linkedln. API's also include any software or service that is open to collaboration and data extraction via a software interface.
Component 2- Group Mapper/Data consolidator
The Data Consolidator consolidates data extracted by the Crawler, in order to generate groups. It uses a Group Profile Generator, and a Contact Profile Generator (optional), to generate maximum number of distinct groups and contacts (optional), and their profiles (optional).
These generators can use rules to generate groups and profiles. The Group Generator can enrich a group profile by adding group members profiles, originated from the Contact Profile Generator.
Group profiles (and optionally contacts profiles) can include a score indicating the expected significance of the group to the Target Person.
Component 3- Group Filter
The Group Filter (optional), filters groups generated by the Data Consolidator. It can use a Group Sorter to sort groups to similar and non-similar groups. It can then use a Similar Group Chooser to compare similar groups and chose the best non- similar groups. Chosen groups can get a new, updated Group Score.
The output of the Group Filter can be a set of distinct social groups of a person. Each group can have a Group Profile that includes group important Characteristics, including a Group Score.
Component 4- Group Sorter
The Group Sorter, can sort groups generated by Group Filter, according to group score.
It can then display the groups expected to be most significant for the Target Person. Component 5 - Groups Chooser
The Groups Chooser may be used in addition to components 1-4 and with optionally in combination with Component 5, to evaluate the group significance by for example evaluating Group Significance Score, to choose the only most significant groups for Target Person.
Component 6 - Groups Name Assigner
The Groups Name Assigner may be used in additional to components 1-4 or 1-5 to automatically assign descriptive names for groups, based on common unique common denominators for a group.
Using different kinds of crawlers
Fig 2A illustrates a way to use the method proposed by the present invention with an Email crawler.
Fig 3 describes a contact list files crawler.
Fig 2B is a complementary diagram, showing a way to use the method proposed by the present invention with other kinds of Crawlers. The method proposed by the present invention can work with many different kinds of crawlers (e.g., a voice communication crawler), as long as the crawler can extract data about groups, as described below.
In case of using more then one crawler, or more then one source of data (e.g., email crawler and phone dialer crawler) it is highly recommended to avoid duplicated data. It is recommended to merge all data, found any crawler, for a specific contact or group, into one coherent contact or group profile.
A more detailed description of the algorithm and the function of each component is shown in Fig. 2C.
Component 1- Email crawler
The main function of the email crawler is to scan the Target person's email messages and extract data of correspondences, groups and contacts (the utilization of the Email crawler by the invention is described below. However, other types of message crawlers can be utilized in a similar manner. For example, it can be done by replacing email messages with other types of messages, and performing other such small adjustments if needed). Crawling may be done by using conventional methods for crawling, Using API's, oath authorization, and/or any other methods to get access to email messages. Crawling may use all (recommended), or a part of the email messages of the Target person accessible. Crawling email messages may be performed using an Email fields crawler or a Signature crawler.
Email fields crawler
Email fields crawler is used to index data on email message fields, including one or more of the fields: To, Cc, Bcc. The Email fields crawler is used to scan messages, extract and index data, merge data of specific contacts and/or correspondences if possible.
The Email fields crawler should include one or more of the following data:
A. Contacts data: Data about contacts appearing in email messages.
Each contact data should include one or more of the following:
1. Name = Contact's first, middle and last names, as appearing in To/Cc/Bcc fields
2. Email address(es): Contact email address, as appears in To/Cc/Bcc fields
3. Role related data: Data that can help establish a person's role in an organization, a group, other person's life, etc. Role related data may be found in text appearing in a contact's name (e.g., Father, Mom) as appearing in To/Cc/Bcc fields
4. Power of communication with the Target person: The number of times the contact appears as a correspondent in messages of the Target person.
B. Correspondence data: Data of correspondences found within the email messages. (The equivalent of correspondence data, when using a non-message crawler, is group data (unless stated differently, group data can be extracted and or used in a similar manner to the one explained here about correspondence data).
Data for each correspondence should include the following:
1. Frequency of correspondence: Number of messages sent over time within the correspondence
2. Freshness of correspondence: Time passed since last message sent within the correspondence
3. Duration of correspondence: Time passed between first and last message sent within the correspondence
4. Correspondence members composition: The contacts composing the group of correspondents, including all contacts in From, To, Cc and Bcc fields of the correspondence.
5. Senders correspondent data: Data about contacts who sent emails within a correspondence. Data can include: Frequency, Freshness and Duration of messages sent by each sender.
Component 1.2 - Signature crawler
The Signature crawler is used to index data on contact's signatures and enrich the contacts data. Encoding a signature can be done by analyzing the signature according to known patterns of email signatures. For Example, it is possible to use rules like the following:
1. Locate the signature by finding the phone number (identifiable by a known regular expression) at the end of the email message.
2. Isolate the signature by restricting it to the close lines of text surrounding the phone number. Use a space line as a divider between the text and the rest of the message. Index first line of signature as full name. 3. Locate and index phone numbers, email addresses, physical addresses, fax numbers, etc., by using regular expressions, and hints like the words 'Fax' 'Mobile' appearing before these regular expressions.
4. Index second line of signature as title, or company, unless it is already indexed else by previous rules.
The output data of Signature crawler should include contacts data.
Contact data should include one or more of the following:
1. Name = Contact's first, middle and last names, in one or more languages.
2. Email address(es) = Contact email address(es).
3. Contact information = All information that can help contact a person and/or information that appears in communication applications profile information, including: name, email addresses, phone numbers, Skype id's, profile picture, company, title, etc.
4. Role related data = Data that can help establish a person's role in an organization, a group, other person's life, etc.
Role related data may include data of the contact's organization, company, occupation, title, etc., appearing in the contact's signature.
Component 2- Data consolidator
The Data consolidator' s main function is to consolidate data extracted by Crawler/s and generate group profiles. Another, optional, function is generating contact profiles. The data consolidator consists of two main components: Group profile generator, and Contact profile generator (optional).
The data consolidator is adapted to Generate contact profiles by using a Contact profile generator
The Contact profile generator uses the following components: Component 2.1.1 - Role generator
Function - Analyze role related data of contacts, to set their contact roles.
Role types - The role generator can set various types of roles, including:
1. General role = A general role a contact have, not unique to the role he has in relation to the Target person, or to one of the generated groups, (e.g., a general in the army, an astronaut, a teacher)
2. Special Role = A role a contact have /had in relation to the Target person (e.g., the mother of the Target person, a client of the Target person)
A contact can have more than one role, including more than one role of each kind. For example a contact can be have:
Rolel- Mother
Role 2- CEO
Role 3- Lawyer The role generator analyzes the contact data extracted by crawler, to set role/s for contacts. Set a role score for each role found is a score indicating the expected significance of the role to the Target person. If more than one role is found for a contact, set a general role score, weighting all separate role scores.
Setting roles - Set roles for contacts, using rules like:
1. Set general role as the contact's title.
2. Set special role as words found in contact's data, indicating a special role. Examples of role related words includes: Father, Mother, Boss, Client, Supplier and more.
Setting role score - Setting the role score can be done by using a rule. The rule can set role scores to contacts according to the type of role(s) found for them.
In one embodiment, the rule can set a high score to a special role, and a low score to a general role. Example scores can be:
Role score of a contact if a special role was set to him = 5
Role score of a contact if a general role was set to him = 1.5
The general role score set to a contact can be the sum of all his role scores.
The output of the role generator is contact role data, including:
1. Roles found for each contact
2. A General role for each contact.
Contact information gatherer
-The Contact information gatherer uses contacts data extracted by Crawler/s as well as contact role from Role generator (optional) to gather, index, and merge contact information. Create a minimum number of distinct contacts, with maximum data/contact information for each contact.
Contacts are merged by scanning all the data extracted by crawler(s) and the role generator. Merging contacts is done by using rules including the following:
Rules for merging contacts: Merge two or more contacts in one or more of these cases:
1. Contacts have the same full name.
2. Contacts have the same email address.
2.1 Contacts have the same email address opening (For example merge lior500@gmail. com and l ^ft^ahoo^com)
3. Contacts have the same mobile number.
4. Contacts have the same unique id (for example a same state id, passport id, Skype id, etc.,).
5. Contacts have the same birthday date (dd/mm/yy). B. Merge contact data - When merging one or more contact, create a new contact with all data from merged contacts. When merging, if a merged information field overlaps (e.g., contact 1 and contact 2 are merged, they both have full names), use the following rules to set priority for overlapping information fields :
1. Set a higher priority to values created by the Target person (e.g., values appearing in address books of the contact, in outgoing email messages, etc.,)
2. Set the highest priority to values found in the address book of the phone dialer of the Target person.
Example of using these rules: Assuming contact A is merged with contact B to create a new contact C. If the source for Contact A is the email inbox, and the source for contact B is the Target person's phone dialer. Use the name, phone number, email address, etc., of contact B as the primary values for name, phone, email fields of contact C. Use the name, phone number, email address, etc., of contact A as the secondary values for name, phone, email fields of contact C (Name2, Phone2, Email2, etc..)
The gathered information provided by the Contact information gatherer includes^
1. Distinct contacts = contacts which doesn't represent the same person (or at least doesn't have enough information to conclude that they represent the same person).
2. Profile data for each contact, including one or more of Name, Role, Contact information, Power of communication with the Target person.
Component 2.1.3 - Contact scorer
The Contact scorer (optional) sets the Contact score which is a score indicating the expected significance of the contact to the Target person.
The Contact scorer uses a formula to set contact score, out of data originated from contact gatherer. Parameters of the formula can include : Role score, power of communication with the Target person, affluence of data on contact profile (which can be set as the number of information fields, containing data, the contact has in his profile), and existence of specific, more important contact information (e.g., name, phone number, profile picture).
One embodiment of such a formula may be: Contact score = Role score + power of communication with the Target person + Number of fields in contact profile/2 + 1 point for name + 1 point for phone number + 1 points for profile picture. The Contact scorer outputs a contact score for each contact.
Component 2.1.4 - Profile builder
The Profile builder builds contact profiles containing all information gathered and/or generated by the Role generator, the Contact information gatherer and the Contact scorer by using their outputs as an input. All information of a contact is sorted into a contact profile. It uses conventional contact profile fields, similar to those used by common communication applications (e.g., Facebook, phone dialer) as well as contact score field.
The output of profile builder includes:
1. All distinct contacts.
2. A Profile for each contact (preferably, as comprehensive as possible). Profile includes one or more of the following: Name, Role, Contact information fields and contact score.
B. Generating group profiles^
Correspondence data and contact profiles of group members (optional) are used to generate group profiles.
Component 2.2 - Group profile generator
The profile generator may use the following components to generate group profiles. Component 2.2.1- Group information gatherer
-The Group information gatherer uses correspondences data and/or groups data from Crawler/sand contact profiles from Contact profile generator (optional) to gather, index and merge all information of groups.
A. Merging groups: All data extracted by crawler/s is scanned. All groups with identical member composition are merged. When merging one or more groups, a new group is created with all data/ all information fields from merged groups. When merging, if merged information field overlap (e.g., group 1 and group 2 are merged, they both have group names), use the following rules to set priority for overlapping information fields :
1. Set a higher priority to values created by the Target person (e.g., values appearing in address books of the contact, in outgoing email messages, etc.,)
2. Set the highest priority to values found in the address book of the phone dialer of the Target person.
B. Detecting Group Admins. Analyze group communication. Detect and set a group administrator by setting the most frequent sender of messages within the group as an administrator.
The gathered information of the Group information gatherer may include one or more of the following:
1. Number of group appearances = Number of times a group/correspondence with an identical member composition was found by Crawler/s. 1.1 Group source (s): Data source/s in which the group was found by a Crawler (e.g., email, Skype contact list).
2. Group member composition: The contacts composing the group
2.1 Contact profiles of group members. 2.2 Correspondence data of group members who sent messages within the group (including, for example : frequency, freshness and duration of correspondences sent by each group member)
3. Group Administrator
Component 2.2.2 - Group Characterizer and scorer
The Group Characterizer & scorer (optional) can be used for setting:
1. Group characteristics: Attributes of the groups, which may include: group name, group type, group members roles, etc.
2. Group score: A score indicating the expected significance of the group to the Target person.
A. Setting group Characteristics:
1. Setting group name. Setting a group name can be done in various methods, including the following methods:
A. Import name from 'Group name' field, if exists in group source (e.g., group name on: Facebook groups, Google contact groups, phone address book groups)
B. Set name as a unique word (a word which is not widespread in language) appearing on a significant amount (e.g., 3 or more, 10% or more) of group members profile fields (e.g., the name 'Intel' appearing on 4 profiles of group members, out of 10 group member in a group).
C. Set name as a unique word appearing on a significant amount (e.g., 3 or more, 10% or more) of group messages subjects, and or files.
D. A unique email extension (an extension which is not widespread in email messages) appearing on a significant amount (e.g., 3 or more, or 30% or more) of group members email addresses.
E. A common group name (a name which is widespread for describing groups, like: Family, Class, Work, etc.) which appears in group message subjects, or appears significant amount of times (e.g., 3 or more) in group messages content.
It is recommended to use the following -start with method A, if name is not found, proceed to method B, if name is not found proceed to method C, and so forth until method E.
2. Set group type. Setting a group type can be done in various methods, including the following methods:
A. Set the group type as a common group type (a word which is widespread for describing group type, like: Family, Class, Work, etc.,) which appears in the group name.
B. Set the group type using text that appears on extensions of group members email addresses. For example, if significant amount of email extensions (e.g., 3 or more, or 30% or more) include 'ac' (e.g., Jhony@cam.ac.uk), then set group type as 'Class'. 3. Set group score-
Group score can be set in various methods. One option of setting group score is using a group score formula. Group score formula can weight parameters gathered by group information gatherer, and/or contact profiles of group members.
Group score parameters-
Parameters used in group score formula may include the following parameters :
PI. Power of group communication
P2. Group type score
P3. Group members contact scores
P4. Group source score.
An optional way to setting values to these parameters is described further on. Group score formula
Coefficients can be attached to parameters in the formula, to set an accurate group score. It is recommended to set a higher coefficient to more important parameters.
It is recommended to use multiplication between most, or all, of the parameters in the formula, and not addition. This can help achieving a better score accuracy, for example by reducing the possibility of a group with a zero score, or an important parameter, to be given a high group score.
For the more important parameters, however, it is recommended to use addition in the formula (rather than multiplication). This can help achieving a better score accuracy, for example by reducing the possibility of a group with a high score, on an important parameter, to be given a low group score.
One embodiment of the group score formula uses the power of group communication, the Group type score and the Group source score as the most important parameters. It is also possible to use a group score formula using only part of these parameters.
One embodiment of a group score formula may be: (P2 + P4) · PI
Another embodiment of a group score formula may be: (P2 + P4) · PI
Setting group score parameter values
Setting group score parameter values can be done in various ways, including the ones described below :
PI. Power of group communication
Set PI value by using a formula that includes one or more of the parameters Pl. l, P1.2, P1.3 and P1.4 described below.
Pl. l Frequency of group communication :
Set Pl. l value as the number of messages sent within the group (or within the specific group correspondence) - 1. In this manner set PI.1=0 if 1 message was sent within the group, Set Pl. l= 1 if 2 group messages were sent, PI.1=3 if 4 group messages were sent, etc.
P1.2. Freshness of group communication
Set PI.2 value according to the time passed since last group message was sent. Set a higher value of freshness if less time passed since the last message sent. (It is recommended to use time passed in days).
One embodiment of this rule can be:
PI.2=1.5 if last group message was sent within last 30 days.
PI.2=1.2 if last group message was sent within last 60 days.
PI.3. Duration of group communication
Set PI.3 value as the time passed between first and last message sent within the correspondence. It is recommended to use time passed in days. In this manner set PI.3=0 if last group message was sent in the same day as the first group message, Set PI.3= 1 if last group message was sent 1 day after the first group message (l day passed), P 1.3=4 if last group message was sent 4 days after the first group message.
If PI.3 is multiplied in the group score formula, it is recommended to avoid using 0 as it's value. In such case, 1 is used instead of 0.
P1.4. Involvement of Target person in group communication
In one embodiment of setting PI.4 value- Set P1.4 value = 0 if Target person hasn't initiated group communication (for example has not sent a group message within that group) Set P1.4 value = 1 if Target person has initiated group communication(for example has sent a group message within that group)
Another embodiment of setting P1.4 value, is setting PI.4 value as the number of times the Target person has initiated group communication.
PI formula
A recommended option for PI formula, is setting the highest coefficient in the formula to Pl. l, second highest coefficient to P1.4, and lower coefficients to P1.2 and P1.3.
For example, the PI formula may be:
Pl= Pl. l · 2.5 P4 · P1.2 · PI.3/100
P2 Group type score
Set a higher P2 value for more significant group types. Set highest values (for example P2=3) for Family and Friends, set medium values (for example P2=2) for other types of groups, and a minimum P2 value (for example P2=l) if group type is not set. P3. Group members contact scores
Set P3 value as the sum of group members contact scores.
It is recommended that the score given to group admins can be multiplied (for example by 5) to represent the significance of the admins in the group.
P4. Group source score.
Set a higher P4 value for more significant group sources. Set high values (for example P4=4) for groups originated from Facebook groups, Google contacts, addresses books of communication applications and contact list files. Set low values (for example P4=2) for other types of group sources, and a minimum P4 value = 1 if group source is a message crawler.
Component 2.2.3 - group profile builder
The group profile builder builds group profiles by integrating group information, including information from the Group information gatherer and the Group Characterizer and scorer while using their outputs as an input. All information of a group is sorted into a group profile. The output fields described below are used as the group profile fields.
To set group admins, in addition to the ones found in previous steps, the following rules are used:
1. Cross information from contact profile (especially admin related words) with group name, (e.g., if a contact's title is Yoga teacher, and the group name is Yoga class 101, then set the contact as a group admin)
2. If the group was originally created using another application (e.g., Facebook groups), set the group admin as the group admin/group manager of the original group.
Output Group profile builder's output may include all distinct groups. Profile for each group may include :
1. Group source + no. of group appearances
2. Group member composition
3. Group Admin/s
4. Group characteristics
5. Group score
Component 3 - Group filter
Function - The Group filter's main function is filtering the groups created by the data consolidator. Filtering can be used to reduce the number of similar groups. Though it is not mandatory to use the group filter, it is highly recommended, as a step toward mapping the significant groups of the Target person.
The Group filter can be consisted of 3 main components as described in Fig. 2.0- Group sorter, Similar group chooser, and a group 2nd scorer. Component 3.1 - Group sorter
The Group sorter is used to sort groups generated by data consolidator into similar group chunks + non-similar groups.
A. Discovering Similar groups - Analyze group member composition to discover similar groups. To determine which groups are considered similar, use a rule or a formula. The main parameter of the rule or the formula can be the percentage of identical members in the groups. One embodiment of such a rule can be:
Determine that two groups are similar, if the percentage of identical members, out of the larger group, is significant (a significant percentage may be set as 30% or more).
For example, using this rule with a 30% as the significant percentage threshold : If group a composition is ABCDE (larger group, 5 members), group b composition is ABFG, then the two groups are similar [two identical members (AB) out of 5 = 40%>30%]. if group a composition is : ABCDE, group b composition is ABFGHIJdarger group, 7 members), then the 2 groups are non-similar [2 identical members (AB) out of 7 =~ 28%<30%]Build distinct similar group chunks out of similar groups. Send non-similar groups to the non-similar group output.
B. Sorting the groups
Groups that were non-similar to any other groups can be sorted to the 'Non-similar' groups output. All groups that were similar to other groups, can be sorted to chunks of similar groups. Each chunk can contain all groups that are similar to one another. Chunks differ, so a group from one chunk is not similar to a group in another chunk.
The output of the Group sorter may consist of two elements :
1. All Non-similar groups
2. All similar groups, ordered in distinct chunks. Each chunk is a meta-group, consisting of two or more similar groups
Component 3.2 - Similar group chooser.
The Similar group chooser chooses the groups which are expected to be the most significant for the Target person, out of each similar group chunk.
A possible method of choosing groups out of chunks is comparing two similar groups at a time. This can be done by matching two groups, choosing the more significant one, than matching the chosen group with the next similar group, and so forth. This process can be done until all groups in the chunk are matched. Choosing the most significant group can be done in various ways.
One embodiment of the choosing can be using one or more of the following rules. Rules can be used in the following order to choose or screen groups. If the 1st rule isn't enough to choose the most significant group, then use the 2nd rule as well. If the 2nd rule is also not enough use the 3rd rule, and so forth.
Choosing and screening rules :
Rule 1: Choose the group with the highest group score.
Rule 2- Choose the group which has a name.
Rule 3: Choose the larger group.
Rule 4- Choose a random group.
The output of the Similar Group Chooser can be non-similar chosen groups and their group profiles. It is recommended to add the number of similar groups that were in the chosen group chunk to each chosen group.
Component 3.3 - Group 2nd scorer.
The Group 2nd scorer (optional) updates the score of the groups chosen by the Similar Group Chooser.
Updating the group score can be done by using the number of groups that were similar to the chosen group. For example by multiplying the chosen group score with a number derived from the number of groups that were similar to the chosen group.
One embodiment of such group score updating rule is this:
Updated group score = chosen group score (l+number of similar groups/frequency score of the group). The output of the Group 2nd scorer are non-similar chosen groups + their group profile, including an updated group score.
Component 4 - Group Sorter
The group sorter can sort non- similar groups, generated in previous steps, by significance to the Target person. Sorting can be done based on group scores. One possible method for sorting most significant groups is sorting all groups, from the highest significant ones (the ones that have the highest group score) to the most insignificant (that have the lowest group score). The output of the group sorter can be the most significant groups, including their group profiles. One embodiment of output is choosing a limited amount of groups (for example, 5"50 groups).
Definition of Terms
Admin related words: Words related to an administrative or managerial role in a group. Example of such words can be: Manager, Teacher, Boss, Secretary, etc.
Application's Address Book: An address book, or the list of contacts a person has, in an application. For example the contacts a user has in Gmail, the address book a person has in his phone dialer, etc. The term can also appear as Address Book or alternatively Contact List.
Application's contact list: An address book, or the list of contacts a person has, in an application. For example the contacts a user has in Gmail, the address book a person has in his phone dialer, etc. The term can also appear as Contact List or alternatively Address Book.
A-symmetric group: A group of people which are not defined, operate or usually communicate as a group, but has a common denominator, for example a common denominator for a specific person (A-symmetric groups examples are the group of customers a person has, his suppliers, friends etc.)
Communication applications: Applications enabling human communication. For example, Gmail, Facebook, iPhones dialer, Skype or Instagram.
Collecting Data: a process by which the system access a data source by crawling or by using API's provided by the source, and scans all data from the source or subsets of it in and/or preset sections of it order to retrieve such data as communication logs, message meta data, contacts information, correspondents information ("to" and "cc" fields in an email or message, for example)
Contact: A contact in a communication application, an address book, a contact list, etc. A contact can be identified in many ways, including a full name, an id, or any other unique identifier, such as email address, or mobile phone number.
Contact information: All information that can help contact a person and/or information that appears in communication applications profile information, including: name, email addresses, phone numbers, Skype id's, profile picture, company, title, etc.
Contact list file: A file containing a list of contacts, usually including contact information of one or more of the contacts in the file.
Contact list file hint: a text that can serve as a hint of the possibility that a file is containing a list of contact information of people. Hints should include, among others, words like: Contact, Phone, Address, Directory, Personal, or any misspell, synonymy, etc., of those words.
Contact scored A score indicating the significance of the contact to the Subject.
Contact's signature: Contact's name and personal information appended at the end of an outgoing message.
Content analysis: Analysis based on content. Usually qualitative information originated from text.
Correspondence: an exchange of message/s within a distinct group of people.
Crawling: Systematically scanning a source of information (such as a file system, an email inbox of a user, etc.) using a computer program, for gathering, categorization and indexing information.
Distinct: Not the same, (e.g., the letter set AAAA, the letter set AAAB are distinct)
First Lines of a file: The 10 lines of text, including headers, appearing in a file, starting from the top of the file, and going down, in the reading direction. If the file has more than 1 column, or more than 1 way in which 10 lines can be counted, according to this explanation, then "first lines of the file" can contain more than 10 lines, and up to the maximum of possibilities to count the lineslO.
Group: A group of people related to each other in any way.
Group Admin: The formal or known managers, leaders or administrators of the group, and/ or people highly involved with activating or informing the group, and/or people highly involved in group communication.
Group important characteristics: Attributes of the groups. Those may include: group name, group type, group member composition, group members roles or group admins.
Group characteristics: Attributes of the groups. Those may include: group name, group type, group members roles, etc.
Group appearances: The times a specific group appears. For example the times a group appears in group communication, group sources, etc.
Generating Group/Group Generating: clustering or associating several contacts or people together. Group mapping: Identifying and portraying group characteristics, such as group name, group type, etc.
Group members: The members of the group - people or contacts which are part of the group. Contacts which are correspondences of a message can be considered group members. Contact in a contact list file can be considered group members as well.
Group member composition: Group members - the members composing the group, and/or the members which are part of the group.
Group member roles: The roles the members have in the group. For example : Manger, Hr manager, in a work group! Teacher, Student in a class group! Mother in a family group.
Group message: a message sent within a group.
Group name: The name of the group as given by a group member, another person, or a component of the algorithm, such as the Group characterizer.
Group size: The number of group members.
Group score : The score given to a group.
Group source: The source in which the group is listed, and/or appears, and or discovered by a crawler.
Group type score: The score given to the group type.
Group type: The type of group (e.g., family, friends, work, class etc.).
Identical- Completely the same (e.g., the letter sets: AAAA, AAAA are identical)
Main parameter in a formula: A parameter which has the highest impact on the formula's result.
Mapping: Identifying and portraying characteristics
Message: Email message SMS message, chat message, Facebook post, a letter, a memo a voice message, or any other communications transferred between people.
Message associated with the file: The email message, Facebook post, Skype conversation, MMS message, etc., to which the file was attached or connected, or any message sent in reply, or within the thread of the message to which the file was attached, or connected. Meta-group: A group consisted of 2 or more groups.
Non-similar^ Doesn't have the defined degree of similarity (ABCD, AEGH for similarity degree higher than 25%)
PI formula: A formula for finding PI parameter.
Perceived group significance: The significance a person (usually the Target Person) attributes to a group.
Power of group communication: A score evaluating the group communication strength, usually by weighing parameters of group communication such as communication frequency, freshness and/or duration.
Power of communication of a Target person with group members: A score evaluating the communication strength of a target person with members of a group. It is usually evaluated by weighing parameters of group communication such as communication frequency, freshness and/or duration.
Profile score: A score indicating the strength of a profile, or the significance of the group to the Subject.
Same: Completely identical (e.g., the letter sets: AAAA, AAAA are same)
Significant groups of the Target person: The groups which are expected to be significant for the Target person. The significance of groups can be derived from their importance, their closeness, their emotional value, etc., to the Target person.
Similar: Has a defined degree of similarity, but not identical. (ABCD, ABFG for similarity degree 50% or less)
Sub-group: A group which is a part of another group.
Symmetric group: A group of people which are defined, operate, and/or communicate as a group (for example, a basketball team, a class, a unit of a company).
User's Files: Any file that the user has, or had, in any kind of storage, including all kinds of virtual storage. User's files also include any file sent, received or viewed by the user, in any communication applications he used.
Target Person: The person whose social groups are mapped.
Retrieving: downloading from one computer or source to the server Indexing: assigning an index indicating where the information when needed, without ever downloading it)

Claims

Claims
1. A method for mapping social groups of a Target Person, comprising:
a) collecting data from communications applications and/or data related to communication and/or files attached to communication messages, and retrieving or indexing messages and/or data related to said communications! b) generating groups with a composition of members similar to the composition of recipients of group communications that were collected! and
c) evaluating the significance of each group to said Target Person, based on one or more parameters being indicative about the expected significance of a group to said target person and assigning a significance score or a relevance indicator to said group.
2. A method according to claim 1, further comprising:
d) identifying the recipients of each message and data related to said recipients! and
e) indexing or retrieving the recipients of each message and data related to said recipients.
3. A method according to claim 2, wherein the data includes metadata and parameters related to contacts.
4. A method according to claim 1, wherein the data collecting optionally includes fetching data about Target Person's contacts and parameters correlated with said Target Person's contacts.
5. A method according to claim 4, wherein the Target Person's contacts are identified by name or email.
6. A method according to claim 1, wherein the said Data Collecting optionally includes fetching logs about the communications of the Target Person.
7. A method according to claim 1, further comprising consolidating identical or very similar groups and/or groups that have many similar parameters.
8. A method according to claim 1, further comprising grouping contacts according to common parameters of contacts or of the message the contacts are associated with or any other common data associated with the contacts.
9. A method according to claim 1, wherein the parameters for evaluating the expected significance of a group to said Target Person are one or more of frequencies, recentness, duration of a communication and the involvement of the Target Person in the communication.
10. A method according to claim 1, comprising:
a) collecting data from communications applications and/or data related to communication and/or files attached to communication messages! b) retrieving or indexing messages and/or data related to said communications wherein data collection system is optionally adapted to extract data related to one or more of groups, correspondences and contacts!
c) mapping groups by consolidating the collected data and generating distinct groups!
d) optionally generating contacts and profiles for groups, consisting information about the group, the group members, the group members roles, or the group communication patterns! and
e) filtering the groups by eliminating multiple instances of the same groups or choosing one group from a cluster of very similar groups.
11. A method according to claim 10, further comprising sorting the remaining groups by relevance to the Target Person.
12. A method according to claim 10, further comprising:
a) choosing the groups that are expected to be the most significant groups for the Target Person! and
b) increasing the significance of the chosen groups, in the display, accessibility or interaction we provide users.
13. A method according to claim 10, further comprising naming groups or setting their type by using extensions of group members email addresses, or non- frequent words appearing in group members contact information or in subjects of communications.
14. A method according to claim 10, wherein group name or group type are set by using:
- Preset names of contacts (mother, teacher, boss)
- Preset contact titles (teacher, guide)
Hints of a group name or type, like preset common group names in communication or in communication subjects (class, team)
- Preset email extensions (ac, gov)
15. A method according to claim 10, wherein Data Collecting and more specifically crawling is done by a set of rules to discover and index needed data.
16. A method according to claim 10, wherein the crawler consists of one or more Sub rawlers, each of which operating on a different input source.
17. A method according to claim 10, wherein the Data Collecting or crawling is adapted to retrieve data from messages such as text messages from texting applications or email applications by scanning the Target Person's communication messages, and extracting data of one or more of correspondences, groups and contacts.
18. A method according to claim 10, wherein the Data Collecting or crawling is adapted to retrieve data from Signatures by scanning the signatures appearing in email messages, indexing and retrieving data about the person whose signature is in the message, including contact data.
19. A method according to claim 17, wherein the contact data is found in one or more of signatures, address books or contact list files.
20. A method according to claim 10, wherein the data collected is consolidated by a Consolidator which uses a Group Profile Generator and a Contact Profile Generator to generate maximum number of distinct groups and contacts, as well as their profiles.
21. A method according to claim 10, wherein a group composition is determined by identifying the roles of members in said group.
22. A method according to claim 10, wherein groups are mapped by one or more of the following:
Analyzing Messages (such as email, SMS, voice calls, video calls, instant messages and/or letters);
Contact list files!
Email signatures
Contact information in an address book or a contact list of a communication application
Crawling!
Analyzing the name, company, title and education fields of contacts, stored in address books or contact lists of communication applications!
parsing contact list file/s.
23. A method according to claim 10, wherein social groups of the Target Person are mapped according to being symmetric or asymmetric groups and to the group composition and characteristics.
24. A method according to claim 10, where Group Mapping comprises the creation of groups by finding a common denominator such as a common key words or common parameters that indicate association to a preset group, like family, work, class, club, unit, customers, suppliers, friends, kindergarten and/or using common denominator for the creation of asymmetric groups of people which are not defined, operate or usually communicate as a group,
25. A method according to claim 23, wherein the common denominator is found in contacts data or in email subject or in email content or in an attached file name, such as a quotation.
26. A method according to Claim 10 where Group Mapping of a Target Person, based on Content Analysis, and especially certain names and words that act as hints for discovering such social groups.
27. A method according to Claim 10 where Group Mapping of a Target Person, comprising characterizing groups and contacts, based on:
Content Analysis!
Contacts data!
Communication data.
28. A method according to Claim 10 where Group Mapping of a Target Person, wherein the characterizing of groups is done based on preset names (e.g. class, club), or non-frequent words appearing in contacts data of group members, that is found in signatures, address books or contact list files (e.g. the word apple appearing in many group members signatures)
29. A method according to claim 10, wherein groups generated by the Data Consolidator are filtered by a Group Filter that clusters similar groups and chooses the group that is expected to be the most significant for the Target Person and that may update group score.
30. A method according to claim 10, wherein groups filtered by the Group Filter are sorted by a Group Sorter, according to the Group Score.
PCT/IL2014/050363 2013-04-19 2014-04-16 A method for mapping social groups of a person WO2014170901A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361813668P 2013-04-19 2013-04-19
US61/813,668 2013-04-19

Publications (1)

Publication Number Publication Date
WO2014170901A1 true WO2014170901A1 (en) 2014-10-23

Family

ID=51730894

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IL2014/050363 WO2014170901A1 (en) 2013-04-19 2014-04-16 A method for mapping social groups of a person

Country Status (1)

Country Link
WO (1) WO2014170901A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050203929A1 (en) * 2004-03-09 2005-09-15 Devapratim Hazarika System, method and computer program product for prioritizing contacts
US7895208B2 (en) * 2008-02-26 2011-02-22 International Business Machines Corporation Device, system, and method of creating virtual social networks based on web-extracted features
US20110167116A1 (en) * 2002-11-18 2011-07-07 Aol Inc. People lists

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110167116A1 (en) * 2002-11-18 2011-07-07 Aol Inc. People lists
US20050203929A1 (en) * 2004-03-09 2005-09-15 Devapratim Hazarika System, method and computer program product for prioritizing contacts
US7895208B2 (en) * 2008-02-26 2011-02-22 International Business Machines Corporation Device, system, and method of creating virtual social networks based on web-extracted features

Similar Documents

Publication Publication Date Title
US9898743B2 (en) Systems and methods for automatic generation of a relationship management system
US11947610B2 (en) Bulletin board data mapping and presentation
US8341232B2 (en) Relationship identification based on email traffic
US9529864B2 (en) Data mining electronic communications
US8271597B2 (en) Intelligent derivation of email addresses
TWI393013B (en) Identifying and employing social network relationships
US20140074843A1 (en) Systems and methods for dynamic analysis, sorting and active display of semantic-driven reports of communication repositories
US10970349B1 (en) Workflow relationship management and contextualization
CN110622180A (en) System and method for data mining of historical electronic communication exchanges to identify relationships, patterns, and correlations of transaction results
US20130110842A1 (en) Tools and techniques for extracting knowledge from unstructured data retrieved from personal data sources
US20110125746A1 (en) Dynamic machine assisted informatics
US20090144329A1 (en) System and method for observing communication behavior
CN102150161A (en) Ranking search results based on affinity criteria
EP2502151A2 (en) Methods and systems for managing electronic messages
EP2624531A1 (en) Intelligent grouping system and method for mobile terminal contact book
US11409820B1 (en) Workflow relationship management and contextualization
US20110078150A1 (en) Intelligent Sorting and Correlation of Email Traffic
EP3080726A1 (en) Systems and methods of address book management
US11314692B1 (en) Workflow relationship management and contextualization
US10834029B2 (en) Automatic modification of message signatures using contextual data
CN104780257A (en) Contact prompt information generating method, device and terminal
CN106886296A (en) The treating method and apparatus of the dictionary of input method
US20090183096A1 (en) Modeling conversations in electronic mail systems
US8458224B2 (en) Auditing search requests in a relationship analysis system
US20130162648A1 (en) Consolidation and visualization of a set of raw data corresponding to a communication between a person of interest and a correspondent across a plurality of mediums of communication

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14784946

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 242082

Country of ref document: IL

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14784946

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205N DATED 05/01/2016)

122 Ep: pct application non-entry in european phase

Ref document number: 14784946

Country of ref document: EP

Kind code of ref document: A1