我需要从OWL API中的OWLObject
生成DL表达式。目前,我正在使用DLSyntaxObjectRenderer
,例如:
DLSyntaxObjectRenderer obj = new DLSyntaxObjectRenderer();
问题在于所生成的DL表达式仅包含资源的标签(例如Awning ⊔ Door ⊔ Gate ⊔ Shutter ⊔ Window
)。尽管这些是语法上有效的DL表达式,但出于实现的目的,我需要原子实体的IRI,以便可以在不必加载整个本体之后使用OWL API加载该表达式。
如何实现?
答案 0 :(得分:0)
Purchases
确定实体的呈现。它具有多种实现方式,例如ShortFormProvider
,ManchesterOWLSyntaxPrefixNameShortFormProvider
,QNameShortFormProvider
。例如,以下代码使用SimpleShortFormProvider
,并使用实体的IRI渲染DL表达式,
DLSyntaxObjectRenderer
要呈现表达式obj = new DLSyntaxObjectRenderer();
ShortFormProvider shortFormProvider = new ShortFormProvider() {
@Override
public String getShortForm(OWLEntity owlEntity) {
return owlEntity.getIRI().getIRIString();
}
};
obj.setShortFormProvider(shortFormProvider);
,只需使用exp