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

试图获取本体中特定类的成员

柳培
2023-03-14
OntClass oc = model.getOntClass(NS + "ClassName");
for (ExtendedIterator<? extends OntResource> i = oc.listInstances(); i.hasNext();)
{
    OntResource or = i.next();
    System.out.println("Local name:" + or.getLocalName()); 
}

我从这段代码得到的结果是一个值列表,形式为:className1、className5等。

但是,当我使用Protege打开本体时,同一个类的成员具有正常的名称。getInstances()是适合我使用的函数吗?如果是这样,我看到的与Protege一起存储在本体中的名称在哪里,我如何获得它们的值?

共有1个答案

聂鹏云
2023-03-14

循环本身很好。对.localName()的调用将取出URI中的部分,该部分(通常)是前缀:nameqname对的名称部分。这通常是一个有意义的字符串,如myontology:wheelmyontology:truck,但它在RDF标准中没有正式定义,严格地说,RDF将整个URI视为没有任何内部结构的单个令牌。

当您在代码中处理本体时,资源(或类、属性、个体等)的URI是您引用该资源所需要的。然而,在通过某种UI将资源呈现给用户时,您需要一些更易读的内容。在RDF中有许多约定(不幸的是,约定是复数)。通常,您会发现一个或多个附加到资源的以下属性:

  • rdfs:label-通常用于紧凑的可读名称
  • RDFS:comment-通常用于更长、更具描述性的术语
  • SKOS:Preflabel-“首选”标签
  • skos:altlabel-“替代”标签
<http://example.org/terms#Cat>
  a owl:Class ;
  rdfs:label "cat"@en ;
  rdfs:label "chat"@fr ;
  rdfs:comment "denotes the set of all cats"@en ;
  rdfs:comment "désigne l'ensemble de tous les chats"@fr .
OntClass oc = model.getOntClass(NS + "ClassName");
for (ExtendedIterator<? extends OntResource> i = oc.listInstances(); i.hasNext();)
{
  OntResource or = i.next();
  Property labelProp = null;

  if (or.hasProperty( RDFS.label )) {
    labelProp = RDFS.label;
  }
  else if (or.hasProperty( SKOS.prefLabel )) {
    labelProp = SKOS.prefLabel;
  }

  // note: does not deal with lang tags
  String label = (labelProp != null) ? or.getProperty( labelProp ).getString() : "unknown";

  System.out.println("Resource " + or.getURI() + " is labelled: " + label ); 
}
 类似资料:
  • 我有一个带有和的activity。我正在使用水平显示图像列表。当我单击中的图像时,activity中的将显示该图像的更大图片。到目前为止一切正常。 现在activity中又多了两个:和。当我单击时,中的图像应该向左转,并且中的缩略图应该反映这个变化。的情况也类似。 我可以旋转。但是,如何在中旋转缩略图呢?如何获取的? 代码: activity XML: 我的activity代码: 我得Recycl

  • 我有一个HTML,比如, 这里有两个“tel”类元素,如何提取这两个元素?如果程序不知道这些名为“tel”的类的数量,如何提取?请帮忙。 最终目标是获取tel类元素中的所有文本。 我已经试着用下一个兄弟元素来解决这个问题。但是那里没有运气。不过我可能试错了。请纠正我或帮助我实现我在这里尝试的目标。 提前谢谢。

  • 我想在这里得到这个特定元素内的文本 如何使用python和selenium从“数据剪贴板文本”中获取文本? 我试过了 没有运气

  • HTML div类,其中包含我希望打印的数据 这是我目前的代码: 我打印出来的都是 硒。网络驱动程序。遥远的webelement。WebElement(session=“9aa956e2bd51f510dd626f6937b01c0e”,element=“0.6506218589958-1”) 我对selenium的帮助并不陌生

  • 问题内容: 我有一个与和一起进行的活动。我正在使用来水平显示图像列表。当我点击在图像上的在活动中应显示图像的大局观。到目前为止,一切正常。 现在,活动中还有两个:和。当我单击时,中的图像应左移,并且中的缩略图也应反映此更改。与的情况类似。 我能够旋转。但是,如何旋转缩略图?我如何获得的? 码: 活动XML: 我的活动代码: 我的RecyclerView自定义适配器: 问题答案: 我想您正在使用a