IRI.getShortForm()在使用空格和一些其他符号时无法正常工作

时间:2018-11-02 13:58:21

标签: owl-api

IRI类的getShortForm()似乎无法处理带有空格和其他符号的类名。

OWL-API中是否存在一种更核心地解析IRI的方法(与Protege一样)。

对于此代码

 for (OWLClass cls : clses) {
     String s = cls.toString();
     String s1 = cls.asOWLClass().getIRI().getShortForm();
     System.out.println("SHORT: "+s1+"    LONG: "+s);
  }

我得到以下奇怪的结果:

SHORT: CAPECCWEAttackPatterns#DoS: resource consumption (memory)    LONG: <http://www.grsu.by/net/CAPECCWEAttackPatterns#DoS: resource consumption (memory)>
SHORT: restart    LONG: <http://www.grsu.by/net/CAPECCWEAttackPatterns#DoS: crash / exit / restart>
SHORT: data    LONG: <http://www.grsu.by/net/CAPECCWEAttackPatterns#Modify application data>

1 个答案:

答案 0 :(得分:0)

IRI不能包含空格。它们需要按%20序列进行转义。其他许多字符也是如此。

对于空格和其他字符,常用的方法是使用rdfs:label批注。 Protege的渲染器使用这些渲染器在屏幕上显示类和属性。