APP下载

基于Virtuoso 的疾病知识RDF 描述与仓储研究

2022-07-21李若宇

无线互联科技 2022年9期
关键词:语句本体检索

李若宇,陈 磊

(淮南师范学院 计算机学院,安徽 淮南 232001)

0 引言

随着2020 年暴发的新冠肺炎疫情席卷全球,各种疾病知识已经成为最有价值的信息之一,建立高质量的疾病知识库,有助于推进医学现代化,推进全民医学知识科普。 现阶段传统主流数据库以关系型数据库为主,在存储结构化数据时具有成熟的技术和良好的性能,但疾病知识拥有着明显的树状结构和拓扑结构特征,传统关系型数据库难以做到高效的存储。

资源描述框架(Resource Description Framework,RDF)是Web3.0 时代语义网技术中的一个概念,表达为一种基于图的数据类型,常作为知识图谱的存储介质。 选用RDF 进行疾病知识描述和仓储具有查询效率高、扩展性强、对非结构化非关系型数据兼容性较好等特点。 国内外基于RDF 技术开发的知识库有清华大学的Xlore、复旦大学的CN-Dbpedia、谷歌的Freebase 和维基的DBPedia。 Openlink 公司的Virtuoso 数据库能够实现RDF 数据的仓储,并使用SPARQL 语句进行数据的检索和操作[1-2]。

1 知识描述

1.1 知识建模

作为语义网中的核心技术,使用RDF 构建知识工程时,知识本体被当作资源表示为URI,不同资源间的联系以主谓宾的形式进行描述,形成知识图谱。 构成RDF 的数据类型包括:(1)URI。 用于标记资源,以网址的形式。 如在疾病知识中,知识本体“高血压”被标记为资源:。 (2)字面量。 表示具体值。 如字符串值: "脑动脉粥样硬化"。上述类型数据类型可构成主谓宾三元组的RDF 原生数据形式[3-4]。 RDF 原生数据形式如表1 所示。

表1 RDF 原生数据形式

疾病知识具有明显的医学知识特征,有较规则的知识结构,例如大多数疾病都包含中英文名称、就诊科室、多发群体、病症分类、常见症状、诊断方法、治疗方法等共同属性,因此根据属性关系可以对疾病知识进行有效组织。 对疾病知识进行建模的步骤包括:(1)收集知识文档。 可以从网络百科、电子书籍等相对准确的资料上收集资料,注意可以采用爬虫的方式,但是需要对知识的准确性进行人工验核。 (2)抽取主要属性。根据对大多数疾病知识的研究,归纳通用疾病属性,建立数据字典。

在图1 中,唯一编号的ds125 表示知识本体“冠心病”,ds125 下包含有一级属性中文名、英文名、多发人群、就诊科室、症状、治疗方法、检查方法。 值得注意的是,虽然RDF 数据模型中的属性名类似于关系模型中的字段名,但这里的属性名可自由搭配属性值,如属性“检查方法”可以连接一个值,也可以连接若干个值。

图1 知识本体“冠心病”的RDF 数据模型

1.2 RDF 数据描述

完成知识内容建模以后,需要将知识内容转化为RDF 描述,转化工作包括拼接前缀、格式化等工作,产出的结果应该是规范的RDF 三元组文档。

值得注意的是,宾语除了字面量以外,还可能是资源类型。 如“检查方法”对应的属性值这里表示为资源而非字串字面量,一方面,因为具体“检查方法”更趋向于是一个术语,符合被定义成为RDF 中的资源;另一方面,一种“检查方法”可能被多种疾病共享,如“心电图”可以是多种疾病的“检查方法”,这时与将“心电图”作为“检查方法”的疾病资源便建立了联系。 如图2 所示,让数据实体之间(ds125 和ds126)建立丰富的联系,体现关联数据语义网的核心理念。

图2 通过同一种检查方法连接起来的两个疾病实体

2 Virtuoso 数据仓储

2.1 Virtuoso 数据库简介

RDF 数据具有明显的“图”结构,需要使用图数据库进行组织和存储,单纯的关系型数据库并不便于存储RDF 数据。 Openlink Virtuoso 数据库支持以图的形式存储RDF 数据,支持使用SPARQL 语句对RDF 数据进行DML 和DQL 操作,兼容主流操作系统,支持JDBC,ODBC,HTTP API 等主流数据访问接口和多种编程语言,在海量数据存储和处理方面有着不错的表现,同时还支持将关系数据转换为RDF 数据的技术(RDB2RDF)。 除了Openlink Virtuoso 以外,MarkLogic,Jena,GraphDB 等数据库在RDF 数据仓储方面都有着优秀特性[5]。

2.2 知识仓储

知识仓储在这里主要指将组织好的RDF 数据存储至数据库,在将RDF 数据导入Virtuoso 数据库时,常常采用SPARQL-Update 语句的方式进行。

(1)在Virtuoso 数据库的namespace 定义命名空间和对应的前缀,有助于减小输入冗余。

@prefix knt:

@prefix kna:

此时知识本体可被表示为knt:ds125,属性可以被表示为kna:属性。

(2)SPARQL 语句支持RDF 缩写形式,下面是相同主语和相同主谓两种情况下的缩写示例。 INSERT 语句同SQL 中,表示将数据插入数据库,表示存储数据的图,这里的图名可以理解成关系数据库的库名。

如图3 所示,将写好的SPARQL 语句插入Database>Interactive SQL 页面中的输入框,即可完成SPARQLUpdate 语句执行,RDF 数据插入成功以后,数据库系统会返回被更改的条目数量。

2.3 内容检索

RDF 数据的查询是通过SPARQL-Query 语句执行的,可以对已经构建好的疾病知识内容进行检索。 进入Virtuoso 数据库,先后进入Linked Data 标签和SPARQL 标签,即可执行正确的SPARQL 语句。 如图3所示的SPARQL 语句在单机Execute 按钮后,可检索按照上述规则构建的“冠心病”的相关知识[6]。

图3 对“冠心病”的知识进行搜索

继续使用SPARQL 语句:SELECT ? s ? o FROM WHERE{? s? o.},可查询出库中所有的疾病名称,结果如图4 所示。

图4 对库中所有疾病名称进行搜索

例如通过SPARQL 语句:SELECT COUNT(? s)FROM WHERE{? s ? o.},COUNT 关键词可统计出收录的所有的疾病条目数[7-10]。

3 结语

文中以疾病知识的描述和仓储为研究对象,介绍了RDF 技术原理,针对疾病知识特点进行分析和建模形成RDF 图,随后进行RDF 描述形成有效的RDF 文档,在Windows 平台对Virtuoso 数据库进行部署,使用SPARQL 语言实现RDF 数据的导入和检索,并简要介绍了一些RDF 数据库管理操作,如图管理、命名空间管理等。 未来还可以使用Virtuoso 数据库的编程接口,实现疾病知识应用的设计与开发。

猜你喜欢

语句本体检索
Abstracts and Key Words
对姜夔自度曲音乐本体的现代解读
重点:语句衔接
2019年第4-6期便捷检索目录
专利检索中“语义”的表现
《我应该感到自豪才对》的本体性教学内容及启示
如何搞定语句衔接题
Care about the virtue moral education
国际标准检索
国际标准检索