triplevisitor.java
来自「Semantic Web Ontology Editor」· Java 代码 · 共 1,245 行 · 第 1/3 页
JAVA
1,245 行
/* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLDisjointClassesAxiom) */ public void visit(OWLDisjointClassesAxiom node) throws OWLException { addSymmetric(getResource(owl.getDisjointWith()), node.getDisjointClasses()); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLEquivalentClassesAxiom) */ public void visit(OWLEquivalentClassesAxiom node) throws OWLException { pushCurrent(null,null,false); addEquivalences(owl.getEquivalentClass(), node.getEquivalentClasses()); popCurrent(); } /* * (non-Javadoc) * * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLEquivalentPropertiesAxiom) */ public void visit(OWLEquivalentPropertiesAxiom node) throws OWLException { if ((currentProperty == null) || node.getProperties().add(node)) { addEquivalences(owl.getEquivalentProperty(), node.getProperties()); } else { for (Iterator iter = node.getProperties().iterator(); iter.hasNext();) { OWLObject prop = (OWLObject) iter.next(); add(getResource(currentProperty), getResource(owl.getEquivalentProperty()), getResource(prop)); } } } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLFrame) */ public void visit(OWLFrame node) throws OWLException { // TODO Auto-generated method stub throw new OWLException("Not implemented yet"); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLIndividual) */ public void visit(OWLIndividual node) throws OWLException { objectStack.push(node); addAnnotations(node); addType(node); // Datatype values Map dataValueMap = node.getDataPropertyValues(ontology); for (Iterator propertyIter = dataValueMap.keySet().iterator(); propertyIter.hasNext();) { OWLProperty property = (OWLProperty) propertyIter.next(); for (Iterator dvIter = ((Set) dataValueMap.get(property)).iterator(); dvIter.hasNext();) { OWLDataValue dataValue = (OWLDataValue) dvIter.next(); add(node, property, dataValue); } } // Object values Map objectValueMap = node.getObjectPropertyValues(ontology); for (Iterator propertyIter = objectValueMap.keySet().iterator(); propertyIter.hasNext();) { OWLProperty property = (OWLProperty) propertyIter.next(); for (Iterator objectIter = ((Set) objectValueMap.get(property)).iterator(); objectIter.hasNext();) { OWLIndividual objectValue = (OWLIndividual) objectIter.next(); add(node, property, objectValue); } } // Individual axioms for (Iterator axiomIter = ontology.getIndividualAxioms().iterator(); axiomIter.hasNext();) { OWLIndividualAxiom axiom = (OWLIndividualAxiom) axiomIter.next(); if (axiom.getIndividuals().contains(node)) { axiom.accept(this); } } objectStack.pop(); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLObjectAllRestriction) */ public void visit(OWLObjectAllRestriction node) throws OWLException { addAnnotations(node); addType(node); add(getResource(node), getResource(owl.getOnProperty()), getResource(node.getObjectProperty())); add(getResource(node), getResource(owl.getAllValuesFrom()), getResource(node.getDescription())); OWLDescription description = node.getDescription(); if (!(description instanceof OWLClass)) { description.accept(this); } } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLObjectCardinalityRestriction) */ public void visit(OWLObjectCardinalityRestriction node) throws OWLException { addAnnotations(node); addType(node); add(getResource(node), getResource(owl.getOnProperty()), getResource(node.getObjectProperty())); SwoopResource property = null; int value = 0; if (node.isExactly()) { property = getResource(owl.getCardinality()); value = node.getAtLeast(); } else if (node.isAtLeast()) { property = getResource(owl.getMinCardinality()); value = node.getAtLeast(); } else if (node.isAtMost()) { property = getResource(owl.getMaxCardinality()); value = node.getAtMost(); } if (property == null) { return; } RDFNode valueNode; try { valueNode = nodeFactory.createLiteral(Integer.toString(value), "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", null); } catch (ModelException e) { throw new OWLException(e); } add(getResource(node), property, valueNode); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLObjectProperty) */ public void visit(OWLObjectProperty node) throws OWLException { addType(node); addAnnotations(node); if (node.isInverseFunctional(ontology)) { addType(node, owl.getInverseFunctionalProperty()); } if (node.isSymmetric(ontology)) { addType(node, owl.getSymmetricProperty()); } if (node.isTransitive(ontology)) { addType(node, owl.getTransitive()); } Map properties = new HashMap(); properties.put(owl.getInverseOf(), node.getInverses(ontology)); addProperties(getResource(node), properties); renderProperty(node); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLObjectSomeRestriction) */ public void visit(OWLObjectSomeRestriction node) throws OWLException { addAnnotations(node); addType(node); add(getResource(node), getResource(owl.getOnProperty()), getRDFNode(node.getObjectProperty())); add(getResource(node), getResource(owl.getSomeValuesFrom()), getRDFNode(node.getDescription())); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLObjectValueRestriction) */ public void visit(OWLObjectValueRestriction node) throws OWLException { addAnnotations(node); addType(node, owl.getRestriction()); add(getResource(node), getResource(owl.getOnProperty()), getResource(node.getObjectProperty())); add(getResource(node), getResource(owl.getHasValue()), getRDFNode(node.getIndividual())); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLNot) */ public void visit(OWLNot node) throws OWLException { addType(node); addAnnotations(node); SwoopResource resource = getResource(node); pushCurrent(node, null, false); add(resource, getResource(owl.getComplementOf()), getRDFNode(node.getOperand())); popCurrent(); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLOntology) */ public void visit(OWLOntology node) throws OWLException { addType(node); addAnnotations(node); Map properties = new HashMap(); //properties.put(owl.getImports(), node.getIncludedOntologies()); properties.put(owl.getIncompatibleWith(), node.getIncompatibleWith()); properties.put(owl.getBackwardCompatibleWith(), node.getBackwardCompatibleWith()); properties.put(owl.getPriorVersion(), node.getPriorVersion()); addProperties(getResource(node), properties); for (Iterator ontIter = node.getIncludedOntologies().iterator(); ontIter.hasNext();) { OWLOntology included = (OWLOntology) ontIter.next(); URI physicalURI = included.getPhysicalURI(); add(getResource(node), getResource(owl.getImports()), getResource(physicalURI)); add(getResource(physicalURI), getResource(owl.getInstanceOf()), getResource(owl.getOntology())); } } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLOr) */ public void visit(OWLOr node) throws OWLException { renderAnonymousClass(node, owl.getUnionOf(), node.getOperands()); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLClass) */ public void visit(OWLClass node) throws OWLException { addType(node); addAnnotations(node); if (node.isDeprecated(ontology)) { addType(node, owl.getDeprecatedClass()); } SwoopResource resource = getResource(node); Set equivs = new HashSet(); equivs.addAll(node.getEquivalentClasses(ontology)); equivs.addAll(node.getEnumerations(ontology)); Set named = new HashSet(); pushCurrent(node, null, true); for (Iterator iter = equivs.iterator(); iter.hasNext();) { OWLDescription d = (OWLDescription) iter.next(); if ((d instanceof OWLEnumeration) || (d instanceof OWLBooleanDescription)) { d.accept(this); } else { named.add(d); } } popCurrent(); pushCurrent(node, null, false); for (Iterator iter = ontology.getClassAxioms().iterator(); iter.hasNext();) { OWLClassAxiom axiom = (OWLClassAxiom) iter.next(); if (axiom instanceof OWLDisjointClassesAxiom) { OWLDisjointClassesAxiom disjoints = (OWLDisjointClassesAxiom) axiom; if (disjoints.getDisjointClasses().contains(node)) { disjoints.accept(this); } } } Map properties = new HashMap(); properties.put(owl.getEquivalentClass(), named); properties.put(owl.getSubClassOf(), node.getSuperClasses(ontology)); addProperties(resource, properties); popCurrent(); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLEnumeration) */ public void visit(OWLEnumeration node) throws OWLException { addType(node); renderAnonymousClass(node, owl.getOneOf(), node.getIndividuals()); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLSameIndividualsAxiom) */ public void visit(OWLSameIndividualsAxiom node) throws OWLException { addEquivalences(owl.getSameAs(), node.getIndividuals()); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLSubClassAxiom) */ public void visit(OWLSubClassAxiom node) throws OWLException { SwoopResource subject, object; pushCurrent(null, null, false); subject = getResource(node.getSubClass()); popCurrent(); pushCurrent(node.getSubClass(), null, false); object = getResource(node.getSuperClass()); popCurrent(); add(subject, getResource(owl.getSubClassOf()), object); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLSubPropertyAxiom) */ public void visit(OWLSubPropertyAxiom node) throws OWLException { add(getResource(node.getSubProperty()), getResource(owl.getSubPropertyOf()), getResource(node.getSuperProperty())); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLFunctionalPropertyAxiom) */ public void visit(OWLFunctionalPropertyAxiom node) throws OWLException { addType(node.getProperty(), owl.getFunctionalProperty()); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLInverseFunctionalPropertyAxiom) */ public void visit(OWLInverseFunctionalPropertyAxiom node) throws OWLException { addType(node.getProperty(), owl.getInverseFunctionalProperty()); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLTransitivePropertyAxiom) */ public void visit(OWLTransitivePropertyAxiom node) throws OWLException { addType(node.getProperty(), owl.getTransitive()); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLSymmetricPropertyAxiom) */ public void visit(OWLSymmetricPropertyAxiom node) throws OWLException { addType(node.getProperty(), owl.getSymmetricProperty()); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLInversePropertyAxiom) */ public void visit(OWLInversePropertyAxiom node) throws OWLException { add(getResource(node.getProperty()), getResource(owl.getInverseOf()), getResource(node.getInverseProperty())); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLPropertyDomainAxiom) */ public void visit(OWLPropertyDomainAxiom node) throws OWLException { add(getResource(node.getProperty()), getResource(owl.getDomain()), getResource(node.getDomain())); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLObjectPropertyRangeAxiom) */ public void visit(OWLObjectPropertyRangeAxiom node) throws OWLException { SwoopResource range; pushCurrent(null, node.getProperty(), false); range = getResource(node.getRange()); popCurrent(); add(getResource(node.getProperty()), getResource(owl.getRange()), range); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLDataPropertyRangeAxiom) */ public void visit(OWLDataPropertyRangeAxiom node) throws OWLException { SwoopResource range; pushCurrent(null, node.getProperty(), false); range = getResource(node.getRange()); popCurrent(); add(getResource(node.getProperty()), getResource(owl.getRange()), range); } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLObjectPropertyInstance) */ public void visit(OWLObjectPropertyInstance node) throws OWLException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLDataPropertyInstance) */ public void visit(OWLDataPropertyInstance node) throws OWLException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLIndividualTypeAssertion) */ public void visit(OWLIndividualTypeAssertion node) throws OWLException { // TODO Auto-generated method stub }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?