我不是Python程序員,但它看起來像使用字符串格式(使用%
運算符)將值插入到SPARQL查詢中。在這種情況下,將p
(「OSPF」)的值插入到您的字符串中,替換%s
。所以這個結果是:
FOAF:price :OSPF .
在OSPF
前面的:
意味着你在這裏使用前綴名稱,默認前綴。默認前綴是在您的命名空間聲明定義爲:
PREFIX : <http://something.com>
這導致插在你的SPARQL查詢中最後的URI:
FOAF:price <http://something.comOSPF> .
如果你想要一個不同的網址,你必須改變這種方式被替代。一種解決方案是將完整的URI作爲值p
。然後,您需要從%s
刪除前導冒號,而是用尖括號括起來(以表明它是一個完整的URI):
p = "http://www.myurl.com/OSPF"
queryString = ("""
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX FOAF: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX : <http://something.com>
INSERT DATA {
: rdf:type FOAF:productdetails ;
FOAF:price <%s> .
}""")% p
另一種選擇是引入在你的SPARQL查詢另一個命名空間聲明,和使用,在前面的%s
。例如:
p = "OSPF"
queryString = ("""
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX FOAF: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX my: <http://www.myurl.com/>
PREFIX : <http://something.com>
INSERT DATA {
: rdf:type FOAF:productdetails ;
FOAF:price my:%s .
}""")% p
另一方面:您不應該以編程方式向芝麻_Workbench_發送查詢。 Workbench只是一個客戶端UI。將您的查詢發送到實際的Sesame服務器。 –
@JeenBroekstra我該怎麼做?那麼結局會是什麼? – Aravind
通常類似於'http:///openrdf-sesame/repositories/' –