Создание RDF-файла с использованием txt-файла в качестве входных данных - PullRequest
6 голосов
/ 25 января 2012

Как я могу преобразовать простой текстовый файл с разделителями табуляции (содержащий заголовок, предикат, объект) в N-тройной формат RDF с помощью модуля Python RDFlib?

1 Ответ

10 голосов
/ 25 января 2012

Это не очень сложно. Сначала некоторые необходимые импортные данные:

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> .
...