我对此感到困惑了一段时间,但我终于学会了如何使用Raptor和RedlandPython扩展解析大型N-Triples RDF存储(.nt)。
一个常见的例子是执行以下操作:
import RDF
parser=RDF.Parser(name="ntriples")
model=RDF.Model()
stream=parser.parse_into_model(model,"file:./mybigfile.nt")
for triple in model:
print triple.subject, triple.predicate, triple.object
默认情况下,Parse_into_mode()会将对象加载到内存中,因此,如果您正在解析一个大文件,可以考虑使用HashStorage作为模型并以这种方式序列化它。
但是,如果您只想读取文件,然后说,将其添加到MongoDB中,而不将其加载到Model或类似的复杂文件中,该怎么办?
import RDF
parser=RDF.NTriplesParser()
for triple in parser.parse_as_stream("file:./mybigNTfile.nt"):
print triple.subject, triple.predicate, triple.object