在Javascript中从Freebase RDF API解析Turtle

时间:2013-06-18 21:52:28

标签: rdf freebase

我正在寻找一种从freebase RDF API解析RDF的简洁方法。我尝试了jquery.rdf.js / jquery.rdf.turtle.js,但似乎在处理点符号CURIE时遇到了麻烦。例如,下面是我从Freebase获得的有关城市"Oslo"的海龟:

@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...'

有没有办法替换.或其他库或变通方法?

1 个答案:

答案 0 :(得分:5)

我认为你的基本问题是Freebase RDF似乎正在使用最新版本的Turtle specification,这是目前的W3C候选推荐标准。这个版本的Turtle规范确实允许在其中使用.的QNames(以及许多其他以前非法的字符),而大多数当前工具实现的旧的和技术上非正式的Turtle specification没有。

当前的规范是从2013年1月开始的,我可以找到最早的参考文献,它允许.更自由的前缀名称语法在2012年7月的草案中。相反,您使用的工具最近在2009年根据其SVN进行了更新,因此它不支持这种语法并不奇怪。

我确实找到了一个blog post,其中讨论了如何将Jurtle解析器开发为Javascript中的最新规范,可以解决这个问题。

相关问题