2013-06-18 27 views
2

我正在尋找一種簡潔的方式來解析來自freebase RDF API的RDF。我嘗試了jquery.rdf.js/jquery.rdf.turtle.js,但它似乎無法處理點符號CURIE。例如,下面是我從遊離鹼獲取有關城市"Oslo"烏龜:解析來自Freebase RDF API的烏龜使用Javascript

@prefix key: <http://rdf.freebase.com/key/>. 
@prefix ns: <http://rdf.freebase.com/ns/>. 
@prefix owl: <http://www.w3.org/2002/07/owl#>. 
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. 
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>. 

ns:m.05l64 
    ns:base.aareas.schema.administrative_area.administrative_area_type ns:m.0hzcklw; 
    ns:base.aareas.schema.administrative_area.administrative_parent ns:m.05b4w; 
    ns:base.biblioness.bibs_location.country ns:m.05b4w; 
    ns:base.biblioness.bibs_loca 

導致錯誤:

uncaught exception: Invalid Turtle: Expecting ':', found '.05l64 
    ns:base.a...' 

有沒有辦法更換.,或一個不同的庫或解決方法嗎?

回答

5

我認爲你的基本問題是Freebase RDF似乎在使用最新版本的Turtle specification,該版本目前是W3C候選推薦標準。此版本的Turtle規範確實允許在其中使用.的QNames(以及其他許多以前的非法字符),而大多數當前工具所實現的舊版和技術上非官方的Turtle specification則不允許。

目前的規範是從2013年1月,我可以找到更自由的前綴名稱語法的最早的參考,允許.是2012年7月草案。相反,您使用的工具最近在2009年根據其SVN進行了更新,因此它不支持此語法並不令人意外。

我找到了一個blog post,談到開發一個Turtle解析器到Javascript中的最新規範可能會有所訣竅。

+0

同意,謝謝澄清 – user2498899

+1

你應該檢查安東尼Garrote的rdfstore-js(https://github.com/antoniogarrote/rdfstore-js)庫,這可能是最新的js庫在JavaScript中編寫rdf的東西 –