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

Python 使用txt文件作为输入创建RDF文件,python,parsing,rdf,text-files,Python,Parsing,Rdf,Text Files,如何使用python模块RDFlib将一个简单的以制表符分隔的txt文件(包含标题主语、谓语、宾语)转换为RDFn-triple格式?这并不复杂。首先,一些必要的进口: from StringIO import StringIO from rdflib import Graph, URIRef 我在这里使用StringIO来避免创建文件。相反,我将只列出一些内容和具有以下内容的类似文件的对象: contents = '''\ subject1\tpredicate1\tobject1 subj

如何使用python模块RDFlib将一个简单的以制表符分隔的txt文件(包含标题主语、谓语、宾语)转换为RDFn-triple格式?

这并不复杂。首先,一些必要的进口:

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> .
print graph.serialize(format='nt')
#印刷品:
#    .
#    .

Nitpick:您正在以N3格式序列化图形。因为最初的海报要求N-Triples,我只是想指出这两种格式不一样。@JeenBroekstra:谢谢,我没有仔细阅读这篇文章。我会更正我的答案。