当前位置: 首页 > 知识库问答 >
问题:

ProtégéOWL API编程

姬捷
2023-03-14

我的代码有一个问题,我正在使用Protege OWL API(3.4.8)处理一个antologie文件,我想让用户在ontologie中定义所有的类,问题是我在for循环中不断出现错误,我无法修复这些错误,有没有办法得到这些类。

 package Test;
 import java.util.Collection;
 import javax.swing.text.html.HTMLDocument.Iterator;
 import antlr.collections.List;
 import edu.stanford.smi.protege.model.Cls;
 import edu.stanford.smi.protegex.owl.ProtegeOWL;
 import edu.stanford.smi.protegex.owl.jena.JenaOWLModel;
 import edu.stanford.smi.protegex.owl.model.OWLDatatypeProperty;
 import edu.stanford.smi.protegex.owl.model.OWLIndividual;
 import edu.stanford.smi.protegex.owl.model.OWLModel;
 import edu.stanford.smi.protegex.owl.model.OWLNamedClass;
 import edu.stanford.smi.protegex.owl.model.OWLObjectProperty;
 import edu.stanford.smi.protegex.owl.model.RDFSClass;
 public class Class4 {


 public static JenaOWLModel owlModel =null;
 public static String scorKos_Uri="C:/Users/souad/Desktop/SCOR-KOS.owl";
 //where  my ontologie file exist
 //change the URI by this       
 "http://protege.cim3.net/file/pub/ontologies/travel/travel.owl"; to have a    
  OWL file 



  /**
   * @param args
   */
   public static void main(String[] args) {
    /**
     * ontologie
     */

    try {
        owlModel=ProtegeOWL.createJenaOWLModelFromURI(scorKos_Uri);

        System.out.println("Worked");

        Collection classes = owlModel.getUserDefinedOWLNamedClasses();
        for (Iterator it = classes.iterator(); it.hasNext();) {
            OWLNamedClass cls = (OWLNamedClass) it.next();
            Collection instances = cls.getInstances(false);
            System.out.println("Class " + cls.getBrowserText() + " (" +                    
               instances.size() + ")");
            for (Iterator jt = instances.iterator(); jt.hasNext();) {
                OWLIndividual individual = (OWLIndividual) jt.next();
                System.out.println(" - " + individual.getBrowserText());
            }
        }

    }catch (Exception exception) {  
        System.out.println("Error can't upload the ontologie ");

        System.exit(1);
    }




  }

 }

共有1个答案

娄浩荡
2023-03-14

您没有导入java.util.iterator

 类似资料:
  • 技术的学习是一个登山的过程。第一章是最为平坦的山脚道路。而从这一章开始,则是正式的爬坡。无论是我写作还是你阅读,都需要付出比第一章更多的代价。那么问题就是,付出更多的精力学习模板是否值得? 这个问题很功利,但是一针见血。因为技术的根本目的在于解决需求。那C++的模板能做什么? 一个高(树)大(新)上(风)的回答是,C++里面的模板,犹如C中的宏、C#和Java中的自省(restropection)

  • 问题内容: 在过去的两年中,我一直在编写Java,现在,我开始用python(另外)进行编写。 问题是,当我查看我的Python代码时,似乎有人试图将Java代码转换为python格式,但结果却很糟糕,因为- python不是Java。 关于如何摆脱“用Python编写Java”模式的任何技巧? 谢谢! 问题答案: 您可能会考虑将自己沉浸在Python范例中。最好的方法是先了解他们的知识,然后通过

  • 编辑#2:因为它看起来像一个bug,我已经在javaFx jira中发布了一个bug报告。您必须拥有一个帐户才能访问该问题。如果有新的信息,我会及时更新这篇文章。 原始帖子:我有一个简单的UI,带有一个按钮和一个树状视图。如果按钮被按下,应该会有一个新的项目添加到树视图。此项一出现在树中就应可编辑。 我使用的CellFactory是JavaFXAPI的一部分。 如果我看看api-留档(TreeVi

  • 比较传统的服务端程序(PHP、FAST CGI 等),大多都是通过每产生一个请求,都会有一个进程与之相对应,请求处理完毕后相关进程自动释放。由于进程创建、销毁对资源占用比较高,所以很多语言都通过常驻进程、线程等方式降低资源开销。即使是资源占用最小的线程,当并发数量超过 1K 的时候,操作系统的处理能力就开始出现明显下降,因为有太多的 CPU 时间都消耗在系统上下文切换。 由此催生了 C10K 编程

  • 我是初学者。我可以在一个JFrame中有多个布局吗?我想用java做一个井字游戏项目,并给它添加一个图形用户界面,所以除了3x3网格之外,我还想要一个JLabel和一个J按钮。那么,我如何构建网格以及添加菜单和单选按钮呢?我应该使用哪种布局?

  • 元编程 避免无谓的元编程。 当编写程序库时,不要使核心类混乱(不要使用 monkey patch)。 对于 class_eval 方法,倾向使用区块形式,而不是字符串插值形式。 当使用字符串插值形式时,总是提供 __FILE__ 及 __LINE__,以使你的调用栈看起来具有意义: class_eval 'def use_relative_model_naming?; true; end', __

  • 1 台阶问题/斐波那契 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2) 第二种记忆方法 def memo(func): cache = {} def wrap(*args): if args not in ca

  • Metaprogramming is a programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyze or tran