知识推理之TypeDB简介(四)

TypeDB概述

TypeDB为开发人员提供了一个强大的类型系统,可以将复杂的问题分解为有意义的逻辑系统。通过TypeQL, TypeDB对低级和复杂数据模式拥有强大抽象能力。TypeDB中的任何内容(规则除外),无论是概念类型还是数据实例,都是概念。下图说明了概念超类是如何由其直接和间接后代继承的。

type是指架构中定义的概念类型。

thing是指作为概念类型实例化的数据实例。

TypeDB的安装与启动

typeDB的官方下载地址:https://vaticle.com/download

官方给出了三个typeDB的工具,分别为TypeDB、TypeDB Workbase、TypeDB Cluster。

其中,TypeDB是通过命令行的方式启动TypeDB数据库,并进行数据库事务的相关操作。

TypeDB Workbase是数据库的可视化工具,可以将保存的数据库部署在可视化工具上。TypeDB Workbase还支持相关的查询并将查询结果以图的形式展现出来。若要使用TypeDB Workbase需要先通过TypeDB启动数据库。

TypeDB Cluster尚在开发中,这里不做介绍。

在使用TypeDB前,我们需要在电脑中配置Java环境(需要Java11或更高版本)。下载完成TypeDB直接解压即可使用。

在windows系统的启动流程如下:

首先,进入TypeDB的安装路径,运行 “typedb server” 命令,看到如下显示证明运行成功:

然后,再启动一个命令行窗口,进入到TypeDB的安装路径,执行 “typedb console” 命令,即可开始操作TypeDB。

TypeDB Console

TypeDB Console以及TypeDB客户端和Workbase是一个接口,我们可以使用它读取和写入TypeDB 中的知识库。 TypeDB Console可以直接与TypeDB包含的知识库交互。

TypeDB Console提供两个级别的交互:数据库级命令和事务级命令。数据库级命令是交互的第一级,即一级RepL。基于数据库级命令可以打开到数据库的事务。这将打开一个事务级接口,即二级RepL。

通过TypeDB Console能够完成数据库创建、添加数据库schema、删除数据库的操作。此外,TypeDB Console还可进行事务查询,如:

命令 解释
source <file> 在文件中运行TypeQL查询,可以参考使用相对路径或绝对路径
commit 提交事务更改并关闭事务。
clear Clear console screen
rollback 将删除您在事务中所做的任何未提交的更改,同时保持事务打开。
<query> 终端立即接受多行TypeQL查询,并在按两次enter键时执行该查询。

TypeDB Console可进行如下事务操作

Option Allowed values Description
–infer true⎮false 启用或禁用推理
–trace-inference true⎮false
–explain true⎮false
–parallel true⎮false
–batch-size 1…[max int]
–prefetch true⎮false
–session-idle-timeout 1…[max int]
–schema-lock-acquire-timeout 1…[max int]
–read-any-replica true⎮false

事务操作通过 transaction <db> schema⎮data read⎮write 进行传递,例如:

transaction typedb data read --infer true

TypeQL

schema(模式)

TypeQL中一个很重要的概念是schema,那么什么是schema呢?

schema是解决管理和处理非结构化或松散结构化数据问题的一种方法。

在schema-first数据库知识系统领域,数据库设计涉及三种模式:

  1. 高级概念模式,它对我们的问题建模,通常涉及实体关系模型的一些变体
  2. 中间层逻辑模式 , 依赖于数据库类型。例如,当我们进行关系表示时,这将涉及将概念模型转换为表,并检查模式的一系列标准化步骤。
  3. 低级物理模式 , 根据物理资源的分布方式优化我们的模式

TypeDB Data Model

Concepts

在TypeDB知识图谱中描述域的所有内容都是一个概念。这包括schema的元素(即类型和角色,我们称之为模式概念)和实际的数据实例。数据实例称为事物-它们可以被视为schema中定义的类型的实例。

Type

类型构成了schema的核心。它们提供了领域所需的词,包含:实体、关系和属性:

实体是领域的主体。实体类型提供了对域中对象进行分类的方法。

关系将things联系在一起。每种关系都可以连接许多things。每个关系都必须至少有一个角色。

属性用于用小数据块(数字、字符串、日期等)来描述概念。因此,通过定义属性,我们可以将指定值类型的值附加到实例中。

Roles

角色属于关系的一部分,它指定实例之间连接的性质 , 他们本身不是类型。 我们不能拥有一个角色的实例,但我们可以让事物在特定关系中扮演一个角色 。 在模式中,我们需要指定与每个关系类型相关的角色,以及谁可以扮演此角色。

Rules

TypeDB schema 实现了 TypeQL Rules。 规则用于查询时捕获数据中的动态模式并进行演绎推理。 规则是TypeDB中自动推理的组成部分。

预定义关键词

## Native types
thing, entity, attribute, relation, role

## Data types
long, double, string, boolean, datetime

## Query commands
define, undefine, match, get, insert, delete;

## Delete and get query modifiers
offset, limit, group, sort, asc, desc

## Statement properties
abstract, as, iid, type, isa, isa!, sub, sub!, owns, has, plays, relates, value, regex, rule, when, then

## Operators
or, not, like, is

## Literal values
true, false
(完)