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

    >> 本版讨论Semantic Web(语义Web,语义网或语义万维网, Web 3.0)及相关理论,如:Ontology(本体,本体论), OWL(Web Ontology Langauge,Web本体语言), Description Logic(DL, 描述逻辑),RDFa,Ontology Engineering等。
    [返回] 中文XML论坛 - 专业的XML技术讨论区W3CHINA.ORG讨论区 - Web新技术讨论『 Semantic Web(语义Web)/描述逻辑/本体 』 → Jena对本体内容的刪除無效   新增、修改、删除一问 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 12825 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: Jena对本体内容的刪除無效   新增、修改、删除一问 举报  打印  推荐  IE收藏夹 
       本主题类别: Ontology Language | RDF/RDFS | Description Logics    
     pkmu8426 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:67
      门派:XML.ORG.CN
      注册:2011/4/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给pkmu8426发送一个短消息 把pkmu8426加入好友 查看pkmu8426的个人资料 搜索pkmu8426在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看pkmu8426的博客楼主
    发贴心情 Jena对本体内容的刪除無效   新增、修改、删除一问

    这几天试了又试 实在是顶不住  因此上来求教了  恳请解惑

    是这样的 我用Protege建了一本体

    Java + Jena 推论   因有需求, 需要新增、删除、修改 本体中的Property, 关联

    首先我推论了一InfModel  然后测试删除  并打印结果出来验证 测试是否已删除 。
    打印语法大致如下 根据采用的类别不同会稍微改变。
    下面的方法, 实际上我这边呼叫时只传入(model,null,Property,null)
    目的是从本体中寻找关联p是否存在 若存在 则删除。
    public static void deleteStatements2(Model m, Resource rs, Property p, Resource rs2)

        OntModel om =
                  ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM,m);
       
        Resource subject = null;
        Property predicate = null;
        RDFNode ob  = null;
        for(StmtIterator i = om.listStatements(rs, p, rs2); i.hasNext(); )
        {
         Statement stmt = i.nextStatement();
         subject = stmt.getSubject();
         predicate = stmt.getPredicate();
         ob = stmt.getObject();  
                       if(om.contains(stmt))   
                       { System.out.println("Contain");
                       }else
                       { System.out.println("Not contain");
                       }
        }
    }

    测试过的删除方法如下

    1.model.remove(statement)
    2.model.remove(Subject, Property, RDFNode)
    3.
    Resource r = om.getResource(property.toString());
    OntResource orr = om.getOntResource(r);
    orr.remove();
    4. om.getBaseModel.remove(statement) or
       om.getBaseModel.remove (Subject, Property, RDFNode)

    大多数能想到的都尽量试了  但打印出的结果却总是没有删除。
    仿佛对我下的语法豪无反应。
    网上爬了几天的资料, 目前心得是  本体再Jena规范下  似乎最原始的结构是不可修改的
    而无论对本体进行新增、删除等  都是针对本体所对应的BaseModel去做, 不知是否如此?
    否则怎么我用了一大串remove语法 打印出的结果却总是没有删除。
    我也初步测试了.getBaseModel 去删除  但不晓得是弄错步骤  还是什么原因,
    总而言之是失败的。
    能否有实际代码?  实在是不晓得为何无法对本体内的内容进行删除。

    如有需要 我可以将完整代码贴上... 但因为写得很乱
    因此需要再整理一下。
    谢谢。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2013/2/11 15:25:00
     
     pkmu8426 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:67
      门派:XML.ORG.CN
      注册:2011/4/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给pkmu8426发送一个短消息 把pkmu8426加入好友 查看pkmu8426的个人资料 搜索pkmu8426在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看pkmu8426的博客2
    发贴心情 
    基于不轻言放弃的精神...
    目前暂时找到个解  虽然不确定一般而言是否照此运作
    但好歹初步测试可以了。
    原因似乎在于InfModel身上  推论过后的InfModel似乎不允许随意删除。

    题外话:若是仅建立一个Model, 从owl档读入后 删除是成功的。
    网上看到了一篇文 提到下面这个东西  虽然并无正相关  试了一下却正好解了困扰我几天的问题。
    Model m =  inm.getDeductionsModel();
    m.remove(Statement);
    if(m.contains(Statement)) ...
    字面上很简单可以理解  推论过后, 取得推论的model, 删除、验证
    即可正确取得结果。
    剩下新增、修改的部份..还有待测试, 如有成果 我想我会将心得打在这篇。
    不过最疑惑的是...为何Jena搞得如此复杂..一个model不够, 还要衍伸一堆model,
    又无法任意说动就动。 正确、详细的使用规范也不太多...真有点伤时伤脑。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2013/2/12 19:12:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/12/18 9:49:20

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

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