2010-08-16 88 views
3

我想通過http向遠程端點發送更新。 我發現joseki是這樣一個端點。如何使用Jena查詢/更新遠程RDF端點

但是,如果我只知道端點的URI,我該如何向此端點發送更新查詢?

// To do a select-query you can use this: 
QueryExecution qe = QueryExecutionFactory.sparqlService(serviceURI, query); 

// (Sidenote:) does the next line have the desired effect of setting the binding? 
// After all, sparqlService has no alternative with initialBindang as parameter 
qe.setInitialBinding(initialBinding); 

result = qe.execSelect(); 

// But updates do not support this kind of sparqlService method 
// Illegal: 
// UpdateAction.sparqlServiceExecute(serviceURI, query); 
// I can use the following: 
UpdateAction.parseExecute(updateQuery, dataset, initialBinding); 
// But dataset is a Dataset object, not the uri. 

// I don't believe this is the correct way to overcome this: 
Dataset dataset = DatasetFactory.create(serviceURI); 

否則我想聽聽如何對只有URI已知的端點執行遠程更新查詢。

更新: 最終訴諸當地jena。這種RDF端點接受插入和刪除語句。 我沒有成功找到可以接受修改查詢的遠程RDF端點。

回答

1

否則,我想聽聽怎麼辦 遠程更新查詢到端點 對於其中只有URI是已知的。

根據端點服務器的不同,處理方式稍有不同。有一個草案sparql/update協議。但是,因爲它是草案和相當新的支持是一個小變種。

通常你可以編寫sparql更新查詢,就像你會編寫SQL插入或更新語句一樣。

更新命令是修改,插入,刪除,加載,清除,但不是每個imlpementation都支持所有這些。

由於端點通常是公共的,通常在允許操作之前需要一些認證,這在規範中沒有定義,因此是特定於實現的。

建議爲更新語句使用不同的URL,以便可以使用http認證。 4store,將/ sparql用於查詢和/ update用於更新查詢。

W3C草案有一些examples如何構建sparql更新查詢。

1

Joseki不支持遠程更新。你可能應該看看它的後繼者,Fuseki,它支持SPARQL更新。