当前位置: 首页 > 知识库问答 >
问题:

如何使用sparql提取带有特定谓词的RDF三元组

曹镜
2023-03-14

我将一组RDF三元组上传到本地Virtuosoendpoint。

在所有这些三元组中,我只想提取那些主语至少有谓词的三元组http://www.w3.org/2000/01/rdf-schema#label和http://www.w3.org/2000/01/rdf-schema#comment.

例如,从这些三元组:

<http://dbpedia.org/resource/AccessibleComputing> <http://www.w3.org/2000/01/rdf-schema#label> "AccessibleComputing"@en .
<http://dbpedia.org/resource/AfghanistanGeography> <http://www.w3.org/2000/01/rdf-schema#label> "AfghanistanGeography"@en .
<http://dbpedia.org/resource/AfghanistanGeography> <http://www.w3.org/2000/01/rdf-schema#comment> " ... " .
<http://dbpedia.org/resource/Austroasiatic_languages> <http://www.w3.org/2000/01/rdf-schema#comment> " ... " .
<http://dbpedia.org/resource/AccessibleComputing> <http://dbpedia.org/ontology/wikiPageWikiLink> <http://dbpedia.org/resource/Computer_accessibility> .
<http://dbpedia.org/resource/AfghanistanGeography> <http://dbpedia.org/ontology/wikiPageWikiLink> <http://dbpedia.org/resource/Afghanistan_Geography> .

我想得到:

<http://dbpedia.org/resource/AfghanistanGeography> <http://www.w3.org/2000/01/rdf-schema#label> "AfghanistanGeography"@en .
<http://dbpedia.org/resource/AfghanistanGeography> <http://www.w3.org/2000/01/rdf-schema#comment> " ... " .
<http://dbpedia.org/resource/AfghanistanGeography> <http://dbpedia.org/ontology/wikiPageWikiLink> <http://dbpedia.org/resource/Afghanistan_Geography> .

是否可以通过一个(或多个)SPARQL查询来实现这一点?

谢谢你的帮助

共有2个答案

史飞尘
2023-03-14

一种方法是使用DESCRIBE,例如:

DESCRIBE ?s 
WHERE {
  ?s rdfs:label ?label .
  ?s rdfs:comment ?comment .
}

或者使用CONSTRUCT

CONSTRUCT { ?subject ?predicate ?object} 
WHERE {
  ?subject ?predicate ?object .
  FILTER EXISTS {
     ?subject rdfs:label ?label .
     ?subject rdfs:comment ?comment .
  }
}
宗政浩慨
2023-03-14

这可以通过构造完成,其中查询:

CONSTRUCT WHERE {
    ?s rdfs:label ?label.
    ?s rdfs:comment ?comment.
    ?s ?p ?o
}

这是CONSTRUCT的简化形式,可以在CONSTRUCT{}部分和WHERE{}部分相同时使用。

 类似资料:
  • 我在应用程序中使用Querydsl来大大改进查询数据库的代码。但是,我有一个来自外部服务的JPA谓词(javax.persistence.criteria.Predicate)。我想混合使用Querydsl和外部谓词创建的查询。例如: 另一个解决方案是将Querydsl谓词转换为JPA谓词: 有可能吗?如果是,我如何做到这一点?如果没有,是否有其他混合谓词的解决方案(比如将两者转换为SQL字符串并

  • 本文向大家介绍Prolog带有副作用的谓词,包括了Prolog带有副作用的谓词的使用技巧和注意事项,需要的朋友参考一下 示例 产生副作用的谓词离开了纯逻辑领域。例如: writeq/1 read/1 format/2 副作用是程序中无法推理的现象。例如,删除文件或在系统终端上输出。

  • 我想从数据帧中的文本中提取特定的单词。这些单词我已经输入到字典的列表中,它们属于某些类别(键)。由此,我想创建与存储单词的类别相对应的列。和往常一样,最好用例子来说明: 我有一个数据框: 它创建表: 还有一本我想从中提取的分类词词典。这些单词都是没有符号的自然语言单词,可以包括短语,例如本例中的“alloy wheels”(这不一定是字典,我只是觉得这是最好的方法): 根据这个,我想创建一个如下所

  • 下面的lexer语法片段应该根据类中定义的谓词来标记“自定义名称”: CUSTOM_NAME的正确匹配总是尽可能长的匹配。现在,如果lexer遇到一个自定义名称,比如,那么我希望它对整个字符串,然后用'some:cname'作为参数调用一次谓词。 编辑:这种行为的有趣之处在于,只要将部分匹配传递给谓词,谓词的结果似乎完全被lexer忽略了。这似乎效率很低。

  • 问题内容: 我有以下代码: 将其转换为使用Java 8 的正确方法是什么? 当我尝试使用时,我遇到错误,因为不是。 问题答案: 您无法完全执行所需的操作-方法引用中不允许使用显式参数。 但是你可以… …创建一个方法,该方法返回一个布尔值并将其调用编码为: 这将允许您使用方法ref: …或者您可以定义一个变量来保存该函数: 这将允许您简单地传递变量 …或者您可以咖喱和结合上述两种方法(这绝对是过分的

  • 在Java 8中,您可以使用方法引用来过滤流,例如: 有没有一种方法可以创建一个方法引用,它是现有方法引用的否定,例如: 我可以像下面这样创建方法,但我想知道JDK是否提供了类似的东西。