Zum Fußzeileninhalt springen
PYTHON-HILFE

Grakn Python (Wie es funktioniert: Ein Leitfaden für Entwickler)

In der heutigen Welt der Programmierung entwickeln sich die Datenbanken weiter, um mit den Anforderungen neuer Anwendungen Schritt zu halten. Während traditionelle relationale Datenbanken immer noch verwendet werden, gibt es jetzt Fortschritte wie Object-Relational Mapping (ORM), die es Entwicklern ermöglichen, mit Datenbanken zu interagieren, indem sie Programmierabstraktionen auf höherer Ebene verwenden, anstatt sich ausschließlich auf SQL zu verlassen. Dieser Ansatz rationalisiert die Datenverwaltung und fördert eine saubere Codeorganisation. Darüber hinaus haben sich NoSQL-Datenbanken als nützliche Werkzeuge für den Umgang mit unstrukturierten Daten erwiesen, insbesondere bei Big-Data-Anwendungen und Echtzeit-Analysen.

Cloud-native Datenbanken sind ebenfalls auf dem Vormarsch. Sie bieten skalierbare, zuverlässige und verwaltete Dienste, die den Aufwand für die Wartung der zugrunde liegenden Infrastruktur verringern. Darüber hinaus kombinieren NewSQL- und Graphdatenbanken die Stärken von SQL und NoSQL und bieten die Zuverlässigkeit relationaler Datenbanken mit der Flexibilität von NoSQL. Diese Mischung macht sie für viele moderne Anwendungen geeignet. Durch die Integration dieser verschiedenen Datenbanktypen mit innovativen Programmierparadigmen können wir skalierbare und anpassungsfähige Lösungen schaffen, die den heutigen datenzentrierten Anforderungen gerecht werden. Grakn, jetzt bekannt als TypeDB, ist ein Beispiel für diesen Trend, da es die Verwaltung und Abfrage von Wissensgraphen unterstützt. In diesem Artikel werden wir Grakn (TypeDB) und seine Integration mit IronPDF, einem wichtigen Tool für die programmatische Erstellung und Bearbeitung von PDFs, näher betrachten.

Was ist Grakn?

Grakn (jetzt TypeDB), entwickelt von Grakn Labs, ist eine Wissensgraphen-Datenbank für die Verwaltung und Analyse komplexer Datennetze. Es zeichnet sich durch die Modellierung anspruchsvoller Beziehungen innerhalb bestehender Datensätze aus und bietet leistungsstarke Schlussfolgerungsmöglichkeiten über gespeicherte Daten. Die Abfragesprache von Grakn, Graql, ermöglicht eine präzise Datenmanipulation und -abfrage und damit die Entwicklung intelligenter Systeme, die wertvolle Erkenntnisse aus komplexen Datensätzen gewinnen können. Durch die Nutzung der Kernfunktionen von Grakn können Unternehmen Datenstrukturen mit einer robusten und intelligenten Wissensdarstellung verwalten.

Grakn Python (How It Works: A Guide for Developers): Abbildung 1 - TypeDB-Webseite

Graql, die Abfragesprache von Grakn, wurde speziell für die effektive Interaktion mit dem Grakn Wissensgraphenmodell entwickelt und ermöglicht detaillierte und nuancierte Datentransformationen. Aufgrund seiner horizontalen Skalierbarkeit und der Fähigkeit, große Datenmengen zu verarbeiten, eignet sich TypeDB gut für Bereiche wie Finanzen, Gesundheitswesen, Arzneimittelforschung und Cybersicherheit, in denen das Verständnis und die Verwaltung komplexer Graphenstrukturen entscheidend sind.

Installation und Konfiguration von Grakn in Python

Installation von Grakn

Für Python-Entwickler, die an der Verwendung von Grakn (TypeDB) interessiert sind, ist die Installation der typedb-driver-Bibliothek unerlässlich. Dieser offizielle Client erleichtert die Interaktion mit TypeDB. Verwenden Sie den folgenden Pip-Befehl, um diese Bibliothek zu installieren:

