java - 类的对象属性

标签 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)

谢谢

最佳答案

您可能会在 this answer 中找到足够的信息至 Parsing 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 的语义略有不同。)因此,如果您问“哪些属性将类 C 作为域”,除了以 C 作为域的属性之外,您还将获得以 C 的子类作为域的属性。

如果您确实想要类和属性的“面向对象” View ,可以使用 Jena 方法 OntClass#listDeclaredProperties。

listDeclaredProperties

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

Return an iterator over the properties associated with a frame-like view of this class. This captures an intuitive notion of the properties of a class. This can be useful in presenting an ontology class in a user interface, for example by automatically constructing a form to instantiate instances of the class. The properties in the frame-like view of the class are determined by comparing the domain of properties in this class's OntModel with the class itself. See: [Presenting RDF as frames][2] for more details.

Note that many cases of determining whether a property is associated with a class depends on RDFS or OWL reasoning. This method may therefore return complete results only in models that have an attached reasoner.

Parameters:

  • direct - If true, restrict the properties returned to those directly associated with this class. If false, the properties of super-classes of this class will not be listed among the declared properties of this class.

Returns:

An iteration of the properties that are associated with this class by their domain.

关于java - 类的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23371640/

相关文章:

resources - RDF 中的前缀命名空间

math - SPARQL 查询中的对数函数

java - NullPointerException 尝试设置index.jsp

java - 如何将 Hibernate "createAlias"子限制添加到父实体限制

java - 如何从 View 获取 ConstraintLayout?

java - 如何在 Telegram API 中获取我的应用程序 ID?

python-3.x - Trello API/Python - 无法设置卡片的自定义字段值

python - 如何在databricks作业中自动导出仪表板

java - Excel 文件的条件格式

Jena Fuseki VS Virtuoso