有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用Jena查找所有子属性

我试图在Java中使用JenaAPI查找给定属性的所有子属性(1级及以上)。下面是模式文件的一部分

架构文件

<!-- http://www.inmindcloud.com/application/schema.owl#calculation -->

<owl:DatatypeProperty rdf:about="&as;calculation">
    <rdfs:label rdf:datatype="&xsd;string">calculation</rdfs:label>
    <rdfs:comment rdf:datatype="&xsd;string">This is comment</rdfs:comment>
    <rdfs:subPropertyOf rdf:resource="&as;businessData"/>
</owl:DatatypeProperty>

Java代码

private static OntModel enhanceCalculableProperties(final OntModel model)
{
        final OntProperty businessDataProperty = model.getOntProperty(Schema.businessData.getURI());
        final OntProperty calculationProperty = model.getOntProperty(Schema.calculation.getURI());

        final List<? extends OntProperty> businessDataSubProperties = businessDataProperty.listSubProperties(false)
            .toList();
        final List<? extends OntProperty> calculationSubProperties = calculationProperty.listSubProperties().toList();

        final boolean containsCalculationProperty = businessDataSubProperties.contains(calculationProperty);
        final boolean containsSubProperties = businessDataSubProperties.containsAll(calculationSubProperties);

        System.out.println(containsCalculationProperty); // true
        System.out.println(containsSubProperties); // false

    return model;
}

根据文档,它应该返回所有子属性,事实并非如此

您可以从上面的代码中看到,containssubpropertyfalse

如有任何解决此问题的建议,将不胜感激


共 (0) 个答案