pip install typedb-driver
pip install typedb-driver
SHELL

Einrichten des TypeDB-Servers

Vergewissern Sie sich vor dem Schreiben von Code, dass Ihr TypeDB-Server in Betrieb ist und funktioniert. Folgen Sie den Installations- und Einrichtungsanweisungen auf der TypeDB-Website für Ihr Betriebssystem. Nach der Installation können Sie den TypeDB-Server mit dem folgenden Befehl starten:

./typedb server
./typedb server
SHELL

Die Verwendung von Grakn in Python

Python-Code für die Interaktion mit TypeDB

Dieser Abschnitt veranschaulicht das Herstellen einer Verbindung mit einem TypeDB-Server, das Einrichten eines Datenbankschemas und die Durchführung grundlegender Operationen wie das Einfügen und Abrufen von Daten.

Erstellen eines Datenbankschemas

Im folgenden Codeblock definieren wir die Datenbankstruktur, indem wir einen Typ namens Person mit zwei Attributen erstellen: Name und Alter. Wir eröffnen eine Sitzung im SCHEMA-Modus, um strukturelle Änderungen zu ermöglichen. So wird das Schema definiert und festgelegt:

from typedb.driver import TypeDB, SessionType, TransactionType

# Connect to TypeDB server
client = TypeDB.core_driver("localhost:1729")

# Create a database (if not already created)
database_name = "example_db"
if not client.databases().contains(database_name):
    client.databases().create(database_name)

with client.session(database_name, SessionType.SCHEMA) as session:
    with session.transaction(TransactionType.WRITE) as transaction:
        transaction.query().define("""
        define
        person sub entity, owns name, owns age;
        name sub attribute, value string;
        age sub attribute, value long;
        """)
        transaction.commit()
from typedb.driver import TypeDB, SessionType, TransactionType

# Connect to TypeDB server
client = TypeDB.core_driver("localhost:1729")

# Create a database (if not already created)
database_name = "example_db"
if not client.databases().contains(database_name):
    client.databases().create(database_name)

with client.session(database_name, SessionType.SCHEMA) as session:
    with session.transaction(TransactionType.WRITE) as transaction:
        transaction.query().define("""
        define
        person sub entity, owns name, owns age;
        name sub attribute, value string;
        age sub attribute, value long;
        """)
        transaction.commit()
PYTHON

Einfügen von Daten

Nach der Erstellung des Schemas fügt das Skript Daten in die Datenbank ein. Wir öffnen eine Sitzung im DATA-Modus, der für Datenoperationen geeignet ist, und führen eine Insert-Abfrage aus, um eine neue Person-Entität mit dem Namen "Alice" und dem Alter 30 hinzuzufügen:

# Insert data into the database
with client.session(database_name, SessionType.DATA) as session:
    with session.transaction(TransactionType.WRITE) as transaction:
        # Create a person entity
        transaction.query().insert("""
        insert $p isa person, has name "Alice", has age 30;
        """)
        transaction.commit()
# Insert data into the database
with client.session(database_name, SessionType.DATA) as session:
    with session.transaction(TransactionType.WRITE) as transaction:
        # Create a person entity
        transaction.query().insert("""
        insert $p isa person, has name "Alice", has age 30;
        """)
        transaction.commit()
PYTHON

Daten abfragen

Schließlich rufen wir Informationen aus der Datenbank ab, indem wir nach Entitäten mit dem Namen "Alice" suchen Wir öffnen eine neue Sitzung im DATA-Modus und initiieren eine Lesetransaktion mit TransactionType.READ. Die Ergebnisse werden verarbeitet, um den Namen und das Alter zu extrahieren und anzuzeigen:

