新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     >>W3CHINA.ORG讨论区<<     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWLXML.ORG.CN讨论区 - XML技术『 XML基础 』 → jena规则推理时遇到的问题 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 8381 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: jena规则推理时遇到的问题 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     hrballen 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:38
      积分:198
      门派:XML.ORG.CN
      注册:2008/7/13

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hrballen发送一个短消息 把hrballen加入好友 查看hrballen的个人资料 搜索hrballen在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hrballen的博客楼主
    发贴心情 jena规则推理时遇到的问题

    我是一个初学者,在进行jena规则推理时,遇到些问题,就是推理时规则的编写,还有推理的步骤。请高手指点一下,下面代码哪里有问题?在编写规则时,rule1:(?x http://www.owl-ontologies.com/Animal.owl#111111?y,其中的111111指的是在编写本体时的ObjectPropertyma吗?在输出查询结果时,
    Zoo | Herbivore 下面是空的,不知他应该是实例,还是什么?请高手细致地讲一下

    import java.util.Iterator;          

    import com.hp.hpl.jena.db.DBConnection;
    import com.hp.hpl.jena.db.IDBConnection;
    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.query.Query;
    import com.hp.hpl.jena.query.QueryExecution;
    import com.hp.hpl.jena.query.QueryExecutionFactory;
    import com.hp.hpl.jena.query.QueryFactory;
    import com.hp.hpl.jena.query.ResultSet;
    import com.hp.hpl.jena.query.ResultSetFormatter;
    import com.hp.hpl.jena.rdf.model.InfModel;
    import com.hp.hpl.jena.rdf.model.Model;
    import com.hp.hpl.jena.rdf.model.ModelFactory;
    import com.hp.hpl.jena.rdf.model.ModelMaker;
    import com.hp.hpl.jena.reasoner.Reasoner;
    import com.hp.hpl.jena.reasoner.rulesys.GenericRuleReasoner;
    import com.hp.hpl.jena.reasoner.rulesys.Rule;

    public class  sparqltuili{
    public static final String strDriver = "com.mysql.jdbc.Driver"; // path of driver class
         public static final String strURL = "jdbc:mysql://localhost/protege_db"; // URL of database
         public static final String strUser = "root"; // database user id
         public static final String strPassWord = ""; // database password
         public static final String strDB =  "MySQL"; // database type
         public static void main(String[] args){
         
            try{
                // 创建一个数据库连接
                  IDBConnection con = new DBConnection ( strURL, strUser, strPassWord, strDB );
                
                  // 加载数据库驱动类,需要处理异常
                  try{
                   System.out.println(strDriver);
                       Class.forName(strDriver);
                  }catch(ClassNotFoundException e) {
                       System.out.println("ClassNotFoundException, Driver is not available...");
                  }
                  String filePath = "file:C:\\Program Files\\Protege_3.1\\Animal.owl";
                  
           sparqltuili.createDBModelFromFile(con, "1protege_db",filePath);            
        OntModel model = sparqltuili.getModelFromDB(con, "1protege_db");
        sparqltuili.simpleReadOntology(model);
        
        
          String rule = "[rule1:(?x http://www.owl-ontologies.com/Animal.owl#Belonging ?y) " +
         
           "->(?y http://www.owl-ontologies.com/Animal.owl#Belonged ?x)]";
         
       /*查询语句*/
        String queryString = "PREFIX Animal:<http://www.owl-ontologies.com/Animal.owl#> " +
       "SELECT ?Zoo ?Herbivore " +
       "WHERE { ?Zoo Animal:Belonged ?Herbivore} ";
        
         /*创建推理机*/
         Reasoner reasoner2 = new GenericRuleReasoner(Rule.parseRules(rule));
      
         InfModel inf = ModelFactory.createInfModel(reasoner2, model);
         Query query = QueryFactory.create(queryString);
         
         QueryExecution qe = QueryExecutionFactory.create(query, inf);
         ResultSet results = qe.execSelect();
         /*打印结果*/
         ResultSetFormatter.out(System.out, results, query);
         qe.close();
         }catch(Exception e){e.printStackTrace();}}
        
         /* 从文件读取本体并将其存入数据库 */
        public static OntModel createDBModelFromFile(IDBConnection con, String name,
                 String filePath) {
                  ModelMaker maker = ModelFactory.createModelRDBMaker(con);
                  Model base = maker.createModel(name);
                  OntModel newmodel = ModelFactory.createOntologyModel(
             getModelSpec(maker), base);
                  newmodel.read(filePath);
                  return newmodel;
             }
         /* 从数据库中得到已存入本体 */
       public static OntModel getModelFromDB(IDBConnection con, String name) {
             ModelMaker maker = ModelFactory.createModelRDBMaker(con);
             Model base = maker.getModel(name);
             OntModel newmodel = ModelFactory.createOntologyModel(
                      getModelSpec(maker), base);
             return newmodel;
              }
       public static OntModelSpec getModelSpec(ModelMaker maker) {
          OntModelSpec spec = new OntModelSpec(OntModelSpec.OWL_MEM);
          spec.setImportModelMaker(maker);
          return spec;
     }
        /* 简单读取本体中的各个class */
       public static void simpleReadOntology(OntModel model) {
          for (Iterator i = model.listClasses(); i.hasNext();) {
              OntClass c = (OntClass) i.next();
              System.out.println(c.getLocalName());
          }
      }
    }


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/8/4 11:04:00
     
     loveunk 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:16
      积分:155
      门派:W3CHINA.ORG
      注册:2008/3/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给loveunk发送一个短消息 把loveunk加入好友 查看loveunk的个人资料 搜索loveunk在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看loveunk的博客2
    发贴心情 
    恩,你理解的是对的

    111111是本体的ObjectPropertyma

    ----------------------------------------------
    hs1107033#gmail.com http://www.iamqiwen.cn/

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/11/13 21:27:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/28 18:48:53

    本主题贴数2,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms