尝试重新使用这个以前可以工作的脚本,但现在出现错误:
Virtuoso 37000 Error SP030: SPARQL compiler, line 5: Undefined namespace prefix at 'dbpedia-owl' before 'dbpedia-owl:SportsTeam'
Run Code Online (Sandbox Code Playgroud)
以及脚本本身:
select ?a ?b ?super (?aLength + ?bLength as ?length)
{
values (?a ?b) { (dbpedia-owl:Person dbpedia-owl:SportsTeam) }
{ select ?a ?super (count(?mid) as ?aLength) {
?a rdfs:subClassOf* ?mid .
?mid rdfs:subClassOf+ ?super .
}
group by ?a ?super
}
{ select ?b ?super (count(?mid) as ?bLength) {
?b rdfs:subClassOf* ?mid .
?mid rdfs:subClassOf+ ?super .
}
group by ?b ?super
}
}
order by ?length
limit 1
Run Code Online (Sandbox Code Playgroud)
有什么想法如何更新吗?
dbpedia-owl:
目前不是DBPedia 上的预定义命名空间前缀,尽管它曾经是。它已被替换为dbo:
.
就目前情况而言,您可以将dbpedia-owl:
查询中的所有实例更改为dbo:
,或将其添加到查询的开头 -
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
Run Code Online (Sandbox Code Playgroud)
推荐后者。
为了获得最佳结果,您应该始终在 SPARQL 中包含PREFIX
声明,而不是依赖此类服务器端预定义。如果删除命名空间预定义(如本例所示)或更改为新 URL,这可以避免出现任何问题,这可能会对查询结果产生不可预测的影响。
归档时间: |
|
查看次数: |
2007 次 |
最近记录: |