【问题标题】:DBPedia load abstract from soccer clubDBPedia 从足球俱乐部加载摘要
【发布时间】:2018-06-12 17:38:22
【问题描述】:

不幸的是,我对 dbpedia 的本体还有一个问题。我无法建议如何从我选择的团队中获得摘要。我的 sparql 查询看起来像

PREFIX dbo:     <http://dbpedia.org/ontology/>
SELECT * where {
?club a dbo:SoccerClub;
dbo:ground ?grounds.
?grounds  dbo:location ?country.
FILTER(?country = <http://dbpedia.org/resource/Austria>)
}

这个查询的结果是这样的

有人知道如何为每个俱乐部选择摘要吗?

感谢您的帮助

【问题讨论】:

  • 所以你不能添加另一个三重模式?club dbo:abstract ?abstract .?我想你应该知道你理解了 SPARQL 的概念,它基本上是三重模式匹配。实际上,按特定语言进行过滤可能很有用,尤其是在 DBpedia 上。 FILTER(LANGMATCHES ...)
  • 非常感谢。是的,我尝试添加另一个三重模式PREFIX dbo: &lt;dbpedia.org/ontology/&gt;; SELECT * where { ?club a dbo:SoccerClub; ?club dbo:abstract ?abstract . dbo:ground ?grounds. ?grounds dbo:location ?country. FILTER(?country = &lt;dbpedia.org/resource/Austria&gt;) } ,但随后编译器抛出错误:`Virtuoso 37000 Error SP030: SPARQL compiler, line 6: syntax error at '?abstract' before '.'' `
  • 那么,你应该学习一下 Turtle 语法。 ?club a dbo:SoccerClub; 分号 ; 用于以下三元组模式使用相同主题时,这意味着您必须省略它:?club a dbo:SoccerClub ; dbo:abstract ?abstract ; dbo:ground ?grounds .

标签: sparql ontology dbpedia


【解决方案1】:

我自己找到了正确的解决方案。感谢您的帮助。

PREFIX dbo:     <http://dbpedia.org/ontology/>
SELECT * where {
?club a dbo:SoccerClub;
dbo:ground ?grounds.
?grounds  dbo:location ?country.
?club dbo:abstract ?abstract.
FILTER(?country = <http://dbpedia.org/resource/Austria> && langMatches(lang(?abstract),"de"))
}

【讨论】:

  • 我建议看看 Turtle 的简短形式。 ?club a dbo:SoccerClub ; dbo:abstract ?abstract ; dbo:ground ?grounds .
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
  • 2019-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多