Java 如何从整个本体中提取特定个体的同义词?

Java 如何从整个本体中提取特定个体的同义词?,java,owl,ontology,owl-api,Java,Owl,Ontology,Owl Api,我正在用jena在Eclipse中实现一个本体,我试图从整个本体中获取一个个体的同义词 我将如何从整个本体中获取特定个体的所有同义词,而不考虑类 static final String inputFileName = "http://word.owl"; OntModel inf = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RULE_INF); InputStream in = FileManager.g

我正在用jena在Eclipse中实现一个本体,我试图从整个本体中获取一个个体的同义词

我将如何从整个本体中获取特定个体的所有同义词,而不考虑类

 static final String inputFileName = "http://word.owl";
OntModel inf = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RULE_INF);
        InputStream in = FileManager.get().open(inputFileName);
        inf.read(in, "");       
        ExtendedIterator classes = inf.listClasses();
        while(classes.hasNext())
        {
            OntClass obj = (OntClass) classes.next();
            String className = obj.getLocalName().toString();
            System.out.println("Class Name : "+className);                         
        }   
        ExtendedIterator instances = inf.listIndividuals();
        while(instances.hasNext())
        {
            Individual ind = (Individual) instances.next();
            String indName = ind.getLocalName().toString();
            System.out.println("Individual Name : "+indName);                          
        }    

    ExtendedIterator property = inf.listDatatypeProperties();
   while(property.hasNext())
   {
       DatatypeProperty prop = (DatatypeProperty) property.next();
        String propName = prop.getLocalName().toString();
        System.out.println("Data Propties Name : "+propName);                           
    }
    ExtendedIterator property1 = inf.listObjectProperties();
    while(property1.hasNext())
    {
       ObjectProperty prop = (ObjectProperty) property1.next();
      String propName = prop.getLocalName().toString();
     System.out.println("Object Propties Name : "+propName);                           
}

    ObjectProperty isSynonymOf = inf.getObjectProperty("http://www.../Word#isSynonymOf"); 

    System.out.println("Individuals having isSynonymOf Proterty:");

    ExtendedIterator individuals1 = inf.listIndividuals();
    while(individuals1.hasNext())
    {
        Individual ind = (Individual) individuals1.next();
        if(ind.getProperty(isSynonymOf) != null)
       {
           String indName = ind.getLocalName().toString();
           System.out.println(indName);
       }


       }
}
问题:我将何时输入个人,例如软件 它应该给我所有的同义词 -软件
-软件架构 -软件设计 -节目

这是我的猫头鹰档案

  <?xml version="1.0"?>
  <rdf:RDF xmlns="http://www.semanticweb.org/ontologies/Word#"
  xml:base="http://www.semanticweb.org/ontologies/Word"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl="http://www.w3.org/2002/07/owl#"
  xmlns:xml="http://www.w3.org/XML/1998/namespace"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
 <owl:Ontology rdf:about="http://www.semanticweb.org/ontologies/Word"/>


< P>默认的代码> OntMult//Cube >不考虑应用OWL推理,因此,必须使推理明确地考虑对称性质:

OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RULE_INF);
有关更多详细信息,请参阅

只是附带说明一下,Jena有很多方便的方法,例如使用

model.listSubjectsWithProperty(isSynonymOf)

1.请校对你的文字!看到这么多打字错误真奇怪。。。2.什么是逻辑连接?个人之间的联系是什么,你认为他们也应该被归还?显示样本数据。@AKSW感谢您的回复。逻辑上表示实例与对称对象属性连接。例如,软件设计通过对称对象属性(IsSynnyMof)与软件开发相联系。我只能通过对象属性获取软件设计,但无法获取同样具有相同对象属性的软件开发。请参见下面的回答。内容不用于扩展讨论;这段对话已经结束。