Как загрузить аксиомы, выведенные из протеже, и отфильтровать их с помощью OWL API

Я использую плагин для протеже под названием DLMiner для обоснования гипотез. я хочу, чтобы выбрать эти гипотезы, которые содержат некоторый класс или отношения.

например, есть две гипотезы:

Client SubClassOf является владельцем некоторой учетной записи

Loan SubClassof isLoanOf some owl:Thing

и мне нужны гипотезы, содержащие Client, поэтому следует выбрать первую. кроме того, есть некоторые метрики (предположение, подъем, точность, поддержка) о каждой гипотезе, и я хочу, чтобы эти метрики также можно было выбрать.

Ниже приведен образец, содержащий две гипотезы:

<?xml version="1.0"?>
<rdf:RDF xmlns="http://owl.cs.man.ac.uk/dlminer_6020e73c-5d3e-434a-9172-924d14f4e948#"
     xml:base="http://owl.cs.man.ac.uk/dlminer_6020e73c-5d3e-434a-9172-924d14f4e948"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:www="http://www.dlminer.io#"
     xmlns:xml="http://www.w3.org/XML/1998/namespace"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
    <owl:Ontology rdf:about="http://owl.cs.man.ac.uk/dlminer_6020e73c-5d3e-434a-9172-924d14f4e948"/>



    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Annotation properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->




    <!-- http://www.dlminer.io#assumption -->

    <owl:AnnotationProperty rdf:about="http://www.dlminer.io#assumption"/>



    <!-- http://www.dlminer.io#lift -->

    <owl:AnnotationProperty rdf:about="http://www.dlminer.io#lift"/>



    <!-- http://www.dlminer.io#precision -->

    <owl:AnnotationProperty rdf:about="http://www.dlminer.io#precision"/>



    <!-- http://www.dlminer.io#support -->

    <owl:AnnotationProperty rdf:about="http://www.dlminer.io#support"/>



    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Object Properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->




    <!-- http://www.owl-ontologies.com/unnamed.owl#hasLoan -->

    <owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/unnamed.owl#hasLoan"/>



    <!-- http://www.owl-ontologies.com/unnamed.owl#hasStatementIssuanceFrequency -->

    <owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/unnamed.owl#hasStatementIssuanceFrequency"/>



    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Classes
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->




    <!-- http://www.owl-ontologies.com/unnamed.owl#Account -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#Account">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasStatementIssuanceFrequency"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#StatementIssuanceFrequencyValue"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Account"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasStatementIssuanceFrequency"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#StatementIssuanceFrequencyValue"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">3.7477272727272726</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2200.0</www:support>
    </owl:Axiom>



    <!-- http://www.owl-ontologies.com/unnamed.owl#Running -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#Running"/>



    <!-- http://www.owl-ontologies.com/unnamed.owl#StatementIssuanceFrequencyValue -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#StatementIssuanceFrequencyValue"/>



    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // General axioms
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    <owl:Axiom>
        <owl:annotatedSource>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasLoan"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Running"/>
                <rdfs:subClassOf>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasStatementIssuanceFrequency"/>
                        <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#StatementIssuanceFrequencyValue"/>
                    </owl:Restriction>
                </rdfs:subClassOf>
            </owl:Restriction>
        </owl:annotatedSource>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasStatementIssuanceFrequency"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#StatementIssuanceFrequencyValue"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">3.7477272727272726</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">201.0</www:support>
    </owl:Axiom>
</rdf:RDF>



<!-- Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi -->

поэтому, если в фокусе термины «Учетная запись», я хочу, чтобы содержимое печати было:

Аккаунт SubClassOf hasStatementIssuanceFrequency некоторый StatementIssuanceFrequencyValue Поддержка: 2200, предположение: 0, точность: 1.

Я пытался использовать Jena для достижения своей цели, но я могу просто выбрать нужные мне гипотезы, проанализировав взаимосвязь между тройными. однако я не могу сопоставить метрики с гипотезой, потому что обнаружил, что порядок чтения случайный. Я не уверен, что это какое-то правило чтения йены.

поэтому мне интересно, смогу ли я достичь своей цели, используя API OWL, я был бы признателен, если бы вы могли предоставить мне полный пример. спасибо

другой образец:

