category
在这个由两部分组成的系列的第一部分(链接到第一部分)中,我们看到了如何使用知识图来模拟思维过程。在这部分,让我们把手弄脏!😄
我们将使用一个名为Cayley的开源图形数据库作为KG后端。根据您的操作系统,从这里获取最新的二进制文件。下载后,转到根目录并找到cayley.yml文件。如果它不存在,请创建它。应该有一个cayley_example.yml文件来指导您。该文件是cayley的配置文件。该文件的一个重要用途是设置存储图形的后端数据库。有几个选项可用(请参阅文档)。我们将使用MySQL作为数据库。我假设你已经安装了MySQL。如果没有,安装它非常简单(谷歌:P)。现在,请确保您的cayley.yml文件如下所示:(将<your_root_password>替换为MySQL根的实际密码,并将<your_database_name>替换为数据库名称。
cayley.yml:
store: # backend to use backend: "mysql" # address or path for the database address: "root:<your_root_password>#@tcp(localhost:3306)/<your_database_name>" # open database in read-only mode read_only: false # backend-specific options options: nosync: false query: timeout: 30s load: ignore_duplicates: false ignore_missing: false batch: 10000
now let’s start our graph I am using windows so exact commands might differ from Mac and Linux. You can see (this file):
打开命令提示符/terminal,转到cayley根目录,并在terminal中键入以下内容:
cayley init
Cayley将自动检测Cayley.yml文件中的配置并建立数据库。现在要加载一个图形数据库,我们需要了解一种叫做“模式”的东西。
模式是表示信息的一种特定方式。例如,JSON(JavaScript对象表示法)就是模式的一个例子。有关模式的更多信息,请访问Schema.org的网站。在这里,我们将使用一个名为“N-quads”的模式。有关N-quad的更多信息,请点击此处。
在上面的示例N-quad文件中,我们有一个类似的模式:<person><follows><person><status>。这意味着两个<person>是图的节点,<followes>是它们之间的“方向关系”<status>是可选的,并对关系进行了更多描述。
现在,下一步是将其加载到我们的MySQL数据库中。要执行此操作,请运行:
cayley load -i <path_to_nquads_file>
将<path_to_quads_file>替换为N-quads文件的相对路径。制作一个N-quad文件很容易。只需在N-quad模式中写入并使用“.nq”扩展名保存即可。
将图形加载到cayley后,您可以运行一个web实例,使用gizmo查询语言(这并不难理解)与您的KG进行交互和可视化。运行:
cayley http
Go to localhost:64210 on your browser and you can see something like this:
您可以在此处键入任何查询以与您的KG交互。示例查询为:
g.V().All()
这意味着获取图形对象“g”的所有顶点。有关查询语言的更多信息,请点击此处。
您还可以在web应用程序中可视化图形。阅读文档以便能够做到这一点。
现在是有趣的部分(没有人告诉你):
我们使用Cayley图数据库和MySql实现了一个简单的知识图。我们可以在不使用网络应用程序的情况下远程与此图形交互吗?对Cayley向API端点公开图形:http://127.0.0.1:64210/api/v1/query/gizmo
我们可以使用python“requests”库来进行POST请求,并在任何需要的地方查询Graph(Cayley应该在后台运行以提供API端点)。
import requests import jsonquery = "g.V().All()" endpoint = "http://127.0.0.1:64210/api/v1/query/gizmo" response = requests.post(endpoint, data=query)#the response is a JSON object json_response = response.json() print(json_response)
在Jupyter Notebook中运行上面的代码,您应该能够看到API的JSON响应并使用它!
那都是人!希望你喜欢这个。
最新内容
- 1 week 5 days ago
- 2 weeks 6 days ago
- 3 weeks 2 days ago
- 3 weeks 2 days ago
- 3 weeks 5 days ago
- 3 weeks 6 days ago
- 4 weeks ago
- 4 weeks 1 day ago
- 4 weeks 1 day ago
- 4 weeks 1 day ago