owldifftest.java
来自「Semantic Web Ontology Editor」· Java 代码 · 共 431 行 · 第 1/2 页
JAVA
431 行
package org.mindswap.swoop.utils.owlapi.diff;import java.net.URI;import java.util.Arrays;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import org.semanticweb.owl.impl.model.OWLConnectionImpl;import org.semanticweb.owl.model.OWLAnnotationProperty;import org.semanticweb.owl.model.OWLClass;import org.semanticweb.owl.model.OWLClassAxiom;import org.semanticweb.owl.model.OWLDataProperty;import org.semanticweb.owl.model.OWLDataValue;import org.semanticweb.owl.model.OWLDifferentIndividualsAxiom;import org.semanticweb.owl.model.OWLDisjointClassesAxiom;import org.semanticweb.owl.model.OWLEntity;import org.semanticweb.owl.model.OWLEnumeration;import org.semanticweb.owl.model.OWLException;import org.semanticweb.owl.model.OWLIndividual;import org.semanticweb.owl.model.OWLObjectProperty;import org.semanticweb.owl.model.OWLOntology;import org.semanticweb.owl.model.change.AddAnnotationInstance;import org.semanticweb.owl.model.change.AddClassAxiom;import org.semanticweb.owl.model.change.AddDataPropertyInstance;import org.semanticweb.owl.model.change.AddDomain;import org.semanticweb.owl.model.change.AddEntity;import org.semanticweb.owl.model.change.AddEnumeration;import org.semanticweb.owl.model.change.AddIndividualAxiom;import org.semanticweb.owl.model.change.AddIndividualClass;import org.semanticweb.owl.model.change.AddObjectPropertyInstance;import org.semanticweb.owl.model.change.AddSuperClass;import org.semanticweb.owl.model.change.AddSuperProperty;import org.semanticweb.owl.model.change.ChangeVisitor;import org.semanticweb.owl.model.change.OntologyChange;import org.semanticweb.owl.model.change.RemoveAnnotationInstance;import org.semanticweb.owl.model.change.RemoveClassAxiom;import org.semanticweb.owl.model.change.RemoveDataPropertyInstance;import org.semanticweb.owl.model.change.RemoveDomain;import org.semanticweb.owl.model.change.RemoveEntity;import org.semanticweb.owl.model.change.RemoveEnumeration;import org.semanticweb.owl.model.change.RemoveIndividualClass;import org.semanticweb.owl.model.change.RemoveObjectPropertyInstance;import org.semanticweb.owl.model.change.RemoveSuperClass;import org.semanticweb.owl.model.change.RemoveSuperProperty;import org.semanticweb.owl.util.OWLConnection;public class OWLDiffTest extends TestCase { //OWLConnection connection; OWLOntology src, dst, target; static URI testURI = URI.create("http://example.com/ontology#"); public static Test suite() { return new TestSuite(OWLDiffTest.class); } private OWLOntology createOnt() throws OWLException { OWLConnection connection = new OWLConnectionImpl(); OWLOntology ont = connection.createOntology(testURI, testURI); return ont; } private void printChanges(OntologyChange[] changes) throws OWLException { System.out.println("Changes:"); for (int i = 0; i < changes.length; ++i) { System.out.println(ObjectString.getString(changes[i])); } } private OntologyChange[] getChanges(OWLOntology source, OWLOntology destination, OWLOntology target) throws OWLException { List changeList = OWLDiff.getChanges(source, destination, target); OntologyChange[] changes = new OntologyChange[changeList.size()]; changes = (OntologyChange[]) changeList.toArray(changes); return (OntologyChange[]) changes; } public void setUp() throws Exception { src = createOnt(); dst = createOnt(); target = createOnt(); } public void test_Empty() throws Exception { OntologyChange[] changes; changes = getChanges(src, dst, target); assertEquals(0, changes.length); } public void test_DataPropertyRemoval() throws Exception { OntologyChange[] changes; OWLEntity entity = src.getOWLDataFactory().getOWLDataProperty(testURI.resolve("prop")); OntologyChange addProperty = new AddEntity(src, entity, null); addProperty.accept((ChangeVisitor) src); changes = getChanges(src, dst, target); assertEquals(1, changes.length); assertTrue(changes[0] instanceof RemoveEntity); } public void test_AnnotationRemoval() throws Exception { OntologyChange[] changes; OWLEntity srcEntity = src.getOWLDataFactory().getOWLDataProperty(testURI.resolve("prop")); OWLAnnotationProperty srcProp = src.getOWLDataFactory().getOWLAnnotationProperty(testURI.resolve("comment")); OntologyChange srcChange = new AddAnnotationInstance(src, srcEntity, srcProp, "Hello", null); srcChange.accept((ChangeVisitor) src); OWLEntity dstEntity = dst.getOWLDataFactory().getOWLDataProperty(testURI.resolve("prop")); OWLAnnotationProperty dstProp = dst.getOWLDataFactory().getOWLAnnotationProperty(testURI.resolve("comment")); OntologyChange dstChange = new AddEntity(dst, dstEntity, null); dstChange.accept((ChangeVisitor) dst); dstChange = new AddEntity(dst, dstProp, null); dstChange.accept((ChangeVisitor) dst); changes = getChanges(src, dst, target); printChanges(changes); assertEquals(1, changes.length); assertTrue(changes[0] instanceof RemoveAnnotationInstance); } public void test_DataValue() throws Exception { OntologyChange[] changes; OWLIndividual srcIndividual = src.getOWLDataFactory().getOWLIndividual(testURI.resolve("Bob")); OWLDataProperty srcProp = src.getOWLDataFactory().getOWLDataProperty(testURI.resolve("prop")); OWLDataValue srcDV = src.getOWLDataFactory().getOWLConcreteData(null, "en", "Testing"); OntologyChange srcChange = new AddDataPropertyInstance(src, srcIndividual, srcProp, srcDV, null); srcChange.accept((ChangeVisitor) src); OWLIndividual dstIndividual = dst.getOWLDataFactory().getOWLIndividual(testURI.resolve("Bob")); OWLDataProperty dstProp = dst.getOWLDataFactory().getOWLDataProperty(testURI.resolve("prop")); OWLDataValue dstDV = dst.getOWLDataFactory().getOWLConcreteData(null, "en-US", "Testing"); OntologyChange dstChange = new AddDataPropertyInstance(dst, dstIndividual, dstProp, dstDV, null); dstChange.accept((ChangeVisitor) dst); changes = getChanges(src, dst, target); printChanges(changes); assertEquals(2, changes.length); assertTrue(changes[0] instanceof RemoveDataPropertyInstance); assertTrue(changes[1] instanceof AddDataPropertyInstance); } public void test_ObjectValue() throws Exception { OntologyChange[] changes; OWLIndividual srcBob = src.getOWLDataFactory().getOWLIndividual(testURI.resolve("Bob")); OWLObjectProperty srcProp = src.getOWLDataFactory().getOWLObjectProperty(testURI.resolve("knows")); OWLIndividual srcRoss = src.getOWLDataFactory().getOWLIndividual(testURI.resolve("Ross")); OntologyChange srcChange = new AddObjectPropertyInstance(src, srcBob, srcProp, srcRoss, null); srcChange.accept((ChangeVisitor) src); OWLIndividual dstBob = dst.getOWLDataFactory().getOWLIndividual(testURI.resolve("Bob")); OWLObjectProperty dstProp = dst.getOWLDataFactory().getOWLObjectProperty(testURI.resolve("knows")); OWLIndividual dstRoss = dst.getOWLDataFactory().getOWLIndividual(testURI.resolve("Ross")); OntologyChange dstChange = new AddObjectPropertyInstance(dst, dstRoss, dstProp, dstBob, null); dstChange.accept((ChangeVisitor) dst); changes = getChanges(src, dst, target); printChanges(changes); assertEquals(2, changes.length); assertTrue(changes[0] instanceof RemoveObjectPropertyInstance); assertTrue(changes[1] instanceof AddObjectPropertyInstance); } public void test_EnumerationRemoval() throws Exception { OntologyChange[] changes; OWLIndividual srcBob = src.getOWLDataFactory().getOWLIndividual(testURI.resolve("Bob")); OWLIndividual srcRoss = src.getOWLDataFactory().getOWLIndividual(testURI.resolve("Ross")); OWLIndividual srcRobert = src.getOWLDataFactory().getOWLIndividual(testURI.resolve("Robert")); Set srcSet1 = new HashSet(); Set srcSet2 = new HashSet(); srcSet1.add(srcBob); srcSet1.add(srcRoss); srcSet2.add(srcBob); srcSet2.add(srcRoss); srcSet2.add(srcRobert); OWLEnumeration srcEnum1 = src.getOWLDataFactory().getOWLEnumeration(srcSet1); OWLEnumeration srcEnum2 = src.getOWLDataFactory().getOWLEnumeration(srcSet2); OWLClass srcClass = src.getOWLDataFactory().getOWLClass(testURI.resolve("Class")); OntologyChange srcChange1 = new AddEnumeration(src, srcClass, srcEnum1, null); srcChange1.accept((ChangeVisitor)src); OntologyChange srcChange2 = new AddEnumeration(src, srcClass, srcEnum2, null); srcChange2.accept((ChangeVisitor)src); OWLIndividual dstBob = dst.getOWLDataFactory().getOWLIndividual(testURI.resolve("Bob")); OWLIndividual dstRoss = dst.getOWLDataFactory().getOWLIndividual(testURI.resolve("Ross")); OWLIndividual dstRobert = dst.getOWLDataFactory().getOWLIndividual(testURI.resolve("Robert")); Set dstSet1 = new HashSet(); dstSet1.add(dstBob); dstSet1.add(dstRoss); dstSet1.add(dstRobert); OWLEnumeration dstEnum1 = dst.getOWLDataFactory().getOWLEnumeration(dstSet1); OWLClass dstClass = dst.getOWLDataFactory().getOWLClass(testURI.resolve("Class")); OntologyChange dstChange1 = new AddEnumeration(dst, dstClass, dstEnum1, null); dstChange1.accept((ChangeVisitor)dst); changes = getChanges(src, dst, target); printChanges(changes); assertEquals(1, changes.length); assertTrue(changes[0] instanceof RemoveEnumeration);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?