知识库图编辑器需求功能列表(1.0)
1. 项目背景
根据OWL2协议开发在线版的本体知识编辑器。
项目目标:在完成OWL2协议全集的基础上替代protege软件,并提供较好的交互操作和用户体验。
2. 功能模块
2.1. 登录用户
登录用户可操作的功能列表。
2.1.1. 用户注册
1、基于邮箱的用户注册(注册信息:邮箱,密码,昵称)
2、邮箱验证
2.1.2. 用户登录
1、用户名或密码检测
2、登录错误信息提示
3、找回密码(发送随机【随机密码由数字和字母生成8位字符串】密码到邮箱,并提示用户修改密码)
4、未激活用户不能登录并提示用户激活
2.1.3. 个人中心
2.1.3.1. 密码管理
1、密码修改(必须填写旧密码和新密码并确认新密码)
2.1.3.2. 个人信息修改
1、个人信息设置(昵称,头像)
2、设置名称空间管理
2.1.4. 项目管理
2.1.4.1. 创建项目
1、输入项目名称、备注
2.1.4.2. 项目协作(成员与锁)
1、项目成员管理
1.1. 拉入新成员(根据注册信息:邮箱)
1.2. 移除成员
1.3. 成员列表(按名称升序排列)
2、 设置权限(项目添加成员,默认对项目有只读权限)
2.1. 本体可设置权限(可读,可写),任何本体在任一时刻只能由一个人修改
2.1.4.3. 删除项目
1、删除项目下的本体(物理删除)
2.1.4.4. 项目重命名
1、确保新名称在方案下项目列表中名字唯一
2.1.4.5. 项目发布
1、设置版本号(默认在上一版本加1)
2、版本号用于项目
2.1.4.6. 项目导入项目
1、公开的项目列表
2、将导入项目的结构和内容附加到当前项目(并不影响当前本体本体列表)
2.1.4.7. 本体列表
1、显示当前项目下自己的和引用的本体
2、被锁定的本体显示锁定状态(一个小锁图标)
3、手动刷新本体列表(更新锁定状态)
4、文件件加树
2.1.4.8. 本体导入列表
1、显示引用的本体(来自当前项目和其他项目)
2、删除本体引用(如果已经被使用,则提示“已在使用中,是否删除”)
2.1.4.9. 打开项目
1、设计视图显示项目详细列表
2.1.4.10. 项目扩展时修改代码量不超过(3%)
1、以树的方式显示
2、添加不同类型的节点
2.1.4.11. 导出项目
1、导出本体文件包
2.1.5. 本体管理
2.1.5.1. 引用本体
1、编辑图上显示导入本体结构
2、删除导入本体并取消本体的结构
2.1.5.2. 本体前缀管理
1、前缀列表(显示前缀和前缀对应的名称空间)
2、删除前缀
3、编辑前缀
4、添加前缀并根据前缀对应名称空间替换当前本体中所有的名称空间
2.1.5.3. 本体导入导出文件
1、选择导出文件类型(默认支持:jena导出的文件)
2、生成文件并下载
2.1.6. 本体编辑
2.1.6.1. 本体
1、创建本体
1.1. 选择名称空间或新建名称
2、删除本体
2.1. 删除提示
2.1. 删除通知(所有引用当前本体的用户)
3、打开本体
3.1. 以脑图的当时显示本体结构(包括所有的引用本体结构)
3.2. 显示当前本体属性
4、本体重命名
4.1. 所有引用本体同步重命名
5、本体属性(本体统计{桩函数(可扩展)},前缀,引用,Annotations)
2.1.6.2 类
1、新建类、新建子类
2、删除类
3、类重命名
4、类属性(根据类类型确定类属性内容)
4.1. IRI修改
4.2. 类类型(具名类,未具名类,高级类,枚举类)(参见表格)
4.3. Annotations
5、类公理
5.1. 等价类
5.1.1. 新建
5.1.1.1. 选择本体或引入本体的类
5.1.1.2. 新建本体中不存在的类
5.1.1.3. 创建高级类(选择高级类运算方式,添加运算成员)
5.1.1.4. 创建对象属性约束
5.1.1.5. 创建数据属性约束
5.1.1.6. 创建枚举类
5.2.1.7. 类表达式文本输入
5.1.2. 删除
5.1.3. 编辑
5.2. 子类(构建类表达式)
5.2.1. 新建
5.2.1.1. 选择本体或引入本体的类
5.2.1.2. 新建本体中不存在的类
5.2.1.3. 创建高级类(选择高级类运算方式,添加运算成员)
5.2.1.4. 创建对象属性约束
5.2.1.5. 创建数据属性约束
5.2.1.6. 创建枚举类
5.2.1.7. 类表达式文本输入
5.2.2. 删除
5.2.3. 编辑
5.3. 不相交类(构建类表达式)
5.3.1. 新建
5.3.1.1. 选择本体或引入本体的类
5.3.1.2. 新建本体中不存在的类
5.3.1.3. 创建高级类(选择高级类运算方式,添加运算成员)
5.3.1.4. 创建对象属性约束
5.3.1.5. 创建数据属性约束
5.3.1.6. 创建枚举类
5.2.1.7. 类表达式文本输入
5.3.2. 删除
5.3.3. 编辑
5.4. 不相交的并类(构建类表达式)
5.4.1. 新建
5.4.1.1. 选择本体或引入本体的类
5.4.1.2. 新建本体中不存在的类
5.4.1.3. 创建高级类(选择高级类运算方式,添加运算成员)
5.4.1.4. 创建对象属性约束
5.4.1.5. 创建数据属性约束
5.4.1.6. 创建枚举类
5.2.1.7. 类表达式文本输入
5.4.2. 删除
5.4.3. 编辑
6、管理类属性
6.1. 选择或新建属性
6.2. 删除类属性
7、管理类实例
7.1. 选择或创建实例
7.2. 删除实例
8、Key(具名类【普通类】)
8.1选择一个或多个当前本体或引入的本体中的属性
2.1.6.3. 属性
2.1.6.3.1. 对象属性
1、新建对象属性
2、删除对象属性
3、重命名对象属性
4、对象属性属性(IRI,类型,特征)
4.1 属性名称
4.2 IRI
4.3 属性类型
4.4 属性特征
4.4.1 函数对象属性
4.4.2 反函数对象属性
4.4.3 自反对象属性
4.4.4 反自反对象属性
4.4.5 对称对象属性
4.4.6 不对称对象属性
4.4.7 传递对象属性
5、对象属性公理
5.1 定义域
5.1.1. 新建
5.1.1.1. 选择本体或引入本体的类
5.1.1.2. 新建本体中不存在的类
5.1.1.3. 创建高级类(选择高级类运算方式,添加运算成员)
5.1.1.4. 创建对象属性约束
5.1.1.5. 创建数据属性约束
5.1.1.6. 创建枚举类
5.2.1.7. 类表达式文本输入
5.1.2. 删除定义域
5.1.3. 编辑定义域
5.2. 值域
5.2.1. 新建
5.2.1.1. 选择本体或引入本体的类
5.2.1.2. 新建本体中不存在的类
5.2.1.3. 创建高级类(选择高级类运算方式,添加运算成员)
5.2.1.4. 创建对象属性约束
5.2.1.5. 创建数据属性约束
5.2.1.6. 创建枚举类
5.2.1.7. 类表达式文本输入
5.2.2. 删除值域
5.2.3. 编辑值域
5.3. 相等属性
5.3.1. 选择当前本体或引入的本体中的对象属性
5.3.2. 新建本体中不存在的对象属性
5.3.3. 删除相等属性
5.3.4. 编辑相等属性
5.4. 子属性
5.4.1. 选择当前本体或导入的本体中的对象属性
5.4.2. 删除子属性
5.4.3. 编辑子属性
5.4.4. 新建本体中不存在的对象属性
5.5. 不相交属性
5.5.1. 选择当前本体或导入的本体中的对象属性
5.5.2. 删除不相交属性
5.5.3. 编辑不相交属性
5.5.4. 新建本体中不存在的对象属性
5.6. 逆反属性
5.6.1. 选择当前本体或导入的本体中的对象属性
5.6.2. 删除逆反属性
5.6.3. 编辑逆反属性
5.6.4. 新建本体中不存在的对象属性
2.1.6.3.2. 数据属性
1、新建数据属性
2、删除数据属性
3、重命名数据属性
4、数据属性属性(IRI,类型,特征)
4.1 属性名称
4.2 IRI
4.3 属性类型
4.4 属性特征
4.4.1 函数对象属性
5、数据属性公理
5.1. 定义域
5.1.1. 新建
5.1.1.1. 选择本体或引入本体的类
5.1.1.2. 新建本体中不存在的类
5.1.1.3. 创建高级类(选择高级类运算方式,添加运算成员)
5.1.1.4. 创建数据属性约束
5.1.1.5. 创建数据属性约束
5.1.1.6. 创建枚举类
5.1.1.7. 类表达式文本输入
5.1.2. 删除定义域
5.1.3. 编辑定义域
5.2. 值域
5.2.1. 新建
5.2.1.1. 选择系统内置数据类型或自定义数据类型
5.2.1.2. 新建自定义属性类型
5.2.1.3. 根据选择的数据类型设置侧面约束(参见表格)
5.2.2. 删除值域
5.2.3. 编辑值域
5.3. 相等属性
5.3.1. 选择当前本体或引入的本体中的数据属性
5.3.2. 删除相等属性
5.3.3. 编辑相等属性
5.3.4. 新建本体中不存在的数据属性
5.4. 子属性
5.4.1. 选择当前本体或导入的本体中的数据属性
5.4.2. 删除子属性
5.4.3. 编辑子属性
5.4.4. 新建本体中不存在的数据属性
5.5. 不相交属性
5.5.1. 选择当前本体或导入的本体中的数据属性
5.5.2. 删除不相交属性
5.5.3. 编辑不相交属性
5.5.4. 新建本体中不存在的数据属性
2.1.6.4. 实例
1、新建实例
2、编辑实例
3、删除实例
4、实例属性
4.1. 对象属性
4.1.1. 添加(选择本体下或引入本体下对象属性并根据属性值域设置值)
4.1.2. 删除
4.1.3. 编辑(根据属性值域设置值)
4.2. 数据属性
4.2.1. 添加(选择本体下或引入本体下数据属性并根据属性值域设置值)
4.2.2. 删除
4.1.3. 编辑(根据属性值域设置值)
4.3 否定对象属性
4.3.1. 添加(选择本体下或引入本体下对象属性并根据属性值域设置值)
4.3.2. 删除
4.3.3. 编辑(根据属性值域设置值)
4.4 否定数据属性
4.4.1. 添加(选择本体下或引入本体下数据属性并根据属性值域设置值)
4.4.2. 删除
4.4.3. 编辑(根据属性值域设置值)
5、实例公理
5.1. 相等实例
5.1.1. 选择本体或引入本体的实例
5.1.2. 新建实例(新建空实例)
5.1.3. 删除实例(删除公理)
5.1.4. 编辑实例(编辑公理)
5.2. 不相等实例
5.2.1. 选择本体或引入本体的实例
5.2.2. 新建实例(新建空实例)
5.2.3. 删除实例(删除公理)
5.2.4. 编辑实例(编辑公理)
6、实例重命名
7、实例类型
2.1.6.5 公理
1、新建公理
1.1. 选中元素新建公理
1.1.1. 根据选中元素类型切换功能类型
1.1.2. 根据选择的公理类型加载候选元素列表
1.1.3. 默认在候选元素中选中被选元素
1.2. 未选中元素新建公理
2、切换公理
2.1. 根据公理类型生成公理候选项
2.2. 根据选择的公理显示对应的关系
3、删除公理
3.1. 删除公理以及公理连接线末端的关联元素
2.1.6.6 profile 切换 (给扩展方案,暂不实现功能)
1、 在OWL DL 的基础上进行限定得到 OWL EL、OWL QL、OWL RL三种标准
1.1 OWL EL
1.2 OWL QL
1.3 OWL RL
2.1.6.7 数据类型管理(Jean暂不支持自定义数据类型)
原则:复杂的数据类型根据jena的支持情况决定,表达式可编辑,语法验证简单优先支持,部分简单的功能可扩展
1、数据类型列表
2、自定义属性类型
2.1. 选择系统数据类型设置数据类型侧面约束
2.2. 选择集合运算规则或数据枚举构建新的数据类型
2.3. 新建自定义数据类型
3、删除自定义数据类型
4、重命名自定义数据类型
5、编辑自定义数据类型
6、数据类型公理
6.1. 等价数据类型(选择当前或导入本体中的自定义数据类型)
2.1.6.8 注释 Annotations
1、Annotations 基本属性(backwardCompatible,deprecated,lable,versionInfo.....)
2、Annotations 基本公理
2.1 断言
2.2 子属性
2.3 属性定义域
2.3.1 删除定义域
2.4 属性值域
2.4.1 删除值域
3、新建属性
4、新建子属性
5、删除自定义属性
2.1.6.9 元素操作
1、选中和取消选中
1.1. 选中本体元素(类,属性,实例)
1.1.1. 根据选中元素类型显示元素所有属性(多选默认显示第一个选中的属性)
1.1.2. 高亮显示被选中元素和元素的第一级公理
1.2. 选中公理
1.2.1. 高亮显示选中的公理线
2、框选(多选)
2.1. 左键按下拖动形成矩形区域
3、拖动选中元素(调整元素位置)
4、右键菜单功能(根据选中元素的类型加载右键菜单)
4.1. 删除
4.2. 类型切换(根据单选中的元素类型确定可以切换的类型)
6、公理元素开关
6.1. 选中元素开关只针对选中元素
6.2. 未选中元素时针对当前可见元素
7、自动布局
8、视图缩放
9、拖拽画布移动画布
10、快照(基于用户和本体操作)
10.1. 快照保存(位置,元素,层级)
10.2. 快照删除
10.3. 打开快照(同步最新本体结构)
10.4. 快照列表
10.5. 快照描述
11、查找
12、视图切换(类类图,类属图)
2.1.10. 项目或本体推理(可扩展)
2.1.11. 本体规则(可扩展)
2.1.12. 项目或本体查询(可扩展)
2.2. 系统管理员
KOP系统管理员系统管理功能列表
2.2.1. 用户管理
1、分页列表显示当前系统所有注册用户,以及注册状态(是否激活)
2.2.2. 公开内容管理
1、公开项目
1.1 分页显示系统中公开的所有项目
2、公开本体
2.1分页显示系统中公开的所有本体
2.3. 系统反馈
1、公布问题反馈(图片,文字)
2、分页列表显示反馈的问题及状态(已处理/未处理)
3、更新反馈状态