CN105190597A - 基于社交的信息推荐系统 - Google Patents
基于社交的信息推荐系统 Download PDFInfo
- Publication number
- CN105190597A CN105190597A CN201380065539.9A CN201380065539A CN105190597A CN 105190597 A CN105190597 A CN 105190597A CN 201380065539 A CN201380065539 A CN 201380065539A CN 105190597 A CN105190597 A CN 105190597A
- Authority
- CN
- China
- Prior art keywords
- information
- social
- developer
- user
- code segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在此描述的技术能够使用社交数据图来推荐与代码在上下文上相关的信息。机器学习技术被用于确定与代码在上下文上相关的信息。社交数据图是存储与社交联网环境中的用户相关联的信息的图数据库。例如,这样的信息可从用户的用户简档、社交更新等中检索。社交联网环境是促进对共享兴趣、活动、背景、现实生活的联系等的用户之间的社交网络(例如,社交关系)的构建的在线服务、平台或域(例如,网站)。
Description
背景
软件开发者持续寻找用于开发软件(又称“代码”)的更加高效且有效的技术。例如,软件开发者通常使用开发者工具来促进对他们的软件的开发。这样的开发者工具可执行关于正被开发的软件的诊断操作(例如,标识问题源、调试、剖析、控制等)。开发者工具的示例包括但不限于:web开发平台(例如,WindowsAzureAmazonWebGoogleApp 等)以及集成开发环境(例如,MicrosoftVisual EclipsePlatformTM等)。
随着开源软件和其他支架方案增加的可用性和使用,开发者已经开始寻找“拿上就走”的方案,其中预先开发的代码段可被组装以减少开发者用来开发他们的软件的时间量。然而,传统的“拿上就走”的方法通常在网站上或开发者工具中提供通知可用库和控件的静态列表。在传统的开源“拿上就走”的方案的情况下,储存库可经由Web可用,使得储存库可经由Web界面浏览以展示供复制并粘贴的代码和/或可用于下载的文件或者以经由下载或经由分布式版本控制系统获得存储库的本地副本。
概述
在此描述了尤其用于使用社交数据图来推荐与代码在上下文上相关的信息的各种方式。机器学习技术被用于确定与代码在上下文上相关的信息。机器学习技术的各示例包括但不限于,神经网络、支持向量机等。社交数据图是存储与社交联网环境中的用户相关联的信息的图数据库。例如,这样的信息可从用户的用户简档、社交更新等中检索和/或推断。社交联网环境是促进对共享兴趣、活动、背景、现实生活的联系等的用户之间的社交网络(例如,社交关系)的构建的在线服务、平台或域(例如,网站)。社交联网环境的示例包括但不限于, RenrenTM、VkontakteTM、MicrosoftTeamFoundationServerTM等。
描述了一示例方法,其中作出开发者执行关于对指定代码的开发的操作的确定。使用机器学习技术来确定与指定代码在上下文上相关的信息。该信息在社交数据图中与社交联网环境中的用户相关联。基于该信息的至少一部分与社交数据图中被包括在开发者的社交网络中的至少一个用户相关联来推荐该信息的该至少一部分以供关于指定代码来使用。
描述了包括操作确定逻辑、信息确定逻辑和推荐逻辑的系统。操作确定逻辑被配置成确定开发者是否执行关于对指定代码的开发的操作。信息确定逻辑被配置成使用机器学习技术来确定与指定代码在上下文上相关的信息。该信息在社交数据图中与社交联网环境中的用户相关联。推荐逻辑被配置成基于该信息的至少一部分与社交数据图中被包括在开发者的社交网络中的至少一个用户相关联来推荐该信息的该至少一部分以供关于指定代码来使用。
描述了包括计算机可读介质的计算机程序产品,计算机可读介质上记录有用于使得基于处理器的系统能够使用社交数据图来推荐与代码在上下文上相关的信息的计算机程序逻辑。计算机程序产品包括第一程序逻辑模块、第二程序逻辑模块和第三程序逻辑模块。第一程序逻辑模块用于使得基于处理器的系统能够确定开发者是否执行关于对指定代码的开发的操作第二程序逻辑模块用于使得基于处理器的系统能够使用机器学习技术来确定与指定代码在上下文上相关的信息。该信息在社交数据图中与社交联网环境中的用户相关联。第三程序逻辑模块用于使得基于处理器的系统能够基于该信息的至少一部分与社交数据图中被包括在开发者的社交网络中的至少一个用户相关联来推荐该信息的该至少一部分以供关于指定代码来使用。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,注意到本发明不限于在详细描述和/或本文的其它章节中所述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述,其它实施例对于相关领域的技术人员将是显而易见的。
附图说明
本文结合的并且组成本说明书的一部分的附图示出了本发明的各实施例,并且还与本描述一起用于解释所涉及的原理以及使相关领域的技术人员能够实现和使用所公开的技术。
图1是根据一实施例的示例基于社交的信息推荐系统的框图。
图2是示出根据一实施例的基于社交的信息推荐技术的示例实现的图。
图3和5描述根据各实施例的用于推荐信息的示例方法的流程图。
图4是根据一实施例的图1中示出的信息推荐模块的示例实现的框图。
图6是根据一实施例的图1中所示的信息确定逻辑的示例实现的框图。
图7描绘了其中可实现各实施例的示例计算机。
通过下面的结合附图对本发明进行的详细说明,所公开的技术的特点和优点将变得更加显而易见,在附图中,类似的附图标记在整个说明书中标识对应的元素。在附图中,相同的参考标号一般指相同的、功能上相似的和/或结构上相似的元素。其中元素第一次出现的附图由对应的参考标号中最左侧的数字指示。
具体实施方式
I.介绍
以下详细描述参考示出本发明的示例性实施例的附图。但是,本发明的范围不限于这些实施例,而是由所附权利要求书定义。因此,诸如所示实施例的修改版本之类的在附图所示之外的实施例仍然由本发明所包含。
本说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指的是所述实施例可包括特定的特征、结构或特点,但是每一实施例不一定包括该特定的特征、结构或特点。此外,这些短语不一定指相同的实施例。此外,当结合实施例描述具体特征、结构或特性时,应当理解在相关领域的技术人员的知识范围内能够结合其他实施例来实现具体特征、结构或特性,无论是否被显式地描述。
II.示例实施例
在此描述的示例实施例能够使用社交数据图来推荐与代码在上下文上相关的信息。机器学习技术被用于确定与代码在上下文上相关的信息。机器学习技术的各示例包括但不限于,神经网络、支持向量机等。社交数据图是存储与社交联网环境中的用户相关联的信息的图数据库。例如,这样的信息可从用户的用户简档、社交更新等中检索。社交联网环境是促进对共享兴趣、活动、背景、现实生活的联系等的用户之间的社交网络(例如,社交关系)的构建的在线服务、平台或域(例如,网站)。社交联网环境的示例包括但不限于, RenrenTM、VkontakteTM等。
与传统的软件开发技术相比,本文描述的示例技术具有各种益处。例如,示例技术能够使用开发者的社交关系来推荐与开发者在编写的代码在上下文上相关的信息。这样的信息可帮助开发者寻找合并到代码中的现有的组件、确定使用哪个可重用软件、确定雇佣谁来工作、确定在代码中使用的可用代码段的质量、确定哪些人在处置代码、向使用代码的消费者作出有针对性的营销机会等。利用上下文关系可解决与传统技术相关联的可发现性问题。
示例技术能够充分利用开发者到开发者的社交关系以及开发者到终端用户的社交关系。例如,在开发者到开发者的场景中,修复代码的开发者可社交地连接到代码的先前所有者和/或签入(check-in)。开发者可充分利用社交数据图中的简历、实际贡献以及技能来确定雇佣谁来解决技术问题。开发者可充分利用如在社交数据图中提供的用户的信誉以及用户所编写的代码段来寻找人员以填充新的开发职位。开发者之间关于代码的通信可被包括在社交数据图中所包括的代码历史中。这样的历史可被用于作出与开发者在解决的问题的类型以及开发者可用来解决这些问题的资源有关的推断。
在开发者到终端用户场景中,社交数据图提供对与代码的质量有关的信息以及与代码有关的消费者反馈的访问。这样的信息可被用于作出关于代码重用以及对代码的未来增强的明智决定。例如,信息可指示代码的性能、提出的隐错的数量、剖析、热点、多少其他人员正主动地使用该代码(以及他们关于代码的反馈或观点)。示例技术可被用于将新的用户吸引到应用。例如,社交数据图可包括与用户购买哪些类型的应用有关的信息。示例技术可使用用户偏好和/或用户的人口统计、与用户的社交网络中的人员使用了哪些应用有关的信息等来向用户推荐附加的应用或开源。例如,可向用户通知指定应用,因为该用户的社交网络中的人员使用该指定的应用。
示例技术能够将涉及源代码控制和签入的数据连接到社交关系。社交数据图可包括除了典型源配置管理数据之外的信息。例如,社交数据图可包括来自和/或消息收发服务(例如,电子邮件、短消息服务(SMS)、即时消息(IM)等)中的会话的数据;来自技术论坛、代码样本库和/或专家网站(例如,www.stackoverflow.com)的发现模式和/或使用模式;来自任何合适的本地或基于云的源的文档,等等。相比于传统技术而言,通过使用在此描述的社交数据图可提供更加高效、更好性能和/或更好缩放性的软件开发方案。
图1是根据一实施例的示例基于社交的信息推荐系统100的框图。一般而言,基于社交的信息推荐系统100用于使用社交数据图来推荐与代码在上下文上有关的信息。如图1所示,基于社交的信息推荐系统100包括多个用户系统102A-102M、网络104、以及多个服务器106A-106N。用户系统102A-102M与服务器106A-106N之间的通信是使用公知的网络通信协议通过网络104实施的。网络104可以是广域网(如因特网)、局域网(LAN)、另一类型的网络、或它们的组合。
用户系统102A-102M是能够与服务器106A-106N通信的处理系统。处理系统的示例是包括能够根据指令集操纵数据的至少一个处理器的系统。例如,处理系统可以是计算机、个人数字助理等。用户系统102A-102M被配置成向服务器106A-106N提供用于请求存储在服务器106A-106N上(或可通过其他方式访问的)的信息的请求(例如,超文本传输协议(HTTP)请求)。
例如,用户(例如,开发者)可使用用户所拥有的或以其他方式用户可访问的用户系统102上部署的客户端(如web浏览器、web爬行器、或其他类型的客户端)来发起对这类信息的请求。根据一些示例实施例,用户系统102A-102M能够访问由服务器104A-104N托管(host)的域(如网站),使得用户系统102A-102M可访问通过所述域可用的信息。这样的域可包括网页,所述网页可作为超文本标记语言(HTML)文档和在其中被链接的对象(如文件)来提供。
将认识到,任何一个或多个用户系统102A-102M都可与任何一个或多个服务器106A-106N通信。尽管图1中用户系统102A-102M被描绘为台式计算机,但是相关领域的技术人员将理解用户系统102A-102M可包括任何启用客户端的系统或设备,包括但不限于台式计算机、膝上型计算机、平板计算机、个人数字助理、蜂窝电话等等。
服务器106A-106N是能够与用户系统102A-102M通信的处理系统。服务器106A-106N被配置成执行响应于从用户接收到请求而提供信息的计算机程序(例如,开发者工具)。例如,信息可包括文档(如网页、图像、视频文件等等)、可执行程序的输出、或任何其他合适类型的信息。根据某些示例实施例,服务器106A-106N被配置成托管各个网站,使得网站可由基于社交的信息推荐系统100的用户访问。
出于说明性目的,第一服务器106A被示为包括信息推荐模块112。信息推荐模块112被配置成使用社交数据图来推荐与代码在上下文上相关的信息。例如,信息推荐模块112能够确定开发者执行关于该代码的动作。例如,信息推荐模块112可确定开发者获取代码的所有权(例如,出于写代码或修复代码中的隐错的目的)、开发者签入代码(例如,出于修复影响该代码的特征的隐错(即使开发者不必修复该特征)的目的)、开发者滚动通过和/或将光标移动通过和/或点击在该代码内的一方法内、开发者暂停在该代码内的一方法上达达到阈值的时间段等。在确定开发者执行动作之际,信息推荐模块112可遍历社交数据图来确定与该代码在上下文上相关的信息。例如,社交数据图可被配置成将这样的信息与社交联网环境中的用户关联(例如,定义它们之间的关系)。社交数据图可被存储在云中,尽管示例实施例的范围在这一方面不受限制。
信息推荐模块112可确定与代码在上下文上相关的信息的某个部分与开发者的社交网络中的用户相关联。信息推荐模块112可向开发者推荐信息的该部分以相关于该代码来使用。将意识到,信息推荐模块112可推荐少于以上提到的该信息部分的全部、以上提到的部分的全部、除了以上提到的部分的其他信息等。例如,这样的其他信息可包括从可用数据中基于机器学习、试探法、分析等来合成的信息。例如,假设出于说明的目的,Alice和Bob最近在操作代码,并且Alice和Bob与Carl是朋友,开发者不知晓Carl但是Carl的简档显示他对开发者正在操作的代码类型见解颇深。信息推荐模块112可推荐开发者获得来自Carl的对该代码的审阅并帮助自动化这么做的过程。还将意识到,信息推荐模块112可以是开发者工具(或可以被包括在开发者工具中)。还将意识到,如果将来某个人搜索一人来提供关于代码的代码审阅,信息推荐模块112则可基于开发者已经关于该代码执行了在先动作的知识来推荐开发者提供所请求的代码审阅。用于使用社交数据图来推荐与代码在上下文上相关的信息的示例技术在以下结合附图2-6来进一步的详细讨论。
出于说明的目的,第二服务器106B被显示为包括社交联网模块114。社交联网模块114被配置成提供社交联网环境以及促进在社交联网环境中共享兴趣、活动、背景、现实生活中的联系等的用户之间社交网络的构建。例如,每个社交网络可包括社交环境中用户的相应子集。每个社交网络中的用户子集可使用各种技术中的任意技术(诸如社交更新)来通信。每个用户可具有个人简档,该个人简档包括关于该用户的信息和/或该用户感兴趣的主题。社交联网模块114可将任意这样的通信、个人简档信息和/或在社交联网环境中可用的其他信息提供给信息推荐模块112以供分析。例如,社交联网模块114可将这样的信息提供(例如,经由应用编程接口(API))给信息推荐模块112以供与社交数据图中对应的一个或多个用户相关联,但是可以意识到,社交联网模块114可将该信息与社交数据图中对应的一个或多个用户相关联。
出于说明的目的而非旨在限制,信息推荐模块112和社交联网模块114在图1中被显示为包括在分开的服务器(或各个服务器组)中。可以意识到,信息推荐模块112和社交联网模块114(或它们的任意各个部分)可被包括在共同的服务器(或共同的服务器组)中。
信息推荐模块112和/或社交联网模块114可用各种方式来实现以使用社交数据图推荐与代码在上下文上相关的信息,包括可由硬件、软件、固件或它们的任意组合来实现。例如,信息推荐模块112和/或社交联网模块114可被实现为被配置成在一个或多个处理器中执行的计算机程序代码。在另一示例中,信息推荐模块112和/或社交联网模块114可被实现为硬件逻辑/电子电路。在一实施例中,信息推荐模块112和/或社交联网模块114可被实现在片上系统(SoC)中。每个SoC可包括集成电路芯片,该集成电路芯片包括以下一个或多个:处理器(如微控制器、微处理器、数字信号处理器(DSP)等等)、存储器、一个或多个通信接口、和/或用于执行其功能的进一步的电路和/或嵌入式固件。
图2是示出根据一实施例的基于社交的信息推荐技术的示例实现的图。如图2中描绘的,开发者在编写代码208。具体而言,开发者在创建库中新引擎“EngineA(引擎A)”。基于社交的信息推荐系统(例如,图1的基于社交的信息推荐系统100)确定开发者在创建EngineA。响应于确定该开发者在创建新引擎,基于社交的信息推荐系统遍历数据图202以确定是否要向开发者推荐关于EngineA的信息。
数据图202包括节点204和206以及属性212、214和216。节点204表示Alex,其是开发者的社交网络中的用户。节点206表示引擎“EngineB”,其由Alex编写。属性212指示Alex已经从社交网络中的其他用户接收到15个“赞”。属性214指示已经在EngineB中修复了10个隐错。属性216指示EngineB已经被下载了一百万次。可以意识到,数据图202不必一定包括图2中显示的节点204和206以及属性212、214、216中的全部。此外,数据图202可包括作为在此描述的这些节点和/或属性的补充或替换的一个或多个节点和/或一个或多个属性。
基于社交的信息推荐系统基于准则来确定是否要推荐被包括或引用在数据图202中以供相关于EngineA来使用的信息,该准则诸如该信息是否与EngineA在上下文上相关、该信息的提供者是否在开发者的社交网络中和/或其他合适的准则。在这个示例中,基于社交的信息推荐系统确定EngineB与EngineA在上下文上相关并且Alex在开发者的社交网络中。因此,基于社交的信息推荐系统向开发者推荐EngineB。
如以上提到的,关于是否向开发者推荐EngineB的确定可基于附加的准则。例如,在这个示例中,对数据图202的遍历揭示出Alex已接收到15个“赞”、EngineB中已经修复了10个隐错以及EngineB已被下载了一百万次。以上提到的附加准则可包括Alex所具有的“赞”的数量是否大于第一阈值、EngineB中已被修复的隐错的数量是否少于第二阈值、EngineB已被下载的次数是否大于第三阈值等。
如图2中显示的,出于说明的目的,向开发者推荐EngineB具有询问210的形式。询问210指示Alex已经对与开发者在其中开始编写EngineA的库类似的库进行了操作,并且询问210询问开发者是否想要下载Alex的库,其包括EngineB。例如,Alex的库可被下载,使得开发者可用EngineB来替换EngineA或使得开发者可将EngineB用作编写EngineA的模板。
图3描述根据一实施例的用于推荐信息的示例方法的流程图。流程图300可以由例如图1所示的基于社交的信息推荐系统100的信息推荐模块112来执行。出于说明的目的,根据一实施例参考图4中示出的信息推荐模块400描述了流程图300,信息推荐模块400是信息推荐模块112的示例。如图4中显示的,信息推荐模块400包括操作确定逻辑402、信息确定逻辑404、推荐逻辑406、过滤逻辑408、测试逻辑410、用户添加逻辑412和存储414。存储包括社交数据图416。基于有关流程图300的讨论,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。
如图3所示,流程图300的方法在步骤302处开始。在步骤302,作出开发者执行相关于对指定代码的开发的操作的确定。在此使用的短语“对指定代码的开发”旨在包括对指定代码的设计、编码、测试等的任意一个或多个。可相关于对指定代码的开发来执行的操作的示例包括但不限于,创建代码编写项目来包括指定代码(例如,在开发工具中键入代码编写项目的名称);获得关于该代码编写项目的状态和/或进展的信息;编写指定代码;测试指定代码;使用任意合适的电子通信技术(例如,即时消息收发(IM)、持久聊天、 等)与其他一个或多个人(例如,团队成员)就指定代码进行交互(例如,指定代码的概念,即使指定代码存在之前);搜索要被合并到指定代码内的内容和/或数据(例如,从指定代码作出对该内容和/或数据的调用、将该内容(例如,代码段)与指定代码对齐地放置);搜索对指定代码的开发(例如,设计、编码、测试等)进行协助的一个或多个人;请求与指定代码相关的反馈;执行相关于指定代码(例如,在编写、测试、联编和/或部署指定代码期间)所遇到的问题有关的搜索;合成相关于指定代码的体系架构图(例如,体系架构组件图、体系架构类图等)、数据流图、序列图、使用情况图等(例如,即使在指定代码存在之前);创建和/或运行指定代码的联编;对与测试、联编和/或部署指定代码有关的问题进行响应;创建、更新和/或关闭关于指定代码的工作项(例如,“待办事项”列表中的项);执行与指定代码有关的构思(例如,介绍指定代码的概念以确定指定代码要指向的主题);创建和/或编辑关于指定代码的故事板、草图和/或设计(例如,用户界面设计)(例如,即使在指定代码被编写之前);生成要对指定代码执行的工作的报告(例如,活动、改变、在指定时间段中对该工作执行的工作的性质的分类等);等等。
在一示例实现中,操作确定逻辑402确定开发者执行该操作。例如,操作确定逻辑402可响应于接收到操作指示符418来确定开发者执行该操作,该操作指示符418指定该操作被执行。操作确定逻辑402可响应于确定开发者执行该操作来生成确定指令420。确定指令420指令信息确定逻辑404来确定与指定代码在上下文上相关的信息。
在一示例实施例中,步骤302包括确定开发者获取指定代码的所有权。例如,开发者可获取所有权来编写指定代码或它的一部分、修复指定代码中的隐错等。
在另一示例实施例中,步骤320包括确定开发者签入指定代码。例如,开发者可签入该代码来修复影响指定代码的特征的隐错,即使开发者不在修复该特征。根据这个示例,开发者可签入该代码来在修复隐错时改变代码的串、评论或某个其他片段。
在步骤304,使用机器学习技术来确定与指定代码在上下文上相关的信息。例如,可响应于确定开发者执行该操作来确定该信息。该信息可与社交数据图中的多个用户相关联,该多个用户被包括在社交联网环境中。信息可包括一个或多个代码段、SDK或Virtual扩展(例如,Resharper产品)、用户的名字(例如,推荐对指定代码进行操作的用户)、关于其问题发生的一个或多个文件(例如,指定代码外部的遇到与指定代码相同的性能问题的一个或多个代码文件)、基于开发者的社交网络中的用户对其执行了操作的主题的搜索结果,等等。在一示例实现中,信息确定逻辑404确定与指定代码在上下文上相关的信息。例如,信息确定逻辑404可响应于接收到确定指令420来确定与指定代码在上下文上相关的信息。信息确定逻辑404可生成关系指示符422来指定与指定代码在上下文上相关的信息。
在步骤306,基于该信息的至少一部分与社交数据图中被包括在开发者的社交网络中的多个用户中的一个或多个用户相关联来推荐该信息的该至少一部分以供相关于指定代码来使用。在一示例实现中,推荐逻辑406推荐该信息的该至少一部分以供相关于指定代码来使用。例如,推荐逻辑406可基于关系指示符422来推荐该信息的该至少一部分。推荐逻辑406可提供一个或多个推荐424来指定被推荐以供相关于指定代码来使用的该信息的该至少一部分。将意识到,推荐逻辑406可进一步基于关联信息430、代码信息432和/或用户信息434(所有这些被包括在社交数据图416中)来推荐该信息的该至少一部分。存储414存储社交数据图416。
关联信息430指定社交联网环境中的哪些用户与哪些信息(或它们的一个或多个部分)相关联。例如,一用户可响应于该用户提供信息、响应于该用户在信息中被提到、响应于信息被提供给该用户、响应于该用户讨论信息(例如,在论坛中或在一个或多个社交更新中)、响应于该用户与另一用户共享信息、响应于该用户访问信息、响应于该用户对信息进行评级等来与该信息相关联。如果该信息包括一个或多个代码段,则用户可响应于用户是该一个或多个代码段的当前所有者或先前所有者、响应于用户签入该一个或多个代码段、响应于用户对该一个或多个代码段进行操作、响应于用户检索(例如,下载、消费、使用等)该一个或多个代码段等来与该信息相关联。
代码信息432描述指定代码以及可用于被推荐以供相关于指定代码来使用的代码段。例如,代码信息432可指定指定代码中和/或代码段的任意一个或多个中隐错的数量、代码段的任意一个或多个被(例如,社交联网环境中或开发者的社交网络中的用户)下载的次数、指定代码中和/或代码段的任意一个或多个中依赖性的指示(例如,错误依赖性,其能够中断指定代码和/或代码段的任意一个或多个)、指定代码和/或代码段的任意一个或多个的历史等。根据这个示例,代码信息432可将指定代码和/或代码段的任意一个或多个的历史与性能数据、回归数据和/或与指定代码和/或代码段的任意一个或多个相关联的其他数据相关。
用户信息434描述社交联网环境中的用户。例如,用户信息434可指定社交联网环境中的每个用户是否被包括在开发者的社交网络中(并且如果是,用户被包括哪一社交网络中)、每个用户的评级(例如,总体和/或在指定主题分类中)、每个用户的技能、每个用户关于软件开发和/或软件开发的指定方面经历的持续时间,等等。
在一示例实施例中,步骤304包括使用机器学习技术来确定多个代码段中与指定代码在上下文上相关的一个或多个代码段。例如,信息确定模块404确定该一个或多个代码段。该多个代码段的任意一个或多个可以是开源代码段,但是示例实施例的范围不在这方面作出限制。根据这个实施例,该多个代码段与社交数据图中的该多个用户相关联。进一步根据该实施例,步骤306包括基于该一个或多个代码段中的至少一个代码段与在社交数据图中被包括在开发者的社交网络中的用户相关联来推荐该一个或多个代码段中的该至少一个片段代码以供包括在指定代码中。例如,推荐逻辑406可推荐该至少一个代码段。
在这个实施例的一方面,步骤306可包括进一步基于提供指定的代码段的用户的技能来推荐该指定的代码段以供包括在指定代码中。例如,可从提供该指定的代码段的用户的简历中导出该用户的技能。在一示例实现中,推荐逻辑406推荐该指定的代码段。用户信息434可指定用户的技能。根据这个实现,推荐逻辑436可响应于接收到用户信息434来推荐该指定的代码段。
可以意识到,替换地,推荐逻辑406可响应于接收到用户信息434来推荐不被使用的指定的代码段。例如,如果开发者使用来自具有相对较低信誉的用户的代码段,则开发者可能想要重新考虑使用该片段、编写涵盖该代码段的更多的单元测试、获得对于开发者的使用该代码段的代码的额外代码审阅等。如果开发者最终使用该代码段而根本不需要改变它,则这个事件可正面地影响该代码段所来自的用户的信誉。
在这个实施例的另一方面,步骤306可包括进一步基于开发者的社交网络内提供指定的代码段的用户的信誉来推荐该指定的片段代码以供包括在指定代码中。例如,用户的信誉可基于由该用户回答的关于软件开发的问题的数量。在另一示例中,用户的信誉可由在开发者的社交网络中的其他用户指派。根据这个示例,信誉可基于用户接收到的对于用户提供给关于软件开发的问题的回答的赞同(例如,“赞”)的数量。例如,信誉可基于用户从各个问题的提供者接收到的这样的赞同的数量。在又一示例中,用户的信誉可从另一社交网络或社交联网环境(例如,StackOverflowTM)导入开发者的社交网络中。用户信息434可指定用户的信誉。
在这个实施例的又一方面,步骤306可包括进一步基于在指定的代码段中发现的隐错的数量来推荐该指定的代码段以供包括在指定代码中。例如,可响应于在指定的代码段中发现的隐错的数量少于第一阈值来执行对至少一个代码段的推荐。在另一示例中,代码信息432可指定在指定的代码段中发现的隐错的数量和/或隐错的数量少于第一阈值。
根据这个方面,步骤306可包括基于在标识的代码段中发现的隐错的数量达到第二阈值(例如,大于第二阈值,或大于或等于第二阈值)来推荐该标识的代码段不被包括在指定代码中。例如,可响应于确定标识的代码段不要被包括在指定代码中来执行对至少一个代码段的推荐。在另一示例中,代码信息432可指定在标识的代码段中发现的隐错的数量和/或在标识的代码段中发现的隐错的数量达到第二阈值。
在这个实施例的另一方面,步骤306可包括进一步基于被用户(例如,在社交联网环境中或在开发者的社交网络中)检索(例如,下载、消费、使用等)的指定的代码段的实例的数量来推荐该指定的代码段以供包括在指定代码中。例如,代码信息432可指定被用户检索的指定的代码段的实例的数量。
在这个实施例的另一方面,步骤306可包括进一步基于来自检索指定的代码段的用户的反馈来推荐该指定的代码段以供包括在指定代码中。例如,代码信息432和/或用户信息434可包括用户反馈。
在这个实施例的又一方面,步骤306可包括进一步基于开发者的社交网络中的用户对指定的代码段的检索来推荐该指定的片段代码以供包括在指定代码中。例如,这样的推荐可基于开发者的社交网络中检索指定的代码段的用户的数量、开发者的社交网络中的用户使用指定的代码段的程度,等等。
在另一方面,如果开发者数次编写了与开源代码类似的代码,则可向代码审阅的请求者提供一通知,指定在开发者提供所请求的代码审阅的情况下审阅者具有查看开源代码的倾向。
在这个实施例的还一方面,步骤304可包括图5的流程图500中显示的步骤。流程图500可由例如图4中显示的信息确定逻辑404来执行。出于说明的目的,根据一实施例参考图6中示出的信息确定逻辑600描述了流程图500,信息确定逻辑600是信息推荐模块112的示例。如图6中显示的,信息确定逻辑600包括审阅逻辑602、指示符确定逻辑604和上下文关系逻辑606。基于有关流程图500的讨论,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。
如图5所示,流程图500的方法在步骤502处开始。在步骤502,审阅开发者和一个或多个人员之间通信的记录以确定要关于指定代码解决一问题。记录的示例包括但不限于文本记录(例如,电子邮件、短消息服务(SMS)、即时消息(IM)等)、音频记录、视频记录(例如,记录)等。在一示例实现中,审阅逻辑602审阅记录608来确定该问题。根据这个实现,审阅逻辑602可生成问题指示符610,其指定要关于指定代码解决的该问题。
在步骤504,作出社交数据图中的一指示符指示指定的代码段处理(例如,解决)该问题的确定。在一示例实现中,指示符确定逻辑604确定社交图中的指示符指示指定的代码段处理该问题。例如,代码信息432可包括社交数据图416中的指示符。根据这个实现,指示符确定逻辑604可响应于接收到问题指示符610来作出该确定。指示符确定逻辑604可生成处理指示符612,其指示指定的代码段处理该问题。
在步骤506,作出指定的代码段与指定代码在上下文上相关的确定。例如,该确定可基于指示符来作出。在一示例实现中,上下文关系逻辑606确定指定的代码段与指定代码在上下文上相关。例如,上下文关系逻辑606可响应于接收到处理指示符612来作出该确定。上下文关系逻辑606可生成关系指示符614,其指示指定的代码段与指定代码在上下文上相关。
在某些示例实施例中,可以不执行流程图500的一个或多个步骤502、504和/或506。此外,可以执行除步骤502、504、和/或506以外的或代替这些步骤的步骤。
可以意识到,信息确定逻辑600可不包括审阅逻辑602、指示符确定逻辑604和/或上下文关系逻辑606中的一个或多个。此外,信息确定逻辑600可包括作为审阅逻辑602、指示符确定逻辑6040和/或上下文关系逻辑606的补充或替换的逻辑。
参考回图3,在一些示例实施例中,可以不执行流程图300的一个或多个步骤302、304和/或306。此外,可以执行作为步骤302、304、和/或306的补充或替换的步骤。例如,在一个示例实施例中,信息包括一个或多个代码段,并且流程图300的方法进一步包括执行关于该一个或多个代码段的一个或多个测试来生成描述该一个或多个代码段关于该一个或多个测试的性能的性能信息。根据这个实施例,步骤306包括基于性能信息来推荐一个或多个代码段中的至少一个以供包括在指定代码中。
在另一示例实施例中,信息包括一个或多个代码段,并且流程图300的方法进一步包括基于开发者的社交网络中的用户对附加的一个或多个代码段的检索来向开发者推荐该附加的一个或多个代码段。
在又一示例实施例中,流程图300的方法进一步包括过滤与多个用户相关联的社交更新以确定与对软件应用的开发有关的社交更新的子集。例如,过滤逻辑408可过滤社交更新426以确定与对软件应用的开发有关的社交更新426的子集428。根据这个实施例,步骤304包括基于该子集来确定与指定代码在上下文上相关的信息。例如,信息确定逻辑404可基于该子集428来确定信息。根据这个示例,子集428的指示可被包括在关联信息430中。
在又一示例实施例中,流程图300的方法进一步包括响应于确定开发者执行关于对指定代码的开发的操作来将指定代码的先前所有者添加到开发者的社交网络。在一示例实现中,用户添加逻辑412将指定代码的先前所有者添加到开发者的社交网络。用户添加逻辑412可将网络更新436提供到社交数据图416以在用户信息434中指示指定代码的先前所有者被包括在开发者的社交网络中。
在又一示例实施例中,流程图300的方法进一步包括响应于确定开发者执行关于对指定代码的开发的操作来将先前签入指定代码的一个或多个用户添加到开发者的社交网络。在一示例实现中,用户添加逻辑412将先前签入指定代码的一个或多个用户添加到开发者的社交网络。用户添加逻辑412可将网络更新436提供到社交数据图416以在用户信息434中指示先前签入指定代码的一个或多个用户被包括在开发者的社交网络中。
在又一示例实施例中,流程图300的方法进一步基于开发者的偏好和/或人口统计特征来向开发者推荐一个或多个代码段。例如,推荐逻辑406可基于开发者的偏好和/或人口统计特征来向开发者推荐一个或多个代码段。
可以意识到,信息推荐模块400可不包括操作确定逻辑402、信息确定逻辑404、推荐逻辑406、过滤逻辑408、测试逻辑410、用户添加逻辑412、存储414和/或社交数据图416中的一个或多个。此外,信息推荐模块400可包括作为操作确定逻辑402、信息确定逻辑404、推荐逻辑406、过滤逻辑408、测试逻辑410、用户添加逻辑412、存储414和/或社交数据图416的补充或替换的模块。
信息推荐模块112、社交联网模块114、操作确定逻辑402、信息确定逻辑404、推荐逻辑406、过滤逻辑408、测试逻辑410、用户添加逻辑412、存储414、社交数据图416、审阅逻辑602、指示符确定逻辑604、上下文关系逻辑608、流程图300和流程图500可由硬件、软件、固件或它们的任意组合来实现。
例如,信息推荐模块112、社交联网模块114、操作确定逻辑402、信息确定逻辑404、推荐逻辑406、过滤逻辑408、测试逻辑410、用户添加逻辑412、存储414、社交数据图416、审阅逻辑602、指示符确定逻辑604、上下文关系逻辑608、流程图300和/或流程图500可被实现为被配置成在一个或多个处理器中执行的计算机程序代码。
在另一示例中,信息推荐模块112、社交联网模块114、操作确定逻辑402、信息确定逻辑404、推荐逻辑406、过滤逻辑408、测试逻辑410、用户添加逻辑412、存储414、社交数据图416、审阅逻辑602、指示符确定逻辑604、上下文关系逻辑608、流程图300和/或流程图500可被实现为硬件逻辑/电子电路。
例如,在一个实施例中,信息推荐模块112、社交联网模块114、操作确定逻辑402、信息确定逻辑404、推荐逻辑406、过滤逻辑408、测试逻辑410、用户添加逻辑412、存储414、社交数据图416、审阅逻辑602、指示符确定逻辑604、上下文关系逻辑608、流程图300和/或流程图500中的一个或多个可被实现在片上系统(SoC)中。SoC可包括集成电路芯片,该集成电路芯片包括以下一个或多个:处理器(如微控制器、微处理器、数字信号处理器(DSP)等等)、存储器、一个或多个通信接口、和/或用于执行其功能的进一步的电路和/或嵌入式固件。
图7描绘其中可实现各实施例的示例计算机700。图1中所示的用户系统102A-102M中的任何一个或多个或服务器106A-106N中的任何一个或多个(或图4中所示的它们的任何一个或多个子组件)可使用计算机700来实现,包括计算机700的一个或多个特征和/或替代特征。计算机700可以是例如常规个人计算机、移动计算机或工作站形式的通用计算设备,或者计算机700可以是专用计算设备。此处所提供的对计算机700的描述只是为了说明,并不是限制性的。实施例也可以在相关领域的技术人员所知的更多类型的计算机系统中实现。
如图7所示,计算机700包括处理单元702、系统存储器704和总线706,总线706将包括系统存储器704在内的各种系统组件耦合到处理单元702。总线706表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及处理器或使用各种总线体系结构中的任何一种的局部总线。系统存储器704包括只读存储器(ROM)708和随机存取存储器(RAM)710。基本输入/输出系统712(BIOS)储存在ROM708中。
计算机700还具有一个或多个以下驱动器:用于读写硬盘的硬盘驱动器714、用于读或写可移动磁盘718的磁盘驱动器716、以及用于读或写诸如CDROM、DVDROM或其他光介质之类的可移动光盘722的光盘驱动器720。硬盘驱动器714、磁盘驱动器716,以及光驱动器720分别通过硬盘驱动器接口724、磁盘驱动器接口726,以及光学驱动器接口728连接到总线706。驱动器以及它们相关联的计算机可读介质为计算机提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然描述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他类型的计算机可读存储介质来储存数据。
数个程序模块可被储存在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作系统730、一个或多个应用程序732、其他程序模块734以及程序数据736。应用程序732或程序模块734可包括例如,用于实现如在此描述的信息推荐模块112、社交联网模块114、操作确定逻辑402、信息确定逻辑404、推荐逻辑406、过滤逻辑408、测试逻辑410、用户添加逻辑412、存储414、社交数据图416、审阅逻辑602、指示符确定逻辑604、上下文关系逻辑608、流程图300(包括流程图300的任意步骤)和/或流程图500(包括流程图500的任意步骤)的计算机程序逻辑。
用户可以通过诸如键盘738和定点设备740之类的输入设备向计算机700中输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、触敏屏、相机、加速度计、陀螺仪等等。这些及其他输入设备常常通过耦合到总线706的串行端口接口742连接到处理单元702,但是,也可以通过其他接口,诸如并行端口、游戏端口或通用串行总线(USB),来进行连接。
显示设备744(例如监视器)也通过诸如视频适配器746之类的接口连接到总线706。除了显示设备744之外,计算机700还可包括其他外围输出设备(未示出),如扬声器和打印机。
计算机700通过网络接口或适配器750、调制解调器752、或用于通过网络建立通信的其他装置连接到网络748(例如,因特网)。调制解调器752(可以是内置的或外置的)通过串行端口接口742连接到总线706。
如此处所用的,术语“计算机程序介质”以及“计算机可读介质”用于泛指介质,诸如与硬盘驱动器714相关联的硬盘、可移动磁盘718、可移动光盘722,以及其他介质,诸如闪存卡、数字视频盘、随机读取存储器(RAM)、只读存储器(ROM)等。这些计算机可读存储介质与通信介质相区别且不重叠。通信介质通常将计算机可读指令、数据结构、程序模块或者其它数据包含在已调制数据信号中,如载波。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如声学、RF、红外线的无线介质和其它无线介质。各个示例实施例也针对这些通信介质。
如上文所指示的,计算机程序和模块(包括应用程序732及其他程序模块734)可被储存在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序也可以通过网络接口750或串行端口接口742来接收。这些计算机程序在由应用程序执行或加载时使得计算机700能够实现此处所讨论的实施例的特征。相应地,这样的计算机程序表示计算机700的控制器。
示例实施例还涉及包括存储在任何计算机可用介质上的软件(例如计算机可读指令)的计算机程序产品。这样的软件,当在一个或多个数据处理设备中执行时,使数据处理设备如此处所描述的那样操作。实施例可使用现在已知或将来知晓的任何计算机可使用或计算机可读介质。计算机可读介质的示例包括,但不仅限于,诸如RAM、硬盘驱动器、软盘、CDROM、DVDROM、zip磁盘、磁带、磁存储设备、光存储设备、基于MEMS的存储设备、基于纳米技术的存储设备等等之类的存储设备。
III.结语
虽然以上描述了不同的实施例,但应当理解的是它们只是作为示例而非限制。对于相关领域的技术人员显而易见的是,可以对其做出各种改变而不背离本发明的精神和范围。因此,此处所公开的本发明的宽度和范围不应被上述所公开的示例性实施例所限制,而应当仅根据所附权利要求书及其等同替换来定义。
Claims (10)
1.一种方法,包括:
确定开发者执行关于对指定代码的开发的操作;
响应于确定所述开发者执行所述操作,使用机器学习技术来确定与所述指定代码在上下文上相关的信息,所述信息在社交数据图中与社交联网环境中的多个用户相关联;以及
基于所述信息的至少一部分与所述社交数据图中被包括在所述开发者的社交网络中的所述多个用户中的至少一个用户相关联来推荐所述信息的所述至少一部分以供相关于所述指定代码来使用。
2.如权利要求1所述的方法,其特征在于,确定所述开发者执行所述操作包括:
确定所述开发者获取所述指定代码的所有权。
3.如权利要求1所述的方法,其特征在于,确定所述开发者执行所述操作包括:
确定所述开发者签入所述指定代码。
4.如权利要求1所述的方法,其特征在于,进一步包括:
过滤与所述多个用户相关联的多个社交更新以确定与对软件应用的开发有关的所述多个社交更新的子集;
其中确定所述信息包括:
基于所述子集来确定与所述指定代码在上下文上相关的所述信息。
5.一种系统,包括:
操作确定逻辑,被配置成确定开发者是否执行关于对指定代码的开发的操作;
信息确定逻辑,被配置成响应于确定所述开发者执行所述操作来使用机器学习技术确定与所述指定代码在上下文上相关的信息,所述信息在社交数据图中与社交联网环境中的多个用户相关联;以及
推荐逻辑,被配置成基于所述信息的至少一部分与所述社交数据图中被包括在所述开发者的社交网络中的所述多个用户中的至少一个用户相关联来推荐所述信息的所述至少一部分以供相关于所述指定代码来使用。
6.如权利要求5所述的系统,其特征在于,所述信息包括与所述指定代码在上下文上相关的多个代码段中的一个或多个代码段;
其中所述多个代码段与所述社交数据图中的所述多个用户相关联;以及
其中所述推荐逻辑被配置成基于所述一个或多个代码段中的至少一个代码段与所述社交数据图中的所述至少一个用户相关联来推荐所述一个或多个代码段中的所述至少一个代码段以供包括在所述指定代码中。
7.如权利要求6所述的系统,其特征在于,所述推荐逻辑被配置成进一步基于提供指定的代码段的用户的至少一个技能来推荐所述指定的代码段以供包括在所述指定代码中。
8.如权利要求6所述的系统,其特征在于,所述推荐逻辑被配置成进一步基于所述开发者的所述社交网络内提供指定的代码段的用户的信誉来推荐所述指定的代码段以供包括在所述指定代码中。
9.如权利要求6所述的系统,其特征在于,所述推荐逻辑被配置成进一步基于在指定的代码段中发现的隐错的数量来推荐所述指定的代码段以供包括在所述指定代码中。
10.一种包括计算机可读介质的计算机程序产品,计算机可读介质上记录有用于使得基于处理器的系统能够推荐至少一个代码段以供包括在指定代码中的计算机程序逻辑,所述计算机程序产品包括:
第一程序逻辑模块,用于使得所述基于处理器的系统能够确定开发者执行关于对所述指定代码的开发的操作;
第二程序逻辑模块,用于使得所述基于处理器的系统能够响应于确定所述开发者执行所述操作来使用机器学习技术确定与所述指定代码在上下文上相关的多个代码段中的一个或多个代码段,所述多个代码段在社交数据图中与社交联网环境中的多个用户相关联;以及
第三程序逻辑模块,用于使得所述基于处理器的系统能够基于所述一个或多个代码段中的至少一个代码段与所述社交数据图中被包括在所述开发者的社交网络中的所述多个用户中的至少一个用户相关联来推荐所述一个或多个代码段中的所述至少一部分以供包括在所述指定代码中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/714,187 US9092211B2 (en) | 2012-12-13 | 2012-12-13 | Social-based information recommendation system |
US13/714,187 | 2012-12-13 | ||
PCT/US2013/074961 WO2014093793A2 (en) | 2012-12-13 | 2013-12-13 | Social-based information recommendation system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105190597A true CN105190597A (zh) | 2015-12-23 |
CN105190597B CN105190597B (zh) | 2018-07-10 |
Family
ID=49920631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380065539.9A Active CN105190597B (zh) | 2012-12-13 | 2013-12-13 | 基于社交的信息推荐系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9092211B2 (zh) |
EP (1) | EP2932399A4 (zh) |
CN (1) | CN105190597B (zh) |
WO (1) | WO2014093793A2 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943595A (zh) * | 2016-10-12 | 2018-04-20 | 谷歌公司 | 环境自动分组 |
CN108717423A (zh) * | 2018-04-24 | 2018-10-30 | 南京航空航天大学 | 一种基于深度语义挖掘的代码段推荐方法 |
CN109885504A (zh) * | 2019-03-15 | 2019-06-14 | 网易(杭州)网络有限公司 | 推荐系统的测试方法、装置、介质及电子设备 |
CN110008398A (zh) * | 2019-01-07 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据分类管理推荐方法及装置 |
CN110140134A (zh) * | 2016-10-28 | 2019-08-16 | 脸谱公司 | 使用深度学习模型来生成推荐 |
CN111095310A (zh) * | 2017-09-21 | 2020-05-01 | 国际商业机器公司 | 实现动态和自动地更改用户简档以增强性能 |
US11887016B2 (en) | 2016-11-01 | 2024-01-30 | Google Llc | Actionable suggestions for activities |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378030B2 (en) * | 2013-10-01 | 2016-06-28 | Aetherpal, Inc. | Method and apparatus for interactive mobile device guidance |
US9311223B2 (en) * | 2013-05-21 | 2016-04-12 | International Business Machines Corporation | Prioritizing test cases using multiple variables |
US9292363B2 (en) * | 2014-03-05 | 2016-03-22 | International Business Machines Corporation | Predicting application programming interface consumption using social networks |
KR102190813B1 (ko) * | 2014-03-25 | 2020-12-14 | 한국전자통신연구원 | 코드 추천 및 공유 시스템 및 방법 |
US10402886B2 (en) * | 2014-06-23 | 2019-09-03 | Rakuten, Inc. | Information processing device, information processing method, program, and storage medium |
US9348579B2 (en) * | 2014-07-03 | 2016-05-24 | Sap Se | Integration of social networks with integrated development environment (IDE) |
GB201417913D0 (en) | 2014-10-10 | 2014-11-26 | Ibm | Collaborative development of software programs based on service invocations |
US10140204B2 (en) | 2015-06-08 | 2018-11-27 | International Business Machines Corporation | Automated dynamic test case generation |
US10133568B2 (en) * | 2016-08-31 | 2018-11-20 | International Business Machines Corporation | Embedding code anchors in software documentation |
EP3318971A1 (de) * | 2016-11-08 | 2018-05-09 | Siemens Healthcare GmbH | Bestimmen von wahl-verknüpfungsstrukturen in einem graphischen computerprogramm |
US20180204159A1 (en) | 2017-01-19 | 2018-07-19 | Bank Of America Corporation | Resource and experience factor value generation system |
US11783243B2 (en) * | 2017-09-20 | 2023-10-10 | International Business Machines Corporation | Targeted prioritization within a network based on user-defined factors and success rates |
US10671511B2 (en) | 2018-06-20 | 2020-06-02 | Hcl Technologies Limited | Automated bug fixing |
US10545733B2 (en) | 2018-06-25 | 2020-01-28 | Hcl Technologies Ltd. | Code reusability |
US10664383B2 (en) * | 2018-08-22 | 2020-05-26 | Fujitsu Limited | Automated software program repair of similar code snippets |
CN113227964A (zh) * | 2018-09-28 | 2021-08-06 | 艾利文Ai有限公司 | 用于机器人过程自动化设计的基于上下文的建议 |
JP7260637B2 (ja) * | 2018-11-02 | 2023-04-18 | ライン プラス コーポレーション | 小説リプレイ方法、プログラム、および端末 |
US11301223B2 (en) | 2019-08-19 | 2022-04-12 | International Business Machines Corporation | Artificial intelligence enabled function logic infusion |
US11106460B2 (en) * | 2019-09-03 | 2021-08-31 | Electronic Arts Inc. | Software change tracking and analysis |
US11144315B2 (en) | 2019-09-06 | 2021-10-12 | Roblox Corporation | Determining quality of an electronic game based on developer engagement metrics |
US11194553B2 (en) * | 2019-09-17 | 2021-12-07 | International Business Machines Corporation | Identifying and recommending code snippets to be reused by software developer |
US11269597B2 (en) * | 2020-03-31 | 2022-03-08 | Sap Se | Real-time code recommendations using machine learning and reinforcement learning |
US11307966B2 (en) | 2020-04-06 | 2022-04-19 | Red Hat, Inc. | Shared software debugging service |
US11426116B2 (en) * | 2020-06-15 | 2022-08-30 | Bank Of America Corporation | System using eye tracking data for analysis and validation of data |
US20230168885A1 (en) * | 2021-11-30 | 2023-06-01 | Palo Alto Research Center Incorporated | Semantically driven document structure recognition |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050223354A1 (en) * | 2004-03-31 | 2005-10-06 | International Business Machines Corporation | Method, system and program product for detecting software development best practice violations in a code sharing system |
US20070169027A1 (en) * | 2005-11-30 | 2007-07-19 | Ulrich Drepper | Methods and systems for complete static analysis of software for building a system |
CN101065170A (zh) * | 2004-09-16 | 2007-10-31 | 百利国际游戏有限公司 | 用于游戏机的用户接口系统和方法 |
US7451177B1 (en) * | 1999-08-12 | 2008-11-11 | Avintaquin Capital, Llc | System for and method of implementing a closed loop response architecture for electronic commerce |
CN101464881A (zh) * | 2007-12-21 | 2009-06-24 | 音乐会技术公司 | 基于用位置信息标记的播放历史信息、在分布式环境中生成媒体推荐的方法和系统 |
CN101465878A (zh) * | 2007-12-20 | 2009-06-24 | 音乐会技术公司 | 用于模拟社交网络中离线用户的推荐的方法和系统 |
US20100299305A1 (en) * | 2009-05-22 | 2010-11-25 | Microsoft Corporation | Programming element modification recommendation |
US20110125585A1 (en) * | 2009-11-20 | 2011-05-26 | Rovi Technologies Corporation | Content recommendation for a content system |
US20120151322A1 (en) * | 2010-12-13 | 2012-06-14 | Robert Taaffe Lindsay | Measuring Social Network-Based Interaction with Web Content External to a Social Networking System |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6996805B2 (en) | 2001-06-28 | 2006-02-07 | Microsoft Corporation | Methods and systems of testing software, and methods and systems of modeling user behavior |
JP2003091432A (ja) * | 2001-09-19 | 2003-03-28 | Nec Corp | ソフトウェア評価システム、ソフトウェア評価ツール |
US7093235B2 (en) * | 2002-12-13 | 2006-08-15 | Microsoft Corporation | Process for measuring coding productivity |
US7331042B2 (en) * | 2002-12-21 | 2008-02-12 | International Business Machines Corporation | Fault-tolerant dynamic editing of GUI display and source code |
US8225302B2 (en) * | 2003-02-13 | 2012-07-17 | Lawrence Taylor Waugh | System and method for managing source code and acquiring metrics in software development |
GB0414983D0 (en) * | 2004-07-03 | 2004-08-04 | Ibm | A method for replacing code in a running object oriented program |
US20060041856A1 (en) * | 2004-08-19 | 2006-02-23 | International Business Machines Corporation | Integrated project tracking tool for integrated development environment |
US20060095780A1 (en) * | 2004-10-28 | 2006-05-04 | Hillis W D | System and method to facilitate importation of user profile data over a network |
US8572560B2 (en) * | 2006-01-10 | 2013-10-29 | International Business Machines Corporation | Collaborative software development systems and methods providing automated programming assistance |
US8595703B2 (en) * | 2006-01-30 | 2013-11-26 | Microsoft Corporation | Context based code analysis |
US7827122B1 (en) * | 2006-03-09 | 2010-11-02 | Rockwell Automation Technologies, Inc. | Data mining of unfiltered controller data |
US8732846B2 (en) | 2007-08-15 | 2014-05-20 | Facebook, Inc. | Platform for providing a social context to software applications |
US20090100469A1 (en) * | 2007-10-15 | 2009-04-16 | Microsoft Corporation | Recommendations from Social Networks |
US8286143B2 (en) * | 2007-11-13 | 2012-10-09 | International Business Machines Corporation | Method and system for monitoring code change impact on software performance |
US20090228296A1 (en) * | 2008-03-04 | 2009-09-10 | Collarity, Inc. | Optimization of social distribution networks |
US20110184960A1 (en) * | 2009-11-24 | 2011-07-28 | Scrible, Inc. | Methods and systems for content recommendation based on electronic document annotation |
US8782608B2 (en) * | 2008-06-17 | 2014-07-15 | International Business Machines Corporation | System and method of identifying and tracking software pattern metrics |
US20090319436A1 (en) * | 2008-06-18 | 2009-12-24 | Delip Andra | Method and system of opinion analysis and recommendations in social platform applications |
US20100070335A1 (en) * | 2008-09-18 | 2010-03-18 | Rajesh Parekh | Method and System for Targeting Online Ads Using Social Neighborhoods of a Social Network |
US8595696B2 (en) * | 2008-09-30 | 2013-11-26 | International Business Machines Corporation | Development of networked applications |
US8600812B2 (en) * | 2009-03-03 | 2013-12-03 | Google Inc. | Adheat advertisement model for social network |
US9110953B2 (en) * | 2009-03-04 | 2015-08-18 | Facebook, Inc. | Filtering content in a social networking service |
US8489515B2 (en) * | 2009-05-08 | 2013-07-16 | Comcast Interactive Media, LLC. | Social network based recommendation method and system |
US8645936B2 (en) | 2009-09-30 | 2014-02-04 | Zynga Inc. | Apparatuses, methods and systems for an a API call abstractor |
US8751521B2 (en) * | 2010-04-19 | 2014-06-10 | Facebook, Inc. | Personalized structured search queries for online social networks |
US8572129B1 (en) * | 2010-04-19 | 2013-10-29 | Facebook, Inc. | Automatically generating nodes and edges in an integrated social graph |
US20110270774A1 (en) | 2010-04-30 | 2011-11-03 | Microsoft Corporation | Group Recommendations in Social Networks |
US20110276631A1 (en) * | 2010-05-04 | 2011-11-10 | Schmitt Steven J | Systems and methods for accessing information from multiple networks, social graphs, and content sites |
US9619211B2 (en) * | 2010-12-30 | 2017-04-11 | International Business Machines Corporation | Code suggestion in a software development tool |
US20120179751A1 (en) * | 2011-01-06 | 2012-07-12 | International Business Machines Corporation | Computer system and method for sentiment-based recommendations of discussion topics in social media |
US9009664B2 (en) * | 2011-03-31 | 2015-04-14 | Infosys Limited | Structural search of source code |
US20120272207A1 (en) | 2011-04-20 | 2012-10-25 | Sony Computer Entertainment America Llc | Social interactive code development |
US9595068B2 (en) * | 2011-05-13 | 2017-03-14 | Dell Products L.P. | Social marketplace affiliate administration |
US20130041916A1 (en) * | 2011-08-11 | 2013-02-14 | HomeAway.com, Inc. | Presentation of social graph data |
US20130074032A1 (en) * | 2011-09-20 | 2013-03-21 | Pedro Pablo Barragán Barragán | Application development server |
US20130297698A1 (en) * | 2012-05-07 | 2013-11-07 | Nokia Corporation | Method and Apparatus for Utilizing Context and Profile Information in Content Searching and Recommendation |
US9026992B2 (en) * | 2012-06-22 | 2015-05-05 | Microsoft Technology Licensing, Llc | Folded views in development environment |
US20140047413A1 (en) * | 2012-08-09 | 2014-02-13 | Modit, Inc. | Developing, Modifying, and Using Applications |
US9304760B2 (en) * | 2012-11-12 | 2016-04-05 | International Business Machines Corporation | Identifying software code experts |
-
2012
- 2012-12-13 US US13/714,187 patent/US9092211B2/en active Active
-
2013
- 2013-12-13 EP EP13818574.9A patent/EP2932399A4/en not_active Ceased
- 2013-12-13 CN CN201380065539.9A patent/CN105190597B/zh active Active
- 2013-12-13 WO PCT/US2013/074961 patent/WO2014093793A2/en active Application Filing
-
2015
- 2015-07-27 US US14/809,783 patent/US10261759B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451177B1 (en) * | 1999-08-12 | 2008-11-11 | Avintaquin Capital, Llc | System for and method of implementing a closed loop response architecture for electronic commerce |
US20050223354A1 (en) * | 2004-03-31 | 2005-10-06 | International Business Machines Corporation | Method, system and program product for detecting software development best practice violations in a code sharing system |
CN101065170A (zh) * | 2004-09-16 | 2007-10-31 | 百利国际游戏有限公司 | 用于游戏机的用户接口系统和方法 |
US20070169027A1 (en) * | 2005-11-30 | 2007-07-19 | Ulrich Drepper | Methods and systems for complete static analysis of software for building a system |
CN101465878A (zh) * | 2007-12-20 | 2009-06-24 | 音乐会技术公司 | 用于模拟社交网络中离线用户的推荐的方法和系统 |
CN101464881A (zh) * | 2007-12-21 | 2009-06-24 | 音乐会技术公司 | 基于用位置信息标记的播放历史信息、在分布式环境中生成媒体推荐的方法和系统 |
US20100299305A1 (en) * | 2009-05-22 | 2010-11-25 | Microsoft Corporation | Programming element modification recommendation |
US20110125585A1 (en) * | 2009-11-20 | 2011-05-26 | Rovi Technologies Corporation | Content recommendation for a content system |
US20120151322A1 (en) * | 2010-12-13 | 2012-06-14 | Robert Taaffe Lindsay | Measuring Social Network-Based Interaction with Web Content External to a Social Networking System |
Non-Patent Citations (2)
Title |
---|
A ZAGALSKY等: "Example Overflow:Using social media for code recommendation", 《THIRD INTERNTIONAL WORKSHOP ON RECOMMENDATION SYSTEMS FOR SOFTWARE ENGINEERING》 * |
IDO GUY等: "Personalized recommendation of social software items based on social relations", 《ACM CONFERENCE ON RECOMMENDER SYSTEMS》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943595A (zh) * | 2016-10-12 | 2018-04-20 | 谷歌公司 | 环境自动分组 |
CN107943595B (zh) * | 2016-10-12 | 2021-11-30 | 谷歌公司 | 环境自动分组 |
CN110140134A (zh) * | 2016-10-28 | 2019-08-16 | 脸谱公司 | 使用深度学习模型来生成推荐 |
US11710079B2 (en) | 2016-10-28 | 2023-07-25 | Meta Platforms, Inc. | Generating recommendations using a deep-learning model |
US11887016B2 (en) | 2016-11-01 | 2024-01-30 | Google Llc | Actionable suggestions for activities |
CN111095310A (zh) * | 2017-09-21 | 2020-05-01 | 国际商业机器公司 | 实现动态和自动地更改用户简档以增强性能 |
US11954564B2 (en) | 2017-09-21 | 2024-04-09 | International Business Machines Corporation | Implementing dynamically and automatically altering user profile for enhanced performance |
CN108717423A (zh) * | 2018-04-24 | 2018-10-30 | 南京航空航天大学 | 一种基于深度语义挖掘的代码段推荐方法 |
CN108717423B (zh) * | 2018-04-24 | 2020-07-07 | 南京航空航天大学 | 一种基于深度语义挖掘的代码段推荐方法 |
CN110008398A (zh) * | 2019-01-07 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据分类管理推荐方法及装置 |
CN110008398B (zh) * | 2019-01-07 | 2023-06-27 | 创新先进技术有限公司 | 一种数据分类管理推荐方法及装置 |
CN109885504A (zh) * | 2019-03-15 | 2019-06-14 | 网易(杭州)网络有限公司 | 推荐系统的测试方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2014093793A2 (en) | 2014-06-19 |
US9092211B2 (en) | 2015-07-28 |
WO2014093793A3 (en) | 2014-10-09 |
US20140173555A1 (en) | 2014-06-19 |
US10261759B2 (en) | 2019-04-16 |
EP2932399A2 (en) | 2015-10-21 |
US20150331674A1 (en) | 2015-11-19 |
EP2932399A4 (en) | 2016-09-14 |
CN105190597B (zh) | 2018-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105190597A (zh) | 基于社交的信息推荐系统 | |
US11803704B2 (en) | Intelligently updating a collaboration site or template | |
US11307830B2 (en) | Intelligent digital experience development platform (IDXDP) | |
US10846617B2 (en) | Context-aware recommendation system for analysts | |
US10255081B2 (en) | Method and system for intelligent cloud planning and decommissioning | |
US20150135160A1 (en) | System and method for providing an application development and distribution social platform | |
CN105144088A (zh) | 元数据与源代码的关联以及基于其的应用和服务 | |
US9959269B1 (en) | Method and system for implementing a website builder | |
CN105453037A (zh) | 维持用于更新的已知相关性 | |
Houston | Mobile phone repair knowledge in downtown Kampala: local and trans-local circulations | |
JP2015508918A (ja) | 冗長な消費者トランザクションルールのフィルタリング | |
WO2019059999A1 (en) | ITERATIVE UPDATE OF A COLLABORATION SITE OR A MODEL | |
JP7320443B2 (ja) | 互換性のあるモジュールを特定するシステムおよび方法 | |
US9628551B2 (en) | Enabling digital asset reuse through dynamically curated shared personal collections with eminence propagation | |
Biswas et al. | Software engineering challenges in new media applications | |
Zaidman et al. | Software Evolution. | |
Umuhoza | Domain-specific modeling and code generation for cross-platform mobile and IoT-based applications | |
Lin | Advancing Automated Software Testing Through Test Reuse | |
Tasnim et al. | A Recommender System Based Job Application | |
JP2022087835A (ja) | コミュニティ分類方法、コンピュータプログラム、およびコンピュータ装置 | |
CN116431607A (zh) | 数据模型重构方法、装置、设备及其存储介质 | |
Yang | GoCity: a context-aware adaptive Android application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |