【问题标题】:OWL API OWLAnnotation.getProperty() is inconsistentOWL API OWLAnnotation.getProperty() 不一致
【发布时间】:2018-01-21 05:28:17
【问题描述】:

我想要一个带前缀的完整属性名称。我浏览注释列表并打印注释值:

OWLAnnotation anno = ...;
String property = anno.getProperty().toString();

这就是我得到的 - 有时属性显示为带有前缀,有时没有。我需要它一直带有前缀......

Annotation(rdfs:label "influenza"^^xsd:string)
Annotation(<http://www.geneontology.org/formats/oboInOwl#hasExactSynonym> "Influenza with non-respiratory manifestation (disorder)"^^xsd:string)

有没有办法实现这种行为?

【问题讨论】:

  • 您必须为 OWL 对象使用渲染器,即 interface 的一个实例
  • 关于您的示例,OWL API 确实具有用于 RDFS、RDF、XSD、OWL​​ 等的内置前缀映射,但对于具有自定义 URI 命名空间的第二个注释确实没有
  • 使用SimpleRenderer 并插入您的前缀声明。
  • 谢谢你,AKSW。这就是我所做的:OWLObjectRenderer renderer = new SimpleRenderer(); System.out.println(renderer.render(anno.getProperty()).toStr‌​ing());仍然显示为 rdfs:label。我需要它带有前缀,因为我需要与来自另一个程序的字符串进行比较......我想我需要使用 ShortFormProvider?但是哪一个?
  • 对不起,你想得到什么?前缀形式,还是完整的 URI?对于完整的 URI,请始终调用 toStringID() 以避免使用渲染器。

标签: owl owl-api


【解决方案1】:

anno.getProperty().getIRI().toQuotedString()

会给玩具海鸥包装的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多