【发布时间】:2016-09-05 22:48:30
【问题描述】:
我正在尝试查询 DBPedia 类别“Diseases_of_oral_cavity,_salivary_glands_and_jaws”的 skos:broader 属性。此类别在以下 URI 中可用:
http://dbpedia.org/resource/Category:Diseases_of_oral_cavity,_salivary_glands_and_jaws
以下查询提供所需的输出:
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?broaderCategory
WHERE {
<http://dbpedia.org/resource/Category:Diseases_of_oral_cavity,_salivary_glands_and_jaws> skos:broader ?broaderCategory
}
要求是使用 Python 代码和 Sparql 包装器查询多个类别的 skos:broader 属性。我试图通过为所有 DBPedia 类别 URI 定义 PREFIX 并在 WHERE 子句中使用它来使代码更具可读性,如下所示:
PREFIX dbpcat: <http://dbpedia.org/resource/Category:>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?broaderCategory
WHERE {
dbpcat:Diseases_of_oral_cavity,_salivary_glands_and_jaws skos:broader ?broaderCategory
}
第二个查询在类别名称中的“,”处返回语法错误。用转义序列(hex-unicode 和 html)替换逗号并没有帮助。而且,使用字符串文字(dbc:"[category]" 和 dbc:'''[category]''')也不是正确的语法。
这种情况下逗号应该如何处理?
【问题讨论】:
-
正如@AKSW 所指出的,这似乎是一个错误。我已经在内部报告了。您可以通过project issues on github 和/或Virtuoso Users mailing list 报告来获取更新并提高优先级;如果使用商业版,OpenLink Support Case 可能(也)是合适的。 (ObDisclaimer:我为OpenLink Software 工作,Virtuoso 的制作人。)
标签: sparql semantic-web dbpedia virtuoso