PYTHON帮助

Grakn Python(其工作原理:开发者指南)

Kannaopat Udonpant
坎那帕·乌东攀
2025年二月26日
分享:

介绍

在当今的编程世界中,数据库正在变化以适应新应用程序的需求。 我们仍然使用传统的关系型数据库,但现在我们也有了类似对象关系映射这样很酷的东西(ORM). 这让程序员可以使用高级编程技巧来处理数据库,而不是枯燥老旧的 SQL。 这种新方法使得处理数据更容易,并保持代码良好状态。 我们现在也有NoSQL数据库。 这些非常适合处理杂乱的数据,并且在大数据和快速计算方面表现良好。

云原生数据库也正在带来变革。 他们为我们提供灵活、可靠且受管理的服务,因此我们不必过于担心处理其背后的技术问题。 NewSQL图形数据库结合了SQL和NoSQL的优点。 它们为我们提供了关系数据库的可靠性和NoSQL的灵活性,这对于许多现代应用程序都很有效。通过将所有这些数据库类型结合到新的编码方法中,我们可以创建在我们这个数据疯狂的世界中表现良好、可成长并随时代变化的解决方案。 Grakn现在可能被称为TypeDB,但它仍然实现其目的:管理和查询知识图。在本文中,我们将深入了解Grakn(TypeDB)以及如何将其与IronPDF集成,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模式打开,从而允许对结构进行更改。 在此模式下,它启动一个类型为WRITE的事务来进行这些更改。 定义查询以勾勒出结构,创建一个名为 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的人员类型的新实体。插入数据后,事务完成并且数据库更改将被更新。

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”的实体必须具有指定的名称,而fetch子句获取它们的名称和年龄属性。 然后处理结果以提取每个结果中的名称和年龄值。 此信息显示在控制台上。

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 网页

IronPDF for 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 (现在类型数据库)与IronPDF是一个强大的解决方案,用于管理和分析来自PDF文档的大量数据。 这将通过利用 IronPDF 强大的功能来提取和操作 PDF 中的数据,并利用强大的 Grakn 图形数据库特性在建模复杂关系和执行增强推理中实现。 在这方面,您现在可以构建一个将非结构化文档数据转换为结构化和可查询数据的工作流程。

在这个过程中,它简化了从PDF中提取有价值的见解,增强了查询和分析数据的能力,提高了精确度。 Grakn 的高级数据管理与 IronPDF 对 PDF 的处理相结合,为更好地处理信息提供了支持,从而对复杂数据集的决策制定和洞察能力得到提升。 IronSoftware还提供了各种库,使您更容易为包括 Windows、Android、MAC、Linux 等在内的多种操作系统和平台创建程序。

Kannaopat Udonpant
坎那帕·乌东攀
软件工程师
在成为软件工程师之前,Kannapat 从日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了生物生产工程系车辆机器人实验室的成员。2022年,他利用自己的 C# 技能加入了 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他能直接向编写 IronPDF 大部分代码的开发者学习。除了同伴学习,Kannapat 还享受在 Iron Software 工作的社交方面。不写代码或文档时,Kannapat 通常在 PS5 上玩游戏或重看《最后生还者》。
< 前一页
HTTPX Python(如何运作:开发者指南)
下一步 >
scikit-image Python(开发者指南:工作原理)

准备开始了吗? 版本: 2025.3 刚刚发布

查看许可证 >