在sparql中将两个单词匹配在一起

在sparql中将两个单词匹配在一起,sparql,rdf,semantic-web,ontology,rdfs,Sparql,Rdf,Semantic Web,Ontology,Rdfs,如何列出贡献描述(诺贝尔奖:动机)中包含“人类”和“和平”两个词(即两个词都必须存在)的获奖者奖(由其标签给出) 我已经从中使用了bds:search名称空间。 访问此链接后,我编写了此查询 前缀rdfs: 前缀bds: 前缀nobel: 选择?奖励?说明 何处{ ?实体RDF:标签?奖励。 ?诺贝尔实体:动机?描述。 过滤器(bds:搜索(?说明、“人类”和“和平”)) } 此查询在执行时返回以下错误,如图所示。 如何更正此查询并获得所需的结果? 您可以查看此数据集的规范或下载 使用bds

如何列出贡献描述(诺贝尔奖:动机)中包含“人类”和“和平”两个词(即两个词都必须存在)的获奖者奖(由其标签给出)

我已经从中使用了bds:search名称空间。 访问此链接后,我编写了此查询

前缀rdfs:
前缀bds:
前缀nobel:
选择?奖励?说明
何处{
?实体RDF:标签?奖励。
?诺贝尔实体:动机?描述。
过滤器(bds:搜索(?说明、“人类”和“和平”))
}
此查询在执行时返回以下错误,如图所示。 如何更正此查询并获得所需的结果? 您可以查看此数据集的规范或下载

使用bds:search搜索“人类”类别。然后对“和平”应用筛选和包含功能

前缀rdfs:
前缀bds:
前缀nobel:
前缀bif:
选择?奖励?说明
何处{
?实体RDF:标签?奖励。
?诺贝尔实体:动机?描述。
?说明bds:搜索“人”。
过滤器(包含(?说明,“和平”))
}

ehm,您的第二个链接只显示了Virtuoso triple store的解决方案,但您有Blazegraph。这是行不通的,全文搜索在SPARQL中是不标准的,所以每个三元组存储都有自己的语法。Blazegraph中的引擎基于Lucene,因此您应该尝试它们的语法。如果布尔查询不受支持,您可以通过执行
?description bds:search“human”来重写它?描述bds:搜索“和平”
我不明白?为什么不使用两倍的全文索引呢?
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bds: <http://www.bigdata.com/rdf/search#>
PREFIX nobel: <http://data.nobelprize.org/terms/>

SELECT ?awards  ?description  
WHERE { 
  ?entity rdfs:label   ?awards  .
  ?entity nobel:motivation ?description  .
   FILTER ( bds:search ( ?description, '"human" AND "peace"' ) ) 
}
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bds: <http://www.bigdata.com/rdf/search#>
PREFIX nobel: <http://data.nobelprize.org/terms/>
PREFIX bif: <http://www.openlinksw.com/schemas/bif#>

SELECT ?awards  ?description  
WHERE { 
  ?entity rdfs:label   ?awards  .
  ?entity nobel:motivation ?description  .
  ?description bds:search "human" .
  FILTER (CONTAINS(?description, "peace"))
}