2012-01-25 25 views

Respuesta

10

No es muy complicado. En primer lugar, algunas importaciones necesarias:

from StringIO import StringIO 
from rdflib import Graph, URIRef 

estoy usando StringIO aquí para evitar la creación de un archivo. En su lugar, sólo voy a enumerar algunos de los contenidos y un objeto de tipo fichero con estos contenidos:

contents = '''\ 
subject1\tpredicate1\tobject1 
subject2\tpredicate2\tobject2''' 
tabfile = StringIO(contents) 

A continuación, cree un gráfico y la carga de todas las ternas a la misma:

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 

Ahora usted tiene todo el gráfico en la memoria (suponiendo que tienes suficiente memoria, por supuesto). Ahora puede imprimirlo:

print graph.serialize(format='nt') 

# prints: 
# <subject1> <predicate1> <object1> . 
# <subject2> <predicate2> <object2> . 
+0

Nitpick: está serializando el gráfico en formato N3. Dado que el cartel original solicitó N-Triples, pensé que señalaría que esos dos formatos no son lo mismo. –

+0

@JeenBroekstra: Gracias, no leí la publicación con cuidado. Voy a corregir mi respuesta. – DzinX

Cuestiones relacionadas