使用txt文件作为输入创建RDF文件

6 投票
1 回答
3190 浏览
提问于 2025-04-17 11:03

我想知道怎么用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> .

撰写回答