我正在寻找一种从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...'
有没有办法替换.
或其他库或变通方法?
答案 0 :(得分:5)
我认为你的基本问题是Freebase RDF似乎正在使用最新版本的Turtle specification,这是目前的W3C候选推荐标准。这个版本的Turtle规范确实允许在其中使用.
的QNames(以及许多其他以前非法的字符),而大多数当前工具实现的旧的和技术上非正式的Turtle specification没有。
当前的规范是从2013年1月开始的,我可以找到最早的参考文献,它允许.
更自由的前缀名称语法在2012年7月的草案中。相反,您使用的工具最近在2009年根据其SVN进行了更新,因此它不支持这种语法并不奇怪。
我确实找到了一个blog post,其中讨论了如何将Jurtle解析器开发为Javascript中的最新规范,可以解决这个问题。