基于语义的垂直搜索系统概要设计说明书.docx
- 文档编号:17958873
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:19
- 大小:212.14KB
基于语义的垂直搜索系统概要设计说明书.docx
《基于语义的垂直搜索系统概要设计说明书.docx》由会员分享,可在线阅读,更多相关《基于语义的垂直搜索系统概要设计说明书.docx(19页珍藏版)》请在冰点文库上搜索。
基于语义的垂直搜索系统概要设计说明书
基于语义的垂直搜索系统
概要设计说明书
1.引言
编写目的
此概要设计说明书旨在为开发人员就“基于本体知识树的领域知识管理系统”的进一步设计开发做参照;也便于后期维护人员能够对上述系统迅速有所了解。
此概要设计说明书说明了对程序系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等。
本说明面向承担系统开发的技术人员,包括目前承担本项目的技术人员和后期的开发使用人员等。
背景
待开发软件名称:
基于本体知识树的领域知识管理系统
以知识表达技术为基础的应用系统或研究都需要知识的输入、编辑、维护的工具,综合信息系统研究中心凭借团队多年研究和应用的积累,研发出了要一套知识管理平台,该知识管理平台潜在用户群体广泛,既包括应用领域,又包含科研领域,具有良好的应用前景。
目前,该软件在国家科技支撑项目“基于语义的跨媒体检索和智能搜索系统”、“古代建筑保护技术信息系统研究”中得到应用。
定义
知识树(KnowledgeTree):
用来描述知识所属领域或者各领域共享知识的树状层次性分
类体系;
知识节点(KnowledgeNode):
知识树上的单个节点,代表一个知识主题。
如在运动领
域内,“球类运动”下面可分为“足球”、“篮球”等。
其中“球类运动”和“足球”都是知识节点。
2.总体设计
需求规定
为知识管理者提供知识的组织编辑界面;完成对知识树的建立、修改和删除等功能;完成对知识节点定位和属性内容等多方面的创建、修改和删除等功能;能够浏览显示已有的知识树体系;提供对外接口,保证知识树内容的一致性、可用性和可靠性。
设计过程应充分考虑系统用户的权限分配及管理功能。
采用面向对象的设计方法,考虑软件使用的可扩展性。
运行环境
2.2.1系统结构
●知识管理:
C/S结构
2.2.2服务器端
●设备环境:
P43.0G处理器,1G内存,500G硬盘,100M网络带宽
●操作系统:
MSWindows2003Server/XP/2000
●数据库:
MSSQLServer2000
2.2.3客户端
●操作系统:
MSWindows2000/XP/Windows2003系列
●其他:
使用.Net或以上版本
基本设计概念和处理流程
2.3.1系统设计的原理思想
系统对知识的描述构建在基本概念、语义计算和知识树三个层次上。
鉴于在知识树的构建过程中多使用复合概念描述知识点的实际情况,结合多年的汉语语义研究经验,将语义复合计算分为三种形式:
语义约束(如,红色的苹果)、语义状态(吃了三顿饭),语义逻辑(如,崇高而伟大)。
在此基础上,应用知识体系依靠树状层级关系形成知识点间的纵向关联,依靠基本概念实体和语义计算方法形成知识点间的横向关联关系。
综合而言,提供了一种解决知识定位与知识迁移问题的方法,在此方法的指导下,开展系统研发工作。
2.3.2系统的整体实现
系统采用C/S结构,实现三层次设计,包括用户界面层,知识管理层和数据操作层。
在系统启动时一次性将所有数据内容提取,并转化为知识的形式注入内存,为系统的编辑操(对知识的管理和应用)做准备。
图1整体设计框图
(1)系统采用C/S结构
(2)系统整体设计成三层
用户界面层:
提供查看、修改和删除知识树、知识节点、领域、以及登录等的用户界面;当存在对知识树/知识节点的管理操作时向知识管理层提供相应的命令;
知识管理层:
封装知识表达模型,提供语义关联算法,在接收用户界面层传递过来的操作后,完成对程序以装载到内存内数据的响应管理,并向用户界面层传递改变的结果;
数据操作层:
将对知识内容的编辑转化为对数据库的操作,接收知识管理层传递来的命令,将对内存中数据的修改直接作用到数据库中,负责对数据库操作的隔离。
软件功能结构图
图2软件功能结构图
用户登录:
负责验证用户的用户名和密码,确保授权用户进行知识管理;
用户权限管理:
管理系统用户,分配用户数量和权限;
错误记录:
记录系统运行过程中出现的异常情况;
显示错误信息:
用来即使显示系统运行过程中出现的异常信息;
更换知识领域:
本知识管理系统是基于领域构建,通过切换不同的领域可以获得不同的知识体系;
装载或卸载领域内的知识树:
为用户选择界面,确定系统开始时直接装载到内存的知识树数据;
显示知识树及其相关属性:
用来为用户提供知识树的操作界面,包括对知识树的操作菜单项、以及对知识树完成某项操作后知识树相应的更新等;
显示知识节点及相关属性:
每个知识节点具有各自的意义和各自的属性(属性值),要求用户在选择某个知识节点时可以查看其的知识节点属性和知识节点的意义;
知识树的管理:
包括创建、删除知识树,对知识树的附加信息和脚本的创建和修改;
知识节点的管理:
包括创建、编辑和删除知识节点,包括复制、粘贴知识节点;
知识节点属性的变更:
包括对特定知识节点的属性(值)的创建修改和删除等;
知识树变更操作:
将对知识树相关的操作转变成数据库的操作;
知识节点的变更操作:
将对知识节点的操作转变成为对数据库的操作;
概念变更操作:
将对概念的创建/其他短语语义(语义约束、语义逻辑和语义状态等)的操作转变成为对数据库的操作;
用户管理的数据库操作:
对系统用户的相关操作。
3.系统设计主要用况类
知识领域
知识领域类(publicclassDomain)为领域所有知识的抽象出来的类。
在程序启动时创建;存储该领域内所有知识情况,包括知识树、知识节点以及相关概念等。
图3知识领域类必要属性
Public:
领域内所有知识树的列表
Public:
领域知识描述所使用的语言
Public:
对该领域的描述
Public:
领域的名称
Public:
领域内的短语/词汇的集合
图4知识领域类必要方法
(1)装载相关知识和记录
public():
装载本领域相关的所有概念
private():
装载所有知识树所有相关数据和信息
public(ktName):
装载特定知识树的所有相关数据和信息
public(mbSerial):
装载语义约束
public(msSerial):
装载语义状态
publicstatic(ErrString):
装载本领域内对知识操作过程中出现的错误
(2)查找相关知识
public(cnName,cnSerial,Creating):
查找领域内的概念
public(ktName):
查找领域内的知识树
public(pName,Creating):
查找领域内词汇/短语
public(cn,kt):
在特定知识树内获取与某个概念相关的知识节点
public(cn):
计算相关语义
public(dmStr):
获取领域信息
public(ktName):
确定领域内是否存在某知识树
(3)数据库相关操作
public(Trans):
删除相关数据的操作
public(Trans):
保存数据
public(Trans):
更新数据库数据
public(ConcName):
在领域内创建概念
public(Conc):
在领域内删除概念
知识表达基础类
为了对知识点的语义内容进行表述,结合对汉语语义的具体特点,将描述知识点的概念分为四种,包括基本概念、约束概念、状态概念和逻辑概念。
作为领域知识表述的基础。
图5知识表述基础类的继承关系
其中Meaning类作为抽象类,继承IComparalble接口,以便于扩展于以后的语义计算;
Concept类表示概念,其中至少应该包含概念名称、概念意义编号、所属领域等属性;能够完成概念见的比较,相关概念的查询,将身展现给用户显示在treeview上的和数据库的修改等操作;
MeanBind类表示语义约束,用来存储类似于“红色的苹果”短语的语义,“红色的”用来修饰“苹果”。
其中至少应该包括:
语义约束的约束意义、语义约束的核心意义和语义约束在数据库中的编号等属性;应该包括MeanBind的创建、对数据库的修改、为了显示在给用户提供查看方式的将自身展示在treeView的方法等;
MeanState类表示语义状态,用来存储类似于“吃了三碗饭”等形式的动词短语的语义。
其中至少应该包括:
语义状态的核心动词、语义状态的状态列表、语义状态的动词主宾补语以及语义状态在数据库内的标号等属性;至少应该包括创建语义状态、比较语义状态语义、向用户展示语义状态的语义、获取核心动词和数据库操作等方法;
Logic表示语义逻辑,用来表示类似于“喜欢而且爱”等形式的带有逻辑形式的短语。
其中应该至少包括:
语义逻辑的逻辑连接词、语义逻辑连接词所链接的两个语义单元和数据库内的编号等属性;至少应该包括创建语义逻辑、各种语义逻辑的语义比较、向用户展示语义逻辑、获得核心概念和数据库操作等方法。
知识节点类
图6知识节点类的必要属性
知识节点类,继承IComparable接口,用于比较知识节点的序号,以便于知识树内查询。
包含以下属性:
public{get;}:
知识节点属性列表
public{get;}:
此知识节点的子节点列表
public{get;set;}:
判断是不是子节点
public{get;set;}:
知识节点的意义
public{get;set;}:
知识节点所属的知识树
public{get;set;}:
知识节点的名称
public{get;set;}:
知识节点的父节点
public{get;set;}:
知识节点的特定编号
图7KnowNode类所必要的方法
各种方法总体分为三类:
(1)查询相关属性
要求完成的功能包括查询该知识节点是否是父节点;判断该知识节点的意义属于知识表述基础类的哪一类;判断该节点是否有后代节点等;
(2)知识节点操作类
要求完成的功能包括创建子节点、构建节点、对知识节点在知识树中的位置的编辑、删除本节点、删除整个节点下的子节点、形成知识节点的序号以及各自相应的数据库操作等;
(3)知识节点的显示
将知识节点的信息显示成Treeview的节点TreeNode形式。
知识树
知识树类(publicclassKnowTree)用来表示特定领域内的层次性知识,由各知识节点组成。
图8KnowTree必要属性图
知识树类包含的属性:
public{get;}与知识树相关的节点
public{get;set;}对知识树的描述
public{get;set;}知识树创建时间
public{get;set;}知识树的创建者
public{get;}知识树所属的领域
public{get;set;}是否在系统开始就直接载入系统
public{get;}知识树所包含的所有知识点列表
public{get;}知识树的第一层所有节点
public{get;set;}知识树的名称
public{get;set;}知识树更新时间
图9知识树所至少需要的方法
其中需要的方法类似于知识节点可以分为如下三类:
(1)知识树内查询部分
获取与某个意义相关的所有的知识节点列表,获得特定编号的知识节点,判断是否含有某特定的知识节点等方法;
(2)知识树内的操作部分
知识树的相关信息修改、增加知识节点、创建知识节点以及对数据库的相关操作;
(3)知识树的显示
将知识树本身属性信息以及知识树所有的知识节点显示给用户,将本知识树显示在TreeView控件上。
数据操作类
数据操作类在系统内驻留的对象形式的知识与数据库二维表之间建立起对应关系,通过使用者对系统内数据的修改完成对数据库中二维表的修改。
根据以上的分析,数据库操作类主要完成:
(1)用户的创建、删除、权限的修改;
(2)将与领域相关的管理操作转换成为对相关数据表的变更;
(3)将与知识树相关的管理操作到对相关数据表的变更;
(4)完成与知识节点相关的管理操作到相应数据表的变更;
(5)完成与基础表述基本类相关操作到相应数据表的变更等。
主要用户界面类
(1)总体界面类:
提供操作菜单(包括修改知识树所在领域、修改初始化时需要装载的知识树、登录等),提供知识树显示界面,显示知识节点属性和属性值,显示系统运行过程中出现的异常或错误,在知识树显示面板部分提供鼠标右键对知识树编辑的快捷菜单;
(2)知识树相关属性界面类:
显示与知识树相关的属性、并提供修改功能;
(3)知识节点的意义编辑界面类:
显示知识节点意义,并提供编辑接口,知识节点的意义由基类Meaning描述。
主要序列图
图10系统主要序列图
4.系统数据库设计
系统主要表格
4.1.1领域知识表
表1知识领域(Domain)
列名
数据类型
长度
允许空
备注
[domain]
char
20
0
主键,领域名称
comment
varchar
100
1
用来记录对领域的相关评述
lgserial
smallint
2
1
领域的语言类型
professional
bit
1
0
是否是专业领域
domainscript
varchar
8000
-1
领域脚本
表2与领域知识相关的领域语言表(wpgroup)
列名
数据类型
长度
允许空
备注
lgserial
smallint
2
0
编号
[language]
char
50
-1
领域的语言,不允许空
4.1.2知识表述基础类相关表
表3概念表(Concept)
列名
数据类型
长度
是否可空
备注
[domain]
char
20
0
概念所属于的领域,外键
name
varchar
50
0
概念名称,主键
wp
wordprop(smallint)
2
1
所属于的词类
defserial
bigint
8
1
定义序列号
pronounce
char
10
-1
发音
表4语义约束(semanticbind)
列名
数据类型
长度
是否可空
备注
bindserial
bigint
8
0
编号
core
varchar
50
1
语义约束的核
coretype
smallint
2
1
语义约束核的类型
bindvalue
varchar
50
1
语义约束的约束值
bindtype
smallint
2
1
语义约束类型
available
bit
1
0
是否可用
表5语义状态(ConceptState)
列名
数据类型
长度
是否可空
备注
stateserial
bigint
8
0
语义状态编号,主键
[action]
varchar
50
1
定义“动作”,外键
actiontype
smallint
2
1
“动作”类型
object
varchar
50
1
施物
objtype
smallint
2
1
施动者类型
subject
varchar
50
1
受物
subtype
smallint
2
1
受物者类型
available
bit
1
0
是否可用
表6语义逻辑(Logic)
列名
数据类型
长度
是否可空
备注
logicserial
bigint
8
0
语义逻辑编号,主键
logicsymbol
smallint
2
1
逻辑符号,与或非
available
bit
1
0
是否可用
表7Logic的表关联表(Logicvalue)
列名
数据类型
长度
是否可空
备注
logicserial
bigint
8
0
语义逻辑编号,外键
logicindex
smallint
2
0
语义逻辑索引
logictype
smallint
2
1
语义类型
logicrep
varchar
100
1
逻辑所代表的值,例如,“黑与白”,
将分成两个记录,一个logicrep是
黑的一个意义;一个是白的一个意义,
通过“与”逻辑符号链接
表8知识树表(KnowTree)
列名
数据类型
长度
是否可空
备注
treename
varchar
50
0
知识树名称,主键
[domain]
char
20
0
知识树所属领域,外键
coretree
bit
1
0
核心树
treescript
text
16
1
知识树脚本
creator
varchar
50
1
知识树创建者
createtime
datetime
8
0
创建时间
updatetime
datetime
8
1
更新时间
comment
varchar
1000
1
知识树评述
表9知识节点表(KnowNode)
列名
数据类型
长度
是否可空
备注
treename
varchar
50
0
知识树名称,外键
nodeserial
varchar
120
0
知识树节点编号
nodename
char
50
1
知识节点名称
nodemeaning
char
50
1
节点意义
meantype
smallint
2
1
意义类型
nodeparent
varchar
120
1
知识节点父节点
ischild
bit
1
1
是否是子节点
表10知识节点属性表(attrlist)
列名
数据类型
长度
是否可空
备注
[domain]
char
20
0
属性所在领域,外键
belongname
varchar
50
0
所属知识树名称
concattr
varchar
120
0
所属于的某节点编号
attrname
varchar
50
0
属性名称
attrtype
smallint
2
0
属性类型
attrvalue
varchar
50
1
属性值
attrvtype
smallint
2
1
值类型
inherit
bit
1
1
是否可继承
系统各主要表格间的关联关系
图11数据库部分主要表格及其之间的关系
各数据表与系统所创建类之间的关系
表11数据表与类的关联性
类名
数据表名称
Domain
Concept
MeanBind
MeanState
Logic
KnowTree
KnowNode
Domain
√
Concept
√
semanticbind
√
Conceptstate
√
Logic
√
Logcivalue
√
Knowtree
√
Knownode
√
5.系统出错处理设计
要求系统在运行过程中记录所有的异常信息,并适当的以对话框的形式给用户以提示。
在出现错误时,只要不影响系统的整体运行,系统应记录、提示该错误后继续运行。
6.未尽设计事宜
该设计文档根据系统需求,采用面向对象的方法,刻画了系统需要的主要类,对系统进行了初步设计。
但是在详细设计过程中,需要对主要的类进行扩充和修改,以适应和满足用户的需求。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 语义 垂直 搜索 系统 概要 设计 说明书