有没有办法显示ASK
查询的哪个bindig用于哪个结果?
澄清我的意思:对于一个非常简单的SELECT
查询:
SELECT DISTINCT * WHERE {
?class_0 ?property_0 ?uri .
VALUES (?class_0) {(<http://dbpedia.org/resource/Angela_Merkel>) }
VALUES (?property_0) {(<http://dbpedia.org/ontology/birthPlace>) (<http://dbpedia.org/ontology/birthDate>) }
}
会给出这个:
╔════════════════════════════════════════════╦═════════════════════════════════════════╦══════════════════════════════════════════════════════╗
║ class_0 ║ property_0 ║ uri ║
╠════════════════════════════════════════════╬═════════════════════════════════════════╬══════════════════════════════════════════════════════╣
║ http://dbpedia.org/resource/Angela_Merkel ║ http://dbpedia.org/ontology/birthPlace ║ http://dbpedia.org/resource/Hamburg ║
║ http://dbpedia.org/resource/Angela_Merkel ║ http://dbpedia.org/ontology/birthPlace ║ http://dbpedia.org/resource/Barmbek-Nord ║
║ http://dbpedia.org/resource/Angela_Merkel ║ http://dbpedia.org/ontology/birthDate ║ 1954-07-17 ║
║ http://dbpedia.org/resource/Angela_Merkel ║ http://dbpedia.org/ontology/birthDate ║ "1954-7-17"^^<http://www.w3.org/2001/XMLSchema#date> ║
╚════════════════════════════════════════════╩═════════════════════════════════════════╩══════════════════════════════════════════════════════╝
所以我确切知道如何确定结果:
http://dbpedia.org/resource/Angela_Merkel + http://dbpedia.org/ontology/birthPlace -> http://dbpedia.org/resource/Hamburg, http://dbpedia.org/resource/Barmbek-Nord
有没有办法获取以下查询的此信息?
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
ASK WHERE {
?class_0 a dbo:Sport .
VALUES (?class_0) {(dbr:Horse_racing) (dbr:Angela_Merkel)}
}
所以我可以看到
dbo:Sport + dbr:Horse_racing -> true
dbo:Sport + dbr:Angela_Merkel -> false
注意:我知道可以将此查询拆分为两部分,但如果可能,我希望避免这种情况。
答案 0 :(得分:2)
SPARQL ASK
只能返回一个布尔值;因此,您无法使用此查询类型。
此查询可能会执行您想要的操作:
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT * WHERE {
VALUES (?class_0) {(dbr:Horse_racing) (dbr:Angela_Merkel)}
BIND(xsd:boolean(exists{?class_0 a dbo:Sport}) as ?exists)
}