From 4ba42b9d12cc72ff716ba14829c576510016d709 Mon Sep 17 00:00:00 2001 From: Thomas Krause Date: Mon, 28 Sep 2015 18:31:04 +0200 Subject: [PATCH 001/233] update to salt simple and make the annis-interfaces project compile --- annis-interfaces/pom.xml | 16 +- .../src/main/java/annis/CommonHelper.java | 217 +++++------- .../java/annis/CoveredTextsCalculator.java | 38 +-- .../java/annis/libgui/media/TimeHelper.java | 46 +-- .../main/java/annis/model/AnnisConstants.java | 8 +- .../src/main/java/annis/model/AnnisNode.java | 74 ++--- .../java/annis/model/AnnotationGraph.java | 34 +- .../src/main/java/annis/model/Edge.java | 28 +- .../src/main/java/annis/model/Join.java | 16 +- .../src/main/java/annis/model/QueryNode.java | 50 +-- .../java/annis/model/RelannisEdgeFeature.java | 18 +- .../java/annis/model/RelannisNodeFeature.java | 6 +- .../java/annis/provider/GraphMLProvider.java | 12 +- .../provider/SDocumentGraphProvider.java | 221 +++++++++++++ .../annis/provider/SaltProjectProvider.java | 312 ------------------ .../java/annis/resolver/ResolverEntry.java | 2 +- .../main/java/annis/service/QueryService.java | 2 +- .../annis/service/objects/AnnisAttribute.java | 12 +- .../java/annis/utils/GraphMLConverter.java | 61 ++-- .../annis/utils/LegacyGraphConverter.java | 205 ++++++------ .../src/test/java/annis/CommonHelperTest.java | 42 --- 21 files changed, 615 insertions(+), 805 deletions(-) create mode 100644 annis-interfaces/src/main/java/annis/provider/SDocumentGraphProvider.java delete mode 100644 annis-interfaces/src/main/java/annis/provider/SaltProjectProvider.java diff --git a/annis-interfaces/pom.xml b/annis-interfaces/pom.xml index 778c2ae2c0..8a3f078b49 100644 --- a/annis-interfaces/pom.xml +++ b/annis-interfaces/pom.xml @@ -57,19 +57,9 @@ de.hu_berlin.german.korpling.saltnpepper - salt-saltCommon - 2.0.0 + salt-core + 3.0.0-SNAPSHOT bundle - - - org.apache.felix - javax.servlet - - - log4j - log4j - - compile @@ -79,7 +69,7 @@ 1.1.1 - org.apache.commons + commons-io commons-io 1.3.2 compile diff --git a/annis-interfaces/src/main/java/annis/CommonHelper.java b/annis-interfaces/src/main/java/annis/CommonHelper.java index e846e5d1d2..1d8629c74f 100644 --- a/annis-interfaces/src/main/java/annis/CommonHelper.java +++ b/annis-interfaces/src/main/java/annis/CommonHelper.java @@ -17,40 +17,34 @@ import annis.model.AnnisConstants; import annis.service.objects.Match; -import com.google.common.base.Charsets; import com.google.common.base.Splitter; -import de.hu_berlin.german.korpling.saltnpepper.salt.graph.Edge; -import de.hu_berlin.german.korpling.saltnpepper.salt.graph.GRAPH_TRAVERSE_TYPE; -import de.hu_berlin.german.korpling.saltnpepper.salt.graph.Label; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.SaltCommonFactory; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.SaltProject; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.sCorpusStructure.SCorpus; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.sCorpusStructure.SCorpusGraph; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.sCorpusStructure.SDocument; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.sDocumentStructure.SDataSourceSequence; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.sDocumentStructure.SDocumentGraph; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.sDocumentStructure.SOrderRelation; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.sDocumentStructure.STYPE_NAME; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.sDocumentStructure.STextualDS; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.sDocumentStructure.STextualRelation; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCommon.sDocumentStructure.SToken; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCore.SAnnotation; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCore.SFeature; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCore.SGraphTraverseHandler; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCore.SLayer; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCore.SNode; -import de.hu_berlin.german.korpling.saltnpepper.salt.saltCore.SRelation; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.EOFException; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; +import de.hu_berlin.u.saltnpepper.graph.Label; +import de.hu_berlin.u.saltnpepper.graph.Relation; +import de.hu_berlin.u.saltnpepper.salt.common.SCorpus; +import de.hu_berlin.u.saltnpepper.salt.common.SCorpusGraph; +import de.hu_berlin.u.saltnpepper.salt.common.SDocument; +import de.hu_berlin.u.saltnpepper.salt.common.SDocumentGraph; +import de.hu_berlin.u.saltnpepper.salt.common.SOrderRelation; +import de.hu_berlin.u.saltnpepper.salt.common.STextualDS; +import de.hu_berlin.u.saltnpepper.salt.common.STextualRelation; +import de.hu_berlin.u.saltnpepper.salt.common.SToken; +import de.hu_berlin.u.saltnpepper.salt.common.SaltProject; +import de.hu_berlin.u.saltnpepper.salt.core.GraphTraverseHandler; +import de.hu_berlin.u.saltnpepper.salt.core.SAnnotation; +import de.hu_berlin.u.saltnpepper.salt.core.SFeature; +import de.hu_berlin.u.saltnpepper.salt.core.SGraph.GRAPH_TRAVERSE_TYPE; +import de.hu_berlin.u.saltnpepper.salt.core.SLayer; +import de.hu_berlin.u.saltnpepper.salt.core.SNode; +import de.hu_berlin.u.saltnpepper.salt.core.SRelation; +import de.hu_berlin.u.saltnpepper.salt.util.DataSourceSequence; +import de.hu_berlin.u.saltnpepper.salt.util.SALT_TYPE; +import de.hu_berlin.u.saltnpepper.salt.util.SaltUtil; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.net.URLDecoder; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; @@ -62,11 +56,6 @@ import java.util.TreeSet; import java.util.UUID; import org.apache.commons.lang3.StringUtils; -import org.eclipse.emf.common.util.BasicEList; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.TreeIterator; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -142,19 +131,19 @@ public static List getSortedSegmentationNodes(String segName, if (segName == null) { // if no segmentation is given just return the sorted token list - token.addAll(graph.getSortedSTokenByText()); + token.addAll(graph.getSortedTokenByText()); } else { // get the very first node of the order relation chain Set startNodes = new LinkedHashSet(); - for (SNode n : graph.getSNodes()) + for (SNode n : graph.getNodes()) { SFeature feat - = n.getSFeature(AnnisConstants.ANNIS_NS, - AnnisConstants.FEAT_FIRST_NODE_SEGMENTATION_CHAIN); - if (feat != null && segName.equalsIgnoreCase(feat.getSValueSTEXT())) + = n.getFeature(SaltUtil.createQName(AnnisConstants.ANNIS_NS, + AnnisConstants.FEAT_FIRST_NODE_SEGMENTATION_CHAIN)); + if (feat != null && segName.equalsIgnoreCase(feat.getValue_STEXT())) { startNodes.add(n); } @@ -169,23 +158,24 @@ public static List getSortedSegmentationNodes(String segName, while (current != null) { token.add(current); - EList out = graph.getOutEdges(current.getSId()); + List> out = graph.getOutRelations(current. + getId()); current = null; if (out != null) { - for (Edge e : out) + for (Relation e : out) { if (e instanceof SOrderRelation) { - current = ((SOrderRelation) e).getSTarget(); - if (alreadyAdded.contains(current.getSId())) + current = ((SOrderRelation) e).getTarget(); + if (alreadyAdded.contains(current.getId())) { // abort if cycle detected current = null; } else { - alreadyAdded.add(current.getSId()); + alreadyAdded.add(current.getId()); } break; } @@ -204,9 +194,9 @@ public static Set getTokenAnnotationLevelSet(SDocumentGraph graph) if (graph != null) { - for (SToken n : graph.getSTokens()) + for (SToken n : graph.getTokens()) { - for (SAnnotation anno : n.getSAnnotations()) + for (SAnnotation anno : n.getAnnotations()) { result.add(anno.getQName()); } @@ -220,11 +210,11 @@ public static Set getTokenAnnotationLevelSet(SaltProject p) { Set result = new TreeSet(); - for (SCorpusGraph corpusGraphs : p.getSCorpusGraphs()) + for (SCorpusGraph corpusGraphs : p.getCorpusGraphs()) { - for (SDocument doc : corpusGraphs.getSDocuments()) + for (SDocument doc : corpusGraphs.getDocuments()) { - SDocumentGraph g = doc.getSDocumentGraph(); + SDocumentGraph g = doc.getDocumentGraph(); result.addAll(getTokenAnnotationLevelSet(g)); } } @@ -234,7 +224,7 @@ public static Set getTokenAnnotationLevelSet(SaltProject p) /** * Gets the spannend/covered text for a token. This will get all - * {@link STextualRelation} edges for a {@link SToken} from the + * {@link STextualRelation} relations for a {@link SToken} from the * {@link SDocumentGraph} and calculates the appropiate substring from the * {@link STextualDS}. * @@ -244,16 +234,16 @@ public static Set getTokenAnnotationLevelSet(SaltProject p) */ public static String getSpannedText(SToken tok) { - SDocumentGraph graph = tok.getSDocumentGraph(); + SDocumentGraph graph = tok.getGraph(); - EList edges = graph.getOutEdges(tok.getSId()); - for (Edge e : edges) + List> relations = graph.getOutRelations(tok.getId()); + for (SRelation e : relations) { if (e instanceof STextualRelation) { STextualRelation textRel = (STextualRelation) e; - return textRel.getSTextualDS().getSText().substring(textRel.getSStart(), - textRel.getSEnd()); + return textRel.getTarget().getText().substring(textRel.getStart(), + textRel.getEnd()); } } return ""; @@ -275,12 +265,12 @@ public static boolean checkSLayer(String layerName, SNode node) return false; } - EList sLayers = node.getSLayers(); + Set sLayers = node.getLayers(); if (sLayers != null) { for (SLayer l : sLayers) { - EList