Abstract:
A method and system of automatically identifying a set of relevant and qualified recipients to share electronic data is disclosed. The system includes an electronic network configured to store and transmit the electronic data files. The electronic data files include one or more data tags defining a sharing condition that targets potential recipients of the data files or permits access to the data files. A people-tagging system provides an electronic platform including keyword lists (tags) defined by recipient users collaboratively. A matching tool includes software matching recipient users to the data files when the recipient users are associated with keyword lists that satisfy the sharing condition. The method includes tagging a data file by one or more keywords and using a people-tagging system where the recipient users define a list of tags on topics of interest. Recipient users are matched to data files when user lists of tags satisfying the sharing condition.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    The present invention relates generally to the field of data distribution and access, and more specifically, to the distribution and receipt of data through automatically identifying relevant and qualified recipients based on people information from existing people tagging systems. 
         [0002]    The distribution of information has been enhanced with the advent of electronic mail systems and social networks. Some individuals, whether in a business organization or in a civilian setting, share common interests or dilemmas. Thus, one way to share a person&#39;s ideas with others is to send out a mass mailed electronic mail message. In another case, one may need input on a business project within an organization and may broadcast a call for assistance to others in the organization. However, unsolicited messages may garner the ire of others if a recipient has no interest in the message topic. It may thus, be desirable to send a message only to the group of people who are likely to be relevant or qualified in the topic of the message. 
         [0003]    It is known to target messages to others by manually selecting a group of individuals that may be relevant to the message. This can be a time consuming process when one works in a relatively large organization. Additionally, one risks missing a relevant recipient if the sender does not know the interests or expertise among potential recipients and fails to select such a person. 
         [0004]    Therefore, it can be seen that there is a need for a system and method to distribute and provide access to electronic messages/files that targets recipients based on recipients&#39; topics of interest. 
       SUMMARY OF THE INVENTION 
       [0005]    In one aspect, the present invention comprises a system for sharing electronic data files, comprises an electronic network configured to store and transmit the electronic data files wherein the electronic data files include one or more data tags defining a sharing condition; a tagging system connected in data communication with the electronic network wherein the tagging system provides an electronic platform configured to store and update data tags defined by recipient users; and a recipient selection tool including software configured to match recipient users to transmitted electronic data files wherein the recipient users are associated with data tags that satisfy the sharing condition. 
         [0006]    In another aspect, the present invention comprises a method of distributing an electronic message from a sender to one or more recipients, including marking the electronic message with tags; specifying a sharing condition for targeting potential recipients of the electronic message wherein the sharing condition is based on the tags; identifying recipients with predetermined data tags satisfying the sharing condition; and transmitting the electronic message to the identified recipients 
         [0007]    In another aspect, the present invention comprises a method of providing electronic access to a file resource stored on a host server, by specifying a sharing condition for permitting access to the file resource based on keywords tagged in the file resource; receiving a request for access to the file resource from a user; receiving user data associated with the user wherein the user data includes a list of keywords associated with the user; evaluating whether the user&#39;s list of keywords satisfies the sharing condition; denying the user access to the resource file on the host server if the sharing condition is not satisfied; and granting the user access to the resource file on the host server if the sharing condition is satisfied. 
         [0008]    In a further aspect, the present invention a computer program product for distributing an electronic message, the computer program product comprises a computer usable medium having computer usable program code embodied therewith, the computer usable program code comprising: computer usable program code configured to mark the electronic message with data tags; computer usable program code configured to specify a sharing condition for targeting potential recipients of the electronic message wherein the sharing condition is based on the data tags; computer usable program code configured to identify recipients with predetermined data tags satisfying the sharing condition; and computer usable program code configured to transmit the electronic message to the identified recipients. 
         [0009]    These and other features, aspects and advantages of the present invention will become better understood with reference to the following drawings, description and claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]      FIG. 1  is a block diagram illustrating a system for information and resource distribution in accordance with an exemplary embodiment of the present invention; 
           [0011]      FIG. 2  is a block diagram illustrating a system for information and resource access in accordance with an exemplary embodiment of the present invention; 
           [0012]      FIG. 3  is a flowchart illustrating a method of selective information distribution in accordance with an exemplary embodiment of the present invention; 
           [0013]      FIG. 4  is a flowchart illustrating a method of creating a sharing condition in accordance with an exemplary embodiment of the present invention; 
           [0014]      FIG. 5  is a flowchart illustrating a method of selective information access in accordance with an exemplary embodiment of the present invention; 
           [0015]      FIG. 6  is a flowchart illustrating a method of selective information access in accordance with another exemplary embodiment of the present invention; and 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0016]    The following detailed description is of the best currently contemplated modes of carrying out exemplary embodiments of the invention. The description is not to be taken in a limiting sense, but is made merely for the purpose of illustrating the general principles of the invention, since the scope of the invention is best defined by the appended claims. 
         [0017]    Various inventive features are described below that can each be used independently of one another or in combination with other features. 
         [0018]    Broadly, embodiments of the present invention provide a method and system for using tags to provide information distribution and access to messages and file resources. Exemplary embodiments of the present invention provide methods and systems that facilitate targeting of recipients through collaborative user input of tags (keywords) into a tagging system and matching recipients or users based on their defined eligible tags. 
         [0019]    Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium. 
         [0020]    Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction performance system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireless, wireline, optical fiber cable, RF, etc. 
         [0021]    Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). 
         [0022]    Exemplary embodiments of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. 
         [0023]    These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
         [0024]    These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
         [0025]    Referring now to  FIG. 1 , a system  10  may be employed message distribution. The system  10  may generally include an electronic mail server  20 , a recipient selection tool  50 , and a people tagging system  40 . 
         [0026]    The electronic mail server  20  may include messages to be distributed  33 . The electronic mail server  20  may also include accounts for users  60  which, for ease of reference, can be thought of as including a sender  25  and a set of potential recipients  22 . A sharing condition  38  may be associated with a message  33  to indicate what kinds of recipients the message  33  is targeting. A sharing condition  38  may include three components; they are an expression of keywords  55 , a tag filter  56 , and an option for approximate matching  57 . 
         [0027]    The recipient selection tool  50  may include software capable of determining whether the tags  65  associated with a user  60  in the people-tagging system  40  satisfies the sharing condition  38  of a message or not. In an exemplary embodiment of the system  10 , the tag matching tool  50  may include sub-elements such as a related tag/synonym engine  70  capable of providing an approximation matching by analyzing keywords in expression  55  to match tags  65  within an estimated degree of relation to one another. The recipient selection tool  50  may additionally include a scoring/matching engine  80  to rank the degree of matching between the tags  65  of potential recipients  22 . The recipient selection tool may also include a feedback history recorder  62  to accept feedback from recipients to evaluate the accuracy of the tag matching tool  50 . 
         [0028]    The people tagging system  40  may be an electronic platform for storing the tags  65  applied to each user  60 . The people tagging system  40  enables users  60  to apply tags  65  to each other so as to maintain each other&#39;s interests and expertise. 
         [0029]    In one exemplary embodiment, a sender  25  wishes to distribute a message  33  to potential interested recipients  22 . 
         [0030]    Referring to  FIGS. 1 and 2 , the system  10  may be employed to provide distribution of messages  33  under various exemplary scenarios. For example, a general operation of the system  10  may function according to the method  100  as follows. A sender  25 , may wish to distribute an electronic message  33  to other users  60  in her organization, in this case, potential recipients  22 , who are likely to be interested in the electronic message  33 . The people-tagging system  40  would include a database where each user  60  would have been applied a list of tags  65  that represent the expertise and interests of the user  60 . In step  110 , the sender  25  may specify a sharing condition for distributing the message  33  to qualified or interested target recipients  22  based on keywords included within the message  33  or keywords that relate in general to the topic of the message. In step  120 , the recipient selection tool  50  may retrieve tagging information stored in the people tagging system  40 . The tagging information may include data such as the lists of tags  65  associated with each user  60  and the tagging relations between users  60  which indicates who applied which tags to whom. For example, the sender  25  may specify that the message  33  is targeting everyone who has been tagged with keywords “security” or “cryptography” by any user in the system. Software may be employed to aid the specification of the sharing condition. In step  130 , every potential recipient  22 &#39;s tagging information may be evaluated against the sharing condition  38  associated with the electronic message  33  to find one or more potential recipients  22  whose associated tags and data match the sharing condition  38 . If a potential recipient  22 &#39;s tags satisfy the sharing condition  38  of the message  33 , the message  33  may be delivered to the recipient  22  in step  140 . Depending on the sharing condition  38 , synonyms and closely-related terms may be taken into account during the evaluation process in step  130  for matching recipients  22  with a sharing condition through the use of the related tag/synonym engine  70 . The sharing condition  38  may also specify only tags applied by those who can be taken into account. For example, a sender  25  may specify that only tags applied by her to other users are considered. 
         [0031]    Additionally, the recipients  22  of the message  33  may provide feedback to the recipient selection tool  50  on whether the recipient themselves consider the received message  33  relevant to them. If a recipient  22  provides a positive feedback, that recipient&#39;s chance of receiving future messages on topics similar to that of the message  33  increases; otherwise, if a negative feedback is given, the chance of receiving similar messages in the future decreases. In one exemplary embodiment, a feedback process may operate according to the following: after receiving a message  33 , a recipient  22  may inform the recipient selection tool  50  whether he or she likes the message  33  or not. The recipient&#39;s  22  feedback will affect his or her chance of receiving future messages on topics similar to the message  33 . For every user  60 , the recipient selection tool  50  may maintain an interest-rating counter  64  for each of the most important keywords of the delivered messages. If the user  60  provides a positive feedback on message  33 , the interest-ratings of the top keywords of the message  33  will increase; otherwise, if a negative feedback is made, such ratings will decrease. Negative interest-ratings have negative impact on the matching scores of future messages containing the corresponding keywords and decrease the user&#39;s  60  chance of receiving such messages. A neutral feedback rating may have no impact on the matching scores of future messages. 
         [0032]    A scoring engine  80  may assist in the matching process by choosing the recipients  22  of the message  33 . The scoring engine  80  may compute a matching score between the tags of each user  60  and the list of words (tags) entered into the sharing condition. The tagging information  65  of users  60  can be retrieved from the people-tagging system  40 . One exemplary computation used by the scoring engine  80  may be calculated according to the following: L may represent the list of keywords  55  in the sharing condition of a message  33  represented by M and T may represent the set of tags  65  of a user  60  in the people-tagging system  40 . In some cases, the user  60  may be tagged with the same keyword multiple times. Generally speaking, the more times a user  60  has been tagged with a keyword t, the higher the confidence that the user  60  is relevant to the keyword t. The number of terms in the intersection of L and T that a user  60  has been tagged at least k times may be represented by the equation: N(L∩T, k). Thus, a matching score represented by C(M, user) between the message M and the user  60  may be computed as follows: 
         [0000]        C ( M ,user)= w 1 ×N ( L∩T, 1)+ w 2 ×N ( L∩T, 3) 
         [0033]    where w 1 , w 2 &gt;0. Thus, for every term in L that the user  60  has been tagged, an amount w 1  may be added to the matching score. Also, for every term in L that user  60  has been tagged at least 3 times, a bonus w 2  may be added to the matching score. 
         [0034]    After the scoring engine  80  computes the matching scores for all users, the recipient selection tool  50  may sort the potential recipients  22  based on the matching scores and delivers the message  33  to the top number of recipients  22  in the sorted list. The sender  25  may specify the value for the top number to control the number of recipients  22  of the message  33 . If the sender  25  does not specify the desired number of recipients  22  of the message  33 , the system  10  may deliver the message  33  to everyone with a matching score greater than 0. In such a case, sorting is not needed. During an approximated matching process, the related tags/synonyms engine  70  may further refine recipient selection by taking synonyms and closely-related terms into account when computing the matching scores. 
         [0035]    Referring to  FIG. 3 , a method  200  illustrates an exemplary series of steps for creating a sharing condition. The sharing condition of a message  33  may specify what kinds of users  60  the message is targeting. A sharing condition may include three components: a keyword expression  55 , a tag filter  56 , and an option for approximate matching  57 . In step  210 , the message  33  may be tagged with a list of keywords. In operation, the sender  25  of the message  33  may tag the message with a list of keywords manually. The keywords the sender  25  chooses should be keywords related to the message  33  or related to the stored tag information of potential recipients  22  who may be interested in the message  33 . For instance, if the message  33  is an announcement of an impending talk on cryptography, the sender  25  may tag the message  33  with the keywords “cryptography” and “security”. If the sender  25  thinks that users  60  associated with the topic of information theory may also be interested in the talk, the sender  25  may tag the message  33  with the keywords “information theory” as well. 
         [0036]    One may also appreciate that instead of tagging the message  33  manually, the sender  25  may alternatively let the recipient selection tool  50  automatically tag the message  33 . The recipient selection tool may be able to extract keywords from the message  33  and tag the message  33  with those keywords. For example, to extract keywords from the message  33 , the recipient selection tool  50  may compute the Term Frequency—Inverse Document Frequency (TF-IDF) weight of every word appearing in the message  33  and then picks the ones with the highest weights as keywords. Additionally, the recipient selection tool  50  may add a bonus to the weights of words that are often used as tags by users  60  as gleaned from past message records or people-tagging statistics. Thus, words that are often used as tags by the users  60  may have a better chance to be automatically selected as keywords. Any method to extract keywords from the message can be used and is within the scope. Additionally, the sender  25  may modify the list of keywords automatically selected by the recipient selection tool  50  before sending the message  33 . 
         [0037]    In step  220 , a keyword expression is created by using “AND” or “OR” to connect the list of keywords selected in step  210 . If the sender uses “AND” to connect the keywords, then a recipient satisfies the expression only if her tags match all the keywords in the expression. By default, the list of keywords are connected using “OR”. 
         [0038]    In step  230 , the sender  25  may create a sharing condition by choosing a tag filter  56  option for the message  33 . A tag filter  56  may determine what kinds of tags  65  in the people-tagging system  40  will be considered when the recipient selection tool evaluates potential recipients  60  against the sharing condition  38 . Exemplary tag filters may include a “self-specified” option, a “delegation” option, and an “aggregated” option. The “self-specified” tag filter may consider the tags  65  applied by the sender  25  to others. The “delegation” tag filter may consider the tags  65  applied by the sender  25  itself or by those users  60  used to be tagged by the sender  25 . For example, assuming that a user  60  named Alice is the sender  25  and a user  60  named Bob has previously been tagged by Alice, then, with “delegation” tag filter, the tags  65  in the people-tagging system  40  that are applied by Alice or Bob count, while the tags  65  applied by another user  60  named Carl do not count if Alice has never tagged Carl in the people-tagging system  40 . The “aggregated” tag filter may allow all the tags  65  in the people-tagging system  40  to be considered. The “self-specified” filter allows the sender  25  to fully control the set of recipients  22  of the message  33 , while the other two filters utilize collaborative efforts in determining recipients  22 . 
         [0039]    Additionally, the sender  25  may, in step  240 , choose the option of approximated matching. If the option for approximated matching is selected, synonyms and closely-related terms used in tags  65  may be identified and taken into account when the recipient selection tool  50  evaluates a recipient&#39;s  22  tags  65  against the sharing condition of the message  33 . For example, “www” and “world wide web” would be exemplary keywords that may be considered synonyms and may thus, be considered to match each other. If approximated matching is not selected, the recipient selection tool  50  may perform exact string matching where the exemplary keywords “www” and “world wide web” may be considered different and thus, not matching one another. 
         [0040]    Besides message distribution, exemplary embodiments of the present invention may comprise another method of sharing information/resources. In another exemplary embodiment, a method may control electronic access to a file resource stored on a host server by granting access to users whose tags in a people-tagging system satisfy the sharing condition of the file. 
         [0041]    Referring again to  FIG. 1 , the system  10  may also be employed to control electronic access to a resource file on a host server. In the following, the sender  25  is understood as the source of the file resource  35  and the recipients  22  are users who may request to access the file resource  35 . It is also to be understood that in this type of deployment, the system  10  may include a host server  20  instead of an e-mail server, an access control tool  50  instead of a recipient selection tool, and a people-tagging system  40 . 
         [0042]    In an exemplary embodiment, referring to  FIG. 4 , a series of steps illustrate a method  300  of controlling access for the sharing of resource files  35  by placing them on a host server  20 . In this embodiment, the access control tool  50  is installed on the same server as the host  20 . In step  310 , a source  25  places the resource file  35  on the host server  20 . In step  315 , a sharing condition  38  is specified by the resource  25  for the resource file  35  that should be satisfied before allowing access to the resource file  35 . In step  320 , a potential recipient  22  requests access to the resource file  35  on the host server  20 . In step  330 , the access control tool  50  may retrieve the potential recipient  20  tagging information  65  from the people tagging system  40 . In step  340 , the access control  50  may perform an evaluation on the potential recipient&#39;s  22  tagging information  65  against the sharing condition  38  of the resource file  35 . Use of the synonym/related tag engine  70  may be employed during step  330  as well. A decision is made in step  350  to see if the potential recipient&#39;s  22  tagging information  65  satisfies the sharing condition  38 . A no result denies the potential recipient access to the resource file  35  in step  360  while a yes result grants the recipient  22  access to the resource file  35  in step  370 . 
         [0043]    Referring to  FIG. 5 , another exemplary embodiment is illustrated according to a series of steps in a method  400 . The method  400  may be employed when the people tagging system  40  and the access control tool  50  are physically on the same server. In step  410 , a source  25  places the resource file  35  on a host server  20 . In step  415 , a sharing condition is specified for the resource file  35  that should be satisfied before allowing access to the resource file  35 . In step  420 , a potential recipient  22  may request access to the resource file  35  on the host server  20 . The host server  20  may forward the potentials recipient&#39;s  22  request and the sharing condition  38  associated with the resource file  35  to the people tagging system  40 . In step  430 , the access control system  50  may perform an evaluation on the potential recipient&#39;s  22  tagging information  65  against the sharing condition  38 . Use of the synonym/related tag engine  70  may be employed during step  430  as well. A decision is made in step  440  to see if the potential recipient&#39;s  22  tagging information satisfies the sharing condition. The decision is then sent to the host server  20 . A no result denies the potential recipient  22  access to the resource file  35  in step  450  while a yes result grants the recipient  22  access to the resource file  35  in step  460 . 
         [0044]    Referring to  FIG. 6 , in still yet another exemplary embodiment, a method  500  is illustrated according to the following exemplary series of steps. The method  500  may be employed when the access control tool  50  is installed on the same server as the host  20  and the people-tagging system  40  upon receiving a user request can issue a tag credential  84  based on a user&#39;s tagging information  65 . Each potential recipient  22  wishing to access the host server  20  may request a tag credential  84  prior to requesting access. The people-tagging system  40  may issue the user&#39;s tag information  65  as comprising his tag credential  84 . The tag credential  84  may be stored by the corresponding potential recipient  22 . In step  510 , the source  25  places the resource file  35  on the host server  20 . In step  515 , a sharing condition is specified for the resource file  35  that should be satisfied before allowing access to the resource file  35 . In step  520 , a potential recipient  22  requests access to the resource file  35  on the host server  20 . In step  530 , the potential recipient&#39;s tag credential  84  may be presented to the host server  20 . In step  540 , the access control tool  50  may perform the evaluation of the potential recipient&#39;s  22  tagging information  65  presented in his credential against the sharing condition  38  of the resource file  35 . A decision is made in step  550  to see if the potential recipient&#39;s  22  tagging information  65  matches the sharing condition. A no result denies the potential recipient  22  access to the resource file  35  in step  560  while a yes result grants the recipient  22  access to the resource file  35  in step  570 . 
         [0045]    The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be performed substantially concurrently, or the blocks may sometimes be performed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. 
         [0046]    It should be understood, of course, that the foregoing relate to exemplary embodiments of the invention and that modifications may be made without departing from the spirit and scope of the invention as set forth in the following claims.