Это оригинальный вопрос (Это вторая часть).
Я использую HyperGraphQL для запроса EBI-RDF sparql конечная точка на основе этого учебного пособия .
Когда я выполняю этот запрос GraphQL, чтобы получить родителей GO_0044727
:
{
Class_GET_BY_ID(uris:[
"http://purl.obolibrary.org/obo/GO_0044727"]) {
id
label
subClassOf {
id
label
subClassOf {
id
label
subClassOf { # <--- 4th sub level
id
label
}
}
}
}
}
Я не получил результатов:
{
"extensions": {},
"data": {
"@context": {
"_type": "@type",
"_id": "@id",
"label": "http://www.w3.org/2000/01/rdf-schema#label",
"id": "http://www.geneontology.org/formats/oboInOwl#id",
"Class_GET_BY_ID": "http://hypergraphql.org/query/Class_GET_BY_ID",
"subClassOf": "http://www.w3.org/2000/01/rdf-schema#subClassOf"
},
"Class_GET_BY_ID": []
},
"errors": []
}
В журналах я получил ошибку:
java.util.concurrent.ExecutionException: org.apache.jena.query.QueryException: Endpoint returned Content-Type: text/html which is not rcognized for SELECT queries
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.hypergraphql.datafetching.services.SPARQLEndpointService.iterateFutureResults(SPARQLEndpointService.java:86)
at org.hypergraphql.datafetching.services.SPARQLEndpointService.executeQuery(SPARQLEndpointService.java:69)
at org.hypergraphql.datafetching.ExecutionTreeNode.generateTreeModel(ExecutionTreeNode.java:357)
at org.hypergraphql.datafetching.FetchingExecution.call(FetchingExecution.java:21)
at org.hypergraphql.datafetching.FetchingExecution.call(FetchingExecution.java:8)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.jena.query.QueryException: Endpoint returned Content-Type: text/html which is not rcognized for SELECT queries
at org.apache.jena.sparql.engine.http.QueryEngineHTTP.execResultSetInner(QueryEngineHTTP.java:377)
at org.apache.jena.sparql.engine.http.QueryEngineHTTP.execSelect(QueryEngineHTTP.java:344)
at org.hypergraphql.datafetching.SPARQLEndpointExecution.call(SPARQLEndpointExecution.java:81)
at org.hypergraphql.datafetching.SPARQLEndpointExecution.call(SPARQLEndpointExecution.java:33)
... 4 more
Запрос SPARQL, сгенерированный на основе запроса GraphQL выше:
SELECT *
WHERE {
GRAPH <http://rdf.ebi.ac.uk/dataset/go> {
VALUES ?x_1 { <http://purl.obolibrary.org/obo/GO_0044727> }
?x_1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
OPTIONAL {
?x_1 <http://www.w3.org/2000/01/rdf-schema#subClassOf> ?x_1_1 .?x_1_1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
OPTIONAL { ?x_1_1 <http://www.w3.org/2000/01/rdf-schema#label> ?x_1_1_1 . }
OPTIONAL { ?x_1_1 <http://www.w3.org/2000/01/rdf-schema#subClassOf> ?x_1_1_2 .?x_1_1_2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
OPTIONAL { ?x_1_1_2 <http://www.geneontology.org/formats/oboInOwl#id> ?x_1_1_2_1 . }
OPTIONAL {
?x_1_1_2 <http://www.w3.org/2000/01/rdf-schema#subClassOf> ?x_1_1_2_2 .?x_1_1_2_2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
OPTIONAL { ?x_1_1_2_2 <http://www.w3.org/2000/01/rdf-schema#label> ?x_1_1_2_2_1 . }
OPTIONAL { ?x_1_1_2_2 <http://www.geneontology.org/formats/oboInOwl#id> ?x_1_1_2_2_2 . }
}
OPTIONAL { ?x_1_1_2 <http://www.w3.org/2000/01/rdf-schema#label> ?x_1_1_2_3 . }
}
OPTIONAL { ?x_1_1 <http://www.geneontology.org/formats/oboInOwl#id> ?x_1_1_3 . }
}
OPTIONAL { ?x_1 <http://www.w3.org/2000/01/rdf-schema#label> ?x_1_2 . }
OPTIONAL { ?x_1 <http://www.geneontology.org/formats/oboInOwl#id> ?x_1_3 . }
}
}
Я попытался @AKSW ответить здесь , добавив ?force
в файл config.json
(строка: "url": "http://www.ebi.ac.uk/rdf/services/sparql?force"
), но это не сработало.
Я подумал, что, возможно, запросслишком длинный, но когда я проверил запрос , он не дал никакой ошибки.