如何在OWL属性链中应用否定解决语义网本体推理异常问题
问题根因
你当前的建模错误核心是用通用的relatedTo属性承载了不同类型的关联逻辑,同时给它加上了传递+对称特性,导致所有通过relatedTo连接的实例会被推理器判定为属于同一个关联闭包,直接突破了岗位、技能这两类实例的关联边界,才会出现错误的推理结果。
优化方案
1. 拆分通用属性,做属性分层
不要用单个relatedTo承载所有关联,拆分为更细粒度的子属性,不同属性单独设置特性:
- 保留顶层无特性的
relatedTo作为通用父属性,不设置传递、对称特性 - 新增子属性
skillRelatedTo:仅用于技能和技能之间的关联,保留传递、对称特性,设置域和范围均为技能类 - 新增子属性
jobRequireSkill:仅用于岗位指向所需技能的关联,不设置传递、对称特性,设置域为岗位类、范围为技能类
2. 明确suggestedSkill的推理规则
不要依赖通用属性的传递特性隐式推理,单独定义明确的推理规则:
若 岗位A 存在
jobRequireSkill关联到 技能X,且 技能X 存在skillRelatedTo关联到 技能Y,则 岗位A 存在suggestedSkill关联到 技能Y
3. 给suggestedSkill增加类型限制
给suggestedSkill设置域为岗位类、范围为技能类,推理器会自动过滤不符合类型约束的错误三元组,避免跨类型的异常关联生成。
内容的提问来源于stack exchange,提问作者Sahas
相关产品推荐
相关产品推荐

