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

Matching two words together in sparql

如何列出贡献描述(由 nobel:motivation 给出)包含单词 "human" 和单词 "peace" 的获奖者奖项(由他们的标签给出) (即,两个词都必须存在)。

我使用了 the the full-text search feature of Blazegraph 中的 bds:search 命名空间。 访问此 link 后,我编写了此查询

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"' ) ) 
}

此查询在执行时返回以下错误,如图所示。 Error Image 如何更正此查询并获得所需的结果? 您可以查看此数据集的规范或下载 RDF dump of the dataset

使用 bds:search 搜索 "human" category.Then 对 "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"))
}