我有炫技以下SPARQL查詢:如何使用BIF做SPARQL查詢:REGEXP_MATCH在耶拿
PREFIX wd: <http://www.wikidata.org/entity/>
SELECT DISTINCT ?p, ?title WHERE {
?p a ?c.
?c rdfs:subClassOf* wd:Q2431196.
?p rdfs:label ?title .
FILTER (bif:regexp_match("^Vamp([(].*[)])?$", ?title))
}
在this SPARQL endpoint,它工作正常。它按預期返回電視節目Vamp和Vamp(telenovela)。
現在我正在嘗試使用Jena API在Java上執行相同的操作,但它失敗,如下所示。
線程 「main」 com.hp.hpl.jena.query.QueryParseException異常:10號線,列204:未解決的前綴名稱:BIF:REGEXP_MATCH
我找到了一個解決方案,擺脫Jena例外情況,建議爲bif:contains
。然後查詢如下:
PREFIX wd: <http://www.wikidata.org/entity/>
SELECT DISTINCT ?p, ?title WHERE {
?p a ?c.
?c rdfs:subClassOf* wd:Q2431196.
?p rdfs:label ?title .
?title <bif:regexp_match> "^Vamp([(].*[)])?$"
}
但是,該查詢沒有返回任何元素,如前面的查詢一樣。它不會返回SPARQL端點Web界面上的任何元素(如前面的查詢所做的那樣)
我做錯了什麼?我怎樣才能正確地對它進行正則表達呢?
2015年9月16日下午3點16分32秒org.apache.jena.riot:
PS:關於Java /耶拿在使用上的Web SPARQL端點
FILTER REGEX(?title, "^Vamp([(].*[)])?$")
作品,但引發以下錯誤。 system.ErrorHandlerFactory $ ErrorLogger LOGERROR 嚴重:無效字節3字節的2 UTF-8 sequence.`
我認爲這個錯誤已與()
人物做..
無論是在你的構建還是在Virtuoso的解釋中,它看起來都是正則表達式的問題。我無法提供即時解決方案,但我可以並且確實建議您將問題提交給更專注的受衆 - [Virtuoso用戶郵件列表(http://sourceforge.net/p/virtuoso/mailman/virtuoso-users/) 。 – TallTed