<?xml version="1.0"?>
<rdf:RDF xmlns="http://owl.cs.man.ac.uk/dlminer_2ff7f586-ee56-400a-89a9-936c6d890678#"
     xml:base="http://owl.cs.man.ac.uk/dlminer_2ff7f586-ee56-400a-89a9-936c6d890678"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:www="http://www.dlminer.io#"
     xmlns:xml="http://www.w3.org/XML/1998/namespace"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
    <owl:Ontology rdf:about="http://owl.cs.man.ac.uk/dlminer_2ff7f586-ee56-400a-89a9-936c6d890678"/>



    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Annotation properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->




    <!-- http://www.dlminer.io#assumption -->

    <owl:AnnotationProperty rdf:about="http://www.dlminer.io#assumption"/>



    <!-- http://www.dlminer.io#lift -->

    <owl:AnnotationProperty rdf:about="http://www.dlminer.io#lift"/>



    <!-- http://www.dlminer.io#precision -->

    <owl:AnnotationProperty rdf:about="http://www.dlminer.io#precision"/>



    <!-- http://www.dlminer.io#support -->

    <owl:AnnotationProperty rdf:about="http://www.dlminer.io#support"/>



    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Object Properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->




    <!-- http://www.owl-ontologies.com/unnamed.owl#IsLoanOf -->

    <owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/unnamed.owl#IsLoanOf"/>



    <!-- http://www.owl-ontologies.com/unnamed.owl#hasLoanStatusValue -->

    <owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/unnamed.owl#hasLoanStatusValue"/>



    <!-- http://www.owl-ontologies.com/unnamed.owl#hasStatementIssuanceFrequency -->

    <owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/unnamed.owl#hasStatementIssuanceFrequency"/>



    <!-- http://www.owl-ontologies.com/unnamed.owl#isCreditCardOf -->

    <owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/unnamed.owl#isCreditCardOf"/>



    <!-- http://www.owl-ontologies.com/unnamed.owl#isOwnerOf -->

    <owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/unnamed.owl#isOwnerOf"/>



    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Classes
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->




    <!-- http://www.owl-ontologies.com/unnamed.owl#Account -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#Account">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasStatementIssuanceFrequency"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#StatementIssuanceFrequencyValue"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Account"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasStatementIssuanceFrequency"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#StatementIssuanceFrequencyValue"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">3.7477272727272726</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2200.0</www:support>
    </owl:Axiom>



    <!-- http://www.owl-ontologies.com/unnamed.owl#Classic -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#Classic">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#isCreditCardOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Classic"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#isCreditCardOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">19.67780429594272</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">302.0</www:support>
    </owl:Axiom>



    <!-- http://www.owl-ontologies.com/unnamed.owl#Client -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#Client">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#isOwnerOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Client"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#isOwnerOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">15.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">3.7223476297968396</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.9932279909706546</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2200.0</www:support>
    </owl:Axiom>



    <!-- http://www.owl-ontologies.com/unnamed.owl#CreditCard -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#CreditCard">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#isCreditCardOf"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Client"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#isCreditCardOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#CreditCard"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#isCreditCardOf"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Client"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">19.67780429594272</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">419.0</www:support>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#CreditCard"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#isCreditCardOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">19.67780429594272</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">419.0</www:support>
    </owl:Axiom>



    <!-- http://www.owl-ontologies.com/unnamed.owl#Loan -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#Loan">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#IsLoanOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Loan"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#IsLoanOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">28.139931740614337</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">293.0</www:support>
    </owl:Axiom>



    <!-- http://www.owl-ontologies.com/unnamed.owl#LoanStatusValue -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#LoanStatusValue"/>



    <!-- http://www.owl-ontologies.com/unnamed.owl#OKRunningLoan -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#OKRunningLoan">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#IsLoanOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasLoanStatusValue"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#LoanStatusValue"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#OKRunningLoan"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#IsLoanOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">28.139931740614337</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">182.0</www:support>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#OKRunningLoan"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasLoanStatusValue"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#LoanStatusValue"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">28.139931740614337</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">182.0</www:support>
    </owl:Axiom>



    <!-- http://www.owl-ontologies.com/unnamed.owl#OKStatus -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#OKStatus"/>



    <!-- http://www.owl-ontologies.com/unnamed.owl#Running -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#Running">
        <rdfs:subClassOf rdf:resource="http://www.owl-ontologies.com/unnamed.owl#OKRunningLoan"/>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#IsLoanOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasLoanStatusValue"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#OKStatus"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasLoanStatusValue"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Running"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget rdf:resource="http://www.owl-ontologies.com/unnamed.owl#OKRunningLoan"/>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">19.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">41.01990049751244</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.9054726368159204</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">182.0</www:support>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Running"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#IsLoanOf"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">28.139931740614337</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">201.0</www:support>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Running"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasLoanStatusValue"/>
                <owl:someValuesFrom rdf:resource="http://www.owl-ontologies.com/unnamed.owl#OKStatus"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">19.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">28.494740040256733</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.9054726368159204</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">182.0</www:support>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://www.owl-ontologies.com/unnamed.owl#Running"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://www.owl-ontologies.com/unnamed.owl#hasLoanStatusValue"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
            </owl:Restriction>
        </owl:annotatedTarget>
        <www:assumption rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0</www:assumption>
        <www:lift rdf:datatype="http://www.w3.org/2001/XMLSchema#double">28.139931740614337</www:lift>
        <www:precision rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0</www:precision>
        <www:support rdf:datatype="http://www.w3.org/2001/XMLSchema#double">201.0</www:support>
    </owl:Axiom>



    <!-- http://www.owl-ontologies.com/unnamed.owl#StatementIssuanceFrequencyValue -->

    <owl:Class rdf:about="http://www.owl-ontologies.com/unnamed.owl#StatementIssuanceFrequencyValue"/>
