2011-08-30 48 views
2

Wordnet 3.0(http://semanticweb.cs.vu.nl/lod/wn30/)採用Turtle格式,我無法通過org.openrdf.rio.turtle.TurtleParser來解析Manifest.ttl文件(https://gist.github.com/1181802)。OpenRDF TurtleParser無法正確處理前綴

它看起來像解析器沒有處理正確的前綴 - 顯然它認爲他們是空:

org.openrdf.rio.RDFParseException: org.openrdf.rio.RDFParseException: 
Not a valid (absolute) URI: nullwn30 [line 15] 

我之前從來沒有涉足到RDF裝載空間,所以它很可能我錯過了一些東西。

任何想法去哪裏看?

回答

4

問題是該龜文件中的語法錯誤。具體地,該片段:

:wn30 
    a lib:Namespace ; 
    lib:mnemonic "wn30" ; 
    lib:namespace wn30: . 

標識符:wn30是使用默認名稱空間中的限定的名稱(缺省情況下,因爲它沒有前綴,在建設工程於例如lib:mnemonic)。但是,Turtle文檔不包含默認名稱空間的名稱空間聲明。

順便說一句,您使用的是哪種版本的芝麻?我在最近的版本中對此進行了簡短的測試,但它仍然給我一個錯誤,但是這個錯誤在尋找問題時有點幫助:「使用默認名稱空間但未定義[第14行]」。

爲了解決這個問題,該文件應包括默認命名空間的命名空間聲明,e.g:

@prefix : <http://example.org/> . 
+0

謝謝Jeen。我使用2.5.0 - 是不是最新的? – espeed

+0

是的,是的。不同之處在於解析器被調用的方式如下:如果您以編程方式(而不是通過工作臺)使用解析器,我想您只是沒有設置ParseErrorListener(它會給您更詳細的錯誤信息) 。 –