IRI.getShortForm() 不能按预期使用空格和一些额外符号
IRI.getShortForm() does not work as expected with spaces and some extra symbols
IRI class 的 getShortForm() 似乎无法处理带有空格和其他一些符号的 class 名称。
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>
IRI 不能包含空格。它们需要转义为 %20
序列。其他一些字符也是如此。
对于空格等字符,常用的做法是使用rdfs:label
注解。 Protege 的渲染器使用这些渲染器在屏幕上显示 类 和属性。
IRI class 的 getShortForm() 似乎无法处理带有空格和其他一些符号的 class 名称。
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>
IRI 不能包含空格。它们需要转义为 %20
序列。其他一些字符也是如此。
对于空格等字符,常用的做法是使用rdfs:label
注解。 Protege 的渲染器使用这些渲染器在屏幕上显示 类 和属性。