批量编辑rdflib中三元组的主题

时间:2016-04-23 22:40:35

标签: python json-ld linked-data rdflib

我通过使用rdflib-jsonld解析数据库中的记录来创建rdflib图。但是,三元组的主题在网址中缺少/。要添加它,我使用以下代码:

for s,p,o in graph1:
            print 'parsing to graph2. next step - run query on graph2'
            pprint.pprint((s,p,o))
            s = str(s)
            s1 =s.replace('https:/w','https://w')
            s = URIRef(s1)
            graph2.add((s,p,o))

由于图表中的三元组数量较多,此步骤需要很长时间(几个小时)才能运行。我怎样才能减少花费的时间?不是循环遍历每个元素,我如何批量改变主题?

1 个答案:

答案 0 :(得分:2)

首先,要进行适当的时间测量,删除与更换本身无关的任何内容,特别是普通和漂亮的打印,您不需要它们。如果您需要一些进度指示器,请每隔N步将一条短消息(例如一个点)写入日志文件。

避免内存过度消耗。我不知道你的图表在内部看起来如何,但最好是在不创建并行图形结构的情况下进行替换。在此过程中检查内存使用情况,如果程序没有可用RAM,那么您遇到了麻烦,所有进程都会慢下来。如果您无法修改现有图形内存不足,出于测量目的,只需避免创建第二个图形,即使这样的替换丢失也无用。

如果没有任何帮助,请退后一步。当您尚未使用python re或使用专用于批处理文本处理的sed等文本工具解析文件时,您可以在舞台上执行替换。