例如,在一个电影知识图谱中,已知 “《泰坦尼克号》的导演是詹姆斯・卡梅隆”“詹姆斯・卡梅隆还导演了《阿凡达》”,通过知识推理,我们可以得出 “《阿凡达》和《泰坦尼克号》的导演是同一人” 这样的新知识 。常用的推理技术包括基于规则的推理,如定义 “如果 A 是 B 的父亲,B 是 C 的父亲,那么 A 是 C 的祖父” 这样的规则来推导新的关系;还有基于机器学习的推理,通过训练模型,让机器自动学习知识之间的关联和模式,从而进行推理 。像一些智能问答系统,就是利用知识推理来理解用户的问题,并从知识图谱中找到答案,为用户提供更智能、更准确的服务。
Jena:是一个用于构建语义网应用的 Java 框架,包含了丰富的工具和库,其中推理子系统允许将一系列推理引擎或推理器插入 。它支持基于规则的推理,用户可以自定义推理规则,从已有的数据信息和类描述中推理出额外的事实。比如在一个电影知识图谱中,定义规则 “如果电影 A 和电影 B 有相同的导演,且电影 A 的评分很高,那么电影 B 可能也值得一看”,Jena 就可以依据这个规则,从知识图谱中已有的电影数据和导演关系中,推理出哪些电影可能值得推荐。它适用于基于语义网技术构建的知识图谱应用,能够实现较为复杂的知识推理功能。