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 + -
显示快捷键?