查找 Dbpedia 图形网络的两个节点之间的路径长度,而无需知道底层属性路径



我需要找到 Dbpedia 图的任何两个节点之间的路径长度,如果它们之间存在任何连接。目前,我只知道开始和结束节点,并且不知道连接的属性路径。所以,我正在尝试编写SPARQL查询,如下所示:

PREFIX dbo:<http://dbpedia.org/ontology/>
PREFIX dbp:<http://dbpedia.org/property/>
select dbp:Video dbo:VideoGame (count(?mid) as ?length) 
where {
  dbp:Video (<>|!<>)* ?mid .
  ?mid (<>|!<>)+ dbo:VideoGame .
}
group by dbp:Video dbo:VideoGame

在这里,我想找到视频和视频游戏之间的路径长度。但它给出的错误如下:

">

}"之前的"dbo:VideoGame"处的语法错误

谁能帮忙写正确的?

错误消息可能具有误导性。 我看到的一个问题是你不能选择常量,只能选择变量。 您可以尝试一些绑定语句将它们转换为变量:

PREFIX dbo:<http://dbpedia.org/ontology/>
PREFIX dbp:<http://dbpedia.org/property/>
select ?vid ?vidGame (count(?mid) as ?length) 
where {
  BIND(dbp:Video AS ?vid)
  BIND(dbo:VideoGame AS ?vidGame)
  ?vid (<>|!<>)* ?mid .
  ?mid (<>|!<>)+ ?vidGame .
}
group by ?vid ?vidGame

最新更新