查询一个大的海龟文件

Querying a large turtle file

我有一个包含超过 7000 万行的 turtle 文件,我使用 python 脚本查询它,问题是执行时间太长。

这是我尝试做的一个例子:

import rdflib
import rdfextras
rdfextras.registerplugins() 

g=rdflib.Graph()
g.parse("my_file.ttl", format='turtle')
results = g.query("""
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX bk:  <http://www.ondex.org/bioknet/terms/>
    SELECT (COUNT(*) AS ?nbr_of_genes)
    WHERE {
    ?gene rdf:type bk:Gene.
    }
""")

我从原始文件中抽取了 100 万行的样本,这个简单的查询执行了 76 秒!

有没有更快的查询文件的方法?

将您的 Turtle 文件加载到适当的 RDF 三重或四重存储中,自然会受益于 DBMS 特性和功能。