基于MongoDB的代码查询平台

来源 :南京大学 | 被引量 : 0次 | 上传用户:hjkl00000
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,开源社区的发展蒸蒸日上,SourceForge、Bitbucket、GitHub等开源社区上托管着几百万的开源项目,规模与日俱增。为了利用这些海量的开源代码资源,首先需要对代码进行理解。理解代码的一个必要手段,是对代码进行查询。然而,开源社区所提供的搜索能力往往仅限于关键字匹配,难以满足使用者对关系语义查询的需求。另外,不同的代码版本控制协议也让不同开源社区的开源代码库彼此异构,使得用户很难通过一次查询在不同的异构代码库上获得结果。MongoDB是一种基于文档的NoSQL数据库。它采用了无模式的文档数据模型,能够灵活地存储不同结构的数据,并具有极高的可扩展性。它非常适合用来存储结构复杂、形式多样、大数据量的异构代码。本文在对相关工作进行调研分析的基础上,提出了一个基于MongoDB的开源代码查询平台,以解决代码查询的异构问题,支撑开源代码的理解、复用和分析工作,主要工作包括:1.使用FreeTXL将异构的开源代码转换为通用的中间格式XML,再使用JDOM转换为JSON格式,存入MongoDB中。异构的代码在经过这两步转换后,以统一的格式得到了持久化存储,从而代码异构问题不再是代码查询的阻碍。2.提出了一种针对面向对象代码的查询语言JINS+,其语法简洁、功能丰富,提供五种语义元素的属性和关系查询,并支持逻辑运算符和谓词。3.设计了一个查询引擎,解析并执行输入的JINS+语句。首先从中抽取出查询原语,再将查询原语映射到对应的MongoDB查询命令上,与内嵌文档路径信息重组后进行执行,返回结果。
其他文献
<正> 一、引言 俄亥俄州(简称俄州)位于美国中西部,煤炭储藏十分丰富。100多年来,俄州的千家万户和工业部门都把煤作为主要能源。俄州产煤,除供应本州外,还输往其他州。按199
通过对现有的两个基于验证元的三方密钥交换协议进行了安全性分析,指出它们都是不安全的,并以此为基础提出了一个高效的基于双验证元的三方密钥交换协议。在排除计算效率较低的
<正> 一、瑞士CIM行动计划概要 随着高新技术的发展,世界上产品的生命周期不断缩短,市场竞争日趋激烈,对企业的产品质量、成本,反应灵活性等各方面提出了更高的要求。在这种
目的:探讨中药葛根治疗酒精性中毒的药效及药理。方法:选取2016年3月至2017年3月在我院接受治疗的60例酒精性中毒患者进行研究,将所有患者随机分为观察组以及对照组,每组30例
马克思&#183;韦伯认为从西方开始的现代化过程是理性化和祛魅的过程,是世俗化的过程。在老舍先生的《断魂枪》中,沙子龙并没有把“断魂枪”传给徒弟王三胜。其实“不传”的过程
ue*M#’#dkB4##8#”专利申请号:00109“7公开号:1278062申请日:00.06.23公开日:00.12.27申请人地址:(100084川C京市海淀区清华园申请人:清华大学发明人:隋森芳文摘:本发明属于生物技
目的探究小儿轮状病毒性腹泻患者运用微生物制剂与葡萄糖酸锌联合治疗的临床价值。方法选取120例在2016年1月~2018年2月来我院治疗的小儿轮状病毒性腹泻患者,根据随机原则划
野外调查和形态学研究表明,硬序重寄生(檀香科重寄生属模式种)以桑寄生科半寄生灌木为寄主,具有一些特殊的生活习性和形态结构特征.讨论认为,重寄生链上的一些渐变特征展现林