一种从元数据标注的csv数据到rdf数据的转换方法

文档序号:9217303阅读:1690来源:国知局
一种从元数据标注的csv数据到rdf数据的转换方法
【技术领域】
[0001] 本发明涉及数据管理领域中的一种数据格式转换方法,尤其是一种从元数据标注 的CSV数据到RDF数据的转换方法。
【背景技术】
[0002] 在科学领域和电子政务领域的开放数据运动(opendatamovements)使得万 维网(WorldWideWeb)上逗号分隔值(comma-separatedvalues,CSV)格式的数据显 著增长。CSV是常用的表列数据(tabulardata)文件格式,虽然简单实用,但是难以表 达数据世系(provenance)、数据域含义、数据域/表之间的关系、用户访问权限等元数据 (metadata)或标注(annotations)信息。有鉴于此,国际万维网联盟(W3C)的数据行动 计划G)ataActivity:http://www.w3.org/2013/data/)最近成立 了称为"CSVonthe Web"的工作组(http://www.w3.org/2013/csvw/),旨在将原有非标准CSV格式(参见: Y.Shafranovich,CommonFormatandMIMETypeforComma-SeparatedValues(CSV) Files.IETFRFC4180,October2005. http://tools.ietf.org/html/rfc4180)进行扩充, 形成CSV标准(俗称CSV+),并制订相关技术规范,以方便CSV数据的操纵、可视化、解释、多 表数据结合、数据格式转换等Web高级应用。
[0003] CSV+标准中,W3C正在制订的《Web表列数据与元数据模型》技术规范(参见: JeniTennison,GreggKellogg(Editors).ModelforTabularDataandMetadataonthe Web.W3CWorkingDraft16April2015.http://www.w3.org/TR/tabular-data_model/. [访问日期:2015/6/26])以及《表列数据的元数据词汇》技术规范(参见Jeni Tennison,GreggKellogg(Editors).MetadataVocabularyforTabularData.W3C WorkingDraft16April2015.http://www.w3.org/TR/tabular_metadata/?[访问日期: 2015/6/26])可用来对CSV数据进行建模、描述与标注,形成所谓的"元数据标注的CSV数 据"。
[0004] 另一方面,资源描述框架(ResourceDescriptionFramework,RDF)(参见: RichardCyganiak,DavidWood,MarkusLanthaler(Editors).RDF1.1Conceptsand AbstractSyntax.W3CRecommendation25February2014.http://www.w3.org/TR/ rdfll-conc印ts/.)是表示Web信息的一种公共框架和格式;RDF数据模型是一种称为RDF 图的有向标记图(directed,labeledgraph)语义模型,已成为万维网尤其是语义万维网 (SemanticWeb)或数据网(WebofData)上的标准数据模型和数据表示格式。当前流行的 关联数据(LinkedData)或关联开发数据(LinkedOpenData)就是以RDF作为数据模型 与表示格式的。
[0005] 基于以上背景,如何实现从元数据标注的CSV数据到RDF数据的转换,是亟待解决 的关键技术问题。由于CSV+标准正在制订过程中(已接近完成),因此,目前国内外尚未出 现从元数据标注的CSV数据到RDF数据的完整转换方法及其详细实现技术。
[0006] 本发明旨在提供一种数据格式的转换方法,该方法能将用W3C技术规范《Web表 列数据与元数据模型》定义的元数据模型词汇进行标注的CSV数据转换为语义上等价的RDF数据。RDF有多种语义上相互等价的语法格式(参见:GuusSchreiber,YvesRaimond (Editors).RDF1.1Primer.W3CWorkingGroupNote24June2014.http://www. w3.org/TR/rdfll-primer/.),本发明技术方案的【具体实施方式】中用Turtle语法(参见: EricPrud'hommeaux,GavinCarothers(Editors).RDFLITurtle:TerseRDFTriple Language.W3CRecommendation25February2014,http://www.w3.org/TR/turtle/.)来 表示RDF数据。

【发明内容】

[0007] 本发明旨在提供一种数据格式的转换方法,该方法能将用W3C技术规范《Web表列 数据与元数据模型》定义的元数据模型词汇进行标注的CSV数据转换为语义上等价的RDF 数据(本发明技术方案的【具体实施方式】中用Turtle语法来表示RDF数据)。
[0008] 为了解决上述技术问题,本发明公开一种从元数据标注的CSV数据到RDF数据的 转换方法,包括:步骤S1,读取并解析CSV文件,获得表列数据并存入内存数据结构;步骤 S2,读取并解析元数据描述文件,获得元数据并存入内存数据结构;步骤S3,结合已获得的 表列数据与元数据,生成RDF三元组集并存入内存数据结构;步骤S4,将生成的RDF三元组 集输出为Turtle语法格式的RDF数据文件。
[0009] 所述步骤S1进一步包括:步骤S1-1,逐行读取CSV文件中的表列数据,生成输入 流;步骤S1-2,解析输入流,并将解析结果存入表列数据内存数据结构。
[0010] 所述步骤S2进一步包括:步骤S2-1,读取元数据描述文件并生成JS0N对象;步骤 52- 2,创建存储元数据的内存数据结构;步骤S2-3,解析JS0N对象,提取CSV表描述信息后 存入元数据内存数据结构;步骤S2-4,解析JS0N对象,提取CSV模式描述信息后存入元数 据内存数据结构;步骤S2-5,解析JS0N对象,提取CSV列描述信息后存入元数据内存数据 结构。
[0011] 所述步骤S3进一步包括:步骤S3-1,创建存储RDF三元组的内存数据结构;步骤 53- 2,从元数据内存数据结构中提取CSV表描述信息,生成RDF三元组后存入RDF三元组内 存数据结构;步骤S3-3,从元数据内存数据结构中提取CSV列描述信息,生成RDF三元组后 存入RDF三元组内存数据结构;步骤S3-4,结合CSV数据和元数据中列描述信息,生成RDF 三元组后存入RDF三元组内存数据结构。
[0012] 所述步骤S3-4进一步包括:步骤S3-4-1,根据元数据中列描述信息确定CSV列名 所对应的RDF属性名以及该列值的XML模式数据类型;步骤S3-4-2,逐个提取CSV数据中 的列值,转换成RDF三元组。
[0013] 所述步骤S4进一步包括:步骤S4-1,将名空间前缀定义添加到RDF三元组内存数 据结构;步骤S4-2,将RDF三元组内存数据结构输出为RDF数据文件。
[0014] 本发明的技术方案能将元数据标注的CSV数据转换为语义上等价的RDF数据(本 发明技术方案的【具体实施方式】中用Turtle语法来表示RDF数据),这样就可以利用现有软 件工具方便地将转换所得的RDF数据发布到关联数据网(theWebofLinkedData),供各 式各样的语义万维网(SemanticWeb)应用共享、复用与处理来自CSV文件中的表列数据, 使得量大面广的CSV数据能发挥最大潜能。
[0015] 本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变 得明显,或通过本发明的实践了解到。
【附图说明】
[0016] 图1示出了根据本发明技术方案的从元数据标注的CSV数据到RDF数据的转换方 法的流程示意图;
[0017] 图2示出了根据本发明技术方案的读取并解析元数据描述文件、获得元数据并存 入内存数据结构的处理流程示意图;
[0018] 图3示出了根据本发明技术方案的结合已获得的表列数据与元数据、生成RDF三 元组集并存入内存数据结构的处理流程示意图。
【具体实施方式】
[0019] 下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始 至终相同或类似的标号表示相同或类似的概念、对象、要素等或具有相同或类似功能的概 念、对象、要素等。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不 能解释为对本发明的限制。
[0020] 本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术 术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应 该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的 意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
[0021] 图1示出了根据本发明技术方案的从元数据标注的CSV数据到RDF数据的转换方 法的流程示意图。图2示出了根据本发明技术方案的读取并解析元数据描述文件、获得元 数据并存入内存数据结构的处理流程示意图。图3示出了根据本发明技术方案的结合已获 得的表列数据与元数据、生成RDF三元组集并存入内存数据结构的处理流程示意图。
[0022] 本发明技术方案的【具体实施方式】以Java程序设计语言为例来描述。
[0023] 为便于理解技术方案中的处理步骤,表1列出了用于存储元数据的内存数据结构 (自定义的Java公共类TableMetaData),表2列出了名空间前缀定义。
[0024] 表1用于存储元数据的内存数据结构(自定义的Java公共类TableMetaData)
[0025]
[0027] 表2名空间前缀定义
[0028]
[0029] 为了解决上述技术问题,本发明是通过以下技术方案实现的:
[0030] 如图1所示,一种从元数据标注的CSV数据到RDF数据的转换方法,包括如下步 骤:
[0031] 步骤S1,读取并解析CSV文件,获得表列数据并存入内存数据结构,具体包括:
[0032] 步骤S1-1,逐行读取CSV文件中的表列数据,生成输入流,具体如下:
[0033] 首先,逐行读取CSV文件中的表列数据,并将输入流存入到字符串中。
[0034] 其次,设变量dataList,其数据类型为Java数组列表(ArrayList〈E>)。
[0035] 步骤S1-2,解析输入流,并将解析结果存入表列数据内存数据结构,具体如下:
[0036] 根据逗号对CSV数据中的每一行进行分割后转换成一个字符串数组,并将其添加 到dataList中。
[0037] 步骤S2,读取并解析元数据描述文件,获得元数据并存入内存数据结构,如图2所 示,具体包括:
[0038] 步骤S2-1,读取元数据描述文件并生成JSON对象,具体如下:
[0039] 首先,读取元数据描述文件,生成输入字符串流。
[0040] 其次,调用第三方
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1