# Query the data from the database
with client.session(database_name, SessionType.DATA) as session:
    with session.transaction(TransactionType.READ) as transaction:
        # Query entities where the person has the name 'Alice'
        results = transaction.query().match("""
        match 
        $p isa person, has name "Alice";
        $p has name $n, has age $a;
        get;
        """)
        for result in results:
            person_name = result.get("n").get_value()
            person_age = result.get("a").get_value()
            print(f"Person Name: {person_name}, Age: {person_age}")
# Query the data from the database
with client.session(database_name, SessionType.DATA) as session:
    with session.transaction(TransactionType.READ) as transaction:
        # Query entities where the person has the name 'Alice'
        results = transaction.query().match("""
        match 
        $p isa person, has name "Alice";
        $p has name $n, has age $a;
        get;
        """)
        for result in results:
            person_name = result.get("n").get_value()
            person_age = result.get("a").get_value()
            print(f"Person Name: {person_name}, Age: {person_age}")
PYTHON

Ausgabe

Grakn Python (How It Works: A Guide for Developers): Abbildung 2 - Konsolenausgabe bei der Abfrage der Datenbank

Schließen der Client-Verbindung

Um Ressourcen ordnungsgemäß freizugeben und weitere Interaktionen mit dem TypeDB-Server zu verhindern, schließen Sie die Client-Verbindung mit client.close():

# Close the client connection
client.close()
# Close the client connection
client.close()
PYTHON

Einführung in IronPDF

Grakn Python (How It Works: A Guide for Developers): Abbildung 3 - IronPDF for Python webpage

IronPDF for Python ist eine leistungsstarke Bibliothek zur programmatischen Erstellung und Bearbeitung von PDF-Dateien. Es bietet umfassende Funktionen für die Erstellung von PDFs aus HTML, die Zusammenführung von PDF-Dateien und die Kommentierung vorhandener PDF-Dokumente. IronPDF ermöglicht auch die Konvertierung von HTML- oder Web-Inhalten in hochwertige PDF-Dateien und ist damit die ideale Wahl für die Erstellung von Berichten, Rechnungen und anderen Dokumenten mit festem Layout.

Die Bibliothek bietet fortschrittliche Funktionen wie die Extraktion von Inhalten, die Verschlüsselung von Dokumenten und die Anpassung des Seitenlayouts. Durch die Integration von IronPDF in Python-Anwendungen können Entwickler die Arbeitsabläufe zur Dokumentenerzeugung automatisieren und die Gesamtfunktionen ihrer PDF-Verarbeitung verbessern.

Installation der IronPDF-Bibliothek

Um die IronPDF-Funktionalität in Python zu aktivieren, installieren Sie die Bibliothek mit pip:

pip install ironpdf
pip install ironpdf
SHELL

Integration von Grakn TypeDB mit IronPDF

Durch die Kombination von TypeDB und IronPDF in einer Python-Umgebung können Entwickler auf der Grundlage komplex strukturierter Daten in einer Grakn (TypeDB)-Datenbank effizient PDF-Dokumente erstellen und verwalten. Hier ist ein Beispiel für eine Integration:

from typedb.driver import TypeDB, SessionType, TransactionType
from ironpdf import *
import warnings

# Suppress potential warnings
warnings.filterwarnings('ignore')

# Replace with your own license key
License.LicenseKey = "YOUR LICENSE KEY GOES HERE"

# Initialize data list
data = []

# Connect to TypeDB server
client = TypeDB.core_driver("localhost:1729")

# Query the data from the database
with client.session(database_name, SessionType.DATA) as session:
    with session.transaction(TransactionType.READ) as transaction:
        # Fetch details of persons named 'Alice'
        results = transaction.query().match("""
        match 
        $p isa person, has name "Alice";
        $p has name $n, has age $a;
        get;
        """)
        for result in results:
            person_name = result.get("n").get_value()
            person_age = result.get("a").get_value()
            data.append({"name": person_name, "age": person_age})

# Close the client connection
client.close()

# Create a PDF from HTML content
html_to_pdf = ChromePdfRenderer()
content = "<h1>Person Report</h1>"
for item in data:
    content += f"<p>Name: {item['name']}, Age: {item['age']}</p>"

