rdflib ParseErrors:无法在<http:上吃<[^:] +:[^ \ s“ <>] *>在&无效行:'<http:'

问题描述

我是知识图的新手,并尝试使用rdflib探索this dataset。 我的文件kg.nt部分显示如下:

<http://dbpedia.org/resource/(3-Aminopropyl)triethoxysilane> <http://www.w3.org/1999/02/22-rdf-Syntax-ns#type> <http://dbpedia.org/ontology/ChemicalSubstance> .
<http://dbpedia.org/resource/(3-Aminopropyl)triethoxysilane> <http://www.w3.org/1999/02/22-rdf-Syntax-ns#type> <http://dbpedia.org/ontology/ChemicalCompound> .
<http://dbpedia.org/resource/(E)-4-Hydroxy-3-methyl-but-2-enyl_pyrophosphate> <http://www.w3.org/1999/02/22-rdf-Syntax-ns#type> <http://dbpedia.org/ontology/ChemicalSubstance> .
<http://dbpedia.org/resource/(E)-4-Hydroxy-3-methyl-but-2-enyl_pyrophosphate> <http://www.w3.org/1999/02/22-rdf-Syntax-ns#type> <http://dbpedia.org/ontology/ChemicalCompound> .
<http://dbpedia.org/resource/(Hydroxyethyl)methacrylate> <http://www.w3.org/1999/02/22-rdf-Syntax-ns#type> <http://dbpedia.org/ontology/ChemicalSubstance> .

当我尝试将其解析为:

g = rdflib.Graph()
g.parse('kg.nt',format='nt')

发生ParseError:

---------------------------------------------------------------------------
ParseError                                Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/rdflib/plugins/parsers/ntriples.py in parse(self,f)
    153             try:
--> 154                 self.parseline()
    155             except ParseError:

/usr/local/lib/python3.6/dist-packages/rdflib/plugins/parsers/ntriples.py in parseline(self)
    196 
--> 197         subject = self.subject()
    198         self.eat(r_wspaces)

/usr/local/lib/python3.6/dist-packages/rdflib/plugins/parsers/ntriples.py in subject(self)
    223         # @@ Consider using dictionary cases
--> 224         subj = self.uriref() or self.nodeid()
    225         if not subj:

/usr/local/lib/python3.6/dist-packages/rdflib/plugins/parsers/ntriples.py in uriref(self)
    242         if self.peek('<'):
--> 243             uri = self.eat(r_uriref).group(1)
    244             uri = unquote(uri)

/usr/local/lib/python3.6/dist-packages/rdflib/plugins/parsers/ntriples.py in eat(self,pattern)
    217             # print repr(self.line),type(self.line)
--> 218             raise ParseError("Failed to eat %s at %s" % (pattern.pattern,self.line))
    219         self.line = self.line[m.end():]

ParseError: Failed to eat <([^:]+:[^\s"<>]*)> at <http:

During handling of the above exception,another exception occurred:

ParseError                                Traceback (most recent call last)
<ipython-input-6-f64353cdd168> in <module>
      1 # This takes a while...
      2 g = rdflib.Graph()
----> 3 g.parse('kg.nt',format='nt')

/usr/local/lib/python3.6/dist-packages/rdflib/graph.py in parse(self,source,publicID,format,location,file,data,**args)
   1076         parser = plugin.get(format,Parser)()
   1077         try:
-> 1078             parser.parse(source,self,**args)
   1079         finally:
   1080             if source.auto_close:

/usr/local/lib/python3.6/dist-packages/rdflib/plugins/parsers/nt.py in parse(self,sink,baseURI)
     24         f = source.getByteStream()  # Todo getCharacterStream?
     25         parser = NTriplesParser(NTSink(sink))
---> 26         parser.parse(f)
     27         f.close()

/usr/local/lib/python3.6/dist-packages/rdflib/plugins/parsers/ntriples.py in parse(self,f)
    154                 self.parseline()
    155             except ParseError:
--> 156                 raise ParseError("Invalid line: %r" % self.line)
    157         return self.sink
    158 

ParseError: Invalid line: '<http:'

如何解决此问题?谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)