首页 / 《WSaiOS 人工认知智能理论与工程体系》 / 正文

第四十五章 知识认知网络源码实现WSaiOS Cognitive Knowledge Network

作者:wsp188 | 发布时间:2026-07-22 10:34 | 分类:《WSaiOS 人工认知智能理论与工程体系》

第四十五章

WSaiOS Cognitive Knowledge Network知识认知网络源码实现

45.3 Knowledge Retrieval Engine知识检索引擎源码实现

在45.2节中,我们完成:

  • Knowledge Graph架构;
  • Entity模型;
  • Relation模型;
  • Knowledge Triple模型;
  • Graph Storage基础结构。

此时WSaiOS已经具备:

Entity

+

Relation

+

Knowledge

↓

Knowledge Graph

但是,知识网络真正产生价值,需要解决:

当系统面对新任务时,如何快速找到相关知识?

因此设计:

Knowledge Retrieval Engine

知识检索引擎


45.3.1 Knowledge Retrieval Engine定位

Knowledge Retrieval Engine负责:

从Knowledge Network中:

  • 查询;
  • 匹配;
  • 筛选;
  • 返回;

与当前任务相关的知识。


系统位置:


             Decision Engine


                    │


                    ▼


          Knowledge Retrieval Engine


                    │


                    ▼


          Cognitive Knowledge Network


                    │


        ┌───────────┼───────────┐


        ▼           ▼           ▼


     Entity      Relation    Knowledge


45.3.2 Retrieval Engine核心职责

主要包括:


(1)Entity Matching

实体匹配。

例如:

输入:

electric toothbrush

找到:

Entity:

Electric Toothbrush

(2)Relation Traversal

关系遍历。

例如:

查询:

Electric Toothbrush

得到:

has_feature

↓

Pressure Sensor

(3)Context Retrieval

上下文检索。

例如:

任务:

Create product recommendation

返回:

Product

Feature

Market

Customer

(4)Knowledge Ranking

知识排序。

根据:

  • Confidence;
  • Relevance;
  • Usage Frequency。

45.3.3 Retrieval模块结构

新增:

retrieval/


├── engine.py

├── matcher.py

├── ranking.py

├── query.py

├── context.py

└── cache.py

45.3.4 Knowledge Query模型

文件:

query.py

源码:

from dataclasses import dataclass



@dataclass
class KnowledgeQuery:


    keyword:str


    entity_type:str=None


    relation:str=None


    context:dict=None



    limit:int=10


Query示例:

query = KnowledgeQuery(

keyword="electric toothbrush"

)

45.3.5 Entity Matcher实体匹配

文件:

matcher.py

源码:

class EntityMatcher:



    def match(
            self,
            entities,
            keyword
    ):


        result=[]


        keyword=keyword.lower()



        for entity in entities:


            if keyword in entity.name.lower():


                result.append(entity)



        return result

示例:

输入:

toothbrush

匹配:

Electric Toothbrush

Sonic Toothbrush

Kids Toothbrush

45.3.6 Relation Traversal关系遍历

文件:

context.py

源码:

class RelationTraversal:



    def find_related(
            self,
            graph,
            entity_id
    ):


        result=[]



        for relation in graph.relations:


            if relation.source==entity_id:


                result.append(

                    relation

                )



        return result

例如:

节点:

Electric Toothbrush

查询:

返回:

has_motor

has_mode

has_certificate

45.3.7 Knowledge Ranking排序算法

WSaiOS采用:

Cognitive Knowledge Score

公式:

Knowledge Score

=

Confidence

×

Relevance

×

Usage Frequency

代码:

class KnowledgeRanker:



    def score(
            self,
            knowledge
    ):


        return (

        knowledge.confidence

        *

        knowledge.relevance

        )



    def rank(
            self,
            items
    ):


        return sorted(

            items,

            key=self.score,

            reverse=True

        )

45.3.8 Retrieval Engine核心控制器

文件:

engine.py

源码:

class KnowledgeRetrievalEngine:



    def __init__(
            self,
            graph
    ):


        self.graph=graph


        self.matcher=EntityMatcher()


        self.ranker=KnowledgeRanker()



    def retrieve(
            self,
            query
    ):


        entities=(

        self.matcher.match(

            self.graph.entities.values(),

            query.keyword

        )

        )



        knowledge=[]



        for entity in entities:


            relations=(

            self.graph.relations

            )


            knowledge.extend(

                relations

            )



        return self.ranker.rank(

            knowledge

        )

45.3.9 Context Retrieval上下文构建

知识检索不是只返回单条知识。

WSaiOS构建:

Cognitive Context

结构:


Task


 │


 ▼


Relevant Entity


 │


 ▼


Related Knowledge


 │


 ▼


Context Package

Context对象:

class KnowledgeContext:



    def __init__(self):


        self.entities=[]


        self.knowledge=[]


        self.relations=[]

45.3.10 Retrieval Cache缓存

对于频繁查询:

增加缓存。

文件:

cache.py

源码:

class RetrievalCache:



    def __init__(self):


        self.cache={}



    def get(
            self,
            key
    ):


        return self.cache.get(

            key

        )



    def set(
            self,
            key,
            value
    ):


        self.cache[key]=value

45.3.11 Retrieval完整流程

任务:

Generate toothbrush market analysis

Query:

{

"keyword":

"toothbrush",

"context":

{

"task":

"market analysis"

}

}

处理:


Query


↓

Entity Match


↓

Relation Search


↓

Knowledge Ranking


↓

Context Build


↓

Return Knowledge

返回:

{

"entities":

[

"Electric Toothbrush"

],


"knowledge":

[

"Market Demand",

"Consumer Preference",

"Product Feature"

]

}

45.3.12 与Learning Engine连接

Learning产生:

Knowledge

进入:


Learning Engine


        │


        ▼


Knowledge Network


        │


        ▼


Retrieval Engine


        │


        ▼


Decision Engine

45.3.13 工程特点

1. 非向量依赖

WSaiOS基础版本:

不依赖Embedding。

采用:

  • Entity;
  • Relation;
  • Rule。

2. 可解释检索

每次返回:

都有路径:

Entity

↓

Relation

↓

Knowledge

3. 支持本地运行

存储:

  • SQLite;
  • Graph File;
  • Local Database。

45.3 本节总结

完成:

Knowledge Retrieval Engine知识检索引擎源码实现

实现:

✅ Knowledge Query模型
✅ Entity Matching
✅ Relation Traversal
✅ Knowledge Ranking
✅ Context Retrieval
✅ Retrieval Cache
✅ Knowledge Retrieval Engine

当前第四十五章进度:

45.1 Knowledge Network架构        ✅

45.2 Knowledge Graph模型          ✅

45.3 Knowledge Retrieval Engine    ✅

下一节:

45.4 Semantic Relation Engine语义关系引擎源码实现

重点:

  • Relation Discovery
  • Semantic Mapping
  • Entity Association
  • Causal Relation
  • Knowledge Graph Expansion
  • Automatic Knowledge Connection

进入:

知识连接 → 语义理解 → 认知网络扩展

阶段。

联系我们

欢迎咨询AI系统开发、网站建设、搜索优化、项目定制合作

联系方式

  • 电话:15089196448
  • 邮箱:1602401899@qq.com
  • 地址:陕西省渭南市
  • 服务时间:周一至周五 09:00 - 18:00 | 7×24小时技术值守