0
Sparql-Query를 작성하여 강의와 관련된 모든 메시지를 가져 오려고합니다. 나는 전체 '시맨틱 웹'이야기에서 새로운 편이다. 사용법 네임 스페이스가 완전히 틀린 경우 인내심을 가져라.Sparql Select Query는 Sesame-Workbench에서 작동하지만 Java에서는 작동하지 않습니다.
내가 실행하려고 쿼리는 다음과 같습니다
1337-7331
는 ID입니다
PREFIX siocNS: <http://rdfs.org/sioc/ns#>
PREFIX rdfPred: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX purlPred: <http://purl.org/dc/terms/>
PREFIX purlPredLecture: <http://purl.org/<CENSORED>/lecture/>
select ?post ?title ?content ?time ?creator where
{
?post rdfPred:type siocNS:Post.
?post purlPred:title ?title.
?post purlPred:content ?content.
?post purlPred:created ?time.
?post purlPred:creator ?creator.
?post purlPred:context purlPredLecture:1337-7331.
}
.
Sesame-Workbench에서 예상되는 행 수가 2 개이기 때문에 쿼리가 제대로 작동하는 것 같습니다. Java에서 Jena를 사용하면 내 QueryExecuion
이 올바르지 않은 것으로 보입니다. 여기
내 코드 :
String prefix = "PREFIX siocNS: <http://rdfs.org/sioc/ns#>\n"
+ "PREFIX rdfPred: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
+ "PREFIX purlPred: <http://purl.org/dc/terms/>\n"
+ "PREFIX purlPredLecture: <http://purl.org/<CENSORED>/lecture/>\n";
String queryString = "select ?post ?title ?content ?time ?creator where\n"
+ "{\n"
+ "?post rdfPred:type siocNS:Post.\n"
+ "?post purlPred:title ?title. \n"
+ "?post purlPred:content ?content. \n"
+ "?post purlPred:created ?time. \n"
+ "?post purlPred:creator ?creator.\n"
+ "?post purlPred:context purlPredLecture:"
+ lectureID + ".\n" + "}";
logger.info("Created Query:" + prefix + queryString);
Query query = QueryFactory.create(prefix
+ queryString, Syntax.syntaxSPARQL);
query.addResultVar("?post");
query.addResultVar("?title");
query.addResultVar("?content");
query.addResultVar("?time");
query.addResultVar("?creator");
Model model = ModelFactory.createDefaultModel();
QueryExecution execution = QueryExecutionFactory
.create(query, model);
ResultSet execSelect = execution.execSelect();
while (execSelect.hasNext()) {
...
DO SOME STUFF
...
}
위 쿼리는 자바 디버거에서 복사되었습니다. Query(Execution)
을 준비 할 때 뭔가를 놓쳤으며, Sesame-Workbench가 누락 된 것들을 완성합니까?
도움을 받으려면 Thx!
DPA
당신은 점점 예외가 무엇처럼 보인다? lectureID의 값은 무엇입니까? –
나는 예외를 얻지 못했습니다. 'execution.execSelect();'실행 후 ResultSet은 비어 있습니다. lectureID의 값은 1337-7113입니다 (쿼리와 동일) – dpa
OMG 이제는 무엇이 누락되었는지 확인합니다 ... 서버 설정을 놓친 것 (ReposiotryID 포함). 그러나 이러한 정보를 설정할 수있는 가능성은 없었습니다. 이것에 대한 도움이 필요하십니까? – dpa