PYTHON ヘルプ

Grakn Python(仕組み:開発者向けガイド)

公開済み 2025年2月26日
共有:

イントロダクション

今日のコーディングの世界では、新しいアプリのニーズに対応するためにデータベースが変化しています。 私たちは依然として昔ながらのリレーショナルデータベースを使用していますが、現在ではオブジェクト関係マッピングのようなクールなものもあります。(ORM (オブジェクト関係マッピング)). これは、コーダーが退屈な古いSQLの代わりに洗練されたプログラミング技法を使用してデータベースを操作できるようにするものです。 この新しい方法は、データを扱いやすくし、コードを良好な状態に保つのを容易にします。 現在、NoSQLデータベースもあります。 これらは、乱雑なデータの処理に優れており、ビッグデータや素早い数値計算にも適しています。

クラウドネイティブのデータベースも変革をもたらしています。 それらは柔軟で信頼性があり、管理されたサービスを提供してくれるので、すべての技術の裏側を気にする必要はほとんどありません。 NewSQLグラフデータベースは、SQLとNoSQLの良い部分を組み合わせています。 彼らは、リレーショナルデータベースの信頼性と、NoSQLの柔軟性を私たちに提供し、多くの現代のアプリに適しています。これらのデータベースタイプを新しいコーディング方法で統合することによって、私たちはうまく機能し、成長し、データに夢中の世界で時代とともに変化するソリューションを作成することができます。 Graknは現在TypeDBとして知られていますが、その目的は依然として知識グラフの管理とクエリにあります。本記事では、Graknについてさらに詳しく学んでいきます。(TypeDB)そして、PDFをプログラム的に生成および操作する際に不可欠なツールであるIronPDFとどのように統合できるか。

Graknとは何ですか?

Grakn (今TypeDB)、Grakn Labsによって作成された、複雑なデータネットワークを管理および分析するためのナレッジグラフデータベースです。 中心にあるのは、既存データ間の複雑な関係をモデル化し、保持されたデータに対して高度な推論を提供する能力です。 Graknのインテリジェントな言語であるGraqlは、データを正確にクエリし操作することを可能にし、複雑なデータセットから有益な洞察を得ることができるインテリジェントシステムの開発をサポートします。 Graknのコア機能を活用することで、組織は非常に強力で知的な知識表現を使ってデータ構造の理解を管理できます。

Grakn Python(仕組み:開発者向けガイド):図1 - TypeDBウェブページ

その検索言語Graqlは、Grakn知識グラフデータモデルと連携するように作られており、ユーザーがデータを詳細かつ微妙に変更できるようにしています。 TypeDBは横に拡張でき、大規模なデータセットを処理できるため、グラフデータ構造を把握し対処することが重要である金融、医療、薬物発見、オンラインセキュリティなどの分野に適しています。

PythonでのGraknのインストールと設定

Graknのインストール

Graknを使用したいPython開発者向け(TypeDB)、typedb-driverライブラリをインストールする必要があります。 この公式クライアントは、TypeDBと対話することができます。 こちらが、このライブラリをpipでインストールするためのコマンドです:

pip install typedb-driver
PYTHON

TypeDBサーバーを設定する

コードを書き始める前に、TypeDBサーバーが起動していることを確認してください。 TypeDB は、TypeDB のウェブサイトからインストールし、使用しているオペレーティングシステムに合わせたセットアップガイドラインに従うことで入手できます。

次に、このコマンドを使用してTypeDBサーバーを起動できます:

typedb server
PYTHON

PythonでGraknを使用する

TypeDBとやり取りするためのPythonコード

ここでは、TypeDBサーバーへの接続を確立し、スキーマを設定し、情報の挿入や取得といった基本的なタスクを実行する方法を示す簡単な図があります。

データベーススキーマの作成

プログラムの次の部分は、データベース構造の設定に専念しています。 コードはデータベースを「example_db」と名付け、SCHEMAモードで開き、これにより構造の変更が許可されます。 このモードでは、これらの変更を加えるためにWRITEタイプのトランザクションを開始します。 クエリは構造を定義するために作成され、2つの属性であるnameとageを持つpersonというタイプが作成されます。 name属性は文字列型で、age属性は長整数型です。 構造が定義されると、これらの変更を永続化するためにトランザクションがデータベースに保存されます。

from typedb.driver import TypeDB, SessionType, TransactionType, TypeDBOptions, TypeDBCredential
# Connect to TypeDB server
client = TypeDB.core_driver("localhost:1729")
# Create a database (if not already created)
database_name = "example_db"
client.databases().create(database_name)  # Ensure the database is created
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

データの挿入

スキーマが確立された後、スクリプトはデータベースにデータを挿入します。 これを行うために、データ操作に最も適したDATAモードで新しいセッションが開かれます。 書き込みトランザクションは最初にこのセッションで実行され、「Alice」という名前と30歳のpersonタイプの新しいエンティティを含めるための挿入クエリが発行されます。データが挿入されると、トランザクションは完了し、データベースの変更が更新されます。

from typedb.driver import TypeDB, SessionType, TransactionType, TypeDBOptions, TypeDBCredential
# Connect to TypeDB server
client = TypeDB.core_driver("localhost:1729")
# 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 using the logical inference of typeDB
        transaction.query.insert("""
        insert $p isa person, has name "Alice", has age 30;
        """)
        transaction.commit()
PYTHON

データ照会

最後に行うステップは、データベースに質問をして必要な情報を取得することです。 スクリプトは、DATAモードで新しいセッションを開き、TransactionType.READを使用して読み取りトランザクションを開始します。 それから、「Alice」という名前の人々の詳細を取得します。 マッチ句は、タイプが「person」であるエンティティが指定された名前を持たなければならないことを決定し、フェッチ句はその名前と年齢の属性を取得します。 その結果から各結果の名前と年齢の値を抽出します。 この情報はコンソールに表示されます。

from typedb.driver import TypeDB, SessionType, TransactionType, TypeDBOptions, TypeDBCredential
# 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:
        # Simple Query language for persons with name "Alice"
        results = list(transaction.query.fetch(f"""
        match 
        $p isa person, has name $fn;
        $fn = 'Alice';
        fetch 
        $p: name, age;
        """))
        for result in results:
            person_name = result.get('p')['name'][0]['value']
            person_age = result.get('p')['age'][0]['value']
            print(f"Person Name: {person_name}, Age: {person_age}")
PYTHON

出力

Grakn Python(仕組み:開発者向けガイド):図2 - データベースにクエリを実行した際のコンソール出力

クライアント接続の終了

すべてのデータ操作が完了したら、スクリプトはclient.closeを使用してクライアント接続を閉じます。(). この手順は、リソースが正しく解放され、TypeDBサーバーへのさらなる操作が試みられないことを保証します。

一般的に、このコードは、TypeDBサーバーへの接続を確立し、スキーマを定義し、データを挿入し、そのデータをクエリし、接続をきちんとシャットダウンするための簡単な方法を示しています。

from typedb.driver import TypeDB, SessionType, TransactionType, TypeDBOptions, TypeDBCredential
# Connect to TypeDB server
client = TypeDB.core_driver("localhost:1729")
# Close the client connection
client.close()
PYTHON

IronPDFの紹介

Grakn Python(仕組み: 開発者のためのガイド): 図3 - IronPDF for Pythonのウェブページ

IronPDFfor Python は、プログラムでPDFファイルを作成および処理するのを支援するライブラリです。 それは、HTMLからPDFを作成したり、2つ以上のPDFファイルを結合したり、テキスト、画像、および注釈を含む既存のPDFを使用するための豊富な機能を含んでいます。 一方、IronPDFは、ユーザーにHTMLページやウェブコンテンツを高品質なPDFに変換する方法を提供します。これにより、固定レイアウトを持つレポート、請求書、その他のドキュメントを作成するために利用できます。

このライブラリは、コンテンツの抽出、ドキュメントの暗号化、およびページレイアウトのカスタマイズを含む高度な機能を提供します。 ドキュメント生成ワークフローは、IronPDF を Python アプリケーションに注入することで自動化でき、これにより開発者は PDF 処理機能の観点から堅牢にすることで、その追加機能を全体的に改善することができます。

IronPDFライブラリのインストール

PythonにIronPDFの機能を有効にするために、パッケージをインストールするにはpipを使用します。

pip install ironpdf
PYTHON

Grakn TypeDBをIronPDFと統合する

Python環境におけるTypeDBとIronPDFの使用は、Graknで複雑に構造化されたデータに基づくPDF関連のドキュメントの生成、管理を容易にします。(TypeDB)データベースをより効率的にします。 この統合を達成するためのステップバイステップの概要はこちらです:

from typedb.driver import TypeDB, SessionType, TransactionType, TypeDBOptions, TypeDBCredential
from ironpdf import *     import warnings
warnings.filterwarnings('ignore')
# Ensure that you have replaces the string with your own license key
License.LicenseKey = "YOUR LICENSE KEY GOES HERE";
data=[]
# Connect to TypeDB server
client = TypeDB.core_driver("localhost:1729")
# Create a database (if not already created)
database_name = "example_db"
# Query the data from the database
with client.session(database_name, SessionType.DATA) as session:
    with session.transaction(TransactionType.READ) as transaction:
        # Query for persons with name "Alice"
        results = list(transaction.query.fetch(f"""
        match 
        $fn == 'Alice';
        $p isa person, has name $fn;
       fetch
       $p: name, age;
        """)
        )
        for result in results:
            person_Name = result.get('p')['name'][0]['value']
            person_age = result.get('p')['age'][0]['value']
            data.append({"name": person_Name, "age": person_age})
# Close the client connection
client.close()
html_to_pdf = ChromePdfRenderer()
content = "<h1>Person Report</h1>"
for item in data:
    content += f"<p>Name: {item['name']}, Age: {item['age']}</p>"
pdf_document = html_to_pdf.RenderHtmlAsPdf(content)
pdf_document.SaveAs("output.pdf")
PYTHON

このコード例は、PythonでTypeDBとIronPDFを使用してTypeDBデータベースからデータを取得し、PDFレポートを作成する方法を示しています。 まず、ローカルのTypeDBサーバーに接続し、「Alice」という名前のエンティティを検索して、名前と年齢を取得します。 結果がコンソールに出力されます。 TypeDBクライアント接続を閉じた後、コードはIronPDFのChromePdfRendererを使用して変換します。HTMLコンテンツをPDFに変換します。 人名と年齢を含むレポートのHTMLコンテンツが取得され、PDF文書に変換された後、「output.pdf」として保存されました。 スニペットには、警告抑制とIronPDF用に設定された空のライセンスキーも含まれており、ライセンス警告なしでライブラリが動作するために必要な場合があります。

出力

Grakn Python(仕組み:開発者向けガイド):図4 - 前のコードから出力されたPDF

ライセンス

ライセンスキーが必要であり、それによってコードがウォーターマークなしで機能するようになります。 このリンクで無料試用ライセンスを登録できますリンク. 取得するためにクレジットカードを提示する必要はありません。 無料試用版を登録するには、メールアドレスを提供するだけで済みます。

Grakn Python(動作原理:開発者向けガイド):図5 - IronPDFライセンスプラン

結論

Grakn (現在のTypeDB)と一緒にIronPDFPDFドキュメントから得られる大量のデータを管理・分析するための強力なソリューションです。 これは、PDF内のデータを抽出および操作する堅牢なIronPDFの機能を活用し、複雑な関係をモデリングし、強化された推論を実行する強力なGraknグラフデータベースの機能を使用することによって実現されます。 この点において、非構造化文書データを構造化し、クエリ可能なデータに変換するワークフローを作成する力を今手にしています。

その過程で、PDFから貴重なインサイトを抽出しやすくなり、データに対する問い合わせと分析の能力を向上させ、精度を高めます。 Graknの高度なデータ管理は、IronPDFによるPDFの処理と組み合わせることで、情報をより良く取り扱う方法を可能にし、複雑なデータセットへの洞察と意思決定を改善します。 IronSoftwareまた、Windows、Android、MAC、Linux など、さまざまなオペレーティング システムおよびプラットフォーム向けのプログラムの作成を容易にするさまざまなライブラリも提供しています。

リーガン・パン

リーガン・パン

ソフトウェアエンジニア

 LinkedIn

レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
HTTPX Python(動作の仕組み:開発者向けガイド)
次へ >
scikit-image Python(開発者向けのガイド:その仕組み)