如何在 dbpedia 中获取 owl:sameas
How to get owl:sameas in dbpedia
我正在使用以下查询从 dbpedia 页面获取维基数据 ID owl:sameas
。
SELECT distinct ?wikidata_concept
WHERE {<http://dbpedia.org/resource/Category:Michael_Jackson> owl:sameAs ?wikidata_concept
FILTER(regex(str(?wikidata_concept), "www.wikidata.org" ) )}
LIMIT 100
它在 Virtuoso SPARQL Query Editor 上运行良好。我得到 http://www.wikidata.org/entity/Q7215695
作为正确答案。
但是,当我尝试在 python 中使用 SPARQLWrapper
执行相同操作时,我没有得到上述答案(基本上数据框为空)。
我的python代码如下
import pandas as pd
from SPARQLWrapper import SPARQLWrapper, JSON
sparql = SPARQLWrapper("http://live.dbpedia.org/sparql")
item = "http://dbpedia.org/resource/Category:Michael_Jackson"
sparql.setQuery(f"SELECT distinct ?wikidata_concept WHERE {{<{item}> owl:sameAs ?wikidata_concept FILTER(regex(str(?wikidata_concept), \"www.wikidata.org\" ) )}} LIMIT 100")
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
print(results)
results_df = pd.io.json.json_normalize(results['results']['bindings'])
print(results_df)
请让我知道我哪里做错了。如果需要,我很乐意提供更多详细信息。
DBpedia 有两个版本。所以,我得到两个结果的原因是我在这两种方法中使用了不同的版本。
将 sparql = SPARQLWrapper("http://live.dbpedia.org/sparql")
更改为 sparql = SPARQLWrapper("http://dbpedia.org/sparql")
解决了我的问题。因此,我在查询编辑器和我的 python 代码中使用相同的 dbpedia 版本。
我正在使用以下查询从 dbpedia 页面获取维基数据 ID owl:sameas
。
SELECT distinct ?wikidata_concept
WHERE {<http://dbpedia.org/resource/Category:Michael_Jackson> owl:sameAs ?wikidata_concept
FILTER(regex(str(?wikidata_concept), "www.wikidata.org" ) )}
LIMIT 100
它在 Virtuoso SPARQL Query Editor 上运行良好。我得到 http://www.wikidata.org/entity/Q7215695
作为正确答案。
但是,当我尝试在 python 中使用 SPARQLWrapper
执行相同操作时,我没有得到上述答案(基本上数据框为空)。
我的python代码如下
import pandas as pd
from SPARQLWrapper import SPARQLWrapper, JSON
sparql = SPARQLWrapper("http://live.dbpedia.org/sparql")
item = "http://dbpedia.org/resource/Category:Michael_Jackson"
sparql.setQuery(f"SELECT distinct ?wikidata_concept WHERE {{<{item}> owl:sameAs ?wikidata_concept FILTER(regex(str(?wikidata_concept), \"www.wikidata.org\" ) )}} LIMIT 100")
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
print(results)
results_df = pd.io.json.json_normalize(results['results']['bindings'])
print(results_df)
请让我知道我哪里做错了。如果需要,我很乐意提供更多详细信息。
DBpedia 有两个版本。所以,我得到两个结果的原因是我在这两种方法中使用了不同的版本。
将 sparql = SPARQLWrapper("http://live.dbpedia.org/sparql")
更改为 sparql = SPARQLWrapper("http://dbpedia.org/sparql")
解决了我的问题。因此,我在查询编辑器和我的 python 代码中使用相同的 dbpedia 版本。