Làm cách nào để chuyển đổi tệp txt phân cách bằng tab đơn giản (chứa chủ đề, vị từ, đối tượng) thành định dạng RDF N-triple bằng mô-đun python RDFlib?Tạo tệp RDF bằng tệp txt làm đầu vào
6
A
Trả lời
10
Nó không phải là rất phức tạp. Trước tiên, một số nhập khẩu cần thiết:
from StringIO import StringIO
from rdflib import Graph, URIRef
Tôi đang sử dụng StringIO
tại đây để tránh tạo tệp. Thay vào đó, tôi sẽ chỉ liệt kê một số nội dung và một đối tượng tập tin giống như với các nội dung:
contents = '''\
subject1\tpredicate1\tobject1
subject2\tpredicate2\tobject2'''
tabfile = StringIO(contents)
Sau đó tạo một đồ thị và tải tất cả gấp ba với nó:
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
Bây giờ bạn có toàn bộ đồ thị trong bộ nhớ (giả sử bạn có đủ bộ nhớ, tất nhiên). Bây giờ bạn có thể in nó:
print graph.serialize(format='nt')
# prints:
# <subject1> <predicate1> <object1> .
# <subject2> <predicate2> <object2> .
Nitpick: bạn đang sắp xếp đồ thị theo định dạng N3. Kể từ khi poster ban đầu được yêu cầu cho N-Triples, tôi chỉ nghĩ rằng tôi muốn chỉ ra rằng hai định dạng đó không giống nhau. –
@JeenBroekstra: Cảm ơn, tôi đã không đọc kỹ bài đăng một cách cẩn thận. Tôi sẽ sửa câu trả lời của tôi. – DzinX