⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testdigreasoner.java

📁 Jena推理机
💻 JAVA
📖 第 1 页 / 共 3 页
字号:

        OntClass A = m.getOntClass( NS + "A" );
        OntClass B = m.getOntClass( NS + "B" );
        OntClass BB = m.getOntClass( NS + "BB" );

        // note - direct super class
        assertTrue( A.hasSuperClass( B, true ) );
        assertTrue( B.hasSubClass( A, true ) );
        assertFalse( A.hasSuperClass( BB, true ) );

        assertTrue( BB.hasSuperClass( OWL.Thing, true ) );
        assertFalse( B.hasSuperClass( OWL.Thing, true ) );
    }

    public void testChildren() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        OntClass B = m.getOntClass( NS + "B" );
        OntClass BB = m.getOntClass( NS + "BB" );

        // note direct sub-class
        TestUtil.assertIteratorValues( this, BB.listSubClasses(true),
                                       new Resource[] {B} );
    }

    public void testEquivalents() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        OntClass F0 = m.getOntClass( NS + "F0" );
        OntClass F2 = m.getOntClass( NS + "F2" );
        OntClass F1 = m.getOntClass( NS + "F1" );

        TestUtil.assertIteratorValues( this, F0.listEquivalentClasses(),
                                       new Resource[] {F2, F0}, 1 );
        TestUtil.assertIteratorValues( this, F2.listEquivalentClasses(),
                                       new Resource[] {F0, F2}, 1 );
        TestUtil.assertIteratorValues( this, F1.listEquivalentClasses(),
                                       new Resource[] {F1}, 1 );
    }


    public void testIsEquivalent() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        OntClass F0 = m.getOntClass( NS + "F0" );
        OntClass F2 = m.getOntClass( NS + "F2" );
        OntClass F1 = m.getOntClass( NS + "F1" );

        assertTrue( "F0 should be equivalent to F2", F0.hasEquivalentClass( F2 ));
        assertFalse( "F0 should not be equivalent to F1", F1.hasEquivalentClass( F0 ));
    }


    public void testRAncestors() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        ObjectProperty p0 = m.getObjectProperty( NS + "p0" );
        ObjectProperty p1 = m.getObjectProperty( NS + "p1" );
        ObjectProperty p2 = m.getObjectProperty( NS + "p2" );

        TestUtil.assertIteratorValues( this, p0.listSuperProperties(),
                                       new Resource[] {p1, p2, p0} );
    }

    public void testRDescendants() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        ObjectProperty p0 = m.getObjectProperty( NS + "p0" );
        ObjectProperty p1 = m.getObjectProperty( NS + "p1" );
        ObjectProperty p2 = m.getObjectProperty( NS + "p2" );

        TestUtil.assertIteratorValues( this, p2.listSubProperties(),
                                       new Resource[] {p1, p0, p2} );
    }


    public void testRParents() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        ObjectProperty p0 = m.getObjectProperty( NS + "p0" );
        ObjectProperty p1 = m.getObjectProperty( NS + "p1" );
        //ObjectProperty p2 = m.getObjectProperty( NS + "p2" );

        TestUtil.assertIteratorValues( this, p0.listSuperProperties(true),
                                       new Resource[] {p1} );
    }

    public void testRChildren() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        //ObjectProperty p0 = m.getObjectProperty( NS + "p0" );
        ObjectProperty p1 = m.getObjectProperty( NS + "p1" );
        ObjectProperty p2 = m.getObjectProperty( NS + "p2" );

        TestUtil.assertIteratorValues( this, p2.listSubProperties(true),
                                       new Resource[] {p1} );
    }

    public void testInstances() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        OntClass F0 = m.getOntClass( NS + "F0" );
        Resource i0 = m.getResource( NS + "i0" );
        Resource i1 = m.getResource( NS + "i1" );
        Resource i2 = m.getResource( NS + "i2" );
        Resource q0 = m.getResource( NS + "q0" );
        Resource q1 = m.getResource( NS + "q1" );
        Resource q2 = m.getResource( NS + "q2" );

        TestUtil.assertIteratorValues( this, F0.listInstances(),
                                       new Resource[] {i0, i1, i2, q0, q2, q1} );
    }

    public void testTypes() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        OntClass F0 = m.getOntClass( NS + "F0" );
        OntClass F2 = m.getOntClass( NS + "F2" );
        Individual i0 = m.getIndividual( NS + "i0" );

        TestUtil.assertIteratorValues( this, i0.listRDFTypes(false),
                                       new Resource[] {F0, F2, OWL.Thing}, 1 );
    }

    public void testInstance() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        OntClass F0 = m.getOntClass( NS + "F0" );
        OntClass F1 = m.getOntClass( NS + "F1" );
        Individual i0 = m.getIndividual( NS + "i0" );

        assertTrue( "i0 should be an instance of F0", i0.hasRDFType( F0 ));
        assertFalse( "i0 should not be an instance of F1", i0.hasRDFType( F1 ));
    }

    public void testRoleFillers() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        Individual q0 = m.getIndividual( NS + "q0" );
        Individual q1 = m.getIndividual( NS + "q1" );
        Individual q2 = m.getIndividual( NS + "q2" );
        Property q = m.getProperty( NS + "q" );

        TestUtil.assertIteratorValues( this, q0.listPropertyValues( q ),
                                       new Resource[] {q1, q2}, 0 );
    }

    public void testIncrementalAdd() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );

        OntClass F0 = m.createClass( NS + "F0" );
        OntClass F1 = m.createClass( NS + "F1" );
        OntClass F2 = m.createClass( NS + "F2" );
        Individual i0 = m.createIndividual( NS + "i0", F0 );

        assertFalse( "i0 is not an F2", i0.hasRDFType( F2 ) );
        F0.addSuperClass( F1 );
        F1.addSuperClass( F2 );
        assertTrue( "i0 should now be an F2", i0.hasRDFType( F2 ) );
    }


    public void testIncrementalRemove() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );

        OntClass F0 = m.createClass( NS + "F0" );
        OntClass F1 = m.createClass( NS + "F1" );
        OntClass F2 = m.createClass( NS + "F2" );
        Individual i0 = m.createIndividual( NS + "i0", F0 );
        F0.addSuperClass( F1 );
        F1.addSuperClass( F2 );

        assertTrue( "i0 is an F2", i0.hasRDFType( F2 ) );
        F0.removeSuperClass( F1 );
        assertFalse( "i0 should now not be an F2", i0.hasRDFType( F2 ) );
    }

    public void testRemoveIndividual() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );
        m.read( "file:testing/ontology/dig/owl/test1.xml" );

        OntClass F0 = m.createClass( NS + "F0" );
        Individual i0 = m.getIndividual( NS + "i0" );

        boolean sawI0 = false;
        for (Iterator i = F0.listInstances(); i.hasNext(); ) {
            Resource r0 = (Resource) i.next();
            log.debug( "Pre remove, saw F0 instance " + r0 );
            sawI0 = sawI0 || r0.getURI().equals( i0.getURI() );
        }
        assertTrue( sawI0 );

        i0.remove();

        sawI0 = false;
        for (Iterator i = F0.listInstances(); i.hasNext(); ) {
            Resource r0 = (Resource) i.next();
            log.debug( "Post remove, saw F0 instance " + r0 );
            sawI0 = sawI0 || r0.getURI().equals( i0.getURI() );
        }
        assertFalse( sawI0 );
    }

    public void testRelatedIndividuals() {
        String NS = "http://example.org/foo#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );

        OntClass F0 = m.createClass( NS + "F0" );
        Individual i0 = F0.createIndividual( NS + "i0" );
        Individual i1 = F0.createIndividual( NS + "i1" );
        Individual i2 = F0.createIndividual( NS + "i2" );
        OntProperty p = m.createTransitiveProperty( NS + "p" );

        i0.addProperty( p, i1 );
        i1.addProperty( p, i2 );

        //TestUtil.assertIteratorValues( this, i0.listPropertyValues( p ), new Resource[] {i1, i2}, 0 );

        int count = 0;
        for (StmtIterator i = m.listStatements( null, p, (RDFNode) null ); i.hasNext(); ) {
            Statement s = i.nextStatement();
            count++;
        }
        assertEquals( "Should find 3 statements", 3, count );
    }


    // User bug reports

    public void test_bug_codebaker_01() {
        String NS = "http://www.owl-ontologies.com/pizza.owl#";

        DIGReasoner r = (DIGReasoner) ReasonerRegistry.theRegistry().create( DIGReasonerFactory.URI, null );

        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );

        m.read( "file:testing/ontology/bugs/test_codebaker_01.owl" );

        OntClass mp = m.getOntClass( NS + "MargheritaPizza" );
        OntClass cp = m.getOntClass( NS + "CheesyPizza" );

        assertTrue( "MargheritaPizza should be cheesy", mp.hasSuperClass( cp ) );
    }

    public void test_bug_koala_01() {
        // set up a configuration resource to connect to the reasoner
        // on port 2004 on the local system
        Model cModel = ModelFactory.createDefaultModel();
        Resource conf = cModel.createResource();
        conf.addProperty( ReasonerVocabulary.EXT_REASONER_URL, cModel.createResource( "http://localhost:8081" ) );

        // create the reasoner factory and the reasoner
        DIGReasonerFactory drf = (DIGReasonerFactory) ReasonerRegistry.theRegistry()
                .getFactory( DIGReasonerFactory.URI );
        DIGReasoner r = (DIGReasoner) drf.create( conf );

        // now make a model
        OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
        spec.setReasoner( r );
        OntModel m = ModelFactory.createOntologyModel( spec, null );

        // load an input document
        m.getDocumentManager()
         .addAltEntry( "http://protege.stanford.edu/plugins/owl/owl-library/koala.owl",
                       "file:testing/ontology/bugs/koala.owl" );
        m.read( "http://protege.stanford.edu/plugins/owl/owl-library/koala.owl" );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -