首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第四十五章:WSaiOS MySQL认知知识库设计——对象、关系、记忆的数据结构实现

WSaiOS EOM模拟人工认知工程理论

第四十五章:WSaiOS MySQL认知知识库设计——对象、关系、记忆的数据结构实现


45.1 为什么需要认知知识库

前面章节完成:

软件结构:

PHP OOP

↓

MVC

↓

Service

↓

Smarty

但是:

一个人工认知系统必须保存:

  • 认知对象;
  • 对象属性;
  • 对象关系;
  • 历史经验;
  • 用户学习结果。

因此:

需要数据存储层。


传统数据库:

保存:

用户表

订单表

商品表

WSaiOS知识库:

保存:

对象

↓

关系

↓

知识

↓

经验

↓

记忆

区别:

数据库保存:

数据。


知识库保存:

结构化认知信息。


45.2 WSaiOS知识库总体结构

数据库设计:

wsaios_database


├── cognitive_objects

│

├── object_attributes

│

├── relationships

│

├── knowledge

│

├── memories

│

├── experiences

│

└── matching_results

对应:

EOM:

Object

Attribute

Relation

Knowledge

Memory

Experience

45.3 Cognitive Object对象表设计

对象是核心。


表:

cognitive_objects

结构:

CREATE TABLE cognitive_objects
(

id INT AUTO_INCREMENT PRIMARY KEY,


object_type VARCHAR(50),


name VARCHAR(255),


description TEXT,


state VARCHAR(100),


created_at TIMESTAMP


);

例如:

保存:

供应商对象。


数据:

id:

1


type:

supplier


name:

ABC Factory


state:

active

45.4 Object Attribute属性表

为什么单独保存属性?


因为:

不同对象属性不同。


例如:

供应商:

产能

认证

地区

产品:

尺寸

材料

功能

设计:

CREATE TABLE object_attributes
(

id INT AUTO_INCREMENT PRIMARY KEY,


object_id INT,


attribute_name VARCHAR(100),


attribute_value TEXT


);

关系:

Object

   |

Attribute

45.5 Relationship关系表设计

EOM认为:

关系比对象更重要。


因为:

理解来自:

对象之间连接。


例如:

Supplier

↓

Supply

↓

Product

数据库:

CREATE TABLE relationships
(

id INT AUTO_INCREMENT PRIMARY KEY,


source_id INT,


relation_type VARCHAR(100),


target_id INT,


weight INT DEFAULT 0


);

数据:

source:

ABC Factory


relation:

supply


target:

Electric Toothbrush


weight:

90

45.6 Knowledge知识表设计

知识:

由:

对象 + 关系 + 经验

形成。


表:

CREATE TABLE knowledge
(

id INT AUTO_INCREMENT PRIMARY KEY,


object_id INT,


relation_id INT,


knowledge_text TEXT,


confidence INT


);

例如:

对象:

ABC Factory


关系:

Supply


知识:

适合美国市场


可信度:

85

45.7 Memory记忆表设计

WSaiOS包含:

四种记忆。


第一:

短期记忆。


保存:

当前任务。


第二:

长期记忆。


保存:

稳定经验。


第三:

时序记忆。


保存:

变化过程。


第四:

概率记忆。


保存:

成功概率。


数据库:

CREATE TABLE memories
(

id INT AUTO_INCREMENT PRIMARY KEY,


object_id INT,


memory_type VARCHAR(50),


content TEXT,


weight FLOAT,


created_at TIMESTAMP


);

例如:

object:

Miami Market


type:

probability


content:

supplier success rate


weight:

0.85

45.8 Experience经验表设计

经验:

来源于运行。


例如:

一次匹配:

系统推荐供应商A

↓

用户选择

↓

成交

保存:

CREATE TABLE experiences
(

id INT AUTO_INCREMENT PRIMARY KEY,


object_id INT,


action VARCHAR(100),


result TEXT,


score INT,


created_at TIMESTAMP


);

45.9 Matching结果表

保存:

认知匹配历史。


例如:

用户查询:

electric toothbrush supplier Miami

结果:

供应商A

评分:

90

表:

CREATE TABLE matching_results
(

id INT AUTO_INCREMENT PRIMARY KEY,


input_text TEXT,


object_id INT,


score INT,


created_at TIMESTAMP


);

45.10 PHP Model访问知识库

MVC中:

Model负责:

数据库。


例如:

ObjectModel:

class ObjectModel
{


private $db;



public function findByName($name)
{


$sql="
SELECT *

FROM cognitive_objects

WHERE name='$name'

";


$result=
$this->db->query($sql);



return $result;


}


}

45.11 KnowledgeModel设计

class KnowledgeModel
{


public function getKnowledge($objectId)
{


$sql="

SELECT *

FROM knowledge

WHERE object_id=$objectId

";


return $this->db
->query($sql);


}


}

45.12 MemoryModel设计

class MemoryModel
{


public function recall($objectId)
{


$sql="

SELECT *

FROM memories

WHERE object_id=$objectId

";


return $this->db
->query($sql);


}


}

45.13 Service调用知识库

流程:

Controller

↓

CognitiveService

↓

MatchingService

↓

KnowledgeModel

↓

MemoryModel

↓

MySQL

代码:

class MatchingService
{


public function match($object)
{


$knowledge=

$this->knowledgeModel
->getKnowledge(
$object->id
);



$memory=

$this->memoryModel
->recall(
$object->id
);



return $this->calculate(
$knowledge,
$memory
);


}

}

45.14 知识库更新流程

系统运行:

产生经验。


流程:

用户行为

↓

Experience

↓

Memory

↓

Knowledge Update

↓

Object增强

例如:

原对象:

Supplier A

生产

Electric Toothbrush

新增:

Supplier A

成功进入

Miami Market

知识增强。


45.15 MySQL知识库与PHP OOP对应

数据库 PHP对象
cognitive_objects CognitiveObject
attributes Property
relationships Relationship
knowledge Knowledge
memories Memory
experiences Experience

45.16 WSaiOS知识库特点

第一:

对象中心。

不是表中心。


第二:

关系驱动。

不是字段驱动。


第三:

经验积累。

不是静态数据。


第四:

支持用户私有知识。


45.17 本章总结

WSaiOS MySQL设计:

不是传统业务数据库。


它是:

面向对象认知知识库。


完整结构:

PHP Object

↓

Model

↓

MySQL Knowledge Base

↓

Memory

↓

Matching

最终形成:

EOM理论

+

PHP OOP

+

MVC

+

MySQL

=

WSaiOS认知工程数据库体系

下一章:

第四十六章:WSaiOS认知匹配引擎实现——基于对象、关系、知识库的PHP OOP匹配系统

重点研究:

  • 为什么匹配是认知系统核心;
  • Object Matching设计;
  • Relationship Matching设计;
  • Memory Matching设计;
  • MatchingService完整PHP实现;
  • GEO商业分析案例。

Leave a Reply

Your email address will not be published. Required fields are marked *