⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 metagraph.java

📁 toocom源代码,主要应用在本体匹配方面!
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				table.put(c,cTemp);
				metaGraph.addConcept(cTemp);
			}
			for(Iterator j = axiom.getHypothesisRelations().iterator();j.hasNext();){
				Relation r = (Relation) j.next();
				Concept cTemp = new Concept(metaOCGL.getConceptType("Antecedent_BR",l));
				if(r.getArity() == 3) cTemp.setType(metaOCGL.getConceptType("Antecedent_TR",l));
				cTemp.translate(0,cpt*CGConstants.Y_MAX);
				table.put(r,cTemp);
				metaGraph.addConcept(cTemp);
				for(int index = 1;index <= r.getArity();index ++){
					Concept c = (Concept) r.getLinkedConcept(index);
					if(c != null){
						if(index == 1){
							Relation rTemp = new Relation(metaOCGL.getRelationType("role1",l));
							rTemp.setLinkedConcept(cTemp,1);
							rTemp.setLinkedConcept((Concept) table.get(c),2);
							rTemp.translate(0,cpt*CGConstants.Y_MAX);
							metaGraph.addRelation(rTemp);
						}
						if(index == 2){
							Relation rTemp = new Relation(metaOCGL.getRelationType("role2",l));
							rTemp.setLinkedConcept(cTemp,1);
							rTemp.setLinkedConcept((Concept) table.get(c),2);
							rTemp.translate(0,cpt*CGConstants.Y_MAX);
							metaGraph.addRelation(rTemp);
						}
						if(index == 3){
							Relation rTemp = new Relation(metaOCGL.getRelationType("role3",l));
							rTemp.setLinkedConcept(cTemp,1);
							rTemp.setLinkedConcept((Concept) table.get(c),2);
							rTemp.translate(0,cpt*CGConstants.Y_MAX);
							metaGraph.addRelation(rTemp);
						}
					}
				}
			}
			for(Iterator j = axiom.getPureConclusionConcepts().iterator();j.hasNext();){
				Concept c = (Concept) j.next();
				Concept cTemp = new Concept(metaOCGL.getConceptType("Consequent_C",l));
				cTemp.translate(0,cpt*CGConstants.Y_MAX);
				table.put(c,cTemp);
				metaGraph.addConcept(cTemp);
			}
			for(Iterator j = axiom.getConclusionRelations().iterator();j.hasNext();){
				Relation r = (Relation) j.next();
				Concept cTemp = new Concept(metaOCGL.getConceptType("Consequent_BR",l));
				if(r.getArity() == 3) cTemp.setType(metaOCGL.getConceptType("Consequent_TR",l));
				cTemp.translate(0,cpt*CGConstants.Y_MAX);
				table.put(r,cTemp);
				metaGraph.addConcept(cTemp);
				for(int index = 1;index <= r.getArity();index ++){
					Concept c = (Concept) r.getLinkedConcept(index);
					if(c != null){
						if(index == 1){
							Relation rTemp = new Relation(metaOCGL.getRelationType("role1",l));
							rTemp.setLinkedConcept(cTemp,1);
							rTemp.setLinkedConcept((Concept) table.get(c),2);
							rTemp.translate(0,cpt*CGConstants.Y_MAX);
							metaGraph.addRelation(rTemp);
						}
						if(index == 2){
							Relation rTemp = new Relation(metaOCGL.getRelationType("role2",l));
							rTemp.setLinkedConcept(cTemp,1);
							rTemp.setLinkedConcept((Concept) table.get(c),2);
							rTemp.translate(0,cpt*CGConstants.Y_MAX);
							metaGraph.addRelation(rTemp);
						}
						if(index == 3){
							Relation rTemp = new Relation(metaOCGL.getRelationType("role3",l));
							rTemp.setLinkedConcept(cTemp,1);
							rTemp.setLinkedConcept((Concept) table.get(c),2);
							rTemp.translate(0,cpt*CGConstants.Y_MAX);
							metaGraph.addRelation(rTemp);
						}
					}
				}
			}
			// Type identities
			for(Iterator j = axiom.getAllConcepts().iterator();j.hasNext();){
				Concept c = (Concept) j.next();
				for(Iterator k = axiom.getAllConcepts().iterator();k.hasNext();){
					Concept cTemp = (Concept) k.next();
					if(!c.equals(cTemp) && (c.getType().equals(cTemp.getType()))){
						Relation r = new Relation(metaOCGL.getRelationType("type_identity",l));
						r.setLinkedConcept((Concept) table.get(c),1);
						r.setLinkedConcept((Concept) table.get(cTemp),2);
						r.translate(0,cpt*CGConstants.Y_MAX);
						metaGraph.addRelation(r);
					}
				}
			}
			for(Iterator j = axiom.getAllRelations().iterator();j.hasNext();){
				Relation r = (Relation) j.next();
				for(Iterator k = axiom.getAllRelations().iterator();k.hasNext();){
					Relation rTemp = (Relation) k.next();
					if(!r.equals(rTemp) && (r.getType().equals(rTemp.getType()))){
						Relation rIdent = new Relation(metaOCGL.getRelationType("type_identity",l));
						rIdent.setLinkedConcept((Concept) table.get(r),1);
						rIdent.setLinkedConcept((Concept) table.get(rTemp),2);
						rIdent.translate(0,cpt*CGConstants.Y_MAX);
						metaGraph.addRelation(rIdent);
					}
				}
			}
		}
		CGXMLParser.saveGraph(metaOCGL,metaGraph,l,target.getAbsolutePath(),true);
	}
	
	/** Returns the meta representation of the axiom a, with type identity relations. 
	 *  The name of the graph is those of the axiom. */
	public Graph buildMetaGraphWithIdentities(Axiom axiom, Language l) throws FileNotFoundException,IOException{
		Ontology metaOCGL = CGXMLParser.loadOntology(Constants.METAOCGL_FILE_NAME,l,true);
		Graph metaGraph = new Graph(new Terms(axiom.getTerm(l)));
		Hashtable table = new Hashtable();
		for(Iterator j = axiom.getHypothesisConcepts().iterator();j.hasNext();){
			Concept c = (Concept) j.next();
			Concept cTemp = new Concept(metaOCGL.getConceptType("Antecedent_C",l));
			table.put(c,cTemp);
			metaGraph.addConcept(cTemp);
		}
		for(Iterator j = axiom.getHypothesisRelations().iterator();j.hasNext();){
			Relation r = (Relation) j.next();
			Concept cTemp = new Concept(metaOCGL.getConceptType("Antecedent_BR",l));
			if(r.getArity() == 3) cTemp.setType(metaOCGL.getConceptType("Antecedent_TR",l));
			table.put(r,cTemp);
			metaGraph.addConcept(cTemp);
			for(int index = 1;index <= r.getArity();index ++){
				Concept c = (Concept) r.getLinkedConcept(index);
				if(c != null){
					if(index == 1){
						Relation rTemp = new Relation(metaOCGL.getRelationType("role1",l));
						rTemp.setLinkedConcept(cTemp,1);
						rTemp.setLinkedConcept((Concept) table.get(c),2);
						metaGraph.addRelation(rTemp);
					}
					if(index == 2){
						Relation rTemp = new Relation(metaOCGL.getRelationType("role2",l));
						rTemp.setLinkedConcept(cTemp,1);
						rTemp.setLinkedConcept((Concept) table.get(c),2);
						metaGraph.addRelation(rTemp);
					}
					if(index == 3){
						Relation rTemp = new Relation(metaOCGL.getRelationType("role3",l));
						rTemp.setLinkedConcept(cTemp,1);
						rTemp.setLinkedConcept((Concept) table.get(c),2);
						metaGraph.addRelation(rTemp);
					}
				}
			}
		}
		for(Iterator j = axiom.getPureConclusionConcepts().iterator();j.hasNext();){
			Concept c = (Concept) j.next();
			Concept cTemp = new Concept(metaOCGL.getConceptType("Consequent_C",l));
			table.put(c,cTemp);
			metaGraph.addConcept(cTemp);
		}
		for(Iterator j = axiom.getConclusionRelations().iterator();j.hasNext();){
			Relation r = (Relation) j.next();
			Concept cTemp = new Concept(metaOCGL.getConceptType("Consequent_BR",l));
			if(r.getArity() == 3) cTemp.setType(metaOCGL.getConceptType("Consequent_TR",l));
			table.put(r,cTemp);
			metaGraph.addConcept(cTemp);
			for(int index = 1;index <= r.getArity();index ++){
				Concept c = (Concept) r.getLinkedConcept(index);
				if(c != null){
					if(index == 1){
						Relation rTemp = new Relation(metaOCGL.getRelationType("role1",l));
						rTemp.setLinkedConcept(cTemp,1);
						rTemp.setLinkedConcept((Concept) table.get(c),2);
						metaGraph.addRelation(rTemp);
					}
					if(index == 2){
						Relation rTemp = new Relation(metaOCGL.getRelationType("role2",l));
						rTemp.setLinkedConcept(cTemp,1);
						rTemp.setLinkedConcept((Concept) table.get(c),2);
						metaGraph.addRelation(rTemp);
					}
					if(index == 3){
						Relation rTemp = new Relation(metaOCGL.getRelationType("role3",l));
						rTemp.setLinkedConcept(cTemp,1);
						rTemp.setLinkedConcept((Concept) table.get(c),2);
						metaGraph.addRelation(rTemp);
					}
				}
			}
		}
		// Type identities
		for(Iterator j = axiom.getAllConcepts().iterator();j.hasNext();){
			Concept c = (Concept) j.next();
			for(Iterator k = axiom.getAllConcepts().iterator();k.hasNext();){
				Concept cTemp = (Concept) k.next();
				if(!c.equals(cTemp) && (c.getType().equals(cTemp.getType()))){
					Relation r = new Relation(metaOCGL.getRelationType("type_identity",l));
					r.setLinkedConcept((Concept) table.get(c),1);
					r.setLinkedConcept((Concept) table.get(cTemp),2);
					metaGraph.addRelation(r);
				}
			}
		}
		for(Iterator j = axiom.getAllRelations().iterator();j.hasNext();){
			Relation r = (Relation) j.next();
			for(Iterator k = axiom.getAllRelations().iterator();k.hasNext();){
				Relation rTemp = (Relation) k.next();
				if(!r.equals(rTemp) && (r.getType().equals(rTemp.getType()))){
					Relation rIdent = new Relation(metaOCGL.getRelationType("type_identity",l));
					rIdent.setLinkedConcept((Concept) table.get(r),1);
					rIdent.setLinkedConcept((Concept) table.get(rTemp),2);
					metaGraph.addRelation(rIdent);
				}
			}
		}
		return metaGraph;
	}
	
	
	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -