PYTHON 幫助

Grakn Python(運作方式:開發者指南)

里根普恩
里根普恩
2025年2月26日
分享:

介紹

在現今的編程世界中,資料庫正在改變以滿足新應用程式的需求。 我們仍然使用傳統的關聯式資料庫,但現在我們也有像物件關聯映射這樣的酷東西(ORM). 這讓程式設計師可以使用花哨的編程技巧來操作資料庫,而不是無聊的舊 SQL。 這種新方法讓處理數據更容易,並保持代碼的良好狀態。 我們現在也有 NoSQL 資料庫。 這些非常適合處理凌亂的數據,並且對於大數據和快速計算效果很好。

雲端原生資料庫也在改變現狀。 他們為我們提供彈性、可靠且受管理的服務,因此我們不必過於擔心技術背後的維護工作。 NewSQL 圖形資料庫結合了 SQL 和 NoSQL 的優點。 它們為我們提供了關聯資料庫的可靠性和 NoSQL 的靈活性,這對許多現代應用程式都適用。通過以新的編碼方式將所有這些資料庫類型結合在一起,我們可以創建出能夠很好地運作、成長並隨著我們數據驅動的世界而改變的解決方案。 Grakn 現在可能被稱為 TypeDB,但它仍然履行其目的:知識圖譜的管理和查詢。在本文中,我們將深入瞭解 Grakn。(TypeDB)以及如何將其與IronPDF集成,一個在編程生成和操作PDF時必不可少的工具。

什麼是 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 模式開啟,該模式允許對結構進行更改。 在此模式下,它啟動一個寫入類型的交易以進行這些更改。 定義查詢以概述結構,創建一個名為 person 的類型,具有兩個屬性:name 和 age。 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

插入資料

在架構建立後,腳本會繼續將資料插入資料庫。 為此,會在資料模式中開啟一個新的會話,這是最適合進行資料操作的模式。 在此會話中首先執行寫入交易,並發出插入查詢以包含一個名稱為「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、合併兩個或多個PDF文件以及使用帶有文本、圖像和註釋的現有PDF的豐富功能。 另一方面,IronPDF 為用戶提供了一種將 HTML 頁面或網頁內容轉換為高質量 PDF 的方式,這些 PDF 可用於創建報告、發票和其他具有固定版面的文檔。

該程式庫提供的高級功能包括內容提取、文檔加密和頁面佈局自訂。 透過將 IronPDF 與 Python 應用程式結合,文件生成工作流程可以自動化,從而使開發人員能夠通過增強其在 PDF 處理能力方面的強大功能來改善其附加程式的整體功能。

安裝 IronPDF 函式庫

使用 pip 安裝允許 Python 啟用 IronPDF 功能的套件。

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 內容已經提取並保存為 "output.pdf",該內容已轉換為 PDF 文件。 這些程式碼片段還包含警告抑制和一個空的許可證金鑰,該金鑰設置為IronPDF,以便該庫可以在沒有許可證警告的情況下工作。

輸出

Grakn Python(開發者指南:運作原理):圖 4 - 前述程式碼輸出的 PDF

授權

需要授權金鑰以允許程式碼在無浮水印的情況下運行。 您可以在此註冊免費試用許可證連結. 請注意,您不需要提供信用卡即可獲得一張。 註冊免費試用版只需提供您的電子郵件地址。

Grakn Python(開發者指南:如何運作):圖5 - IronPDF 授權方案

結論

Grakn(現在 TypeDB)與IronPDF是一個強大的解決方案,可以管理和分析來自PDF文件的大量數據。 這將透過利用強大的 IronPDF 功能來從 PDF 中提取和處理數據,以及使用強大的 Grakn 圖形數據庫功能來建模複雜的關係並執行增強的推理來實現。 在這方面,您現在有能力設計一個將非結構化文件數據轉換為結構化且可查詢數據的工作流程。

在此過程中,它簡化了從 PDF 中提取有價值的見解,提高了對數據的查詢和分析能力的精確度。 當 Grakn 的高級資料管理結合 IronPDF 的 PDF 處理時,能夠促進更好的資訊處理方式,以便在面對複雜資料集時做出更好的決策和提供深入見解。 IronSoftware還提供各種程式庫,使您更容易為各種作業系統和平台(包括 Windows、Android、MAC、Linux 等)創建程式。

里根普恩
軟體工程師
Regan 畢業於雷丁大學,擁有電子工程學士學位。在加入 Iron Software 之前,他的工作角色讓他專注於單一任務;而他在 Iron Software 工作中最喜歡的是他所能承擔的工作範圍,無論是增加銷售價值、技術支持、產品開發或市場營銷。他喜歡了解開發人員如何使用 Iron Software 庫,並利用這些知識不斷改進文檔和開發產品。
< 上一頁
HTTPX Python(運作原理:開發者指南)
下一個 >
scikit-image Python(工作原理:開發者指南)

準備開始了嗎? 版本: 2025.3 剛剛發布

查看許可證 >