如何在SPARQL中查找包含指定词汇的所有标题?
实现SPARQL标题模糊匹配(包含"Education"的条目)
原SPARQL查询仅能精确匹配标题为“Education Act 2002”的条目:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX leg: <http://www.legislation.gov.uk/def/legislation/> SELECT * WHERE { ?x leg:title ?y. FILTER(?y in ("Education Act 2002")) }
要实现模糊匹配所有包含“Education”的标题,只需将原查询中的FILTER条件替换为SPARQL的contains()函数,修改后的查询如下:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX leg: <http://www.legislation.gov.uk/def/legislation/> SELECT * WHERE { ?x leg:title ?y. FILTER(contains(?y, "Education")) }
说明
contains(?str, ?substr)是SPARQL标准字符串函数,用于检查?str是否包含子串?substr,满足条件的条目会被返回。- 这个修改会匹配所有标题字段中包含“Education”的条目,不受该词汇在标题中的位置限制。
内容的提问来源于stack exchange,提问作者H Hassan
相关产品推荐
相关产品推荐

