📄 testdigreasoner.java
字号:
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 + -