我正在尝试复制https://developers.google.com/freebase/v1/rdf-overview#rdf-documentation中的示例代码以获取特定主题的RDF并将结果存储在rdflib中。设置后,网址是 https://www.googleapis.com/freebase/v1/rdf/m/02h40lc?key=XXXXX。 但是,在运行代码时,我收到以下错误:
"BadSyntax: at line 7 of <>:
Bad syntax (EOF found in middle of path syntax) at ^ in:
"@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.02h40lc
ns:base.database.database_topic.database_s_for_this_topic ns:m.0861s;
ns:base.rosetta.languoid.document ns:m.05tq40j;
ns:base.rosetta.languoid.document ns:m.05tqsrm;
等,最后一行是:
rdfs:label "Inglise keel"@et^..."
文件的实际最后一行是:
rdfs:label "Inglise keel"@et.
我是否错过了让示例工作的一些步骤? 谢谢!
答案 0 :(得分:0)
看起来解析器不喜欢带前缀的URI中嵌入的句点/点(。)。
作为一种解决方法,您可以扩展ns:&amp; key:在将它们提供给RDF解析器之前手动加上前缀URI(是的,这种方式使得使用标准解析器失败了)。结果应如下所示(我认为将解析):
@prefix key: <http://rdf.freebase.com/key/>.
@prefix ns: <http://rdf.freebase.com/ns/>.
<http://rdf.freebase.com/ns/m.02h40lc>
<http://rdf.freebase.com/ns/base.database.database_topic.database_s_for_this_topic <http://rdf.freebase.com/ns/m.0861s>;
<http://rdf.freebase.com/ns/base.rosetta.languoid.document <http://rdf.freebase.com/ns/m.05tq40j>;