类的对象属性

时间:2014-04-29 17:41:30

标签: java api jena

如何在Jena中确定类的对象属性。我可以获取所有对象属性,但我想获取特定类的对象属性。

获取所有objectProperties的代码:

 ExtendedIterator objects = m.listObjectProperties();

  while (objects.hasNext()) 
       {
            Property essaProperty = (Property) objects.next();            
            System.out.println("Propiedad: " + essaProperty.getLocalName());

       }

另外,我如何获取对象属性的相关类,我的意思是,知道A如何获取对象属性" ---->"以及如何获得" B"

                                  has  
                             (A---------->B)

由于

1 个答案:

答案 0 :(得分:2)

您可以在this answerParsing schema.org ttl/owl file using Jena找到足够的信息来解决您的问题,但如果没有,则可以进行一些讨论。

首先,请注意OWL中的属性与"属性"不同。在面向对象的编程语言中。这意味着我们说属性P具有域D是当我们看到一个属性为P的语句时,我们可以推断出该主题是D类型。通常,这是:

x P y      P rdfs:domain D
--------------------------
    x rdf:type D

但请考虑这意味着什么。如果D是C的子类,那么我们可以从x rdf:type D推断x rdf:type C。这意味着C 是P的域。(在OWL中就是这种情况,但纯RDF的语义略有不同。)因此,如果您要求& #34;哪些属性将C类作为域",除了将C作为域的属性之外,您还将获得具有C的子类作为域的属性。

如果你确实想要一种面向对象的"查看类和属性,可以使用Jena方法OntClass #listDeclaredProperties。

  

listDeclaredProperties

com.hp.hpl.jena.util.iterator.ExtendedIterator<OntProperty> listDeclaredProperties(boolean direct)
     

在与框架相关联的属性上返回迭代器   这个班级的看法。这捕获了一个直观的概念   一个类的属性。这在呈现本体时很有用   用户界面中的类,例如通过自动构造一个   用于实例化类实例的表单。中的属性   类的框架式视图是通过比较域的确定的   这个类中的属性是具有类本身的OntModel。看到:   [将RDF显示为帧] [2]以获取更多详细信息。

     

请注意,许多确定属性是否相关的情况   一个类取决于RDFS或OWL推理。这种方法可以   因此,仅在附加的模型中返回完整的结果   推理。

     

参数:

     
      
  • direct - 如果为true,则将返回的属性限制为与此类直接关联的属性。如果为false,则为超类的属性   此类的声明属性中不会列出此类   类。
  •   
     

返回:

     

通过其域与此类关联的属性的迭代。