public static void testWithDatabase() { TRepository.setDatabaseProperties(); boolean dbInsert = true; Manager manager = new Manager(); DataImport importer = manager.getImporter(); importer.dropRepositorySchema(); importer.createRepositorySchema(); for (int i = 0; i < data3.length; i++) { OWLParser_V3 par = new OWLParser_V3(dbInsert); String srcFile = (directory + data3[i][0]).replace("\\", "/"); int srcId = par.parseSingleSource(srcFile); String trgFile = (directory + data3[i][1]).replace("\\", "/"); int trgId = par.parseSingleSource(trgFile); manager.loadRepository(); RDFAlignmentParser parser = new RDFAlignmentParser(manager, dbInsert); String alignFile = directory + data3[i][2]; parser.loadOWLAlignmentFile(alignFile, null, srcFile, trgFile); MatchResult result = manager.loadMatchResult(srcId, trgId, parser.getMappingId()); assertEquals(Integer.parseInt(data3[i][3]), result.getMatchCount()); } manager.closeDatabaseConnection(); }
public static void testWithoutDatabase() { for (int i = 0; i < data3.length; i++) { boolean dbInsert = false; OWLParser_V3 par = new OWLParser_V3(dbInsert); String srcFile = directory + data3[i][0]; par.parseSingleSource(srcFile); Graph srcGraph = par.getGraph(); String trgFile = directory + data3[i][1]; par.parseSingleSource(trgFile); Graph trgGraph = par.getGraph(); RDFAlignmentParser parser = new RDFAlignmentParser(null, dbInsert); String alignFile = directory + data3[i][2]; MatchResult result = parser.loadOWLAlignmentFile(null, alignFile, srcGraph, trgGraph); assertEquals(Integer.parseInt(data3[i][3]), result.getMatchCount()); } }
/** * executes the specified selection for the given result * * @param result MatchResult (either array or db based) * @return MatchResult with the selected correspondences */ public MatchResult select(MatchResult result) { // nothing to select if (result == null) { return null; } // nothing to select therefore return copy of result if (result.getMatchCount() <= 0 || result.getSrcObjects().isEmpty() || result.getTrgObjects().isEmpty()) return result.clone(); if ((selection == SEL_MAXN && maxN <= 0) || (selection == SEL_DELTA && delta <= 0) || (selection == SEL_THRESHOLD && threshold <= 0)) return result.clone(); if (selection == SEL_MULTIPLE) { if (maxN <= 0 && delta <= 0 && threshold <= 0) { // nothing to select therefore return copy of result return result.clone(); } else if (maxN > 0 && delta <= 0 && threshold <= 0) { // only maxn selection, for optimization change from multiple selection = SEL_MAXN; } else if (maxN <= 0 && delta > 0 && threshold <= 0) { // only delta selection, for optimization change from multiple selection = SEL_DELTA; } else if (maxN <= 0 && delta <= 0 && threshold > 0) { // only threshold selection, for optimization change from multiple selection = SEL_THRESHOLD; } } int kind = MatchResult.getMatchResultKind(result); if (kind == MatchResult.UNDEF) { return null; } switch (kind) { case MatchResult.ARRAY: return selectArray((MatchResultArray) result); } return null; }