如果您正在寻找快速性能,那么我建议您将Raptor与Redland Python Bindings一起使用。用C语言编写的Raptor的性能比RDFLib好得多。如果您不想处理C,可以使用python绑定
另一个提高性能的建议是,忘记解析RDF/XML,使用其他类型的RDF,比如Turtle或NTriples。特别是分析ntriples要比分析RDF/XML快得多。这是因为ntriples语法更简单。
您可以使用rapper(raptor附带的一个工具)将RDF/XML转换为ntriples:rapper -i rdfxml -o ntriples YOUR_FILE.rdf > YOUR_FILE.ntriples
ntriples文件将包含三元组,如:
.
"literal" .
解析器处理这种结构的效率很高。此外,内存方面比RDF/XML更有效,因为正如您所看到的,这个数据结构更小。
下面的代码是一个使用redland python绑定的简单示例:import RDF
parser=RDF.Parser(name="ntriples") #as name for parser you can use ntriples, turtle, rdfxml, ...
model=RDF.Model()
stream=parser.parse_into_model(model,"file://file_path","http://your_base_uri.org")
for triple in model:
print triple.subject, triple.predicate, triple.object
基本URI是前缀URI,以防在RDF文档中使用相对URI。您可以在here中查看有关Python Redland绑定API的文档
如果您不太关心性能,那么就使用RDFLib,它简单易用。