Python 对 "wrong" URI 的 sparql 查询
Python sparql query on "wrong" URI's
我写了一个 python 脚本,它遍历 URI 列表,运行 对每个 URI 进行以下查询:
query = "SELECT ?subject WHERE {<http://dbpedia.org" + uri + "> dct:subject ?subject.}"
这在给定的 URI 正确时有效,例如
/resource/Android_TV
。
但是在我的 URI 列表中还有其他 URI,例如 /resource/Sheldon_J._Plankton
。
当我 运行 这个查询时它没有找到任何东西,但是如果我去相应的 DBPedia 页面 http://dbpedia.org/resource/Sheldon_J._Plankton
变为
http://dbpedia.org/page/Plankton_(character)
.
显然,此页面的正确 URI 应该是:
resource/Plankton_(character)
.
是否可以将 URI 更改为正确的方式来编写查询?这个 URI 列表非常非常长,所以很遗憾我无法手动检查和修复它们。
你可以关注<http://dbpedia.org/ontology/wikiPageRedirects>
:
<http://dbpedia.org/resource/Sheldon_J._Plankton> dbo:wikiPageRedirects*/dct:subject ?subject .
*
将使 属性 路径匹配零个或多个重定向。
我写了一个 python 脚本,它遍历 URI 列表,运行 对每个 URI 进行以下查询:
query = "SELECT ?subject WHERE {<http://dbpedia.org" + uri + "> dct:subject ?subject.}"
这在给定的 URI 正确时有效,例如
/resource/Android_TV
。
但是在我的 URI 列表中还有其他 URI,例如 /resource/Sheldon_J._Plankton
。
当我 运行 这个查询时它没有找到任何东西,但是如果我去相应的 DBPedia 页面 http://dbpedia.org/resource/Sheldon_J._Plankton
变为
http://dbpedia.org/page/Plankton_(character)
.
显然,此页面的正确 URI 应该是:
resource/Plankton_(character)
.
是否可以将 URI 更改为正确的方式来编写查询?这个 URI 列表非常非常长,所以很遗憾我无法手动检查和修复它们。
你可以关注<http://dbpedia.org/ontology/wikiPageRedirects>
:
<http://dbpedia.org/resource/Sheldon_J._Plankton> dbo:wikiPageRedirects*/dct:subject ?subject .
*
将使 属性 路径匹配零个或多个重定向。