使用 OWL API 生成 DL 表达式
DL expression generation using OWL API
我需要从 OWL API 中的 OWLObject
生成 DL 表达式。现在,我正在使用 DLSyntaxObjectRenderer
,例如:
DLSyntaxObjectRenderer obj = new DLSyntaxObjectRenderer();
问题是生成的 DL 表达式只包含资源的标签(例如 Awning ⊔ Door ⊔ Gate ⊔ Shutter ⊔ Window
)。虽然这些是语法上有效的 DL 表达式,但为了实现,我需要原子实体的 IRI,这样我就可以使用 OWL API 加载表达式,而不必加载整个 ontology .
我怎样才能做到这一点?
ShortFormProvider
决定实体的渲染。它有几个实现,例如ManchesterOWLSyntaxPrefixNameShortFormProvider
、QNameShortFormProvider
、SimpleShortFormProvider
。例如,以下代码使用 DLSyntaxObjectRenderer
并使用实体的 IRI 渲染 DL 表达式,
obj = new DLSyntaxObjectRenderer();
ShortFormProvider shortFormProvider = new ShortFormProvider() {
@Override
public String getShortForm(OWLEntity owlEntity) {
return owlEntity.getIRI().getIRIString();
}
};
obj.setShortFormProvider(shortFormProvider);
要呈现表达式 exp
,只需使用 obj.render(exp)
我需要从 OWL API 中的 OWLObject
生成 DL 表达式。现在,我正在使用 DLSyntaxObjectRenderer
,例如:
DLSyntaxObjectRenderer obj = new DLSyntaxObjectRenderer();
问题是生成的 DL 表达式只包含资源的标签(例如 Awning ⊔ Door ⊔ Gate ⊔ Shutter ⊔ Window
)。虽然这些是语法上有效的 DL 表达式,但为了实现,我需要原子实体的 IRI,这样我就可以使用 OWL API 加载表达式,而不必加载整个 ontology .
我怎样才能做到这一点?
ShortFormProvider
决定实体的渲染。它有几个实现,例如ManchesterOWLSyntaxPrefixNameShortFormProvider
、QNameShortFormProvider
、SimpleShortFormProvider
。例如,以下代码使用 DLSyntaxObjectRenderer
并使用实体的 IRI 渲染 DL 表达式,
obj = new DLSyntaxObjectRenderer();
ShortFormProvider shortFormProvider = new ShortFormProvider() {
@Override
public String getShortForm(OWLEntity owlEntity) {
return owlEntity.getIRI().getIRIString();
}
};
obj.setShortFormProvider(shortFormProvider);
要呈现表达式 exp
,只需使用 obj.render(exp)