owlontbuilder.java
来自「Semantic Web Ontology Editor」· Java 代码 · 共 733 行 · 第 1/3 页
JAVA
733 行
OWLIndividual currentInd = null;
if ((currentInd = currentOnt.getIndividual(ind.getURI()))==null) {
// create a new individual
if (ind.isAnonymous())
currentInd = currentDF.getAnonOWLIndividual(ind.getAnonId());
else
currentInd = currentDF.getOWLIndividual(ind.getURI());
AddEntity ae = new AddEntity(currentOnt, currentInd, null);
ae.accept((ChangeVisitor) currentOnt);
this.changes.add(ae);
}
return currentInd;
}
public OWLObjectProperty visitObjectProperty( OWLObjectProperty prop ) throws OWLException {
OWLObjectProperty currentOProp = null;
if ((currentOProp = currentOnt.getObjectProperty(prop.getURI()))==null) {
// create a new object property
currentOProp = currentDF.getOWLObjectProperty(prop.getURI());
AddEntity ae = new AddEntity(currentOnt, currentOProp, null);
ae.accept((ChangeVisitor) currentOnt);
this.changes.add(ae);
}
return currentOProp;
}
public OWLAnnotationProperty visitAnnotationProperty( OWLAnnotationProperty prop ) throws OWLException {
OWLAnnotationProperty currentAProp = null;
if ((currentAProp = currentOnt.getAnnotationProperty(prop.getURI()))==null) {
// create a new annotation property
currentAProp = currentDF.getOWLAnnotationProperty(prop.getURI());
AddEntity ae = new AddEntity(currentOnt, currentAProp, null);
ae.accept((ChangeVisitor) currentOnt);
this.changes.add(ae);
}
return currentAProp;
}
public OWLDataProperty visitDataProperty( OWLDataProperty prop ) throws OWLException {
OWLDataProperty currentDProp = null;
if ((currentDProp = currentOnt.getDataProperty(prop.getURI()))==null) {
// create a new data property
currentDProp = currentDF.getOWLDataProperty(prop.getURI());
AddEntity ae = new AddEntity(currentOnt, currentDProp, null);
ae.accept((ChangeVisitor) currentOnt);
this.changes.add(ae);
}
return currentDProp;
}
public OWLDataValue visitDataValue( OWLDataValue cd ) throws OWLException {
return currentDF.getOWLConcreteData(cd.getURI(), cd.getLang(), cd.getValue());
}
public OWLDescription visitAnd( OWLAnd and ) throws OWLException {
Set andSet = new HashSet();
for ( Iterator it = and.getOperands().iterator();
it.hasNext(); ) {
OWLDescription desc = (OWLDescription) it.next();
OWLDescription currentDesc = this.visitDescription(desc);
andSet.add(currentDesc);
}
return currentDF.getOWLAnd(andSet);
}
public OWLDescription visitDescription(OWLDescription desc) throws OWLException {
if (desc instanceof OWLClass) return visitClass((OWLClass) desc);
else if (desc instanceof OWLAnd) return visitAnd((OWLAnd) desc);
else if (desc instanceof OWLOr) return visitOr((OWLOr) desc);
else if (desc instanceof OWLNot) return visitNot((OWLNot) desc);
else if (desc instanceof OWLDataSomeRestriction) return visitDataSomeRestriction((OWLDataSomeRestriction) desc);
else if (desc instanceof OWLDataAllRestriction) return visitDataAllRestriction((OWLDataAllRestriction) desc);
else if (desc instanceof OWLDataValueRestriction) return visitDataValueRestriction((OWLDataValueRestriction) desc);
else if (desc instanceof OWLObjectSomeRestriction) return visitObjectSomeRestriction((OWLObjectSomeRestriction) desc);
else if (desc instanceof OWLObjectAllRestriction) return visitObjectAllRestriction((OWLObjectAllRestriction) desc);
else if (desc instanceof OWLObjectValueRestriction) return visitObjectValueRestriction((OWLObjectValueRestriction) desc);
else if (desc instanceof OWLDataCardinalityRestriction) return visitDataCardinalityRestriction((OWLDataCardinalityRestriction) desc);
else if (desc instanceof OWLObjectCardinalityRestriction) return visitObjectCardinalityRestriction((OWLObjectCardinalityRestriction) desc);
else if (desc instanceof OWLEnumeration) return visitEnumeration((OWLEnumeration) desc);
return null;
}
public OWLDescription visitOr( OWLOr or ) throws OWLException {
Set orSet = new HashSet();
for ( Iterator it = or.getOperands().iterator();
it.hasNext(); ) {
OWLDescription desc = (OWLDescription) it.next();
OWLDescription currentDesc = this.visitDescription(desc);
orSet.add(currentDesc);
}
return currentDF.getOWLOr(orSet);
}
public OWLDescription visitNot( OWLNot not ) throws OWLException {
OWLDescription desc = not.getOperand();
OWLDescription currentDesc = this.visitDescription(desc);
return currentDF.getOWLNot(currentDesc);
}
public OWLEnumeration visitEnumeration( OWLEnumeration enumeration ) throws OWLException {
Set indSet = new HashSet();
for ( Iterator it = enumeration.getIndividuals().iterator();
it.hasNext(); ) {
OWLIndividual ind = (OWLIndividual) it.next();
indSet.add(this.visitIndividual(ind));
}
return currentDF.getOWLEnumeration(indSet);
}
public OWLDescription visitObjectSomeRestriction( OWLObjectSomeRestriction restriction ) throws OWLException {
OWLObjectProperty prop = this.visitObjectProperty(restriction.getObjectProperty());
OWLDescription currentDesc = this.visitDescription(restriction.getDescription());
return currentDF.getOWLObjectSomeRestriction(prop, currentDesc);
}
public OWLDescription visitObjectAllRestriction( OWLObjectAllRestriction restriction ) throws OWLException {
OWLObjectProperty prop = this.visitObjectProperty(restriction.getObjectProperty());
OWLDescription currentDesc = this.visitDescription(restriction.getDescription());
return currentDF.getOWLObjectAllRestriction(prop, currentDesc);
}
public OWLDescription visitObjectValueRestriction( OWLObjectValueRestriction restriction ) throws OWLException {
OWLObjectProperty prop = this.visitObjectProperty(restriction.getObjectProperty());
OWLIndividual currentInd = this.visitIndividual(restriction.getIndividual());
return currentDF.getOWLObjectValueRestriction(prop, currentInd);
}
public OWLDescription visitDataSomeRestriction( OWLDataSomeRestriction restriction ) throws OWLException {
OWLDataProperty prop = this.visitDataProperty(restriction.getDataProperty());
OWLDataType dRange = this.visitDataType((OWLDataType) restriction.getDataType());
return currentDF.getOWLDataSomeRestriction(prop, dRange);
}
public OWLDescription visitDataAllRestriction( OWLDataAllRestriction restriction ) throws OWLException {
OWLDataProperty prop = this.visitDataProperty(restriction.getDataProperty());
OWLDataType dRange = this.visitDataType((OWLDataType) restriction.getDataType());
return currentDF.getOWLDataAllRestriction(prop, dRange);
}
public OWLDescription visitObjectCardinalityRestriction( OWLObjectCardinalityRestriction restriction ) throws OWLException {
OWLObjectProperty prop = this.visitObjectProperty(restriction.getObjectProperty());
return currentDF.getOWLObjectCardinalityRestriction(prop, restriction.getAtLeast(), restriction.getAtMost());
}
public OWLDescription visitDataCardinalityRestriction( OWLDataCardinalityRestriction restriction ) throws OWLException {
OWLDataProperty prop = this.visitDataProperty(restriction.getDataProperty());
return currentDF.getOWLDataCardinalityRestriction(prop, restriction.getAtLeast(), restriction.getAtMost());
}
public OWLDescription visitDataValueRestriction( OWLDataValueRestriction restriction ) throws OWLException {
OWLDataProperty prop = this.visitDataProperty(restriction.getDataProperty());
return currentDF.getOWLDataValueRestriction(prop, restriction.getValue());
}
public void visit( OWLEquivalentClassesAxiom axiom ) throws OWLException {
Set equClas = axiom.getEquivalentClasses();
Set alignEQ = new HashSet();
for ( Iterator it = equClas.iterator(); it.hasNext(); ) {
OWLDescription desc = (OWLDescription) it.next();
OWLDescription currentDesc = this.visitDescription(desc);
alignEQ.add(currentDesc);
}
OWLClassAxiom currentObject = currentDF.getOWLEquivalentClassesAxiom(alignEQ);
OntologyChange acx = null;
if (addAxiom) {
acx = new AddClassAxiom(currentOnt, (OWLClassAxiom) currentObject, null);
acx.accept((ChangeVisitor) currentOnt);
this.changes.add(acx);
}
else {
acx = new RemoveClassAxiom(currentOnt, (OWLClassAxiom) currentObject, null);
// remove equivalent class
acx.accept((ChangeVisitor) currentOnt);
OWLDescription cla1 = (OWLDescription) alignEQ.iterator().next();
alignEQ.remove(cla1);
OWLDescription cla2 = (OWLDescription) alignEQ.iterator().next();
if (cla1 instanceof OWLClass) {
acx = new RemoveEquivalentClass(currentOnt, (OWLClass) cla1, cla2, null);
acx.accept((ChangeVisitor) currentOnt);
this.changes.add(acx);
}
if (cla2 instanceof OWLClass) {
acx = new RemoveEquivalentClass(currentOnt, (OWLClass) cla2, cla1, null);
acx.accept((ChangeVisitor) currentOnt);
this.changes.add(acx);
}
}
}
public void visit( OWLDisjointClassesAxiom axiom ) throws OWLException {
Set alignDI = new HashSet();
for ( Iterator it = axiom.getDisjointClasses().iterator();
it.hasNext(); ) {
OWLDescription desc = (OWLDescription) it.next();
OWLDescription currentDesc = this.visitDescription(desc);
// alignDesc has now been updated
alignDI.add(currentDesc);
}
OWLClassAxiom currentObject = currentDF.getOWLDisjointClassesAxiom(alignDI);
OntologyChange acx = null;
if (addAxiom)
acx = new AddClassAxiom(currentOnt, (OWLClassAxiom) currentObject, null);
else
acx = new RemoveClassAxiom(currentOnt, (OWLClassAxiom) currentObject, null);
acx.accept((ChangeVisitor) currentOnt);
this.changes.add(acx);
}
public void visit( OWLSubClassAxiom axiom ) throws OWLException {
OWLClassAxiom currentObject = currentDF.getOWLSubClassAxiom(this.visitDescription(axiom.getSubClass()), this.visitDescription(axiom.getSuperClass()));
OntologyChange acx = null;
if (addAxiom) {
acx = new AddClassAxiom(currentOnt, (OWLClassAxiom) currentObject, null);
this.changes.add(acx);
}
else {
acx = new RemoveClassAxiom(currentOnt, (OWLClassAxiom) currentObject, null);
// also remove superclass assertion
OWLSubClassAxiom subAx = (OWLSubClassAxiom) currentObject;
OWLDescription sub = subAx.getSubClass();
OWLDescription sup = subAx.getSuperClass();
if (sub instanceof OWLClass) {
RemoveSuperClass rsc = new RemoveSuperClass(currentOnt, currentOnt.getClass(((OWLClass) sub).getURI()), sup, null);
rsc.accept((ChangeVisitor) currentOnt);
this.changes.add(rsc);
}
}
acx.accept((ChangeVisitor) currentOnt);
}
public void visit( OWLEquivalentPropertiesAxiom axiom ) throws OWLException {
Set alignEP = new HashSet();
for ( Iterator it = axiom.getProperties().iterator();
it.hasNext(); ) {
OWLProperty prop = (OWLProperty) it.next();
if (prop instanceof OWLDataProperty)
alignEP.add(this.visitDataProperty((OWLDataProperty) prop));
else
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?