显示哪个结果是由 ASK 查询中的哪个绑定组合决定的
Show which result was determinated by which combination of bindings in an ASK query
有没有办法显示 ASK
查询的哪个绑定用于哪个结果?
为了阐明我的意思:对于 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
注意:我知道可以将此查询分成两部分,但我想尽可能避免这种情况。
SPARQL ASK
只能 return 布尔值;因此,您不能使用此查询类型。
此查询可能会执行您想要的操作:
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)
}
有没有办法显示 ASK
查询的哪个绑定用于哪个结果?
为了阐明我的意思:对于 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
注意:我知道可以将此查询分成两部分,但我想尽可能避免这种情况。
SPARQL ASK
只能 return 布尔值;因此,您不能使用此查询类型。
此查询可能会执行您想要的操作:
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)
}