【发布时间】: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()).toString());仍然显示为 rdfs:label。我需要它带有前缀,因为我需要与来自另一个程序的字符串进行比较......我想我需要使用 ShortFormProvider?但是哪一个?
-
对不起,你想得到什么?前缀形式,还是完整的 URI?对于完整的 URI,请始终调用
toStringID()以避免使用渲染器。