使用 OWL API 获取数据范围 属性

Getting range of data property using OWL API

我正在使用 OWL API 来获取数据 属性 的范围,如下所示:

OWLDataProperty dataProperty = ontologyManager.getOWLDataFactory().getOWLDataProperty("http://schema.mobivoc.org/powerInKW");
Set<OWLDataPropertyRangeAxiom> ranges = ontology.getOWLOntology().getDataPropertyRangeAxioms(dataProperty);
        for (OWLDataPropertyRangeAxiom range : ranges) {
            String rangeString = range.getRange().getDataRangeType().getIRI().getIRIString();

        }

属性 "http://schema.mobivoc.org/powerInKW" 的范围是 xsd:Double。但是上面的代码返回 owl:DataType。虽然我同意 xsd:Doubleowl:DataType 的一个实例,但如何获得实际范围,在这种情况下 owl:DataType ?

您的代码中有 getDataRangeType(),这使您从范围转到其类型。但是你想要的是范围,所以跳过那个方法,直接使用范围。您可以创建一个访问者来导航不同的范围,或者您可以将普通数据类型转换为 OWLDatatype。