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 .

* 将使 属性 路径匹配零个或多个重定向。