使用txt文件作为输入创建RDF文件
我想知道怎么用Python的RDFlib模块,把一个简单的以制表符分隔的文本文件(里面有主题、谓词和对象这些标题)转换成RDF N-triple格式。
1 个回答
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> .