【问题标题】:OWL, Protege: Getting from a DefaultOWLObjectProperty value to the class of an individualOWL,Protege:从默认的 OWL ObjectProperty 值获取个人的类
【发布时间】:2013-09-11 11:54:22
【问题描述】:

我正在尝试使用 Stanford OWL API,但我发现文档有点不清楚。使用 Java,我加载了某个用户通过 Protégé 准备的本体,并访问了DefaultOWLObjectProperty。该属性的值意味着是本体中某个类中的一个个体。我怎样才能找到班级?代码如下:sn-p:

OWLNamedClass cls = (OWLNamedClass) it.next();

Collection instances = cls.getInstances(false);
for (Iterator jt = instances.iterator(); jt.hasNext();) {
    OWLIndividual individual = (OWLIndividual) jt.next();
    Collection props = individual.getRDFProperties();
    for (Object prop : props) {
        DefaultOWLObjectProperty obj = (DefaultOWLObjectProperty) prop;
        Object val = individual.getPropertyValue(obj);
        DefaultRDFIndividual valInd = (DefaultRDFIndividual) val;
…
}

我想获得valInd的课程。

【问题讨论】:

    标签: owl protege owl-api


    【解决方案1】:

    OWLIndividual 中有两种方法可以让您更轻松地完成此操作。假设您的 OWLOntology 为ontology。然后,使用getObjectPropertyValues(OWLOntology),您可以获得一个映射,该映射将属性表达式映射到通过该属性与individual 相关的个体集。您可以迭代该映射的条目,然后迭代一组个体。然后,对于那些个人中的每一个,您可以使用getTypes(OWLOntology) 来获取作为其类型的一组OWLClassExpressions。 (您会得到一组这些而不是单一类型,因为 OWL 个体可以而且通常确实拥有不止一种类型。)

    如果您只对某些属性的值感兴趣,那么您可以使用更专业的getObjectPropertyValues(OWLObjectPropertyExpression,OWLOntology) 来获取个人的特定属性的值。

    一般来说,我建议至少浏览一下 OWLIndividual 接口提供的所有方法,以便大致了解您可以使用它做什么。你不需要记住所有的细节,但是当你处理一个问题时,你至少会有一个模糊的想法,“我认为界面有类似的东西......”然后你'就知道去哪里找了。这是任何 API 或工具的良好做法,而不仅仅是 OWL API。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多