论文标题
1+1> 2:编程知识和知识知识融合,语义丰富和连贯的应用
1+1>2: Programming Know-What and Know-How Knowledge Fusion, Semantic Enrichment and Coherent Application
论文作者
论文摘要
软件编程需要API参考(知识)知识和编程任务(知识)知识。许多编程知道的知识和知识知识已在文本中记录在例如API参考文档和编程教程中。为了改善知识的可访问性和用法,一些最近的研究使用自然语言处理(NLP)方法来构建API知识图(API-KG)和编程任务知识知识图(Task-KG),从软件文档中构建。尽管很有希望,但当前的API-KG和Task-KG彼此独立,因此没有两种类型的知识之间的固有联系。我们对堆栈溢出问题的实证研究证实,只有36%的API使用问题可以通过知识或知识的知识来回答,而其余问题则需要两者兼而有之。受到这一观察的启发,我们首次尝试通过API实体链接融合API-KG和Task-KG。这种融合创建了九类API语义关系和两种类型的任务语义关系,这些类型的API-KG或Task-KG中不存在。根据这些新的API和任务语义关系的定义,我们的方法比API-KG和Task-KG的表面级API更深入,并从任务描述和两种类型的任务语义关系与API-KG的协助中脱颖而出,并在当前的API-KG和The Api-KG中的句法关系中脱颖而出。我们通过文本或代码查询来支持连贯的API/以任务为中心的知识搜索相干的API/以任务为中心的知识搜索。
Software programming requires both API reference (know-what) knowledge and programming task (know-how) knowledge. Lots of programming know-what and know-how knowledge is documented in text, for example, API reference documentation and programming tutorials. To improve knowledge accessibility and usage, several recent studies use Natural Language Processing (NLP) methods to construct API know-what knowledge graph (API-KG) and programming task know-how knowledge graph (Task-KG) from software documentation. Although being promising, current API-KG and Task-KG are independent of each other, and thus are void of inherent connections between the two types of knowledge. Our empirical study on Stack Overflow questions confirms that only 36% of the API usage problems can be answered by the know-how or the know-what knowledge alone, while the rest questions require a fusion of both. Inspired by this observation, we make the first attempt to fuse API-KG and Task-KG by API entity linking. This fusion creates nine categories of API semantic relations and two types of task semantic relations which are not present in the stand-alone API-KG or Task-KG. According to the definitions of these new API and task semantic relations, our approach dives deeper than the surface-level API linking of API-KG and Task-KG, and infers nine categories of API semantic relations from task descriptions and two types of task semantic relations with the assistance of API-KG, which enrich the declaration or syntactic relations in the current API-KG and Task-KG. Our fused and semantically-enriched API-Task KG supports coherent API/Task-centric knowledge search by text or code queries.