2010-10-19 44 views
0

我創建了一個簡單的查詢來顯示具有DataType屬性值的主體。 此查詢在Protege 3.4.3中運行。但是當我在耶拿運行時,我收到了這個標題「[email protected]」。爲什麼? 這是我的查詢:我應該如何處理Jena中的SPARQL結果?

PREFIX VB: <http://VBnet#> 
SELECT ?x ?y 
WHERE { 
    ?x rdf:type VB:LearnerInformation . 
    ?x VB:Name ?y 
} 

LearnerInformation是一個階級和 名稱是一個類型屬性。

+1

你可以編輯你的問題提供一些示例數據。可能是因爲Protege正在做某種程度的推理,Jena沒有這樣做,因此Jena沒有給你任何答案。 – 2010-10-26 20:49:09

回答

5

您已收到一組結果,該結果由ResultSet表示。您可以按如下步驟操作:

ResultSet results = ... // result of query 
while (results.hasNext()) { 
    QuerySolution soln = results.next(); 
    System.err.printf("X is '%s'\n", soln.getResource("x")); 
    System.err.printf("Y is '%s'\n", soln.getLiteral("y")); 
} 

請注意,結果本身就是結構化對象。

+0

我的朋友感謝您的答案,但已經在我的編程中使用了這段代碼。我不知道爲什麼我在jena中的查詢沒有任何輸出,而在Protege中我可以看到輸出! – saman 2010-10-20 00:58:53

+0

@saman @ user205512可能是因爲Jena沒有做任何推理,並且Protege根據某種推理級別給出了答案? – 2010-10-26 20:50:30

+1

該查詢爲非法數據。 rdf:未定義。這表明你的問題/例子不是你實際運行的。 – AndyS 2013-03-29 18:39:26