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>
答案 0 :(得分:0)
IRI不能包含空格。它们需要按%20
序列进行转义。其他许多字符也是如此。
对于空格和其他字符,常用的方法是使用rdfs:label
批注。 Protege的渲染器使用这些渲染器在屏幕上显示类和属性。