sql >> Database >  >> RDS >> PostgreSQL

RDF-gegevens laden naar PostgreSQL-tabel via RDFLib-SQLAlchemy

Installeer deze Python-bibliotheken:

pip install rdflib
pip install rdflib-sqlalchemy
pip install psycopg2

Voer de volgende Python-code uit:

from rdflib import plugin
from rdflib.graph import Graph
from rdflib.store import Store
from rdflib_sqlalchemy import registerplugins

registerplugins()

SQLALCHEMY_URL ="postgresql+psycopg2://user:[email protected]:port/databasename"

store = plugin.get("SQLAlchemy", Store)(identifier="my_store")
graph = Graph(store, identifier="my_graph")
graph.open(SQLALCHEMY_URL, create=True)

graph.parse("demo.nt", format="nt")

result = graph.query("select * where {?s ?p ?o} limit 10")

for subject, predicate, object_ in result:
    print(subject, predicate, object_)

graph.close()

'demo.nt' is het N-Triples-bestand dat moet worden geïmporteerd. Ik heb dit gebruikt om te testen:

<http://example.org/a> <http://example.org/b> <http://example.org/c> .

Na succesvol te zijn geïmporteerd, bevat uw database vijf tabellen (bijv. kb_[some_id]_asserted_statements) gevuld met de triples. De console heeft maximaal tien triples afgedrukt.

Getest op Windows 10, PostgreSQL 10.5, Python 3.5.4 (allemaal 64-bits) met rdflib-4.2.2, rdflib-sqlalchemy-0.3.8 en psycopg2-2.7.5.




  1. ORA-01795:maximum aantal expressies in een lijst is 1000 , hoe de string te splitsen

  2. MySQL-gegevens ophalen in node.js (express) en afdrukken met EJS

  3. Zoeken naar laatste tekens in SQL Regex werkt niet

  4. Verwijder duplicaten op basis van twee kolommen en bewaar de rij met de minimale waarde van een andere kolom