繁体   English   中英

如何在 SPARQL 查询中过滤个人

[英]How to filter on individuals in SPARQL queries

我是这种语言和查询的新手。 在 Protege 中,我使用了 PROV 本体和 FOAF,还添加了一些我自己的实例和类。 有了这个本体,我正在尝试对map进行医学研究的过程。 通过 SPARQL 查询,我想快速检索有关流程的重要信息。

我有多个问题: 在此处输入图像描述

查看上面的查询,output 对我来说很有意义。 左边是一些研究论文(MetaAnalysis 属于 class MetaAnalysisPaper 和 Paper2 属于 class Research),右边是 class 作者的一些名称。

  1. 如何过滤 MetaAnalysis? 所以只有“MetaAnalysis wasAttributedTo(作者姓名)”关系出现,而不是 Paper2。
  2. 我如何过滤作者,例如比德曼? 所以只有关系“MetaAnalysis wasAttributedTo Biederman”出现。

以下为个人: 在此处输入图像描述

我也有 CImin 个体,也属于 ConfidenceInterval class,它具有相同的 wasGeneratedBy 关系,值为 0.12,定义方式与 CImax 相同。

  1. 我想要一个 output,它给我 CImax 的值 (0.39) 和 CImin 的值 (0.12)。 是否可以通过一个查询同时获得这两个输出? 这个查询会是什么样子? 如果一个查询不可能,那么只查询 CImax 的值会是什么样子?

先感谢您。 我的 Turtle 文件非常非常大,所以我决定不在这里上传,但如果有必要,请告诉我。

如何过滤 MetaAnalysis? 所以只有“MetaAnalysis wasAttributedTo(作者姓名)”关系出现,而不是 Paper2。

您可以使用过滤器表达式来做到这一点。 例如,在您的情况下,您可以添加如下内容:

FILTER(?property = lol:MetaAnalysis)

我说“类似”是因为在您的屏幕截图中,不清楚MetaAnalysis资源所在的命名空间。我它是 Protege 创建的默认本体命名空间(第一张图片缩写为lol ),但您可能需要仔细检查。

我如何过滤作者,例如比德曼? 所以只有关系“MetaAnalysis wasAttributedTo Biederman”出现。

相同的想法,只是不同的变量和值:

FILTER(?object = lol:Biederman) 

(这是假设Biederman是您数据中的资源 URI,而不是文字值 - 从您的屏幕截图中不清楚)

将任一过滤条件放在 WHERE 子句中(在语句模式之后),您应该对 go 很好。

我想要一个 output,它给我 CImax 的值 (0.39) 和 CImin 的值 (0.12)。 是否可以通过一个查询同时获得这两个输出? 这个查询会是什么样子? 如果一个查询不可能,那么只查询 CImax 的值会是什么样子?

是的,这是可能的,有多种方式。 您可以做的一件事是创建一个 SPARQL 查询,该查询获取所有类型为ConfidenceInterval的个人(类似于?ci rdf:type lol:ConfidenceInterval. )并获取他们的值(例如?ci lol:value?value )。 在单个 SPARQL 查询中组合这两种模式,以获得与这两种模式匹配的所有内容。 根据需要添加其他过滤器和模式 go 以使您的查询更加具体。

更一般地说:这确实是您在这里要求的基本 SPARQL。 我建议你做一个教程,网上有几个非常好的教程,一个快速的谷歌会帮你解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM