/******************************************************************************* * Copyright 2016 * Ubiquitous Knowledge Processing (UKP) Lab * Technische Universität Darmstadt * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package de.tudarmstadt.ukp.lmf.transform.sensealignments; import java.io.FileNotFoundException; import java.util.List; import java.util.Map; import java.util.Set; import de.tudarmstadt.ukp.lmf.model.core.Sense; import de.tudarmstadt.ukp.lmf.transform.alignments.SenseAlignment; import de.tudarmstadt.ukp.omegawiki.api.OmegaWiki; import de.tudarmstadt.ukp.omegawiki.api.SynTrans; public class OmegaWikiDeEnAlignment extends SenseAlignment { public StringBuilder logString; private final OmegaWiki ow; private final int sourceLang; private final int targetLang; public OmegaWikiDeEnAlignment(String sourceUrl, String destUrl, String dbDriver, String dbVendor, String alignmentFile, String user, String pass, OmegaWiki ow, int sourceLang, int targetLang) throws FileNotFoundException{ super(sourceUrl, destUrl, dbDriver,dbVendor, alignmentFile, user, pass,UBY_HOME); this.ow = ow; // super(); this.sourceLang = sourceLang; this.targetLang = targetLang; logString = new StringBuilder(); } @Override public void getAlignment() { System.out.println("Starting getting alignment for OmegaWiki " + getAlignmentFileLocation()); try { int count = 0; Map <SynTrans,Set<SynTrans>> stm = ow.getInterlanguageSTLinks(sourceLang, targetLang); for(SynTrans source : stm.keySet() ) { List<Sense> first = ubySource.getSensesByOriginalReference("OW SynTrans ID", ""+source.getSyntransid());; if (first.size()>0) { Sense sourceSense = first.get(0); for (SynTrans target : stm.get(source)){ List<Sense> second = ubyDest.getSensesByOriginalReference("OW SynTrans ID", ""+target.getSyntransid());; if (second.size()>0) { Sense targetSense = second.get(0); System.out.println(count); addSourceSense(sourceSense); addDestSense(targetSense); count++; } } } } System.out.println("Number of alignment:" + count); } catch (Exception ex) { ex.printStackTrace(); } } }