新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   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等。
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWLW3CHINA.ORG讨论区 - Web新技术讨论『 Semantic Web(语义Web)/描述逻辑/本体 』 → java+java3d+protege owl api +jess做的一个面向设计领域的语义建模系统 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 241359 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: java+java3d+protege owl api +jess做的一个面向设计领域的语义建模系统 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     alexwan 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:22
      积分:214
      门派:XML.ORG.CN
      注册:2008/5/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给alexwan发送一个短消息 把alexwan加入好友 查看alexwan的个人资料 搜索alexwan在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看alexwan的博客楼主
    发贴心情 java+java3d+protege owl api +jess做的一个面向设计领域的语义建模系统

    花近3个月完成了一个面向设计领域的语义建模系统,主要涉及到java+java3d+protege owl api +jess,其中java3d主要用来进行产品三维模型的显示以及特征建模,protege owl api 主要用来将特征模型导入到本体中,并提供了相应的修改功能,其中还建立了一系列的swrl推理规则,利用jess进行推理。如果大家有兴趣的话,可以email联系,我将与大家分享开发过程中的新的。我的email: wanchj@zist.edu.cn

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/8/28 17:14:00
     
     alexwan 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:22
      积分:214
      门派:XML.ORG.CN
      注册:2008/5/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给alexwan发送一个短消息 把alexwan加入好友 查看alexwan的个人资料 搜索alexwan在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看alexwan的博客2
    发贴心情 

    此主题相关图片如下:
    按此在新窗口浏览图片
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/8/28 17:24:00
     
     alexwan 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:22
      积分:214
      门派:XML.ORG.CN
      注册:2008/5/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给alexwan发送一个短消息 把alexwan加入好友 查看alexwan的个人资料 搜索alexwan在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看alexwan的博客3
    发贴心情 

    此主题相关图片如下:
    按此在新窗口浏览图片
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/8/28 17:55:00
     
     Jevin 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:38
      积分:208
      门派:XML.ORG.CN
      注册:2008/3/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Jevin发送一个短消息 把Jevin加入好友 查看Jevin的个人资料 搜索Jevin在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看Jevin的博客4
    发贴心情 
    学习中...
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/8/29 11:20:00
     
     ldlleaf 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:64
      门派:XML.ORG.CN
      注册:2008/8/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ldlleaf发送一个短消息 把ldlleaf加入好友 查看ldlleaf的个人资料 搜索ldlleaf在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看ldlleaf的博客5
    发贴心情 
    不错
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/8/29 11:30:00
     
     alexwan 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:22
      积分:214
      门派:XML.ORG.CN
      注册:2008/5/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给alexwan发送一个短消息 把alexwan加入好友 查看alexwan的个人资料 搜索alexwan在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看alexwan的博客6
    发贴心情 

    此主题相关图片如下:
    按此在新窗口浏览图片
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/8/29 19:13:00
     
     alexwan 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:22
      积分:214
      门派:XML.ORG.CN
      注册:2008/5/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给alexwan发送一个短消息 把alexwan加入好友 查看alexwan的个人资料 搜索alexwan在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看alexwan的博客7
    发贴心情 本体文件导入系统有关代码

              //clear the history
              CurActiveOWLModel=null;
              
               //更新树结构
           DefaultMutableTreeNode root1 = new DefaultMutableTreeNode ("owl:Thing");
           DefaultTreeModel model = new DefaultTreeModel (root1);
              leftOnto.getClassTree().setModel(model);
              leftOnto.getIndiTree().setModel(model);
              leftOnto.getObjectPropertyTree().setModel(model);
              leftOnto.getDatatypePropertyTree().setModel(model);

                 int retval = importOWLFileChooser.showOpenDialog(null);
                 if (retval == JFileChooser.APPROVE_OPTION) {
                  
                     File file = importOWLFileChooser.getSelectedFile();
                     openOntoFile=file.getPath();
                     JenaOWLModel createJenaOWLModelFromURI=null;
         try {
          
          createJenaOWLModelFromURI = ProtegeOWL.createJenaOWLModelFromURI(file.toURI().toString());
         } catch (OntologyLoadException e1) {
          e1.printStackTrace();
         }
            CurActiveOWLModel = createJenaOWLModelFromURI;
            Collection alldiffs=CurActiveOWLModel.getOWLAllDifferents();
            for(Iterator it=alldiffs.iterator();it.hasNext();)
            {
             OWLAllDifferent indiv=(OWLAllDifferent)it.next();
             
             System.out.println(indiv.getName());
             
             //System.out.println(cls.getBrowserText());
             Collection diff=indiv.getDistinctMembers();
             
             for(Iterator it1=diff.iterator();it1.hasNext();)
             {
              OWLIndividual indivi=(OWLIndividual)it1.next();
              System.out.println(indivi.getBrowserText());
             }
            }
            
            J3Dinterface.makeSystemClassesHidden(CurActiveOWLModel);

    //     ClassTreeComponent pl= new ClassTreeComponent(null,CurActiveOWLModel);  
    //     final JTree clsTree=pl.getTree();
         final JTree clstree= leftOnto.getClassTree();
         final JTree clsTree= new SelectableTree(null,new ParentChildRoot(CurActiveOWLModel.getOWLThingClass()));
         clstree.setModel(clsTree.getModel());
         clstree.setCellRenderer(new ResourceRenderer());
         clstree.setSelectionRow(0);
         clstree.setExpandsSelectedPaths(true);
         clstree.expandRow(1);
         
         MouseListener ml = new MouseAdapter() {
          public void mousePressed(MouseEvent e) {
           int selRow = clstree.getRowForLocation(e.getX(), e.getY());
           TreePath selPath = clstree.getPathForLocation(e.getX(), e.getY());
           if(selRow != -1) {
            if(e.getClickCount() == 2) {
             TreeNode   treenode=(TreeNode)selPath.getLastPathComponent();   
                   String nodeName=treenode.toString();
                   String str[]=nodeName.split("#");
                   System.out.println(str[1].substring(0,str[1].length()-2));
                OWLNamedClass cls=J3Dinterface.CurActiveOWLModel.getOWLNamedClass(str[1].substring(0,str[1].length()-2));
             OntoDisplayClass odc=new OntoDisplayClass(null,cls,J3Dinterface.CurActiveOWLModel);
             odc.setVisible(true);
       //      odc.setAlwaysOnTop(true);
            }
           }
          }
          };
          clstree.addMouseListener(ml);

        // update the individual tab

               RDFSNamedClass root = CurActiveOWLModel.getOWLThingClass();
               ClassTree ct = new ClassTree(null, new ParentChildRoot(root));
               final ClassTree indiTree=leftOnto.getIndiTree();
               indiTree.setModel(ct.getModel());
               indiTree.expandRow(0);
               FrameRenderer renderer = FrameRenderer.createInstance();
               renderer.setDisplayDirectInstanceCount(true);
               indiTree.setCellRenderer(renderer);
               indiTree.setSelectionRow(0);
               
               //object property
               List results = new ArrayList(CurActiveOWLModel.getUserDefinedOWLObjectProperties());
               Iterator i = results.iterator();
               while (i.hasNext()) {
                   Slot slot = (Slot) i.next();
                   if (slot.getDirectSuperslotCount() > 0) {
                       i.remove();
                   }
               }
               results.removeAll(Arrays.asList(CurActiveOWLModel.getSystemAnnotationProperties()));
               
               if (OWLUI.getSortPropertiesTreeOption()) {
                Collections.sort(results, new FrameComparator());
               }
          
         final TooltippedSelectableTree tree = new TooltippedSelectableTree(null, new OWLPropertySubpropertyRoot(CurActiveOWLModel,results,false));
         final TooltippedSelectableTree opTree=leftOnto.getObjectPropertyTree();
         opTree.setModel(tree.getModel());
         opTree.setCellRenderer(new ResourceRenderer());
         opTree.setShowsRootHandles(true);
         opTree.setSelectionRow(0);
         opTree.setLargeModel(true);

          //datatype property tree
               
                List results1 = new ArrayList(CurActiveOWLModel.getUserDefinedOWLDatatypeProperties());
                Iterator i1 = results1.iterator();
                while (i1.hasNext()) {
                    Slot slot = (Slot) i1.next();
                    if (slot.getDirectSuperslotCount() > 0) {
                        i1.remove();
                    }
                }
                results1.removeAll(Arrays.asList(CurActiveOWLModel.getSystemAnnotationProperties()));
                
                if (OWLUI.getSortPropertiesTreeOption()) {
                 Collections.sort(results1, new FrameComparator());
                }
           
          final TooltippedSelectableTree tree1 = new TooltippedSelectableTree(null, new OWLPropertySubpropertyRoot(CurActiveOWLModel,results1,false));
          final TooltippedSelectableTree opTree1=leftOnto.getDatatypePropertyTree();
          opTree1.setModel(tree1.getModel());
          opTree1.setCellRenderer(new ResourceRenderer());
          opTree1.setShowsRootHandles(true);
          opTree1.setSelectionRow(0);
          opTree1.setLargeModel(true);

          //now build the rule tree, one layer tree
          SWRLFactory factory = new SWRLFactory(CurActiveOWLModel);
          Collection rules = factory.getImps();
          final JTree ruleTree= leftOnto.getRuleTree();
          
          TreeModel tm=ruleTree.getModel();
          DefaultMutableTreeNode rootrule=(DefaultMutableTreeNode)tm.getRoot();
          
          for(Iterator it=rules.iterator();it.hasNext();)
          {
           SWRLImp  imp=(SWRLImp )it.next();
           
           String temp[]=imp.getName().split("#");
           if(temp.length>1)
           {
            DefaultMutableTreeNode child = new DefaultMutableTreeNode (temp[1]);
            rootrule.add(child);
           }else
           {
            
            DefaultMutableTreeNode child = new DefaultMutableTreeNode (temp[1]);
            child.setUserObject(imp);
            
            rootrule.add(child);
           }
           
          
          }
          ruleTree.setModel(tm);
          ruleTree.setSelectionRow(0);
          ruleTree.expandRow(1);
          ruleTree.setExpandsSelectedPaths(true);
          MouseListener mr = new MouseAdapter() {
           public void mousePressed(MouseEvent e) {
            int selRow = ruleTree.getRowForLocation(e.getX(), e.getY());
            TreePath selPath = ruleTree.getPathForLocation(e.getX(), e.getY());
            if(selRow != -1) {
             if(e.getClickCount() == 2) {
              TreeNode   treenode=(TreeNode)selPath.getLastPathComponent();   
                    String nodeName=treenode.toString();
                    SWRLFactory factory1 = new SWRLFactory(CurActiveOWLModel);
              Collection rules1 = factory1.getImps();
              SWRLImp rule=null;
              for(Iterator it=rules1.iterator();it.hasNext();)
              {
               SWRLImp  imp=(SWRLImp )it.next();
               
               String temp[]=imp.getName().split("#");
               if(temp.length>1){
                if(temp[1].equalsIgnoreCase(nodeName))
                {
                 rule=imp;
                 break;
                } 
               }
              
              }
              if(rule!=null)
              {
               RuleBrowse ruleBrowse=new RuleBrowse(null,rule);
               ruleBrowse.setVisible(true);
              }
                    
                 //OWLNamedClass cls=J3Dinterface.CurActiveOWLModel.getOWLNamedClass(str[1].substring(0,str[1].length()-2));
              //OntoDisplayClass odc=new OntoDisplayClass(null,cls,J3Dinterface.CurActiveOWLModel);
              //odc.setVisible(true);
        //      odc.setAlwaysOnTop(true);
             }
            }
           }
           };
           ruleTree.addMouseListener(mr);

          
          
                 }    
       

    最终生成的就是我的系统主界面左边的tab页内容

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/9/10 22:39:00
     
     alexwan 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:22
      积分:214
      门派:XML.ORG.CN
      注册:2008/5/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给alexwan发送一个短消息 把alexwan加入好友 查看alexwan的个人资料 搜索alexwan在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看alexwan的博客8
    发贴心情 本体内容的自定义查询界面

    此主题相关图片如下:
    按此在新窗口浏览图片
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/9/10 22:43:00
     
     alexwan 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:22
      积分:214
      门派:XML.ORG.CN
      注册:2008/5/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给alexwan发送一个短消息 把alexwan加入好友 查看alexwan的个人资料 搜索alexwan在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看alexwan的博客9
    发贴心情 预定义查询

    此主题相关图片如下:
    按此在新窗口浏览图片
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/9/10 22:48:00
     
     alexwan 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:22
      积分:214
      门派:XML.ORG.CN
      注册:2008/5/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给alexwan发送一个短消息 把alexwan加入好友 查看alexwan的个人资料 搜索alexwan在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看alexwan的博客10
    发贴心情 
    上面的代码很乱,说实在的,对java的学习,也就两三个月时间,是边学习边完成了该系统,好在以前一直是用c的,所以上手还算快。

    程序中的注释基本上很少,看起来可能比较费劲。我也没有多少时间花在该系统上,因为所开发的系统主要用于科研,不是实用的商业系统,所以,对其规范性也没在意。

    贴这段代码的初衷是让那些利用protege owl api的新手们对开发接口有个认识,另外,这段程序也演示了在protege之外的应用程序中如何引用owl所提供的已有界面,例如在我的程序里,我引用了Protege owl 的类、属性、实例的树型显示。所以,劝告大家在利用owl api开发你自己的应用程序时,能引用Protege owl  窗体的尽量引用,因为它是开发源码,你可以做少许的工作,就可以完成你花很多天才完成功能。

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

    本主题贴数99,分页: [1] [2] [3] [4]... [10]

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