本申请涉及同时提交的题为“Method,System,and Apparatus for Creating toKnowledge Interchange Queries”(用于创建知识互换查询的方法、系统和装置)(律师案号60001 0385US01)和题为“Method,System,and Apparatus for MaintainingUser Privacy in a Knowledge Interchange System”(用于在知识互换系统中维护用户私密的方法、系统和装置)(律师案号60001 0387US01),两者都在此特别引入作为参考。
具体实施方式
现在参看附图,其中类似标号表示类似元件,将描述本发明各方面。图1和相应的讨论旨在提供一种本发明各实施例可在其中实现的适当计算环境的简要一般说明。尽管本发明将在结合运行于个人计算机操作系统上的应用程序模块执行的程序模块的一般上下文中进行说明,本领域技术人员将理解本发明也可结合其它类型的计算机系统和程序模块实现。
通常,程序模块包括执行特定任务或实现具体抽象数据类型的例程、程序、组件、数据结构、以及其它类型的结构。此外,本领域技术人员将理解本发明可在其它计算机系统配置中实践,包括手持式装置、多处理器系统、基于微处理器的或可编程的电器使用品、小型计算机、大型计算机等等。本发明还可在任务由经通信网络链接的远程处理装置执行的分布式计算环境中实践。在分布式计算环境中,程序模块可被置于本地和远程存储器存储设备中。
现在参看图1,将描述用于本发明若干实施例的说明性操作环境。特别地,图1示出根据本发明各实施例提供的知识互换(“KI”)系统的各方面。KI系统是便于寻找可帮助用户(“搜索者”)与信息或其它人联系的人(“联系者”或“专家”)的过程的客户机-服务器系统。如在此将要描述的,联系者具有作为其在KI系统中参与的结果而强加给他们的附加负担。特别地,由于他们帮助其它人所以他们是该系统中最重要的人类元素。因此,在此提供的KI系统在KI系统操作的许多方面提供联系者控制。例如,联系人在他们决定帮助之前可选择匿名。此外,如果联系者决定不帮助,他们的身份将永远不会泄露给搜索者。如将要在此描述的,KI系统还帮助联系者更快地找到他们自己的数据,从而减少某些情形中帮助他人的负担并多少帮助他们自己一些。
图1示出用于由本发明各实施例提供的KI系统的说明性操作环境。如图1所示,网络4与众多客户计算机2A-2C以及服务器计算机6相互连接。应理解,网络4可包括任何类型的计算网络,包括局域网(“LAN”)或诸如因特网的广域网(“WAN”)。网络4提供用于使能任何数量的客户计算机2A-2C和服务器计算机6之间的通信的介质。尽管在图1中示出三个客户计算机2A-2C,应理解,本发明被视为可使用任何数量的客户计算机。
如以下将参照图2详细描述的,客户计算机2A-2C的每一个包括通用的台式、膝上型、书写板式或其它类型的能够执行一个或多个应用程序的计算机。特别地,根据本发明各个实施例,计算机2可操作以执行操作系统和一个或多个桌面应用程序。例如,客户计算机2A-2C可操作以执行字处理程序、电子制表程序、演示程序、web浏览器程序、即时消息传送客户机程序、个人信息管理程序、以及其它类型的应用程序。
如将在以下更详细描述的,客户计算机2A-2C还可操作以执行监视用户和在客户计算机2A-2C上执行的各个程序之间交互的KI客户机程序。通过监视过程,KI客户机程序可标识用户感兴趣的项目,诸如电子邮件(“e-mail”)消息、文档、网页、以及即时消息。基于感兴趣项目,KI客户机程序可创建对用户兴趣和联系人建模的KI轮廓文件。兴趣以关键字和名词短语的形式捕捉。名词短语是从名词形成的短语。对于每个关键字和联系人,KI客户机程序估算关系度量的强度。当KI客户机程序发现用户对新标题或联系人感兴趣,或者如果用户对联系人或标题的密切关系改变较大时,它向服务器计算机6发送KI轮廓文件。KI客户机程序还使用户能编辑该模型并删除或添加关键字或联系人。如在以下将要详细描述的,来自客户计算机2A-2C的每一个的KI轮廓文件由服务器计算机6集聚并处理。然后经集聚的轮廓文件数据由服务器计算机6使用以响应于对人或信息的各类查询。
现在参看图2,将描述用于本发明各实施例的客户计算机2的说明性计算机体系结构。在图2中所示的计算机体系结构示出常规的台式、膝上型或书写板计算机,它们包括中央处理单元8(“CPU”)、包括随机存取存储器18(“RAM”)和只读存储器(“ROM”)20的系统存储器12、以及将存储器耦合到CPU 8的系统总线10。包含有助于如起动时在计算机元件间传送信息的基本例程的基本输入/输出系统(BIOS)存储在ROM 20中。计算机2还包括用于存储操作系统24、应用程序26和其它程序模块的大容量存储装置14,该装置将在以下参照图3进行更详细描述。
大容量存储装置14通过连接到总线10的大容量存储控制器(未示出)连接到CPU 8。大容量存储装置14及其相关联计算机可读介质为计算机2提供非易失性存储。尽管包含在此的计算机可读介质的描述指向诸如硬盘或CD-ROM的大容量存储装置,本领域技术人员应理解计算机可读介质可以是计算机2能访问的任何可用介质。
作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性介质、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)或其它光学存储技术、磁盒、磁带、磁盘存储器或其它磁性存储设备、或任何其它可用于存储所需信息并可由计算机2访问的介质。
根据本发明各实施例,计算机2可使用通过诸如因特网的TCP/IP网络4与远程计算机的逻辑连接在网络化环境中操作。计算机2可通过与总线10连接的网络接口单元16与网络4相连。应理解,网络接口单元16也可被用于与其它类型的网络和远程计算机系统相连。计算机2还可包括输入/输出控制器22,用于接收和处理来自包括键盘、鼠标或电子笔(未在图2中示出)的众多装置的输入。类似地,输入/输出控制器22可提供对显示屏、打印机、或其它类型输出装置的输出。
应当理解,服务器计算机6可包括在图2中示出的许多或全部常规计算组件。服务器计算机6还可包括服务器计算机的操作所必须或需要的其它硬件和软件组件。例如,服务器计算机可包括操作系统和在服务器计算机的操作中利用的其它程序,诸如web服务器程序、电子邮件服务器程序、以及其它类型的程序。服务器计算机6还可包括其它硬件装置以改进服务器计算机6的性能,诸如附加存储器、冗余大容量存储装置、以及本领域技术人员众所周知的其它类型的服务器硬件。
现在参看图3,将描述有关由客户计算机2和服务器计算机6使用的各个软件组件的其它细节。如上简述,众多程序模块和数据文件可被存储于客户计算机2的大容量存储装置14和RAM 18中,包括适于控制网络化个人计算机的操作系统24,诸如来自华盛顿州Redmond微软公司的Windows XP操作系统。
客户计算机2的大容量存储装置14和RAM 18还可存储一个或多个程序模块。特别地,大容量存储装置14和RAM 18可存储包括一个或多个应用程序的应用程序套件27。例如,应用程序套件27可包括用于收发电子邮件消息、用于组织会议、联系人和任务、用于执行其它功能的个人信息管理器(“PIM”)应用程序28。根据本发明一实施例,PIM应用程序28包括来自华盛顿州Redmond微软公司的OutlookPIM程序,但也可使用来自其它制造商的其它PIM程序。
应用程序套件27还可包括用于创建、编辑、以及查看电子文档的字处理应用程序30。根据本发明一实施例,字处理应用程序30包括来自华盛顿州Redmond微软公司的Word字处理应用程序,但也可使用来自其它制造商的其它字处理程序。应用程序套件27还可包括用于创建、编辑、以及查看电子演示的演示应用程序34。根据本发明一实施例,演示应用程序34包括来自华盛顿州Redmond微软公司的Powerpoint演示应用程序,但也可使用来自其它制造商的其它演示程序。
应用程序套件27还可包括用于创建、编辑并查看电子表格的电子制表应用程序32。根据本发明一实施例,电子制表应用程序32包括来自华盛顿州Redmond微软公司的Excel电子制表应用程序,但也可使用来自其它制造商的电子制表程序。
应理解,客户计算机2可执行除应用程序套件27之外的其它类型程序。例如,客户计算机2可执行用于与其它计算机即时传送消息的即时消息传送客户机应用程序。客户计算机2还可执行用于查看网页并与之交互的web浏览器应用程序36。根据本发明一实施例,web浏览器程序36包括来自华盛顿州Redmond微软公司的Internet Explorer应用程序。然而,应理解可使用来自其它制造商的其它web浏览器程序。
如图3所示,众多与KI系统相关的软件组件也被存储于客户计算机2中并在其上执行。特别地,执行与在客户计算机上执行的操作系统24及应用程序27和36通过接口相连的KI插件38。KI插件38监视用户与操作系统和应用程序的交互,以标识可描述用户兴趣或联系人的感兴趣项目。例如,KI插件38可标识用户创建或阅读的文档、用户发送并接收的电子邮件消息、用户发送并接收的即时消息、用户访问的网页、用户执行的剪贴、用户创建的文件和文件夹名字、以及实际上用户和在客户计算机2上执行的操作系统或应用程序之间的任何其它交互。KI插件还可标识在特定文档和网页的停留时间,以确定用户对特定文档或网页的感兴趣程度。KI插件存储在监视客户数据库44期间标识的感兴趣项目。
KI索引引擎48也可通过接口与在客户计算机上执行的操作系统24和应用程序27和36相连。KI索引引擎48还监视用户与操作系统和应用程序的交互,以标识可描述用户兴趣或联系人的感兴趣项目。KI索引引擎48还执行对感兴趣项目的处理以创建逆向索引50。该逆向索引50包含描述字在所收集的所有感兴趣项目中出现的频率的数据。逆向索引50还包含每个字在每个感兴趣项目中的位置。因此,可用一个字来搜索逆向索引50,以标识它在感兴趣项目中出现的次数并确定该字出现在感兴趣项目中的地方。
KI分析引擎52也可在客户计算机2上周期性地执行。KI分析引擎52使用KI客户数据库44和逆向索引50的内容并执行处理以为客户计算机2的用户创建KI轮廓文件46。KI轮廓文件46标识用户的兴趣、与用户通信的人、以及与他人通信的主题。更具体地,KI轮廓文件46包括标识客户计算机用户兴趣的一个或多个关键字和名词短语。KI轮廓文件46还包括与客户计算机用户通信的一个或多个人的身份。对于每个联系人,提供描述与联系人所作通信的主题的一组关键词。关键字、名词短语、以及联系人还包括描述其重要性或其程度的权重值。以下将提供有关KI分析引擎52在创建KI轮廓文件46中执行的各个操作的其它细节。
根据本发明各实施例,提供KI桌面应用程序40用来控制KI客户程序的操作的各个方面。例如,通过KI桌面应用程序40用户可提供众多私密优选42,它们描述可在客户计算机上收集什么数据、可如何使用数据、以及有关匿名的其它优选。以下将提供有关可由用户指定的私密优选42及其使用的其它细节。KI桌面应用程序40还提供一界面,用于向客户计算机2和服务器计算机6查询信息和人。以下还将提供有关搜索过程的其它细节。
根据本发明各实施例,KI桌面应用程序40可操作以周期性地经网络4将用户的KI轮廓文件46传送给在服务器计算机6上执行的KI服务器组件60。对KI轮廓文件46的更新通常在对轮廓文件有重大改变时传送。用户的私密优选42也被传送给服务器计算机6。当KI轮廓文件46在服务器计算机6上接收时,该轮廓文件被存储在轮廓文件数据库64中。来自参与KI系统的所有客户计算机的轮廓文件在轮廓文件数据库64中集聚。可对KI轮廓文件集执行其它处理,例如,在关键字的整体消除噪音字。该处理可通过分析引擎66来执行。
KI服务器组件60也可操作以接收和响应来自KI桌面应用程序40的查询请求。响应于这种请求,KI服务器组件60在轮廓文件数据库60中查询所需信息并将搜索结果返回给请求的客户计算机。如在以下将要详细描述的,KI系统的某些参与者可能需要在他们希望帮助另一参与者之前保持匿名。在这种情形中,服务器计算机6在搜索者和匿名联系者之间提供一中介通信过程是必要的。SMTP服务器62被用来在中介通信过程期间收发电子邮件消息。以下将描述有关服务器计算机6在接收和响应搜索查询并执行中介通信时执行的过程的其它细节。
现在参看图4,将描述若干例程400A和400B,其中示出由客户计算机2和服务器计算机6分别执行的用于提供KI系统的过程。当阅读在此给出的对例程的讨论时,应理解本发明各实施例的逻辑操作被实现为(1)一系列在计算系统上运行的计算机实现动作或程序模块和/或(2)计算系统内相互连接的机器逻辑电路或电路模块。实现是依赖于实现本发明的计算系统的性能要求的选择。因此,在此讨论的并组成本发明各实施例的状态图中示出的各逻辑操作,被分别称为操作、结构化装置、动作或模块。本领域技术人员将理解,这些操作、结构化装置、动作和模块可用软件、固件、专用数字逻辑、及其任意组合来实现而不背离在所述权利要求中阐述的本发明的精神和范围。
例程400A示出由参与KI系统的客户计算机2A-2C执行的各个操作。例程400B示出由服务器计算机6执行的各个操作。例程400A在操作402上开始,其中通过KI桌面应用程序40接收来自用户的私密优选42。私密优选42指定可由KI系统收集的数据类型、可如何使用数据、以及其它类型的私密相关优选。私密优选42从客户计算机2传送到服务器计算机6。在例程400B的操作450上,服务器计算机6接收并存储私密优选42。以下参照图5提供有关由用户指定的私密优选类型及其使用的其它细节。
从操作402,例程400继续到操作404,其中KI客户机程序执行数据收集、建立KI轮廓文件46、并将KI轮廓文件46上载到服务器计算机6。服务器计算机6在例程400B的操作452上接收并存储KI轮廓文件46。以下将参照图6提供有关数据的收集以及KI轮廓文件46的创建的其它细节。从操作452,例程400B继续到操作454,其中服务器计算机6执行对轮廓文件数据库的过程外的处理。例如,服务器计算机6可从轮廓文件数据库中移除噪音字。以下参照图12提供有关该过程的其它细节。
从操作404,例程400A继续到操作406,其中在KI桌面应用程序40上接收来自用户的搜索查询70。首先该搜索查询70可在客户计算机2上执行以查找本地存储的任何相关信息。然后可将该查询70传送给服务器计算机6,其中它由服务器计算机6在例程400B的操作456上接收和处理。以下将参照图11提供有关在客户计算机上接收并处理搜索请求的其它细节。以下将参照图13更详细地描述有关在服务器计算机6上接收并处理搜索请求的其它细节。
在操作458,服务器计算机6将搜索结果72传送给客户计算机2。然后客户计算机2在操作408上显示搜索结果。该搜索结果可标识用户感兴趣的信息,诸如文档、网页等。搜索结果还可标识可能具有有助于用户的信息的联系人。根据本发明一实施例,标识为有帮助的联系人可指定对于某些关键字或联系人他们想要保持匿名。如果在搜索结果72中标识了这种联系人,则该联系人将在搜索结果中被标识为匿名。然后客户计算机2的用户可在操作410请求与匿名联系人连接。如果接收到这种请求,服务器计算机6在操作460上执行与匿名联系人的中介通信过程。
根据中介通信过程,KI服务器6将代表提交搜索请求的用户向匿名联系人传送帮助请求。该请求可以具体标识或不标识提交搜索请求的用户。然后专家用他们是否向提交搜索查询的用户提供帮助的指示来回答该请求。如果专家将提供帮助,则向作出搜索查询的用户传送专家的身份。否则,向作出搜索查询的用户传送将不提供帮助的指示。然后作出搜索查询的用户可选择联系所提供搜索结果中的另一个人。以下将提供有关中介通信过程的其它细节。
从操作410,例程400A分支回到操作402,其中继续数据收集、可更改私密优选、并可再次处理和接收搜索请求。从操作460,例程400B继续回到操作450,其中接收并存储私密优选和经更新的KI轮廓文件、接收并处理搜索查询、并可执行中介通信过程。以下参照图5-13详细描述有关各个过程的每一个的其它细节。
现在参看图5,将描述有关接收和使用来自KI系统参与者的私密优选的其它细节。如上所述,KI桌面应用程序40创建一个关键字和名词短语列表,该列表估计参与用户的感兴趣领域及其感兴趣程度。KI桌面应用程序40还创建一个商务/社会联系人列表,该列表估计用户的社会网络及其关系的相关联程度。该信息以KI轮廓文件46的形式发送给KI服务器6。服务器计算机6使用该信息来匹配搜索者和可能有帮助的联系者。联系搜索者和联系者的过程当且仅当联系者对该过程感到满意并继续成为该过程的一部分时才可进行。为了创建KI系统中每个参与方对所收集信息将以私密方式维护的满意程度,KI系统向联系者提供众多控件使得联系者可设置有关其个人信息的收集和使用的私密优选。这些特征在图5中示出。
例程500在操作502开始,其中接收来自客户计算机2的用户的有关匿名的优选。在这点上,参与者可选择在他或她决定帮助之前保持匿名而不让搜索者知道他们的身份。KI服务器6执行一中介通信过程以提供搜索者和目标之间的联系而不让搜索者知道目标的身份。目标可选择拒绝该请求。这样,搜索者可继续下一可能联系者。在联系者使搜索者与诸如文档的知识或其它人联系时也进行该过程。
从操作502,例程500继续到操作504,其中可接收来自参与者的有关要在客户计算机2上收集的信息的优选。在这点上,参与者可选择在客户机计算机2上执行的收集过程中排除任一类型或类别的项目。例如,用户可指明从收集中排除保密的或代理/客户特权电子邮件。类似地,参与者可指明从收集中排除来自特定电子邮件地址或域的电子邮件,诸如可能从个人联系人中接收的电子邮件。类似地,用户可从收集中排除来自特定即时消息联系人的即时消息。这样,用户可具体地设置可在客户计算机2上监视的对信息类型的界限。
从操作504,例程500继续到操作506,其中用户可指定一个或多个禁止关键字和联系人。通过禁止关键字和联系人,计算机2的用户可确保这些关键字或联系人不传送到服务器计算机6并存储在轮廓文件数据内。从操作506,例程500继续到操作508,其中可接收来自用户的有关联系频率的优选。这样,用户可选择每周(或其它时段)内仅联系若干次。通过使用这种私密设置,服务器计算机6将在指定时期内仅联系用户指定次数。从操作508,例程500继续到操作510。
在操作510,允许用户指定有关公共和私密关键字和联系人的私密优选。公共关键字和联系人是应向所有用户公布的那些联系人。另外,特定关键字或联系人可仅对参与者的朋友或对参与者朋友的朋友公布。或者,参与者可将关键字或联系人标识为私密字,它在用来标识参与者时将导致该参与者的名字被处理为匿名。为了通过已标识为私密的关键字或联系人与参与者联系,必须匿名地通过KI服务器6执行通信。在此所述的中介通信过程提供用于与匿名参与者通信的方法。以下提供有关中介通信过程的其它细节。从操作510,例程500继续到操作512,其中它返回到如上参照图4所述的操作404。
现在参看图6,将描述用于在客户计算机2上收集数据、建立KI轮廓文件46、并将轮廓文件上载到服务器计算机6的说明性例程600。例程600在操作602开始,其中在客户计算机2上收集数据。如上所述,通过监视用户与在客户计算机上执行的程序的交互来收集数据,以标识用户的感兴趣项目。如上所述,感兴趣项目可包括字处理文档、电子表格文档、演示文档、电子邮件消息、即时消息、网站、以及在此所述的其它类型的信息。也如以上的简述,KI分析引擎52索引所有的感兴趣项目以创建索引50。索引50包括与感兴趣项目相关联的内容和元数据,诸如在电子邮件的To、From、CC和其它域内列出的人。该数据形成了分析专家意见和社会网络的基础。根据本发明各实施例,KI客户机软件还可获得来自简便目录帮助协议(LDAP)服务器的有关用户(用户的名字、职位、管理者)的公开可得到的信息和其它公开可得到的信息。使用该数据,KI分析引擎52在操作604创建索引50。
从操作604,例程600继续到操作606,其中对索引内容执行分析以建立KI轮廓文件46。如以下将要参照图7详细描述的,可对索引中的内容执行社会分析、兴趣分析、以及名词短语分析以创建传送给服务器计算机6的KI轮廓文件46。以下将参照图7描述有关该过程的其它细节。
从操作606,例程600继续到操作608,其中确定自从上次将轮廓文件传送给服务器计算机6后在KI轮廓文件46内是否存在新信息。如果该轮廓文件内不存在新信息,则例程600返回到602,其中继续数据收集和分析过程。然而,如果KI轮廓文件46内存在新信息,例程600继续到操作610,其中可询问用户是否应将新信息上载到服务器计算机6。然后例程600继续到操作614。
在操作614,确定是否授权用户将KI轮廓文件46的新信息上载到服务器计算机6。如果用户未获传送新信息的授权,则例程600返回到操作602,其中数据收集和分析过程继续。如果用户已获传送KI轮廓文件的新信息的授权,则例程600继续到操作616,其中新信息被上载到服务器计算机6并存储在轮廓文件数据库64中。从操作616,例程600返回到操作602,其中数据收集和分析过程继续。
现在参看图7,将提供有关在客户计算机2上执行数据分析以建立KI轮廓文件46的过程的其它细节。该例程700在702开始,其中标识在从上次建立KI轮廓文件46以来产生的每个新的感兴趣项目。然后例程700继续到操作704,其中指向当前项目的暂时变量被设置为已标识项目中的第一个感兴趣项目。这样,可以下述方式分别处理每个感兴趣项目。
从作704,例程700继续到操作706,其中对当前项目执行社会分析。社会网络分析标识在用户和他人之间通过电子邮件消息、日程安排会议、以及即时消息的通信的模式。如下将要参照图8详细描述的,该分析检查每个电子邮件消息、会议请求、以及即时消息,并标识在各个标题域中列出的联系人。来自所有文件夹的所有电子邮件消息和会议在考虑之列。以下将参照图8提供有关该过程的其它细节。
从操作706,例程700继续到操作708,其中对当前项目执行兴趣分析。该兴趣分析检查每个感兴趣项目的内容及其主题。以下参照图9提供有关兴趣分析的其它细节。
从操作708,例程继续到操作710,其中存储社会分析和兴趣分析的结果。然后,例程700继续到操作712,其中确定是否还要处理其它感兴趣项目。如果还要处理其它感兴趣项目,例程700继续到操作714,其中指向当前项目的暂时变量被增至要处理的下一感兴趣项目。然后例程700返回到操作706,其中对当前项目执行社会分析和兴趣分析。
如果在操作712确定无需处理其它感兴趣项目,则例程700从操作712分支到操作716。在操作716,由兴趣分析标识的关键字基于时间的流逝而老化。该分析考虑这样的观点,即过去出现的字在目前比近来出现的其它字相关性更少。然后集成继续到操作718,其中由社会网络分析标识的联系人基于非对称关系的存在而消除。这可对例如不包括在发送者和接收者之间的往返通信的电子邮件消息出现。例如,这可移除垃圾消息发送者和发布列表发送者。类似地,也可移除仅在具有非对称关系的感兴趣项目中包含的关键字。
从操作718,例程700继续到操作720,其中通过兴趣分析标识的关键字也可使用一个或多个已编程因子剪除。已编程因子可用KI客户机软件包括而其它程序因子可在后来由定制软件开发者添加。根据本发明各实施例,已编程因子可包括判断在扩展时间段上关键字的相关性的连贯性因子。为应用连贯性因子,可概括每个电子邮件消息中关键字的相关性以形成用户的随时间流逝的专家意见。这反映了一个观点,即如果特定关键字显现为在扩展时间段内与一人相关,则该关键字在较高兴趣范围内。
另一可使用的已编程因子是扩散索引。扩散索引被定义为某人就有关特定主题通信的人数。扩散索引反映了这样的观点,即如果某人就一主题与多人通话,则该用户更可能是KI系统内的联系人。当响应于搜索查询寻找可能帮助者时,这在服务器计算机6的处理中变得相关。
另一可在操作702使用的已编程因子是文件夹因子。文件夹因子将在文件夹名字中出现的所有非标准字标记为KI系统的可能关键字。当相同的字在文档和电子邮件消息中出现时,可增加这些字的相关性。该文件夹因子反映了这样的观点,即用户在计算机2上创建文件夹时可能利用感兴趣的关键字。
另一可使用的已编程因子将发布列表处理为个人。如本领域技术人员所知,发布列表包括可将信息同时发给两人或多人的邮寄列表。通过将发布列表处理为个人,可对出现发布列表的所有电子邮件执行在此所述的相似分析。这使得捕捉在发布列表上所提及人之共享兴趣的关键字得以标识。应理解,在操作720也可使用其它已编程因子。
从操作720,例程700继续到操作722,其中对已标识为与用户相关联的关键字列表执行名词短语分析。名词短语分析尝试标识捕捉用户兴趣的名词短语。该观点是捕捉比关键字更高层次的概念。以下将参照图10描述有关用于执行名词短语分析的过程的其它细节。从操作722,例程700继续到操作724,其中它返回到以上参照图6描述的操作608。
现在参看图8,将提供有关由本发明各实施例执行的社会网络分析的其它细节。该例程800在操作802开始,其中标识与感兴趣项目相关的所有人。例如,标识在电子邮件信息的标题域中(诸如From、To、CC、BCC域)列出的每个人。或者,参照会议要求,标识被列为参加会议的每个人。一旦已标识与感兴趣项目相关的每个人,例程800从操作802继续到操作804。
在操作804,依赖于个人与项目的关系赋予与项目相关的每个人权重。例如,可向列于电子邮件信息不同域的用户提供不同的权重。例如,可给予列于From域的用户比列于To域的用户更高的权重。可给予列于cc域的用户比列于Bec域的用户更高的权重,等等。这考虑到电子邮件消息内列出的人之间有商务或社会关系,并考虑其程度可与人出现在电子邮件信息的各个域成比例的事实。权重被赋予,且出现在列表上的每个人获得与在用户和已标识人之间的社会或商务关系相关联的权重。
从操作804,例程800继续到操作806,其中赋予与项目相关的每个人的权重被标准化到赋予该项目的总权重。这考虑到这样的事实,即随着列在电子邮件信息上人数的增加,消息与参与者紧密性的相关性可下降。列在电子邮件上的人越多,他们作为特定项目的结果致力于社会网络的权重越小。
根据本发明各实施例,与特定项目相关联的权重还可随时间下降。这考虑到这样的观点,来自遥远过去的电子邮件消息比最近的电子邮件更少作为人们之间亲密度的指示。作为上述社会网络分析的结果,KI轮廓文件估计用户和每个用户联系人之间的关系程度。一旦完成该过程,例程800从操作806继续到操作808,其中它返回到以上参照图7描述的操作708。
现在参看图9,将描述有关由客户计算机2执行的兴趣分析以便创建KI轮廓文件46的其它细节。该兴趣分析检查每个感兴趣项目的内容。该分析枚举每个感兴趣项目并检查内容和主题。兴趣分析的结果是关键字和每个关键字相应于用户感兴趣程度的权重的列表。
例程900在操作902开始,其中标识现有感兴趣项目中的关键字。在操作904,用于在一类文本中标记部分谈话的软件程序可用来标识当前项目中的各个谈话部分。然后例程900继续到操作906,其中可从当前项目移除各类字。例如,可移除向“添加”和“已添加”的等效字,并可略去其它非常普通的字。
从操作906,例程900继续到操作908,其中可基于某些关键字相对感兴趣项目的位置而分配附加的权重。例如,可向在当前项目的主题行、标题、题目、或文件夹名称中的字分配附加权重。
从操作908,例程900继续到操作910,其中基于字的出现频率来分配每个关键字的权重。这考虑到这样的观点,即在感兴趣项目中不频繁出现的字应视为重要。还考虑到出现太频繁的字每出现一次具有更低权重的观点。为了执行该过程,出现在感兴趣项目中字的权重在用户索引数据中出现的字集上标准化。
从操作901,例程900继续到操作912,其中每个字的权重基于其在当前项目中的位置。例如,在电子邮件消息主题行中出现的字不随其在主题或主体中的位置而衰减。然而,只在电子邮件主体中出现的字会随其在主体中的位置而衰减。字离主体起点越远,字衰减越多。这考虑到这样的观点,即人们将较重要的字和想法置于电子邮件消息的标题和较前部分。从操作912,例程900继续到操作914。
在操作914,将当前项目内的关键字标识为具有比预定数大的权重的那些字。为了执行该功能,合计当前项目中所有字的权重。仅具有大于预定数的权重的字被选为当前项目的关键字。一般而言,这反映了这样的观念,即每个感兴趣项目仅有少数一些关键字。
从操作914,例程900继续到操作916,其中紧接着在已标识关键字前后出现的字被存储用于在名词短语分析中使用。以下参照图10描述有关名词短语分析的其它细节。从操作916,例程900继续到操作918,其中它返回到如上参照图7描述的操作710。
现在参看图10,将描述有关由客户计算机2在创建KI轮廓文件46时执行的名词短语分析处理的其它细节。一旦已估计与用户相关联的关键字列表,就执行名词短语分析。名词短语分析尝试找到捕捉用户兴趣的长度为2或3个字的名词短语。这使得名词短语分析能捕捉比单个关键字更高层次的概念。
例程1000在操作1002开始,其中根据其出现频率来标识名词短语。为了执行该过程,分析每个感兴趣项目并检查先前标识的关键字。标识并分析在每个关键字前后出现的字以找到彼此相连出现的字类。然后基于出现在短语中的字的总体相关性对字类重新排序。还可执行测试,那些字是否出现在已被索引的文档的题目或标题中。如果是,则名词短语与KI轮廓文件46中的用户相关联。这考虑到字和相关名词短语以该形式多次出现在电子邮件和其它会话中的一行内。这些相同的字还可能出现在文档的题目和各个文档的标题中。
从操作1002,例程1000继续到操作1004,其中感兴趣项目的标题和题目被用来标识名词短语。为了执行该过程,检查用户创作或阅读的文档并从这些文档提取题目和标题。然后这些包含在题目和标题内的名词短语被添加到KI轮廓文件46内包含的名词短语列表。从操作1004,例程1000继续到操作1006,其中它返回到以上参照图7描述的操作724。
现在参看图11,将描述用于在客户计算机2上接收和处理搜索请求的说明性例程1100。如上简述,KI桌面应用程序40可接收客户计算机2的用户的搜索查询。这在操作1102发生。相应于接收一搜索请求,例程1100继续到操作1104,其中为该请求查询执行对包含在客户计算机2上数据的本地搜索。这使得在客户计算机2本地的与请求搜索查询相关的任何数据得以为用户标识。
例程1100从操作1104继续到操作1106,其中将查询请求传送到在服务器计算机6上执行的KI服务器组件60。如在以下将参照图12和13详细描述的,该搜索查询由客户计算机2处理以从轮廓文件数据库64内标识满足搜索查询的信息或个人。然后结果可从服务器计算机6返回到客户计算机2向用户显示。从操作1106,例程1100继续到操作1108,其中它返回到以上参照图4讨论的操作408。
现在参看图12,将描述用于在服务器计算机6上执行对轮廓文件数据库的内容的过程外分析的说明性例程1200。该过程外分析指分析在搜索查询的上下文外进行的事实。该处理由服务器计算机6在其分析的一般过程中进行。
例程1200在操作1202开始,其中消除轮廓文件数据库64集内的噪音字。噪音字是在大量离散人口的用户中非常通用的字。应理解,可由服务器计算机6执行其它类型的过程外分析。从操作212,例程继续到操作操作1204,其中它返回到以上参照图4描述的操作456。
现在参看图13,将描述示出由服务器计算机6执行的用于接收和响应搜索查询的过程的说明性例程1300。应理解,根据本发明一方面,对查询轮廓文件数据库64的请求可采取查找对特定主题有帮助的人的请求的形式。这样,可搜索轮廓文件数据库64以标识是特定主题的专家并位于与作搜索查询的用户在预定义社会距离之内的人。社会距离指在一组有联系人中联系任意两人所需的人数。
根据本发明另一方面,查询轮廓文件数据库64的请求可采取查找可联系到轮廓文件数据库内另一人的人的请求的形式。为了执行这类查询,可搜索轮廓文件数据库64以标识在与作出搜索查询的用户在预定义社会距离之内的各个人,并且他们具有在其KI轮廓文件内列为联系人的人。
在另一情形中,查询轮廓文件数据库的请求可采取查找可联系到位于企业外并因此不能在轮廓文件数据库64中直接标识的另一人的人的请求的形式。为了执行该类型查询,可搜索轮廓文件数据库以标识具有在其KI轮廓文件内列为联系人的已查询人的人。或者,可基于根据各人提交的关键字来标识他们。例如,这在用户不是KI系统内参与者而是作为KI系统参与者的其他人的联系人时会发生。根据本发明该方面,即使用户不是参与者KI系统仍可基于由他人提交给用户的关键字来建立该用户的轮廓文件。然后可像KI系统内任何其它参与者一样地标识并查找不是KI系统参与者的人。
根据本发明又一方面,可执行搜索查询以查找与搜索者兴趣相同的人并确定这些人已经阅读或在其它情况使用的材料。这样,搜索请求采取查询轮廓文件数据库的请求的形式以查找由其它具有相同兴趣的人使用的信息。为了执行该查询,搜索轮廓文件数据库以标识与作请求的用户有相似兴趣的人。然后,搜索轮廓文件数据库以从其KI轮廓文件的内容中标识由具有相似兴趣的人使用的信息。图13示出用于执行这类查询的每一个的一种抽象方法。
例程1300在操作1302开始,其中在服务器计算机6上接收来自客户计算机2的查询词。然后例程1300继续到操作1304,其中对应于当前社会距离的变量被设置为等于1。然后该例程继续到操作1306,其中在轮廓文件数据库64上执行对在当前社会距离内的查询词的搜索。一旦在轮廓文件数据库64内标识到对应于该查询词的关键字,这些关键字可根据相关性按顺序分级。
从操作1306,例程1300继续到操作1308,其中确定社会距离是否大于预定数。在一实施例中,该数字等于2。如果当前社会距离未大于预定数,在例程1300分支到操作1310。其中当前社会距离递增。然后例程从操作1310分支回到操作1306,其中在当前社会距离上执行一附加搜索。
如果在操作1308确定当前社会距离大于预定数,则例程1300继续到操作1312,其中搜索结果被返回给客户计算机2的用户。然后例程1300继续到操作1314,其中它返回到以上参照图4描述的操作458。如上简述,如果在搜索查询期间一私密关键字被标识为与一联系人相关联,则该用户的身份不对搜索结果公开。相反,KI服务器计算机6执行在提交标识用户的搜索查询的用户和目标之间的中介通信过程。根据中介通信过程,搜索结果只将专家标识为匿名。
为了联系匿名专家,搜索用户可将请求提交给KI服务器计算机以联系该专家。基于该请求,KI服务器将代表提交搜索查询的用户向专家传送对帮助的请求。该请求具体地可标识或不标识提交搜索查询的用户。
然后专家可用是否将向提交搜索查询的用户提供帮助的指示来回答请求。如果专家将提供帮助,则专家的身份被传送给作出搜索查询的用户。否则,向作出搜索查询的用户传送将不提供帮助的指示。然后作出搜索查询的用户可选择联系所提供搜索结果中的另一人。
基于前述内容,应理解本发明的各个实施例包括用于创建KI轮廓文件的方法、系统、装置、以及计算机可读介质。以上说明书、示例和数据提供了对本发明的组成的制造及其使用的完整描述。由于可作出本发明的许多实施例而不背离本发明的精神和范围,本发明驻留于此后的所附权利要求中。