如何使用python模块RDFlib将一个简单的制表符分隔的txt文件(包含主题subject,谓词,对象)转换为RDF N-triple格式?
答案 0 :(得分:10)
这不是很复杂。首先,一些必要的进口:
from StringIO import StringIO
from rdflib import Graph, URIRef
我在这里使用StringIO
来避免创建文件。相反,我将只列出一些内容和一个类似文件的对象:
contents = '''\
subject1\tpredicate1\tobject1
subject2\tpredicate2\tobject2'''
tabfile = StringIO(contents)
然后创建一个图表并加载所有三元组:
graph = rdflib.Graph()
for line in tabfile:
triple = line.split() # triple is now a list of 3 strings
triple = (URIRef(t) for t in triple) # we have to wrap them in URIRef
graph.add(triple) # and add to the graph
现在你有了整个图形在内存中(假设你有足够的内存,当然)。你现在可以打印出来了:
print graph.serialize(format='nt')
# prints:
# <subject1> <predicate1> <object1> .
# <subject2> <predicate2> <object2> .