自2019年12月发现新冠肺炎以来,对我们的日常生活造成了很大改变,日常佩戴口罩,勤洗手,勤消毒,人员密集地区保持一米间距等,新冠肺炎也成为日常讨论的热点。虽然对于新冠的出现在大量政府部门、医护人员和人民群众众志成城支持下,对新冠肺炎做到快速响应、及时处置、有效管控,但新冠肺炎当前呈现全球大流行和不断快速变异的趋势,局部地区受到境外地区疫情的冲击以及不断变异的新冠病毒考验。如何借助智能化手段对疫情的发生路径和特征进行分析并进行可视化的展示是辅助疫情分析防控的有效手段。也是提升医护人员和疫情防控人员的工作效率,降低工作压力。
我们通过对疫情确诊的患者信息构建新冠疫情知识图谱,之后可在构建好的知识图谱上对当前疫情进行推理、分析,对疫情传播路径,确诊病例之间关联路径进行发现和展示。
我们以北京2022年最新疫情作为示例展示如何使用知识图谱进行疫情相关分析和展示。我们从北京市卫健委官网http://wjw.beijing.gov.cn/中收集了从2022年1月15日到2022年2月15日所有公示的确诊病例信息,然后对每个病例形成三元组示例数据,每个案例的谓语包含住址、工作地、流经地、隔离类型、密接者、确诊时间、确诊类型、病毒类型等。最终构成北京2022年本土疫情知识图谱。
表1. 疫情病例RDF三元组数据库示例
<病例74> <住址> <丰台区玉泉营街道巴庄子村>.
<病例74> <工作地> <洁源清北京保洁服务有限公司>.
<病例74> <流经地> <花乡奥莱村>.
<病例74> <隔离类型> <密接者>.
<病例74> <密接者> <病例73>.
<病例74> <确诊时间> <2022年1月27日>.
<病例74> <确诊类型> <无症状感染者>.
<病例74> <病毒类型> <德尔塔变异株>.
2 疫情知识图谱存储与使用
我们使用图数据库gStore对构建好的北京2022年本土疫情知识图谱进行存储,首先我们将构建的疫情数据集及nt文件进行上传并构建图数据库:
然后在构建好的图数据库上进行推理分析和相关信息查找。
我们通过输入SPARQL语句,可对北京本土疫情的所有病例及和每个病例相关联信息进行全局展示。
SPARQL查询语句:
select * where{
?a ?b ?c.
}
2.2 关联查找
查询1:查找在当前的确诊病例中工作地为西南郊冷库的所有病例。
SPARQL查询语句:
select ?a where{
?a <工作地> <西南郊冷库>.
}
查询2:可查找所有确诊病例为德尔塔变异株的病例,以及这些病例的住址和工作地。
SPARQL查询语句:
select ?a where{
?a <病毒类型> <德尔塔变异株>.
}
SPARQL查询语句:
select ?a ?b ?c where{
?a <病毒类型> <德尔塔变异株>.
?a <住址> ?b.
?a <工作地> ?c.
}
查询3:查找某一天确诊的所有病例,以及他们的住址信息。
SPARQL查询语句:
select ?a ?b where{
?a <确诊时间> <2022年1月19日>.
?a <住址> ?b.
}
查询4:查找病例与病例之间的关系,展示疫情传播路径
1.查找病例1和病例12之间的关系
通过可达性查询函数查询语句:
SELECT (kHopReachablePath(<病例12>, <病例1>, true, -1, {}) as ?y) WHERE {}
得到如下结果(为方便阅读,省略了字符串最外层的双引号和内部双引号的转义):
{
"paths": [
{
"src": "<病例12>",
"dst": "<病例1>",
"edges": [
{"fromNode": 40, "toNode": 10, "predIRI": "<密接者>"},
{"fromNode": 10, "toNode": 0, "predIRI": "<密接者>"}
],
"nodes": [
{"nodeIndex": 0, "nodeIRI": "<病例1>"},
{"nodeIndex": 40, "nodeIRI": "<病例12>"},
{"nodeIndex": 10, "nodeIRI": "<病例3>"}
]
}
]
}
图形化展示的为:
可看见病例1的密接者为病例3,且病例12为病例3的密接者,即可查看一条完整的传播链。
2.查找病例8与病例11的关系
通过可达性查询函数查询语句:
SELECT (kHopReachablePath(<病例11>, <病例8>, true, -1, {}) as ?y) WHERE {}
得到如下结果(为方便阅读,省略了字符串最外层的双引号和内部双引号的转义):
{
"paths": [
{
"src": "<病例11>",
"dst": "<病例8>",
"edges": [
{"fromNode": 34, "toNode": 23, "predIRI": "<密接者>"}
],
"nodes": [
{"nodeIndex": 23, "nodeIRI": "<病例8>"},
{"nodeIndex": 34, "nodeIRI": "<病例11>"}
]
}
]
}
图形化展示的为:
由此可见,病例8到病例11的风险传播路径为病例9为病例8<同居>,病例11为病例8和病例9的密接者。
诚邀大家参加
·gStore-weekly技术文章征集活动·
相关技术文章,包含但不限于以下内容:系统技术解析、案例分享、实践总结、开发心得、客户案例、使用技巧、学习笔记等。文章要求原创。
入选周刊即送精美礼品~