</rdf:RDF>



<!-- Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi -->



person chenhuiyc    schedule 16.08.2019    source источник
comment
@ssz спасибо за ответ. Я удалил некоторый контент из предыдущих онтологий, которые я предоставил, возможно, это приводит к неправильному RDF/XML, и я заменил его полной версией.   -  person chenhuiyc    schedule 17.08.2019
comment
смешной. Хотя я достиг части своей цели - нашел аксиому и распечатал с помощью jena, как новичок, мой код выглядит сложным, и я думаю, что должен быть другой способ. поэтому я был бы признателен, если бы вы могли предоставить мне метод по-своему. спасибо еще раз.   -  person chenhuiyc    schedule 17.08.2019


Ответы (1)


Используя OWL-API(v5.1.11) и ManchesterOWLSyntaxOWLObjectRendererImpl из owlapi-parsers, у меня работает следующий способ:

        OWLOntologyManager m = OntManagers.createOWL();
        OWLOntology o = m.loadOntologyFromOntologyDocument(data);
        OWLClass c = m.getOWLDataFactory().getOWLClass("http://www.owl-ontologies.com/unnamed.owl#Account");
        OWLAxiom a = o.axioms(c)
                .filter(x -> AxiomType.SUBCLASS_OF.equals(x.getAxiomType()))
                .sorted() // to have the same order every time
                .findFirst()
                .orElseThrow(AssertionError::new);
        OWLObjectRenderer r = new ManchesterOWLSyntaxOWLObjectRendererImpl();
        String res = r.render(a) + " " + a.annotations()
                .map(x -> x.getProperty().getIRI().getShortForm() + ": " +
                        x.getValue().asLiteral().orElseThrow(AssertionError::new).parseDouble())
                .collect(Collectors.joining(", "));
        System.out.println(res);

Выход:

Account SubClassOf hasStatementIssuanceFrequency some StatementIssuanceFrequencyValue assumption: 0.0, lift: 3.7477272727272726, precision: 1.0, support: 2200.0

Обратите внимание, что ManchesterOWLSyntaxOWLObjectRendererImpl не является частью общедоступных интерфейсов и поэтому может быть изменен, поэтому лучше написать свой собственный OWLObjectRenderer или другой способ сделать String представлением желаемой аксиомы.

person ssz    schedule 17.08.2019
comment
Большой! это также работает для меня. теперь у меня другой вопрос: так как существует не одна гипотеза, содержащая термины фокуса, то и вывод может быть не один. поэтому, как сортировать эти гипотезы? Я просто помещаю гипотезу в строку и просто ранжирую их в соответствии с их длиной. Итак, существуют ли способы сортировки этих гипотез? как сила логики или другое? Я поместил еще один образец с большим количеством гипотез в описание вопроса, и термин фокуса может быть установлен как «Выполняется». - person chenhuiyc; 20.08.2019
comment
Этот вопрос касается Java, а не Jena или OWL-API или OWL. Используйте Stream-API. OWLObject равно Comparable, поэтому вы можете просто отсортировать поток, используя естественный порядок. Или укажите свой собственный Comparator. RDF сам по себе не гарантирует порядок, поэтому вы правы, полагая, что если имеется несколько операторов <c> rdfs:subClassOf _:bx, то не определено, что будет выбрано. Поскольку вы сохраняете информацию в виде утверждений аннотаций, в случае пользовательского компаратора вам необходимо сортировать аннотации. И фильтровать по ним. Примечание: аннотации не являются распространенным способом хранения информации — обычно для этого используются утверждения свойств данных. - person ssz; 20.08.2019
comment
В коде, показанном в ответе, список аксиом уже отсортирован (посредством OWLObject compareTo()) и выбран первый элемент. Если вам нужно выполнить одну и ту же операцию со всеми результатами, просто используйте все элементы в потоке, а не останавливайтесь на findFirst(). - person Ignazio; 01.09.2019