JENA推理机解读

package test;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.ontology.*;
public class testjena {
public static void main(String[] args) throws UnsupportedEncodingException {
String owlPath="e://双敦目标本体.owl";
      


  //创建一个本体实例
  OntModel ontModel = ModelFactory
  .createOntologyModel(OntModelSpec.OWL_MEM);
  //加载本体文件
  ontModel.read("file:" + owlPath, "RDF/XML");
  String temp = "";
  //迭代读取本体中所有节点
  for (Iterator i = ontModel.listClasses(); i.hasNext();) {
  OntClass c = (OntClass) i.next();
  c.listSuperClasses();
  if (!c.isAnon()) {
  String tmp = c.getLocalName().toString();
  //获得本体的节点,作为字符串存放到temp变量中
  tmp = new String(tmp.getBytes("UTF-8"), "UTF-8");
  temp += tmp + "\r\n";
  System.out.println(temp);
  }
  }


             // create the model and import owl file
 


           


}}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
所有规则: {"有羽毛","不会飞,长腿,长脖子,鸟类","不会飞,善游泳,黑白色,鸟类","长腿,长脖,有黄褐色暗斑,有蹄类","不会飞,会飞","吃肉,哺乳类","反刍食物,哺乳类","黄褐色,有暗斑点,肉食类","黄褐色,有黑条纹,肉食类","犬牙利爪,眼睛向前","善飞,鸟类","有黑白条纹,有蹄类","有毛","有奶"}; 规则对应的结果 {"鸟类","鸵鸟","企鹅","长颈鹿","矛盾","肉食类","有蹄类","金钱豹","老虎","肉食类","信天翁","斑马","哺乳类","哺乳类"}; 所有的事实: {"不会飞","长腿","长脖子","吃肉","反刍食物","黑白色","黄褐色","会飞","会生蛋","鸟类","犬牙利爪","肉食类","善飞","善游泳","眼睛向前","有暗斑点","有黑白条纹","有黑条纹","有黄褐色暗斑","有毛","有奶","有蹄","有蹄类","有羽毛"}; 程序打开直接运行: 1、会出现输入控制台 2、输入你选择的 事实 3、程序会进行推理 并且把推理结果显示出来 4、规则集中增加 矛盾规则,以防输入时候选择了矛盾的条件。 遇到这种情况,推理直接停止,并显示提示。 5、如果有推理成功,程序则把结论加入条件,删除掉成功推理规则。从头再进行一次推理,增加推理的完整性。 不足: (算法需要进一步完善的地方:) 规则分类: 正常推理,和矛盾推理,由于时间原因未能实现 事实集合分类: 分为3类: 条件,中间结论,结果。 这样在推理过程中可以智能的把推理中间结论和结果分开,以免一些无效的推理。 比如: 鸟类:为中间结论,它可以做进一步的推理。 而鸵鸟为结果,不应该在加入条件集合中进行推理过程。 形似计算: 通过条件集合,以及规则来定义一个形似计算规则,对推理进行加工,得出近视推理。比如有些输入条件,仅仅就与规则差一点点,但是计算机就是推理不出结果。 我们可以近视计算出80%或者90%的推理集合,显示给用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值