# Render the HTML content as a PDF
pdf_document = html_to_pdf.RenderHtmlAsPdf(content)

# Save the PDF to a file
pdf_document.SaveAs("output.pdf")
from typedb.driver import TypeDB, SessionType, TransactionType
from ironpdf import *
import warnings

# Suppress potential warnings
warnings.filterwarnings('ignore')

# Replace with your own license key
License.LicenseKey = "YOUR LICENSE KEY GOES HERE"

# Initialize data list
data = []

# Connect to TypeDB server
client = TypeDB.core_driver("localhost:1729")

# Query the data from the database
with client.session(database_name, SessionType.DATA) as session:
    with session.transaction(TransactionType.READ) as transaction:
        # Fetch details of persons named 'Alice'
        results = transaction.query().match("""
        match 
        $p isa person, has name "Alice";
        $p has name $n, has age $a;
        get;
        """)
        for result in results:
            person_name = result.get("n").get_value()
            person_age = result.get("a").get_value()
            data.append({"name": person_name, "age": person_age})

# Close the client connection
client.close()

# Create a PDF from HTML content
html_to_pdf = ChromePdfRenderer()
content = "<h1>Person Report</h1>"
for item in data:
    content += f"<p>Name: {item['name']}, Age: {item['age']}</p>"

# Render the HTML content as a PDF
pdf_document = html_to_pdf.RenderHtmlAsPdf(content)

# Save the PDF to a file
pdf_document.SaveAs("output.pdf")
PYTHON

Dieser Code demonstriert die Verwendung von TypeDB und IronPDF in Python, um Daten aus einer TypeDB-Datenbank zu extrahieren und einen PDF-Bericht zu erstellen. Sie stellt eine Verbindung zu einem lokalen TypeDB-Server her, holt Entitäten mit dem Namen "Alice" und ruft deren Namen und Alter ab. Die Ergebnisse werden dann zur Erstellung von HTML-Inhalten verwendet, die mit dem ChromePdfRenderer von IronPDF in ein PDF-Dokument umgewandelt und als "output.pdf" gespeichert werden.

Ausgabe

Grakn Python (How It Works: A Guide for Developers): Abbildung 4 - Ausgegebene PDF-Datei aus dem vorherigen Code

Lizenzierung

Ein Lizenzschlüssel ist erforderlich, um Wasserzeichen aus den generierten PDFs zu entfernen. Sie können sich unter diesem Link für eine kostenlose Testversion registrieren. Beachten Sie, dass für die Registrierung keine Kreditkarte erforderlich ist; für die kostenlose Testversion ist nur eine E-Mail-Adresse erforderlich.

Grakn Python (How It Works: A Guide for Developers): Abbildung 5 - IronPDF-Lizenzierungsplan

Abschluss

Grakn (jetzt TypeDB) integriert mit IronPDF bietet eine robuste Lösung für die Verwaltung und Analyse großer Datenmengen aus PDF-Dokumenten. Mit den Fähigkeiten von IronPDF bei der Datenextraktion und -manipulation und der Fähigkeit von Grakn, komplexe Beziehungen und Schlussfolgerungen zu modellieren, können Sie unstrukturierte Dokumentdaten in strukturierte, abfragbare Informationen umwandeln.

Diese Integration vereinfacht die Extraktion wertvoller Erkenntnisse aus PDFs und verbessert deren Abfrage- und Analysefunktionen mit höherer Präzision. Durch die Kombination der hochentwickelten Datenverwaltung von Grakn mit den PDF-Verarbeitungsfunktionen von IronPDF können Sie effizientere Wege der Informationsverarbeitung entwickeln, um bessere Entscheidungen zu treffen und tiefere Einblicke in komplexe Datensätze zu erhalten. IronSoftware bietet auch eine Reihe von Bibliotheken an, die die Anwendungsentwicklung für verschiedene Betriebssysteme und Plattformen erleichtern, darunter Windows, Android, macOS, Linux und andere.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen