diff --git a/build.sbt b/build.sbt index 9a2cb500..ba755de6 100644 --- a/build.sbt +++ b/build.sbt @@ -1,6 +1,6 @@ import sbt.Keys._ import Version._ -import com.typesafe.sbt.osgi.SbtOsgi._ +// import com.typesafe.sbt.osgi.SbtOsgi._ lazy val extra = http://scalanlp.org/ @@ -30,8 +30,7 @@ val VersionRegex = "v([0-9]+.[0-9]+.[0-9]+)-?(.*)?".r lazy val commonSettings = Seq( organization := "org.scalanlp", version := "0.4.4", - -/* + /* git.baseVersion := "0.4", // append -SNAPSHOT unless we're on a branch git.gitUncommittedChanges := false,//git.gitCurrentTags.value.isEmpty, @@ -45,16 +44,12 @@ lazy val commonSettings = Seq( } }, */ - scalaVersion := Version.scala, crossScalaVersions := Seq("2.12.1", "2.11.8"), libraryDependencies ++= Seq( Library.breeze, Library.breezeConfig, Library.mapdb, - Library.tikaParsers % "compile,optional", - Library.boilerpipe, - Library.nekohtml, Library.slf4jSimple, Library.commonsLang3, Library.jflex, @@ -64,13 +59,13 @@ lazy val commonSettings = Seq( ), scalacOptions ++= Seq("-deprecation", "-language:_", "-optimize"), javaOptions += "-Xmx6g", - javaOptions += "-Xrunhprof:cpu=samples,depth=12", + //javaOptions += "-Xrunhprof:cpu=samples,depth=12", fork := true, publishMavenStyle := true, pomExtra := extra, - publishTo <<= isSnapshot { (v: Boolean) => + publishTo := { val nexus = "https://oss.sonatype.org/" - if (v) + if (isSnapshot.value) Some("snapshots" at nexus + "content/repositories/snapshots") else Some("releases" at nexus + "service/local/staging/deploy/maven2") @@ -90,8 +85,11 @@ lazy val commonSettings = Seq( case Some((2, scalaMajor)) if scalaMajor >= 11 => Seq("org.scala-lang.modules" %% "scala-xml" % "1.0.6") case _ => Seq.empty }) - - ) ++ sbtjflex.SbtJFlexPlugin.jflexSettings ++ net.virtualvoid.sbt.graph.Plugin.graphSettings ++ + ) ++ sbtjflex.SbtJFlexPlugin.jflexSettings + // ++ net.virtualvoid.sbt.graph.Plugin.graphSettings + + // TODO rewrite in sbt 1.x syntax + /* ++ IndexedSeq ( mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) => { @@ -102,15 +100,12 @@ lazy val commonSettings = Seq( case x => old(x) } } -) - - - + )*/ lazy val epicCore = project - .in(file(".")) + .in(file("modules/core")) //.enablePlugins(GitVersioning) - .settings(commonSettings: _*) + .settings(commonSettings) .settings( name := "epic" //, @@ -118,3 +113,16 @@ lazy val epicCore = project //OsgiKeys.importPackage := Seq("org.apache.tika.*; resolution:=optional", "*"), //OsgiKeys.exportPackage := Seq("epic.*") ) + +lazy val epicHtml = project + .in(file("modules/html")) + .dependsOn(epicCore) + .settings( + commonSettings, + name := "epic-html", + libraryDependencies ++= Seq( + Library.tikaParsers, + Library.boilerpipe, + Library.nekohtml, + ) + ) diff --git a/src/main/flex/epic/preprocess/TreebankTokenizerImpl.flex b/modules/core/src/main/flex/epic/preprocess/TreebankTokenizerImpl.flex similarity index 100% rename from src/main/flex/epic/preprocess/TreebankTokenizerImpl.flex rename to modules/core/src/main/flex/epic/preprocess/TreebankTokenizerImpl.flex diff --git a/src/main/java/epic/util/Arrays.scala b/modules/core/src/main/java/epic/util/Arrays.scala similarity index 100% rename from src/main/java/epic/util/Arrays.scala rename to modules/core/src/main/java/epic/util/Arrays.scala diff --git a/src/main/resources/epic/features/bllip-clusters.gz b/modules/core/src/main/resources/epic/features/bllip-clusters.gz similarity index 100% rename from src/main/resources/epic/features/bllip-clusters.gz rename to modules/core/src/main/resources/epic/features/bllip-clusters.gz diff --git a/src/main/resources/epic/features/hierarchical-en-clusters.gz b/modules/core/src/main/resources/epic/features/hierarchical-en-clusters.gz similarity index 100% rename from src/main/resources/epic/features/hierarchical-en-clusters.gz rename to modules/core/src/main/resources/epic/features/hierarchical-en-clusters.gz diff --git a/src/main/resources/epic/parser/substates.full.txt b/modules/core/src/main/resources/epic/parser/substates.full.txt similarity index 100% rename from src/main/resources/epic/parser/substates.full.txt rename to modules/core/src/main/resources/epic/parser/substates.full.txt diff --git a/src/main/resources/epic/parser/substates.small.txt b/modules/core/src/main/resources/epic/parser/substates.small.txt similarity index 100% rename from src/main/resources/epic/parser/substates.small.txt rename to modules/core/src/main/resources/epic/parser/substates.small.txt diff --git a/src/main/resources/epic/parser/substates.txt b/modules/core/src/main/resources/epic/parser/substates.txt similarity index 100% rename from src/main/resources/epic/parser/substates.txt rename to modules/core/src/main/resources/epic/parser/substates.txt diff --git a/src/main/resources/epic/preprocess/abbrs.txt b/modules/core/src/main/resources/epic/preprocess/abbrs.txt similarity index 100% rename from src/main/resources/epic/preprocess/abbrs.txt rename to modules/core/src/main/resources/epic/preprocess/abbrs.txt diff --git a/src/main/resources/epic/preprocess/en-sent-segmenter.model.ser.gz b/modules/core/src/main/resources/epic/preprocess/en-sent-segmenter.model.ser.gz similarity index 100% rename from src/main/resources/epic/preprocess/en-sent-segmenter.model.ser.gz rename to modules/core/src/main/resources/epic/preprocess/en-sent-segmenter.model.ser.gz diff --git a/src/main/resources/log4j-test.xml b/modules/core/src/main/resources/log4j-test.xml similarity index 100% rename from src/main/resources/log4j-test.xml rename to modules/core/src/main/resources/log4j-test.xml diff --git a/src/main/resources/ner/en.lst b/modules/core/src/main/resources/ner/en.lst similarity index 100% rename from src/main/resources/ner/en.lst rename to modules/core/src/main/resources/ner/en.lst diff --git a/src/main/resources/smallbank/dev b/modules/core/src/main/resources/smallbank/dev similarity index 100% rename from src/main/resources/smallbank/dev rename to modules/core/src/main/resources/smallbank/dev diff --git a/src/main/resources/smallbank/test b/modules/core/src/main/resources/smallbank/test similarity index 100% rename from src/main/resources/smallbank/test rename to modules/core/src/main/resources/smallbank/test diff --git a/src/main/resources/smallbank/train b/modules/core/src/main/resources/smallbank/train similarity index 100% rename from src/main/resources/smallbank/train rename to modules/core/src/main/resources/smallbank/train diff --git a/src/main/scala/epic/constraints/CachedChartConstraintsFactory.scala b/modules/core/src/main/scala/epic/constraints/CachedChartConstraintsFactory.scala similarity index 100% rename from src/main/scala/epic/constraints/CachedChartConstraintsFactory.scala rename to modules/core/src/main/scala/epic/constraints/CachedChartConstraintsFactory.scala diff --git a/src/main/scala/epic/constraints/CachedLabeledSpanConstraintsFactory.scala b/modules/core/src/main/scala/epic/constraints/CachedLabeledSpanConstraintsFactory.scala similarity index 100% rename from src/main/scala/epic/constraints/CachedLabeledSpanConstraintsFactory.scala rename to modules/core/src/main/scala/epic/constraints/CachedLabeledSpanConstraintsFactory.scala diff --git a/src/main/scala/epic/constraints/CachedSpanConstraintsFactory.scala b/modules/core/src/main/scala/epic/constraints/CachedSpanConstraintsFactory.scala similarity index 100% rename from src/main/scala/epic/constraints/CachedSpanConstraintsFactory.scala rename to modules/core/src/main/scala/epic/constraints/CachedSpanConstraintsFactory.scala diff --git a/src/main/scala/epic/constraints/ChartConstraints.scala b/modules/core/src/main/scala/epic/constraints/ChartConstraints.scala similarity index 100% rename from src/main/scala/epic/constraints/ChartConstraints.scala rename to modules/core/src/main/scala/epic/constraints/ChartConstraints.scala diff --git a/src/main/scala/epic/constraints/LabeledSpanConstraints.scala b/modules/core/src/main/scala/epic/constraints/LabeledSpanConstraints.scala similarity index 100% rename from src/main/scala/epic/constraints/LabeledSpanConstraints.scala rename to modules/core/src/main/scala/epic/constraints/LabeledSpanConstraints.scala diff --git a/src/main/scala/epic/constraints/LongSpanConstraints.scala b/modules/core/src/main/scala/epic/constraints/LongSpanConstraints.scala similarity index 100% rename from src/main/scala/epic/constraints/LongSpanConstraints.scala rename to modules/core/src/main/scala/epic/constraints/LongSpanConstraints.scala diff --git a/src/main/scala/epic/constraints/SpanConstraints.scala b/modules/core/src/main/scala/epic/constraints/SpanConstraints.scala similarity index 100% rename from src/main/scala/epic/constraints/SpanConstraints.scala rename to modules/core/src/main/scala/epic/constraints/SpanConstraints.scala diff --git a/src/main/scala/epic/constraints/TagConstraints.scala b/modules/core/src/main/scala/epic/constraints/TagConstraints.scala similarity index 100% rename from src/main/scala/epic/constraints/TagConstraints.scala rename to modules/core/src/main/scala/epic/constraints/TagConstraints.scala diff --git a/src/main/scala/epic/corpora/CONLLSequenceReader.scala b/modules/core/src/main/scala/epic/corpora/CONLLSequenceReader.scala similarity index 100% rename from src/main/scala/epic/corpora/CONLLSequenceReader.scala rename to modules/core/src/main/scala/epic/corpora/CONLLSequenceReader.scala diff --git a/src/main/scala/epic/corpora/MascUtil.scala b/modules/core/src/main/scala/epic/corpora/MascUtil.scala similarity index 100% rename from src/main/scala/epic/corpora/MascUtil.scala rename to modules/core/src/main/scala/epic/corpora/MascUtil.scala diff --git a/src/main/scala/epic/dense/AdadeltaGradientDescentDVD.scala b/modules/core/src/main/scala/epic/dense/AdadeltaGradientDescentDVD.scala similarity index 100% rename from src/main/scala/epic/dense/AdadeltaGradientDescentDVD.scala rename to modules/core/src/main/scala/epic/dense/AdadeltaGradientDescentDVD.scala diff --git a/src/main/scala/epic/dense/AffineOutputTransform.scala b/modules/core/src/main/scala/epic/dense/AffineOutputTransform.scala similarity index 100% rename from src/main/scala/epic/dense/AffineOutputTransform.scala rename to modules/core/src/main/scala/epic/dense/AffineOutputTransform.scala diff --git a/src/main/scala/epic/dense/AffineTransform.scala b/modules/core/src/main/scala/epic/dense/AffineTransform.scala similarity index 100% rename from src/main/scala/epic/dense/AffineTransform.scala rename to modules/core/src/main/scala/epic/dense/AffineTransform.scala diff --git a/src/main/scala/epic/dense/BatchNormalizationTransform.scala b/modules/core/src/main/scala/epic/dense/BatchNormalizationTransform.scala similarity index 100% rename from src/main/scala/epic/dense/BatchNormalizationTransform.scala rename to modules/core/src/main/scala/epic/dense/BatchNormalizationTransform.scala diff --git a/src/main/scala/epic/dense/CachingLookupAndAffineTransformDense.scala b/modules/core/src/main/scala/epic/dense/CachingLookupAndAffineTransformDense.scala similarity index 100% rename from src/main/scala/epic/dense/CachingLookupAndAffineTransformDense.scala rename to modules/core/src/main/scala/epic/dense/CachingLookupAndAffineTransformDense.scala diff --git a/src/main/scala/epic/dense/CachingLookupTransform.scala b/modules/core/src/main/scala/epic/dense/CachingLookupTransform.scala similarity index 100% rename from src/main/scala/epic/dense/CachingLookupTransform.scala rename to modules/core/src/main/scala/epic/dense/CachingLookupTransform.scala diff --git a/src/main/scala/epic/dense/EmbeddingsTransform.scala b/modules/core/src/main/scala/epic/dense/EmbeddingsTransform.scala similarity index 100% rename from src/main/scala/epic/dense/EmbeddingsTransform.scala rename to modules/core/src/main/scala/epic/dense/EmbeddingsTransform.scala diff --git a/src/main/scala/epic/dense/IdentityTransform.scala b/modules/core/src/main/scala/epic/dense/IdentityTransform.scala similarity index 100% rename from src/main/scala/epic/dense/IdentityTransform.scala rename to modules/core/src/main/scala/epic/dense/IdentityTransform.scala diff --git a/src/main/scala/epic/dense/LowRankQuadraticTransform.scala b/modules/core/src/main/scala/epic/dense/LowRankQuadraticTransform.scala similarity index 100% rename from src/main/scala/epic/dense/LowRankQuadraticTransform.scala rename to modules/core/src/main/scala/epic/dense/LowRankQuadraticTransform.scala diff --git a/src/main/scala/epic/dense/NonlinearTransform.scala b/modules/core/src/main/scala/epic/dense/NonlinearTransform.scala similarity index 100% rename from src/main/scala/epic/dense/NonlinearTransform.scala rename to modules/core/src/main/scala/epic/dense/NonlinearTransform.scala diff --git a/src/main/scala/epic/dense/OutputEmbeddingTransform.scala b/modules/core/src/main/scala/epic/dense/OutputEmbeddingTransform.scala similarity index 100% rename from src/main/scala/epic/dense/OutputEmbeddingTransform.scala rename to modules/core/src/main/scala/epic/dense/OutputEmbeddingTransform.scala diff --git a/src/main/scala/epic/dense/OutputTransform.scala b/modules/core/src/main/scala/epic/dense/OutputTransform.scala similarity index 100% rename from src/main/scala/epic/dense/OutputTransform.scala rename to modules/core/src/main/scala/epic/dense/OutputTransform.scala diff --git a/src/main/scala/epic/dense/TanhTransform.scala b/modules/core/src/main/scala/epic/dense/TanhTransform.scala similarity index 100% rename from src/main/scala/epic/dense/TanhTransform.scala rename to modules/core/src/main/scala/epic/dense/TanhTransform.scala diff --git a/src/main/scala/epic/dense/Transform.scala b/modules/core/src/main/scala/epic/dense/Transform.scala similarity index 100% rename from src/main/scala/epic/dense/Transform.scala rename to modules/core/src/main/scala/epic/dense/Transform.scala diff --git a/src/main/scala/epic/dense/Word2Vec.scala b/modules/core/src/main/scala/epic/dense/Word2Vec.scala similarity index 100% rename from src/main/scala/epic/dense/Word2Vec.scala rename to modules/core/src/main/scala/epic/dense/Word2Vec.scala diff --git a/src/main/scala/epic/dense/Word2VecSurfaceFeaturizer.scala b/modules/core/src/main/scala/epic/dense/Word2VecSurfaceFeaturizer.scala similarity index 100% rename from src/main/scala/epic/dense/Word2VecSurfaceFeaturizer.scala rename to modules/core/src/main/scala/epic/dense/Word2VecSurfaceFeaturizer.scala diff --git a/src/main/scala/epic/dense/Word2VecUtils.java b/modules/core/src/main/scala/epic/dense/Word2VecUtils.java similarity index 100% rename from src/main/scala/epic/dense/Word2VecUtils.java rename to modules/core/src/main/scala/epic/dense/Word2VecUtils.java diff --git a/src/main/scala/epic/features/BilexicalFeaturizer.scala b/modules/core/src/main/scala/epic/features/BilexicalFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/BilexicalFeaturizer.scala rename to modules/core/src/main/scala/epic/features/BilexicalFeaturizer.scala diff --git a/src/main/scala/epic/features/BrownClusters.scala b/modules/core/src/main/scala/epic/features/BrownClusters.scala similarity index 100% rename from src/main/scala/epic/features/BrownClusters.scala rename to modules/core/src/main/scala/epic/features/BrownClusters.scala diff --git a/src/main/scala/epic/features/ContextFeaturizer.scala b/modules/core/src/main/scala/epic/features/ContextFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/ContextFeaturizer.scala rename to modules/core/src/main/scala/epic/features/ContextFeaturizer.scala diff --git a/src/main/scala/epic/features/ContextSurfaceFeaturizer.scala b/modules/core/src/main/scala/epic/features/ContextSurfaceFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/ContextSurfaceFeaturizer.scala rename to modules/core/src/main/scala/epic/features/ContextSurfaceFeaturizer.scala diff --git a/src/main/scala/epic/features/ContextWordFeaturizer.scala b/modules/core/src/main/scala/epic/features/ContextWordFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/ContextWordFeaturizer.scala rename to modules/core/src/main/scala/epic/features/ContextWordFeaturizer.scala diff --git a/src/main/scala/epic/features/CrossProductIndex.scala b/modules/core/src/main/scala/epic/features/CrossProductIndex.scala similarity index 100% rename from src/main/scala/epic/features/CrossProductIndex.scala rename to modules/core/src/main/scala/epic/features/CrossProductIndex.scala diff --git a/src/main/scala/epic/features/DistanceBinner.scala b/modules/core/src/main/scala/epic/features/DistanceBinner.scala similarity index 100% rename from src/main/scala/epic/features/DistanceBinner.scala rename to modules/core/src/main/scala/epic/features/DistanceBinner.scala diff --git a/src/main/scala/epic/features/EnglishWordClassGenerator.scala b/modules/core/src/main/scala/epic/features/EnglishWordClassGenerator.scala similarity index 100% rename from src/main/scala/epic/features/EnglishWordClassGenerator.scala rename to modules/core/src/main/scala/epic/features/EnglishWordClassGenerator.scala diff --git a/src/main/scala/epic/features/HackyHeadFinder.scala b/modules/core/src/main/scala/epic/features/HackyHeadFinder.scala similarity index 100% rename from src/main/scala/epic/features/HackyHeadFinder.scala rename to modules/core/src/main/scala/epic/features/HackyHeadFinder.scala diff --git a/src/main/scala/epic/features/HackyHeadFinderTest.scala b/modules/core/src/main/scala/epic/features/HackyHeadFinderTest.scala similarity index 100% rename from src/main/scala/epic/features/HackyHeadFinderTest.scala rename to modules/core/src/main/scala/epic/features/HackyHeadFinderTest.scala diff --git a/src/main/scala/epic/features/HackyLexicalProductionFeaturizer.scala b/modules/core/src/main/scala/epic/features/HackyLexicalProductionFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/HackyLexicalProductionFeaturizer.scala rename to modules/core/src/main/scala/epic/features/HackyLexicalProductionFeaturizer.scala diff --git a/src/main/scala/epic/features/HackyLexicalSplitFeaturizer.scala b/modules/core/src/main/scala/epic/features/HackyLexicalSplitFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/HackyLexicalSplitFeaturizer.scala rename to modules/core/src/main/scala/epic/features/HackyLexicalSplitFeaturizer.scala diff --git a/src/main/scala/epic/features/HashExtendingIndex.scala b/modules/core/src/main/scala/epic/features/HashExtendingIndex.scala similarity index 100% rename from src/main/scala/epic/features/HashExtendingIndex.scala rename to modules/core/src/main/scala/epic/features/HashExtendingIndex.scala diff --git a/src/main/scala/epic/features/HashFeature.scala b/modules/core/src/main/scala/epic/features/HashFeature.scala similarity index 100% rename from src/main/scala/epic/features/HashFeature.scala rename to modules/core/src/main/scala/epic/features/HashFeature.scala diff --git a/src/main/scala/epic/features/HierarchicalClusters.scala b/modules/core/src/main/scala/epic/features/HierarchicalClusters.scala similarity index 100% rename from src/main/scala/epic/features/HierarchicalClusters.scala rename to modules/core/src/main/scala/epic/features/HierarchicalClusters.scala diff --git a/src/main/scala/epic/features/IdentityWordFeaturizer.scala b/modules/core/src/main/scala/epic/features/IdentityWordFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/IdentityWordFeaturizer.scala rename to modules/core/src/main/scala/epic/features/IdentityWordFeaturizer.scala diff --git a/src/main/scala/epic/features/IndexedSurfaceFeaturizer.scala b/modules/core/src/main/scala/epic/features/IndexedSurfaceFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/IndexedSurfaceFeaturizer.scala rename to modules/core/src/main/scala/epic/features/IndexedSurfaceFeaturizer.scala diff --git a/src/main/scala/epic/features/IndexedWordAnchoring.scala b/modules/core/src/main/scala/epic/features/IndexedWordAnchoring.scala similarity index 100% rename from src/main/scala/epic/features/IndexedWordAnchoring.scala rename to modules/core/src/main/scala/epic/features/IndexedWordAnchoring.scala diff --git a/src/main/scala/epic/features/IndexedWordFeaturizer.scala b/modules/core/src/main/scala/epic/features/IndexedWordFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/IndexedWordFeaturizer.scala rename to modules/core/src/main/scala/epic/features/IndexedWordFeaturizer.scala diff --git a/src/main/scala/epic/features/IndicatorFeature.scala b/modules/core/src/main/scala/epic/features/IndicatorFeature.scala similarity index 100% rename from src/main/scala/epic/features/IndicatorFeature.scala rename to modules/core/src/main/scala/epic/features/IndicatorFeature.scala diff --git a/src/main/scala/epic/features/LabelFeature.scala b/modules/core/src/main/scala/epic/features/LabelFeature.scala similarity index 100% rename from src/main/scala/epic/features/LabelFeature.scala rename to modules/core/src/main/scala/epic/features/LabelFeature.scala diff --git a/src/main/scala/epic/features/LongestFrequentSuffixFeaturizer.scala b/modules/core/src/main/scala/epic/features/LongestFrequentSuffixFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/LongestFrequentSuffixFeaturizer.scala rename to modules/core/src/main/scala/epic/features/LongestFrequentSuffixFeaturizer.scala diff --git a/src/main/scala/epic/features/MinimalWordFeaturizer.scala b/modules/core/src/main/scala/epic/features/MinimalWordFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/MinimalWordFeaturizer.scala rename to modules/core/src/main/scala/epic/features/MinimalWordFeaturizer.scala diff --git a/src/main/scala/epic/features/MorphFeaturizer.scala b/modules/core/src/main/scala/epic/features/MorphFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/MorphFeaturizer.scala rename to modules/core/src/main/scala/epic/features/MorphFeaturizer.scala diff --git a/src/main/scala/epic/features/MultiSurfaceFeaturizer.scala b/modules/core/src/main/scala/epic/features/MultiSurfaceFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/MultiSurfaceFeaturizer.scala rename to modules/core/src/main/scala/epic/features/MultiSurfaceFeaturizer.scala diff --git a/src/main/scala/epic/features/MultiWordFeaturizer.scala b/modules/core/src/main/scala/epic/features/MultiWordFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/MultiWordFeaturizer.scala rename to modules/core/src/main/scala/epic/features/MultiWordFeaturizer.scala diff --git a/src/main/scala/epic/features/NGramSpanFeaturizer.scala b/modules/core/src/main/scala/epic/features/NGramSpanFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/NGramSpanFeaturizer.scala rename to modules/core/src/main/scala/epic/features/NGramSpanFeaturizer.scala diff --git a/src/main/scala/epic/features/NGramSurfaceFeaturizer.scala b/modules/core/src/main/scala/epic/features/NGramSurfaceFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/NGramSurfaceFeaturizer.scala rename to modules/core/src/main/scala/epic/features/NGramSurfaceFeaturizer.scala diff --git a/src/main/scala/epic/features/NonRedundantIndexBuilder.scala b/modules/core/src/main/scala/epic/features/NonRedundantIndexBuilder.scala similarity index 100% rename from src/main/scala/epic/features/NonRedundantIndexBuilder.scala rename to modules/core/src/main/scala/epic/features/NonRedundantIndexBuilder.scala diff --git a/src/main/scala/epic/features/NormalIndexBuilder.scala b/modules/core/src/main/scala/epic/features/NormalIndexBuilder.scala similarity index 100% rename from src/main/scala/epic/features/NormalIndexBuilder.scala rename to modules/core/src/main/scala/epic/features/NormalIndexBuilder.scala diff --git a/src/main/scala/epic/features/OffsetWordFeaturizer.scala b/modules/core/src/main/scala/epic/features/OffsetWordFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/OffsetWordFeaturizer.scala rename to modules/core/src/main/scala/epic/features/OffsetWordFeaturizer.scala diff --git a/src/main/scala/epic/features/PorterStemmer.scala b/modules/core/src/main/scala/epic/features/PorterStemmer.scala similarity index 100% rename from src/main/scala/epic/features/PorterStemmer.scala rename to modules/core/src/main/scala/epic/features/PorterStemmer.scala diff --git a/src/main/scala/epic/features/ProductSurfaceFeaturizer.scala b/modules/core/src/main/scala/epic/features/ProductSurfaceFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/ProductSurfaceFeaturizer.scala rename to modules/core/src/main/scala/epic/features/ProductSurfaceFeaturizer.scala diff --git a/src/main/scala/epic/features/ProductWordFeaturizer.scala b/modules/core/src/main/scala/epic/features/ProductWordFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/ProductWordFeaturizer.scala rename to modules/core/src/main/scala/epic/features/ProductWordFeaturizer.scala diff --git a/src/main/scala/epic/features/RuleAndSpansFeaturizer.scala b/modules/core/src/main/scala/epic/features/RuleAndSpansFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/RuleAndSpansFeaturizer.scala rename to modules/core/src/main/scala/epic/features/RuleAndSpansFeaturizer.scala diff --git a/src/main/scala/epic/features/SegmentedIndex.scala b/modules/core/src/main/scala/epic/features/SegmentedIndex.scala similarity index 100% rename from src/main/scala/epic/features/SegmentedIndex.scala rename to modules/core/src/main/scala/epic/features/SegmentedIndex.scala diff --git a/src/main/scala/epic/features/SentencePropertiesFeaturizer.scala b/modules/core/src/main/scala/epic/features/SentencePropertiesFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/SentencePropertiesFeaturizer.scala rename to modules/core/src/main/scala/epic/features/SentencePropertiesFeaturizer.scala diff --git a/src/main/scala/epic/features/SpanLengthFeaturizer.scala b/modules/core/src/main/scala/epic/features/SpanLengthFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/SpanLengthFeaturizer.scala rename to modules/core/src/main/scala/epic/features/SpanLengthFeaturizer.scala diff --git a/src/main/scala/epic/features/SpanShapeGenerator.scala b/modules/core/src/main/scala/epic/features/SpanShapeGenerator.scala similarity index 100% rename from src/main/scala/epic/features/SpanShapeGenerator.scala rename to modules/core/src/main/scala/epic/features/SpanShapeGenerator.scala diff --git a/src/main/scala/epic/features/SplitSpanFeaturizer.scala b/modules/core/src/main/scala/epic/features/SplitSpanFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/SplitSpanFeaturizer.scala rename to modules/core/src/main/scala/epic/features/SplitSpanFeaturizer.scala diff --git a/src/main/scala/epic/features/StandardSurfaceFeaturizer.scala b/modules/core/src/main/scala/epic/features/StandardSurfaceFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/StandardSurfaceFeaturizer.scala rename to modules/core/src/main/scala/epic/features/StandardSurfaceFeaturizer.scala diff --git a/src/main/scala/epic/features/SurfaceFeatureAnchoring.scala b/modules/core/src/main/scala/epic/features/SurfaceFeatureAnchoring.scala similarity index 100% rename from src/main/scala/epic/features/SurfaceFeatureAnchoring.scala rename to modules/core/src/main/scala/epic/features/SurfaceFeatureAnchoring.scala diff --git a/src/main/scala/epic/features/SurfaceFeaturizer.scala b/modules/core/src/main/scala/epic/features/SurfaceFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/SurfaceFeaturizer.scala rename to modules/core/src/main/scala/epic/features/SurfaceFeaturizer.scala diff --git a/src/main/scala/epic/features/TagDictionaryFeaturizer.scala b/modules/core/src/main/scala/epic/features/TagDictionaryFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/TagDictionaryFeaturizer.scala rename to modules/core/src/main/scala/epic/features/TagDictionaryFeaturizer.scala diff --git a/src/main/scala/epic/features/TagSpanShapeFeaturizer.scala b/modules/core/src/main/scala/epic/features/TagSpanShapeFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/TagSpanShapeFeaturizer.scala rename to modules/core/src/main/scala/epic/features/TagSpanShapeFeaturizer.scala diff --git a/src/main/scala/epic/features/TransformedWordFeaturizer.scala b/modules/core/src/main/scala/epic/features/TransformedWordFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/TransformedWordFeaturizer.scala rename to modules/core/src/main/scala/epic/features/TransformedWordFeaturizer.scala diff --git a/src/main/scala/epic/features/WordClassFeaturizer.scala b/modules/core/src/main/scala/epic/features/WordClassFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/WordClassFeaturizer.scala rename to modules/core/src/main/scala/epic/features/WordClassFeaturizer.scala diff --git a/src/main/scala/epic/features/WordFeatureAnchoring.scala b/modules/core/src/main/scala/epic/features/WordFeatureAnchoring.scala similarity index 100% rename from src/main/scala/epic/features/WordFeatureAnchoring.scala rename to modules/core/src/main/scala/epic/features/WordFeatureAnchoring.scala diff --git a/src/main/scala/epic/features/WordFeaturizer.scala b/modules/core/src/main/scala/epic/features/WordFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/WordFeaturizer.scala rename to modules/core/src/main/scala/epic/features/WordFeaturizer.scala diff --git a/src/main/scala/epic/features/WordPrefixFeaturizer.scala b/modules/core/src/main/scala/epic/features/WordPrefixFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/WordPrefixFeaturizer.scala rename to modules/core/src/main/scala/epic/features/WordPrefixFeaturizer.scala diff --git a/src/main/scala/epic/features/WordPropertyFeaturizer.scala b/modules/core/src/main/scala/epic/features/WordPropertyFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/WordPropertyFeaturizer.scala rename to modules/core/src/main/scala/epic/features/WordPropertyFeaturizer.scala diff --git a/src/main/scala/epic/features/WordShapeFeaturizer.scala b/modules/core/src/main/scala/epic/features/WordShapeFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/WordShapeFeaturizer.scala rename to modules/core/src/main/scala/epic/features/WordShapeFeaturizer.scala diff --git a/src/main/scala/epic/features/WordShapeGenerator.scala b/modules/core/src/main/scala/epic/features/WordShapeGenerator.scala similarity index 100% rename from src/main/scala/epic/features/WordShapeGenerator.scala rename to modules/core/src/main/scala/epic/features/WordShapeGenerator.scala diff --git a/src/main/scala/epic/features/WordSuffixFeaturizer.scala b/modules/core/src/main/scala/epic/features/WordSuffixFeaturizer.scala similarity index 100% rename from src/main/scala/epic/features/WordSuffixFeaturizer.scala rename to modules/core/src/main/scala/epic/features/WordSuffixFeaturizer.scala diff --git a/src/main/scala/epic/features/package.scala b/modules/core/src/main/scala/epic/features/package.scala similarity index 100% rename from src/main/scala/epic/features/package.scala rename to modules/core/src/main/scala/epic/features/package.scala diff --git a/src/main/scala/epic/framework/AnnotatingInference.scala b/modules/core/src/main/scala/epic/framework/AnnotatingInference.scala similarity index 100% rename from src/main/scala/epic/framework/AnnotatingInference.scala rename to modules/core/src/main/scala/epic/framework/AnnotatingInference.scala diff --git a/src/main/scala/epic/framework/EPInference.scala b/modules/core/src/main/scala/epic/framework/EPInference.scala similarity index 100% rename from src/main/scala/epic/framework/EPInference.scala rename to modules/core/src/main/scala/epic/framework/EPInference.scala diff --git a/src/main/scala/epic/framework/EPModel.scala b/modules/core/src/main/scala/epic/framework/EPModel.scala similarity index 100% rename from src/main/scala/epic/framework/EPModel.scala rename to modules/core/src/main/scala/epic/framework/EPModel.scala diff --git a/src/main/scala/epic/framework/EvaluableModel.scala b/modules/core/src/main/scala/epic/framework/EvaluableModel.scala similarity index 100% rename from src/main/scala/epic/framework/EvaluableModel.scala rename to modules/core/src/main/scala/epic/framework/EvaluableModel.scala diff --git a/src/main/scala/epic/framework/EvaluationResult.scala b/modules/core/src/main/scala/epic/framework/EvaluationResult.scala similarity index 100% rename from src/main/scala/epic/framework/EvaluationResult.scala rename to modules/core/src/main/scala/epic/framework/EvaluationResult.scala diff --git a/src/main/scala/epic/framework/Example.scala b/modules/core/src/main/scala/epic/framework/Example.scala similarity index 100% rename from src/main/scala/epic/framework/Example.scala rename to modules/core/src/main/scala/epic/framework/Example.scala diff --git a/src/main/scala/epic/framework/ExpectedCounts.scala b/modules/core/src/main/scala/epic/framework/ExpectedCounts.scala similarity index 100% rename from src/main/scala/epic/framework/ExpectedCounts.scala rename to modules/core/src/main/scala/epic/framework/ExpectedCounts.scala diff --git a/src/main/scala/epic/framework/Feature.scala b/modules/core/src/main/scala/epic/framework/Feature.scala similarity index 100% rename from src/main/scala/epic/framework/Feature.scala rename to modules/core/src/main/scala/epic/framework/Feature.scala diff --git a/src/main/scala/epic/framework/Inference.scala b/modules/core/src/main/scala/epic/framework/Inference.scala similarity index 100% rename from src/main/scala/epic/framework/Inference.scala rename to modules/core/src/main/scala/epic/framework/Inference.scala diff --git a/src/main/scala/epic/framework/LossAugmentation.scala b/modules/core/src/main/scala/epic/framework/LossAugmentation.scala similarity index 100% rename from src/main/scala/epic/framework/LossAugmentation.scala rename to modules/core/src/main/scala/epic/framework/LossAugmentation.scala diff --git a/src/main/scala/epic/framework/Marginal.scala b/modules/core/src/main/scala/epic/framework/Marginal.scala similarity index 100% rename from src/main/scala/epic/framework/Marginal.scala rename to modules/core/src/main/scala/epic/framework/Marginal.scala diff --git a/src/main/scala/epic/framework/Model.scala b/modules/core/src/main/scala/epic/framework/Model.scala similarity index 100% rename from src/main/scala/epic/framework/Model.scala rename to modules/core/src/main/scala/epic/framework/Model.scala diff --git a/src/main/scala/epic/framework/ModelFactory.scala b/modules/core/src/main/scala/epic/framework/ModelFactory.scala similarity index 100% rename from src/main/scala/epic/framework/ModelFactory.scala rename to modules/core/src/main/scala/epic/framework/ModelFactory.scala diff --git a/src/main/scala/epic/framework/ModelObjective.scala b/modules/core/src/main/scala/epic/framework/ModelObjective.scala similarity index 100% rename from src/main/scala/epic/framework/ModelObjective.scala rename to modules/core/src/main/scala/epic/framework/ModelObjective.scala diff --git a/src/main/scala/epic/framework/OneBestInferenceAdaptor.scala b/modules/core/src/main/scala/epic/framework/OneBestInferenceAdaptor.scala similarity index 100% rename from src/main/scala/epic/framework/OneBestInferenceAdaptor.scala rename to modules/core/src/main/scala/epic/framework/OneBestInferenceAdaptor.scala diff --git a/src/main/scala/epic/framework/StandardExpectedCounts.scala b/modules/core/src/main/scala/epic/framework/StandardExpectedCounts.scala similarity index 100% rename from src/main/scala/epic/framework/StandardExpectedCounts.scala rename to modules/core/src/main/scala/epic/framework/StandardExpectedCounts.scala diff --git a/src/main/scala/epic/framework/StructSVM.scala b/modules/core/src/main/scala/epic/framework/StructSVM.scala similarity index 100% rename from src/main/scala/epic/framework/StructSVM.scala rename to modules/core/src/main/scala/epic/framework/StructSVM.scala diff --git a/src/main/scala/epic/framework/StructuredPerceptron.scala b/modules/core/src/main/scala/epic/framework/StructuredPerceptron.scala similarity index 100% rename from src/main/scala/epic/framework/StructuredPerceptron.scala rename to modules/core/src/main/scala/epic/framework/StructuredPerceptron.scala diff --git a/src/main/scala/epic/inference/ExpectationPropagation.scala b/modules/core/src/main/scala/epic/inference/ExpectationPropagation.scala similarity index 100% rename from src/main/scala/epic/inference/ExpectationPropagation.scala rename to modules/core/src/main/scala/epic/inference/ExpectationPropagation.scala diff --git a/src/main/scala/epic/inference/Factor.scala b/modules/core/src/main/scala/epic/inference/Factor.scala similarity index 100% rename from src/main/scala/epic/inference/Factor.scala rename to modules/core/src/main/scala/epic/inference/Factor.scala diff --git a/src/main/scala/epic/lexicon/Lexicon.scala b/modules/core/src/main/scala/epic/lexicon/Lexicon.scala similarity index 100% rename from src/main/scala/epic/lexicon/Lexicon.scala rename to modules/core/src/main/scala/epic/lexicon/Lexicon.scala diff --git a/src/main/scala/epic/lexicon/SignatureLexicon.scala b/modules/core/src/main/scala/epic/lexicon/SignatureLexicon.scala similarity index 100% rename from src/main/scala/epic/lexicon/SignatureLexicon.scala rename to modules/core/src/main/scala/epic/lexicon/SignatureLexicon.scala diff --git a/src/main/scala/epic/lexicon/SignatureTagScorer.scala b/modules/core/src/main/scala/epic/lexicon/SignatureTagScorer.scala similarity index 100% rename from src/main/scala/epic/lexicon/SignatureTagScorer.scala rename to modules/core/src/main/scala/epic/lexicon/SignatureTagScorer.scala diff --git a/src/main/scala/epic/lexicon/SimpleLexicon.scala b/modules/core/src/main/scala/epic/lexicon/SimpleLexicon.scala similarity index 100% rename from src/main/scala/epic/lexicon/SimpleLexicon.scala rename to modules/core/src/main/scala/epic/lexicon/SimpleLexicon.scala diff --git a/src/main/scala/epic/lexicon/TagScorer.scala b/modules/core/src/main/scala/epic/lexicon/TagScorer.scala similarity index 100% rename from src/main/scala/epic/lexicon/TagScorer.scala rename to modules/core/src/main/scala/epic/lexicon/TagScorer.scala diff --git a/src/main/scala/epic/lexicon/UnsmoothedLexicon.scala b/modules/core/src/main/scala/epic/lexicon/UnsmoothedLexicon.scala similarity index 100% rename from src/main/scala/epic/lexicon/UnsmoothedLexicon.scala rename to modules/core/src/main/scala/epic/lexicon/UnsmoothedLexicon.scala diff --git a/src/main/scala/epic/logo/ArgmaxInferencer.scala b/modules/core/src/main/scala/epic/logo/ArgmaxInferencer.scala similarity index 100% rename from src/main/scala/epic/logo/ArgmaxInferencer.scala rename to modules/core/src/main/scala/epic/logo/ArgmaxInferencer.scala diff --git a/src/main/scala/epic/logo/CompoundIterationCallback.scala b/modules/core/src/main/scala/epic/logo/CompoundIterationCallback.scala similarity index 100% rename from src/main/scala/epic/logo/CompoundIterationCallback.scala rename to modules/core/src/main/scala/epic/logo/CompoundIterationCallback.scala diff --git a/src/main/scala/epic/logo/ConvergenceChecker.scala b/modules/core/src/main/scala/epic/logo/ConvergenceChecker.scala similarity index 100% rename from src/main/scala/epic/logo/ConvergenceChecker.scala rename to modules/core/src/main/scala/epic/logo/ConvergenceChecker.scala diff --git a/src/main/scala/epic/logo/Decoder.scala b/modules/core/src/main/scala/epic/logo/Decoder.scala similarity index 100% rename from src/main/scala/epic/logo/Decoder.scala rename to modules/core/src/main/scala/epic/logo/Decoder.scala diff --git a/src/main/scala/epic/logo/DualVariableHolder.scala b/modules/core/src/main/scala/epic/logo/DualVariableHolder.scala similarity index 100% rename from src/main/scala/epic/logo/DualVariableHolder.scala rename to modules/core/src/main/scala/epic/logo/DualVariableHolder.scala diff --git a/src/main/scala/epic/logo/ExpectationInferencer.scala b/modules/core/src/main/scala/epic/logo/ExpectationInferencer.scala similarity index 100% rename from src/main/scala/epic/logo/ExpectationInferencer.scala rename to modules/core/src/main/scala/epic/logo/ExpectationInferencer.scala diff --git a/src/main/scala/epic/logo/FixedIterationConvergenceChecker.scala b/modules/core/src/main/scala/epic/logo/FixedIterationConvergenceChecker.scala similarity index 100% rename from src/main/scala/epic/logo/FixedIterationConvergenceChecker.scala rename to modules/core/src/main/scala/epic/logo/FixedIterationConvergenceChecker.scala diff --git a/src/main/scala/epic/logo/FixedStepSizeUpdater.scala b/modules/core/src/main/scala/epic/logo/FixedStepSizeUpdater.scala similarity index 100% rename from src/main/scala/epic/logo/FixedStepSizeUpdater.scala rename to modules/core/src/main/scala/epic/logo/FixedStepSizeUpdater.scala diff --git a/src/main/scala/epic/logo/Inferencer.scala b/modules/core/src/main/scala/epic/logo/Inferencer.scala similarity index 100% rename from src/main/scala/epic/logo/Inferencer.scala rename to modules/core/src/main/scala/epic/logo/Inferencer.scala diff --git a/src/main/scala/epic/logo/IterationCallback.scala b/modules/core/src/main/scala/epic/logo/IterationCallback.scala similarity index 100% rename from src/main/scala/epic/logo/IterationCallback.scala rename to modules/core/src/main/scala/epic/logo/IterationCallback.scala diff --git a/src/main/scala/epic/logo/L1Objective.scala b/modules/core/src/main/scala/epic/logo/L1Objective.scala similarity index 100% rename from src/main/scala/epic/logo/L1Objective.scala rename to modules/core/src/main/scala/epic/logo/L1Objective.scala diff --git a/src/main/scala/epic/logo/L1Updater.scala b/modules/core/src/main/scala/epic/logo/L1Updater.scala similarity index 100% rename from src/main/scala/epic/logo/L1Updater.scala rename to modules/core/src/main/scala/epic/logo/L1Updater.scala diff --git a/src/main/scala/epic/logo/L2Objective.scala b/modules/core/src/main/scala/epic/logo/L2Objective.scala similarity index 100% rename from src/main/scala/epic/logo/L2Objective.scala rename to modules/core/src/main/scala/epic/logo/L2Objective.scala diff --git a/src/main/scala/epic/logo/L2Updater.scala b/modules/core/src/main/scala/epic/logo/L2Updater.scala similarity index 100% rename from src/main/scala/epic/logo/L2Updater.scala rename to modules/core/src/main/scala/epic/logo/L2Updater.scala diff --git a/src/main/scala/epic/logo/LogLikelihoodDecoder.scala b/modules/core/src/main/scala/epic/logo/LogLikelihoodDecoder.scala similarity index 100% rename from src/main/scala/epic/logo/LogLikelihoodDecoder.scala rename to modules/core/src/main/scala/epic/logo/LogLikelihoodDecoder.scala diff --git a/src/main/scala/epic/logo/LogoOpts.scala b/modules/core/src/main/scala/epic/logo/LogoOpts.scala similarity index 100% rename from src/main/scala/epic/logo/LogoOpts.scala rename to modules/core/src/main/scala/epic/logo/LogoOpts.scala diff --git a/src/main/scala/epic/logo/LossAugmentedArgmaxInferencer.scala b/modules/core/src/main/scala/epic/logo/LossAugmentedArgmaxInferencer.scala similarity index 100% rename from src/main/scala/epic/logo/LossAugmentedArgmaxInferencer.scala rename to modules/core/src/main/scala/epic/logo/LossAugmentedArgmaxInferencer.scala diff --git a/src/main/scala/epic/logo/LossAugmentedExpectationInferencer.scala b/modules/core/src/main/scala/epic/logo/LossAugmentedExpectationInferencer.scala similarity index 100% rename from src/main/scala/epic/logo/LossAugmentedExpectationInferencer.scala rename to modules/core/src/main/scala/epic/logo/LossAugmentedExpectationInferencer.scala diff --git a/src/main/scala/epic/logo/LossAugmentedMaxMarginDecoder.scala b/modules/core/src/main/scala/epic/logo/LossAugmentedMaxMarginDecoder.scala similarity index 100% rename from src/main/scala/epic/logo/LossAugmentedMaxMarginDecoder.scala rename to modules/core/src/main/scala/epic/logo/LossAugmentedMaxMarginDecoder.scala diff --git a/src/main/scala/epic/logo/MaxMarginDecoder.scala b/modules/core/src/main/scala/epic/logo/MaxMarginDecoder.scala similarity index 100% rename from src/main/scala/epic/logo/MaxMarginDecoder.scala rename to modules/core/src/main/scala/epic/logo/MaxMarginDecoder.scala diff --git a/src/main/scala/epic/logo/MaxMarginRankingDecoder.scala b/modules/core/src/main/scala/epic/logo/MaxMarginRankingDecoder.scala similarity index 100% rename from src/main/scala/epic/logo/MaxMarginRankingDecoder.scala rename to modules/core/src/main/scala/epic/logo/MaxMarginRankingDecoder.scala diff --git a/src/main/scala/epic/logo/MinibatchInput.scala b/modules/core/src/main/scala/epic/logo/MinibatchInput.scala similarity index 100% rename from src/main/scala/epic/logo/MinibatchInput.scala rename to modules/core/src/main/scala/epic/logo/MinibatchInput.scala diff --git a/src/main/scala/epic/logo/MulticlassClassifier.scala b/modules/core/src/main/scala/epic/logo/MulticlassClassifier.scala similarity index 100% rename from src/main/scala/epic/logo/MulticlassClassifier.scala rename to modules/core/src/main/scala/epic/logo/MulticlassClassifier.scala diff --git a/src/main/scala/epic/logo/MulticlassLossAugmentedArgmaxInferencer.scala b/modules/core/src/main/scala/epic/logo/MulticlassLossAugmentedArgmaxInferencer.scala similarity index 100% rename from src/main/scala/epic/logo/MulticlassLossAugmentedArgmaxInferencer.scala rename to modules/core/src/main/scala/epic/logo/MulticlassLossAugmentedArgmaxInferencer.scala diff --git a/src/main/scala/epic/logo/MulticlassOneSlackLossAugmentedArgmaxInferencer.scala b/modules/core/src/main/scala/epic/logo/MulticlassOneSlackLossAugmentedArgmaxInferencer.scala similarity index 100% rename from src/main/scala/epic/logo/MulticlassOneSlackLossAugmentedArgmaxInferencer.scala rename to modules/core/src/main/scala/epic/logo/MulticlassOneSlackLossAugmentedArgmaxInferencer.scala diff --git a/src/main/scala/epic/logo/MulticlassOneSlackOracleInferencer.scala b/modules/core/src/main/scala/epic/logo/MulticlassOneSlackOracleInferencer.scala similarity index 100% rename from src/main/scala/epic/logo/MulticlassOneSlackOracleInferencer.scala rename to modules/core/src/main/scala/epic/logo/MulticlassOneSlackOracleInferencer.scala diff --git a/src/main/scala/epic/logo/MulticlassOracleInferencer.scala b/modules/core/src/main/scala/epic/logo/MulticlassOracleInferencer.scala similarity index 100% rename from src/main/scala/epic/logo/MulticlassOracleInferencer.scala rename to modules/core/src/main/scala/epic/logo/MulticlassOracleInferencer.scala diff --git a/src/main/scala/epic/logo/NumUtils.scala b/modules/core/src/main/scala/epic/logo/NumUtils.scala similarity index 100% rename from src/main/scala/epic/logo/NumUtils.scala rename to modules/core/src/main/scala/epic/logo/NumUtils.scala diff --git a/src/main/scala/epic/logo/ObjectiveFunction.scala b/modules/core/src/main/scala/epic/logo/ObjectiveFunction.scala similarity index 100% rename from src/main/scala/epic/logo/ObjectiveFunction.scala rename to modules/core/src/main/scala/epic/logo/ObjectiveFunction.scala diff --git a/src/main/scala/epic/logo/ObjectiveFunctionConvergenceChecker.scala b/modules/core/src/main/scala/epic/logo/ObjectiveFunctionConvergenceChecker.scala similarity index 100% rename from src/main/scala/epic/logo/ObjectiveFunctionConvergenceChecker.scala rename to modules/core/src/main/scala/epic/logo/ObjectiveFunctionConvergenceChecker.scala diff --git a/src/main/scala/epic/logo/OracleInferencer.scala b/modules/core/src/main/scala/epic/logo/OracleInferencer.scala similarity index 100% rename from src/main/scala/epic/logo/OracleInferencer.scala rename to modules/core/src/main/scala/epic/logo/OracleInferencer.scala diff --git a/src/main/scala/epic/logo/PegasosUpdater.scala b/modules/core/src/main/scala/epic/logo/PegasosUpdater.scala similarity index 100% rename from src/main/scala/epic/logo/PegasosUpdater.scala rename to modules/core/src/main/scala/epic/logo/PegasosUpdater.scala diff --git a/src/main/scala/epic/logo/Trainer.scala b/modules/core/src/main/scala/epic/logo/Trainer.scala similarity index 100% rename from src/main/scala/epic/logo/Trainer.scala rename to modules/core/src/main/scala/epic/logo/Trainer.scala diff --git a/src/main/scala/epic/logo/Updater.scala b/modules/core/src/main/scala/epic/logo/Updater.scala similarity index 100% rename from src/main/scala/epic/logo/Updater.scala rename to modules/core/src/main/scala/epic/logo/Updater.scala diff --git a/src/main/scala/epic/logo/Weights.scala b/modules/core/src/main/scala/epic/logo/Weights.scala similarity index 100% rename from src/main/scala/epic/logo/Weights.scala rename to modules/core/src/main/scala/epic/logo/Weights.scala diff --git a/src/main/scala/epic/logo/package.scala b/modules/core/src/main/scala/epic/logo/package.scala similarity index 100% rename from src/main/scala/epic/logo/package.scala rename to modules/core/src/main/scala/epic/logo/package.scala diff --git a/src/main/scala/epic/models/LanguageSpecific.scala b/modules/core/src/main/scala/epic/models/LanguageSpecific.scala similarity index 100% rename from src/main/scala/epic/models/LanguageSpecific.scala rename to modules/core/src/main/scala/epic/models/LanguageSpecific.scala diff --git a/src/main/scala/epic/models/ModelLoader.scala b/modules/core/src/main/scala/epic/models/ModelLoader.scala similarity index 100% rename from src/main/scala/epic/models/ModelLoader.scala rename to modules/core/src/main/scala/epic/models/ModelLoader.scala diff --git a/src/main/scala/epic/models/ModelSelector.scala b/modules/core/src/main/scala/epic/models/ModelSelector.scala similarity index 100% rename from src/main/scala/epic/models/ModelSelector.scala rename to modules/core/src/main/scala/epic/models/ModelSelector.scala diff --git a/src/main/scala/epic/models/NerModelLoader.scala b/modules/core/src/main/scala/epic/models/NerModelLoader.scala similarity index 100% rename from src/main/scala/epic/models/NerModelLoader.scala rename to modules/core/src/main/scala/epic/models/NerModelLoader.scala diff --git a/src/main/scala/epic/models/ParserSelector.scala b/modules/core/src/main/scala/epic/models/ParserSelector.scala similarity index 100% rename from src/main/scala/epic/models/ParserSelector.scala rename to modules/core/src/main/scala/epic/models/ParserSelector.scala diff --git a/src/main/scala/epic/models/PosTagModelLoader.scala b/modules/core/src/main/scala/epic/models/PosTagModelLoader.scala similarity index 100% rename from src/main/scala/epic/models/PosTagModelLoader.scala rename to modules/core/src/main/scala/epic/models/PosTagModelLoader.scala diff --git a/src/main/scala/epic/models/package.scala b/modules/core/src/main/scala/epic/models/package.scala similarity index 100% rename from src/main/scala/epic/models/package.scala rename to modules/core/src/main/scala/epic/models/package.scala diff --git a/src/main/scala/epic/ontonotes/ConllOntoReader.scala b/modules/core/src/main/scala/epic/ontonotes/ConllOntoReader.scala similarity index 100% rename from src/main/scala/epic/ontonotes/ConllOntoReader.scala rename to modules/core/src/main/scala/epic/ontonotes/ConllOntoReader.scala diff --git a/src/main/scala/epic/ontonotes/DSpan.scala b/modules/core/src/main/scala/epic/ontonotes/DSpan.scala similarity index 100% rename from src/main/scala/epic/ontonotes/DSpan.scala rename to modules/core/src/main/scala/epic/ontonotes/DSpan.scala diff --git a/src/main/scala/epic/ontonotes/Document.scala b/modules/core/src/main/scala/epic/ontonotes/Document.scala similarity index 100% rename from src/main/scala/epic/ontonotes/Document.scala rename to modules/core/src/main/scala/epic/ontonotes/Document.scala diff --git a/src/main/scala/epic/ontonotes/Sentence.scala b/modules/core/src/main/scala/epic/ontonotes/Sentence.scala similarity index 100% rename from src/main/scala/epic/ontonotes/Sentence.scala rename to modules/core/src/main/scala/epic/ontonotes/Sentence.scala diff --git a/src/main/scala/epic/package.scala b/modules/core/src/main/scala/epic/package.scala similarity index 100% rename from src/main/scala/epic/package.scala rename to modules/core/src/main/scala/epic/package.scala diff --git a/src/main/scala/epic/parser/AnchoredVisitor.scala b/modules/core/src/main/scala/epic/parser/AnchoredVisitor.scala similarity index 100% rename from src/main/scala/epic/parser/AnchoredVisitor.scala rename to modules/core/src/main/scala/epic/parser/AnchoredVisitor.scala diff --git a/src/main/scala/epic/parser/ChartDecoder.scala b/modules/core/src/main/scala/epic/parser/ChartDecoder.scala similarity index 100% rename from src/main/scala/epic/parser/ChartDecoder.scala rename to modules/core/src/main/scala/epic/parser/ChartDecoder.scala diff --git a/src/main/scala/epic/parser/EPChartFactory.scala b/modules/core/src/main/scala/epic/parser/EPChartFactory.scala similarity index 100% rename from src/main/scala/epic/parser/EPChartFactory.scala rename to modules/core/src/main/scala/epic/parser/EPChartFactory.scala diff --git a/src/main/scala/epic/parser/GenerativeParser.scala b/modules/core/src/main/scala/epic/parser/GenerativeParser.scala similarity index 100% rename from src/main/scala/epic/parser/GenerativeParser.scala rename to modules/core/src/main/scala/epic/parser/GenerativeParser.scala diff --git a/src/main/scala/epic/parser/Grammar.scala b/modules/core/src/main/scala/epic/parser/Grammar.scala similarity index 100% rename from src/main/scala/epic/parser/Grammar.scala rename to modules/core/src/main/scala/epic/parser/Grammar.scala diff --git a/src/main/scala/epic/parser/GrammarAnchoring.scala b/modules/core/src/main/scala/epic/parser/GrammarAnchoring.scala similarity index 100% rename from src/main/scala/epic/parser/GrammarAnchoring.scala rename to modules/core/src/main/scala/epic/parser/GrammarAnchoring.scala diff --git a/src/main/scala/epic/parser/LatentTreeMarginal.scala b/modules/core/src/main/scala/epic/parser/LatentTreeMarginal.scala similarity index 100% rename from src/main/scala/epic/parser/LatentTreeMarginal.scala rename to modules/core/src/main/scala/epic/parser/LatentTreeMarginal.scala diff --git a/src/main/scala/epic/parser/ParseEval.scala b/modules/core/src/main/scala/epic/parser/ParseEval.scala similarity index 100% rename from src/main/scala/epic/parser/ParseEval.scala rename to modules/core/src/main/scala/epic/parser/ParseEval.scala diff --git a/src/main/scala/epic/parser/ParseMarginal.scala b/modules/core/src/main/scala/epic/parser/ParseMarginal.scala similarity index 100% rename from src/main/scala/epic/parser/ParseMarginal.scala rename to modules/core/src/main/scala/epic/parser/ParseMarginal.scala diff --git a/src/main/scala/epic/parser/ParseText.scala b/modules/core/src/main/scala/epic/parser/ParseText.scala similarity index 100% rename from src/main/scala/epic/parser/ParseText.scala rename to modules/core/src/main/scala/epic/parser/ParseText.scala diff --git a/src/main/scala/epic/parser/Parser.scala b/modules/core/src/main/scala/epic/parser/Parser.scala similarity index 100% rename from src/main/scala/epic/parser/Parser.scala rename to modules/core/src/main/scala/epic/parser/Parser.scala diff --git a/src/main/scala/epic/parser/ParserAnnotator.scala b/modules/core/src/main/scala/epic/parser/ParserAnnotator.scala similarity index 100% rename from src/main/scala/epic/parser/ParserAnnotator.scala rename to modules/core/src/main/scala/epic/parser/ParserAnnotator.scala diff --git a/src/main/scala/epic/parser/ParserPipeline.scala b/modules/core/src/main/scala/epic/parser/ParserPipeline.scala similarity index 100% rename from src/main/scala/epic/parser/ParserPipeline.scala rename to modules/core/src/main/scala/epic/parser/ParserPipeline.scala diff --git a/src/main/scala/epic/parser/ParserTester.scala b/modules/core/src/main/scala/epic/parser/ParserTester.scala similarity index 100% rename from src/main/scala/epic/parser/ParserTester.scala rename to modules/core/src/main/scala/epic/parser/ParserTester.scala diff --git a/src/main/scala/epic/parser/ProductChartFactory.scala b/modules/core/src/main/scala/epic/parser/ProductChartFactory.scala similarity index 100% rename from src/main/scala/epic/parser/ProductChartFactory.scala rename to modules/core/src/main/scala/epic/parser/ProductChartFactory.scala diff --git a/src/main/scala/epic/parser/ProductGrammarAnchoring.scala b/modules/core/src/main/scala/epic/parser/ProductGrammarAnchoring.scala similarity index 100% rename from src/main/scala/epic/parser/ProductGrammarAnchoring.scala rename to modules/core/src/main/scala/epic/parser/ProductGrammarAnchoring.scala diff --git a/src/main/scala/epic/parser/ProductRefinedFeaturizer.scala b/modules/core/src/main/scala/epic/parser/ProductRefinedFeaturizer.scala similarity index 100% rename from src/main/scala/epic/parser/ProductRefinedFeaturizer.scala rename to modules/core/src/main/scala/epic/parser/ProductRefinedFeaturizer.scala diff --git a/src/main/scala/epic/parser/ProductUnrefinedGrammarAnchoring.scala b/modules/core/src/main/scala/epic/parser/ProductUnrefinedGrammarAnchoring.scala similarity index 100% rename from src/main/scala/epic/parser/ProductUnrefinedGrammarAnchoring.scala rename to modules/core/src/main/scala/epic/parser/ProductUnrefinedGrammarAnchoring.scala diff --git a/src/main/scala/epic/parser/ProductionFeaturizer.scala b/modules/core/src/main/scala/epic/parser/ProductionFeaturizer.scala similarity index 100% rename from src/main/scala/epic/parser/ProductionFeaturizer.scala rename to modules/core/src/main/scala/epic/parser/ProductionFeaturizer.scala diff --git a/src/main/scala/epic/parser/ProjectionsGrammarAnchoring.scala b/modules/core/src/main/scala/epic/parser/ProjectionsGrammarAnchoring.scala similarity index 100% rename from src/main/scala/epic/parser/ProjectionsGrammarAnchoring.scala rename to modules/core/src/main/scala/epic/parser/ProjectionsGrammarAnchoring.scala diff --git a/src/main/scala/epic/parser/RefinedChartMarginal.scala b/modules/core/src/main/scala/epic/parser/RefinedChartMarginal.scala similarity index 100% rename from src/main/scala/epic/parser/RefinedChartMarginal.scala rename to modules/core/src/main/scala/epic/parser/RefinedChartMarginal.scala diff --git a/src/main/scala/epic/parser/RefinedFeaturizer.scala b/modules/core/src/main/scala/epic/parser/RefinedFeaturizer.scala similarity index 100% rename from src/main/scala/epic/parser/RefinedFeaturizer.scala rename to modules/core/src/main/scala/epic/parser/RefinedFeaturizer.scala diff --git a/src/main/scala/epic/parser/RefinedParseChart.scala b/modules/core/src/main/scala/epic/parser/RefinedParseChart.scala similarity index 100% rename from src/main/scala/epic/parser/RefinedParseChart.scala rename to modules/core/src/main/scala/epic/parser/RefinedParseChart.scala diff --git a/src/main/scala/epic/parser/RuleFeaturizer.scala b/modules/core/src/main/scala/epic/parser/RuleFeaturizer.scala similarity index 100% rename from src/main/scala/epic/parser/RuleFeaturizer.scala rename to modules/core/src/main/scala/epic/parser/RuleFeaturizer.scala diff --git a/src/main/scala/epic/parser/RuleTopology.scala b/modules/core/src/main/scala/epic/parser/RuleTopology.scala similarity index 100% rename from src/main/scala/epic/parser/RuleTopology.scala rename to modules/core/src/main/scala/epic/parser/RuleTopology.scala diff --git a/src/main/scala/epic/parser/SimpleChartMarginal.scala b/modules/core/src/main/scala/epic/parser/SimpleChartMarginal.scala similarity index 100% rename from src/main/scala/epic/parser/SimpleChartMarginal.scala rename to modules/core/src/main/scala/epic/parser/SimpleChartMarginal.scala diff --git a/src/main/scala/epic/parser/SimpleGrammar.scala b/modules/core/src/main/scala/epic/parser/SimpleGrammar.scala similarity index 100% rename from src/main/scala/epic/parser/SimpleGrammar.scala rename to modules/core/src/main/scala/epic/parser/SimpleGrammar.scala diff --git a/src/main/scala/epic/parser/SparseRuleTensor.scala b/modules/core/src/main/scala/epic/parser/SparseRuleTensor.scala similarity index 100% rename from src/main/scala/epic/parser/SparseRuleTensor.scala rename to modules/core/src/main/scala/epic/parser/SparseRuleTensor.scala diff --git a/src/main/scala/epic/parser/TreeMarginal.scala b/modules/core/src/main/scala/epic/parser/TreeMarginal.scala similarity index 100% rename from src/main/scala/epic/parser/TreeMarginal.scala rename to modules/core/src/main/scala/epic/parser/TreeMarginal.scala diff --git a/src/main/scala/epic/parser/UnrefinedGrammarAnchoring.scala b/modules/core/src/main/scala/epic/parser/UnrefinedGrammarAnchoring.scala similarity index 100% rename from src/main/scala/epic/parser/UnrefinedGrammarAnchoring.scala rename to modules/core/src/main/scala/epic/parser/UnrefinedGrammarAnchoring.scala diff --git a/src/main/scala/epic/parser/kbest/AStarKBestParser.scala b/modules/core/src/main/scala/epic/parser/kbest/AStarKBestParser.scala similarity index 100% rename from src/main/scala/epic/parser/kbest/AStarKBestParser.scala rename to modules/core/src/main/scala/epic/parser/kbest/AStarKBestParser.scala diff --git a/src/main/scala/epic/parser/kbest/KBestListMarginal.scala b/modules/core/src/main/scala/epic/parser/kbest/KBestListMarginal.scala similarity index 100% rename from src/main/scala/epic/parser/kbest/KBestListMarginal.scala rename to modules/core/src/main/scala/epic/parser/kbest/KBestListMarginal.scala diff --git a/src/main/scala/epic/parser/kbest/KBestParseTreebank.scala b/modules/core/src/main/scala/epic/parser/kbest/KBestParseTreebank.scala similarity index 100% rename from src/main/scala/epic/parser/kbest/KBestParseTreebank.scala rename to modules/core/src/main/scala/epic/parser/kbest/KBestParseTreebank.scala diff --git a/src/main/scala/epic/parser/kbest/KBestParser.scala b/modules/core/src/main/scala/epic/parser/kbest/KBestParser.scala similarity index 100% rename from src/main/scala/epic/parser/kbest/KBestParser.scala rename to modules/core/src/main/scala/epic/parser/kbest/KBestParser.scala diff --git a/src/main/scala/epic/parser/kbest/TopDownKBestAStar.scala b/modules/core/src/main/scala/epic/parser/kbest/TopDownKBestAStar.scala similarity index 100% rename from src/main/scala/epic/parser/kbest/TopDownKBestAStar.scala rename to modules/core/src/main/scala/epic/parser/kbest/TopDownKBestAStar.scala diff --git a/src/main/scala/epic/parser/models/AnnotatedParserInference.scala b/modules/core/src/main/scala/epic/parser/models/AnnotatedParserInference.scala similarity index 100% rename from src/main/scala/epic/parser/models/AnnotatedParserInference.scala rename to modules/core/src/main/scala/epic/parser/models/AnnotatedParserInference.scala diff --git a/src/main/scala/epic/parser/models/EPParserModelFactory.scala b/modules/core/src/main/scala/epic/parser/models/EPParserModelFactory.scala similarity index 100% rename from src/main/scala/epic/parser/models/EPParserModelFactory.scala rename to modules/core/src/main/scala/epic/parser/models/EPParserModelFactory.scala diff --git a/src/main/scala/epic/parser/models/EPProjector.scala b/modules/core/src/main/scala/epic/parser/models/EPProjector.scala similarity index 100% rename from src/main/scala/epic/parser/models/EPProjector.scala rename to modules/core/src/main/scala/epic/parser/models/EPProjector.scala diff --git a/src/main/scala/epic/parser/models/FeaturizedGrammar.scala b/modules/core/src/main/scala/epic/parser/models/FeaturizedGrammar.scala similarity index 100% rename from src/main/scala/epic/parser/models/FeaturizedGrammar.scala rename to modules/core/src/main/scala/epic/parser/models/FeaturizedGrammar.scala diff --git a/src/main/scala/epic/parser/models/FeaturizedLexicon.scala b/modules/core/src/main/scala/epic/parser/models/FeaturizedLexicon.scala similarity index 100% rename from src/main/scala/epic/parser/models/FeaturizedLexicon.scala rename to modules/core/src/main/scala/epic/parser/models/FeaturizedLexicon.scala diff --git a/src/main/scala/epic/parser/models/IndexedFeaturizer.scala b/modules/core/src/main/scala/epic/parser/models/IndexedFeaturizer.scala similarity index 100% rename from src/main/scala/epic/parser/models/IndexedFeaturizer.scala rename to modules/core/src/main/scala/epic/parser/models/IndexedFeaturizer.scala diff --git a/src/main/scala/epic/parser/models/LatentParserModel.scala b/modules/core/src/main/scala/epic/parser/models/LatentParserModel.scala similarity index 100% rename from src/main/scala/epic/parser/models/LatentParserModel.scala rename to modules/core/src/main/scala/epic/parser/models/LatentParserModel.scala diff --git a/src/main/scala/epic/parser/models/LexModel.scala b/modules/core/src/main/scala/epic/parser/models/LexModel.scala similarity index 100% rename from src/main/scala/epic/parser/models/LexModel.scala rename to modules/core/src/main/scala/epic/parser/models/LexModel.scala diff --git a/src/main/scala/epic/parser/models/NeuralModel.scala b/modules/core/src/main/scala/epic/parser/models/NeuralModel.scala similarity index 100% rename from src/main/scala/epic/parser/models/NeuralModel.scala rename to modules/core/src/main/scala/epic/parser/models/NeuralModel.scala diff --git a/src/main/scala/epic/parser/models/NeuralParserTrainer.scala b/modules/core/src/main/scala/epic/parser/models/NeuralParserTrainer.scala similarity index 100% rename from src/main/scala/epic/parser/models/NeuralParserTrainer.scala rename to modules/core/src/main/scala/epic/parser/models/NeuralParserTrainer.scala diff --git a/src/main/scala/epic/parser/models/ParserExtractable.scala b/modules/core/src/main/scala/epic/parser/models/ParserExtractable.scala similarity index 100% rename from src/main/scala/epic/parser/models/ParserExtractable.scala rename to modules/core/src/main/scala/epic/parser/models/ParserExtractable.scala diff --git a/src/main/scala/epic/parser/models/ParserModel.scala b/modules/core/src/main/scala/epic/parser/models/ParserModel.scala similarity index 100% rename from src/main/scala/epic/parser/models/ParserModel.scala rename to modules/core/src/main/scala/epic/parser/models/ParserModel.scala diff --git a/src/main/scala/epic/parser/models/ParserTrainer.scala b/modules/core/src/main/scala/epic/parser/models/ParserTrainer.scala similarity index 100% rename from src/main/scala/epic/parser/models/ParserTrainer.scala rename to modules/core/src/main/scala/epic/parser/models/ParserTrainer.scala diff --git a/src/main/scala/epic/parser/models/PositionalNeuralModel.scala b/modules/core/src/main/scala/epic/parser/models/PositionalNeuralModel.scala similarity index 100% rename from src/main/scala/epic/parser/models/PositionalNeuralModel.scala rename to modules/core/src/main/scala/epic/parser/models/PositionalNeuralModel.scala diff --git a/src/main/scala/epic/parser/models/PositionalNeuralModelFactory.scala b/modules/core/src/main/scala/epic/parser/models/PositionalNeuralModelFactory.scala similarity index 100% rename from src/main/scala/epic/parser/models/PositionalNeuralModelFactory.scala rename to modules/core/src/main/scala/epic/parser/models/PositionalNeuralModelFactory.scala diff --git a/src/main/scala/epic/parser/models/ProductParserModelFactory.scala b/modules/core/src/main/scala/epic/parser/models/ProductParserModelFactory.scala similarity index 100% rename from src/main/scala/epic/parser/models/ProductParserModelFactory.scala rename to modules/core/src/main/scala/epic/parser/models/ProductParserModelFactory.scala diff --git a/src/main/scala/epic/parser/models/SpanModel.scala b/modules/core/src/main/scala/epic/parser/models/SpanModel.scala similarity index 100% rename from src/main/scala/epic/parser/models/SpanModel.scala rename to modules/core/src/main/scala/epic/parser/models/SpanModel.scala diff --git a/src/main/scala/epic/parser/models/StructModel.scala b/modules/core/src/main/scala/epic/parser/models/StructModel.scala similarity index 100% rename from src/main/scala/epic/parser/models/StructModel.scala rename to modules/core/src/main/scala/epic/parser/models/StructModel.scala diff --git a/src/main/scala/epic/parser/models/ThreePointModel.scala b/modules/core/src/main/scala/epic/parser/models/ThreePointModel.scala similarity index 100% rename from src/main/scala/epic/parser/models/ThreePointModel.scala rename to modules/core/src/main/scala/epic/parser/models/ThreePointModel.scala diff --git a/src/main/scala/epic/parser/models/TransformModel.scala b/modules/core/src/main/scala/epic/parser/models/TransformModel.scala similarity index 100% rename from src/main/scala/epic/parser/models/TransformModel.scala rename to modules/core/src/main/scala/epic/parser/models/TransformModel.scala diff --git a/src/main/scala/epic/parser/morph/MorphFeat.scala b/modules/core/src/main/scala/epic/parser/morph/MorphFeat.scala similarity index 100% rename from src/main/scala/epic/parser/morph/MorphFeat.scala rename to modules/core/src/main/scala/epic/parser/morph/MorphFeat.scala diff --git a/src/main/scala/epic/parser/package.scala b/modules/core/src/main/scala/epic/parser/package.scala similarity index 100% rename from src/main/scala/epic/parser/package.scala rename to modules/core/src/main/scala/epic/parser/package.scala diff --git a/src/main/scala/epic/parser/projections/AnchoredForestProjector.scala b/modules/core/src/main/scala/epic/parser/projections/AnchoredForestProjector.scala similarity index 100% rename from src/main/scala/epic/parser/projections/AnchoredForestProjector.scala rename to modules/core/src/main/scala/epic/parser/projections/AnchoredForestProjector.scala diff --git a/src/main/scala/epic/parser/projections/AnchoredSpanProjector.scala b/modules/core/src/main/scala/epic/parser/projections/AnchoredSpanProjector.scala similarity index 100% rename from src/main/scala/epic/parser/projections/AnchoredSpanProjector.scala rename to modules/core/src/main/scala/epic/parser/projections/AnchoredSpanProjector.scala diff --git a/src/main/scala/epic/parser/projections/ChartProjector.scala b/modules/core/src/main/scala/epic/parser/projections/ChartProjector.scala similarity index 100% rename from src/main/scala/epic/parser/projections/ChartProjector.scala rename to modules/core/src/main/scala/epic/parser/projections/ChartProjector.scala diff --git a/src/main/scala/epic/parser/projections/ConstraintAnchoring.scala b/modules/core/src/main/scala/epic/parser/projections/ConstraintAnchoring.scala similarity index 100% rename from src/main/scala/epic/parser/projections/ConstraintAnchoring.scala rename to modules/core/src/main/scala/epic/parser/projections/ConstraintAnchoring.scala diff --git a/src/main/scala/epic/parser/projections/EnumeratedAnchoring.scala b/modules/core/src/main/scala/epic/parser/projections/EnumeratedAnchoring.scala similarity index 100% rename from src/main/scala/epic/parser/projections/EnumeratedAnchoring.scala rename to modules/core/src/main/scala/epic/parser/projections/EnumeratedAnchoring.scala diff --git a/src/main/scala/epic/parser/projections/GoldTagPolicy.scala b/modules/core/src/main/scala/epic/parser/projections/GoldTagPolicy.scala similarity index 100% rename from src/main/scala/epic/parser/projections/GoldTagPolicy.scala rename to modules/core/src/main/scala/epic/parser/projections/GoldTagPolicy.scala diff --git a/src/main/scala/epic/parser/projections/GrammarRefinements.scala b/modules/core/src/main/scala/epic/parser/projections/GrammarRefinements.scala similarity index 100% rename from src/main/scala/epic/parser/projections/GrammarRefinements.scala rename to modules/core/src/main/scala/epic/parser/projections/GrammarRefinements.scala diff --git a/src/main/scala/epic/parser/projections/LabeledSpanProjector.scala b/modules/core/src/main/scala/epic/parser/projections/LabeledSpanProjector.scala similarity index 100% rename from src/main/scala/epic/parser/projections/LabeledSpanProjector.scala rename to modules/core/src/main/scala/epic/parser/projections/LabeledSpanProjector.scala diff --git a/src/main/scala/epic/parser/projections/OracleParser.scala b/modules/core/src/main/scala/epic/parser/projections/OracleParser.scala similarity index 100% rename from src/main/scala/epic/parser/projections/OracleParser.scala rename to modules/core/src/main/scala/epic/parser/projections/OracleParser.scala diff --git a/src/main/scala/epic/parser/projections/ProjectingCoreGrammar.scala b/modules/core/src/main/scala/epic/parser/projections/ProjectingCoreGrammar.scala similarity index 100% rename from src/main/scala/epic/parser/projections/ProjectingCoreGrammar.scala rename to modules/core/src/main/scala/epic/parser/projections/ProjectingCoreGrammar.scala diff --git a/src/main/scala/epic/parser/projections/ProjectionIndexer.scala b/modules/core/src/main/scala/epic/parser/projections/ProjectionIndexer.scala similarity index 100% rename from src/main/scala/epic/parser/projections/ProjectionIndexer.scala rename to modules/core/src/main/scala/epic/parser/projections/ProjectionIndexer.scala diff --git a/src/main/scala/epic/parser/repl/DSLGrammar.scala b/modules/core/src/main/scala/epic/parser/repl/DSLGrammar.scala similarity index 100% rename from src/main/scala/epic/parser/repl/DSLGrammar.scala rename to modules/core/src/main/scala/epic/parser/repl/DSLGrammar.scala diff --git a/src/main/scala/epic/parser/repl/ReplGrammar.scala b/modules/core/src/main/scala/epic/parser/repl/ReplGrammar.scala similarity index 100% rename from src/main/scala/epic/parser/repl/ReplGrammar.scala rename to modules/core/src/main/scala/epic/parser/repl/ReplGrammar.scala diff --git a/src/main/scala/epic/preprocess/JavaSentenceSegmenter.scala b/modules/core/src/main/scala/epic/preprocess/JavaSentenceSegmenter.scala similarity index 100% rename from src/main/scala/epic/preprocess/JavaSentenceSegmenter.scala rename to modules/core/src/main/scala/epic/preprocess/JavaSentenceSegmenter.scala diff --git a/src/main/scala/epic/preprocess/JavaWordTokenizer.scala b/modules/core/src/main/scala/epic/preprocess/JavaWordTokenizer.scala similarity index 100% rename from src/main/scala/epic/preprocess/JavaWordTokenizer.scala rename to modules/core/src/main/scala/epic/preprocess/JavaWordTokenizer.scala diff --git a/src/main/scala/epic/preprocess/MLSentenceSegmenter.scala b/modules/core/src/main/scala/epic/preprocess/MLSentenceSegmenter.scala similarity index 100% rename from src/main/scala/epic/preprocess/MLSentenceSegmenter.scala rename to modules/core/src/main/scala/epic/preprocess/MLSentenceSegmenter.scala diff --git a/src/main/scala/epic/preprocess/NewLineSentenceSegmenter.scala b/modules/core/src/main/scala/epic/preprocess/NewLineSentenceSegmenter.scala similarity index 100% rename from src/main/scala/epic/preprocess/NewLineSentenceSegmenter.scala rename to modules/core/src/main/scala/epic/preprocess/NewLineSentenceSegmenter.scala diff --git a/src/main/scala/epic/preprocess/RegexSearchTokenizer.scala b/modules/core/src/main/scala/epic/preprocess/RegexSearchTokenizer.scala similarity index 100% rename from src/main/scala/epic/preprocess/RegexSearchTokenizer.scala rename to modules/core/src/main/scala/epic/preprocess/RegexSearchTokenizer.scala diff --git a/src/main/scala/epic/preprocess/RegexSentenceSegmenter.scala b/modules/core/src/main/scala/epic/preprocess/RegexSentenceSegmenter.scala similarity index 100% rename from src/main/scala/epic/preprocess/RegexSentenceSegmenter.scala rename to modules/core/src/main/scala/epic/preprocess/RegexSentenceSegmenter.scala diff --git a/src/main/scala/epic/preprocess/RegexSplitTokenizer.scala b/modules/core/src/main/scala/epic/preprocess/RegexSplitTokenizer.scala similarity index 100% rename from src/main/scala/epic/preprocess/RegexSplitTokenizer.scala rename to modules/core/src/main/scala/epic/preprocess/RegexSplitTokenizer.scala diff --git a/src/main/scala/epic/preprocess/SentenceSegmenter.scala b/modules/core/src/main/scala/epic/preprocess/SentenceSegmenter.scala similarity index 100% rename from src/main/scala/epic/preprocess/SentenceSegmenter.scala rename to modules/core/src/main/scala/epic/preprocess/SentenceSegmenter.scala diff --git a/src/main/scala/epic/preprocess/StreamSentenceSegmenter.scala b/modules/core/src/main/scala/epic/preprocess/StreamSentenceSegmenter.scala similarity index 100% rename from src/main/scala/epic/preprocess/StreamSentenceSegmenter.scala rename to modules/core/src/main/scala/epic/preprocess/StreamSentenceSegmenter.scala diff --git a/src/main/scala/epic/preprocess/Tokenizer.scala b/modules/core/src/main/scala/epic/preprocess/Tokenizer.scala similarity index 100% rename from src/main/scala/epic/preprocess/Tokenizer.scala rename to modules/core/src/main/scala/epic/preprocess/Tokenizer.scala diff --git a/src/main/scala/epic/preprocess/TreebankTokenizer.scala b/modules/core/src/main/scala/epic/preprocess/TreebankTokenizer.scala similarity index 100% rename from src/main/scala/epic/preprocess/TreebankTokenizer.scala rename to modules/core/src/main/scala/epic/preprocess/TreebankTokenizer.scala diff --git a/src/main/scala/epic/preprocess/WhitespaceTokenizer.scala b/modules/core/src/main/scala/epic/preprocess/WhitespaceTokenizer.scala similarity index 100% rename from src/main/scala/epic/preprocess/WhitespaceTokenizer.scala rename to modules/core/src/main/scala/epic/preprocess/WhitespaceTokenizer.scala diff --git a/src/main/scala/epic/sentiment/SentimentEvaluator.scala b/modules/core/src/main/scala/epic/sentiment/SentimentEvaluator.scala similarity index 100% rename from src/main/scala/epic/sentiment/SentimentEvaluator.scala rename to modules/core/src/main/scala/epic/sentiment/SentimentEvaluator.scala diff --git a/src/main/scala/epic/sentiment/SentimentLossAugmentation.scala b/modules/core/src/main/scala/epic/sentiment/SentimentLossAugmentation.scala similarity index 100% rename from src/main/scala/epic/sentiment/SentimentLossAugmentation.scala rename to modules/core/src/main/scala/epic/sentiment/SentimentLossAugmentation.scala diff --git a/src/main/scala/epic/sentiment/SentimentTreebankPipeline.scala b/modules/core/src/main/scala/epic/sentiment/SentimentTreebankPipeline.scala similarity index 100% rename from src/main/scala/epic/sentiment/SentimentTreebankPipeline.scala rename to modules/core/src/main/scala/epic/sentiment/SentimentTreebankPipeline.scala diff --git a/src/main/scala/epic/sequences/BIOETag.scala b/modules/core/src/main/scala/epic/sequences/BIOETag.scala similarity index 100% rename from src/main/scala/epic/sequences/BIOETag.scala rename to modules/core/src/main/scala/epic/sequences/BIOETag.scala diff --git a/src/main/scala/epic/sequences/CRF.scala b/modules/core/src/main/scala/epic/sequences/CRF.scala similarity index 100% rename from src/main/scala/epic/sequences/CRF.scala rename to modules/core/src/main/scala/epic/sequences/CRF.scala diff --git a/src/main/scala/epic/sequences/CRFModel.scala b/modules/core/src/main/scala/epic/sequences/CRFModel.scala similarity index 100% rename from src/main/scala/epic/sequences/CRFModel.scala rename to modules/core/src/main/scala/epic/sequences/CRFModel.scala diff --git a/src/main/scala/epic/sequences/Gazetteer.scala b/modules/core/src/main/scala/epic/sequences/Gazetteer.scala similarity index 100% rename from src/main/scala/epic/sequences/Gazetteer.scala rename to modules/core/src/main/scala/epic/sequences/Gazetteer.scala diff --git a/src/main/scala/epic/sequences/GoldSegmentPolicy.scala b/modules/core/src/main/scala/epic/sequences/GoldSegmentPolicy.scala similarity index 100% rename from src/main/scala/epic/sequences/GoldSegmentPolicy.scala rename to modules/core/src/main/scala/epic/sequences/GoldSegmentPolicy.scala diff --git a/src/main/scala/epic/sequences/HMM.scala b/modules/core/src/main/scala/epic/sequences/HMM.scala similarity index 100% rename from src/main/scala/epic/sequences/HMM.scala rename to modules/core/src/main/scala/epic/sequences/HMM.scala diff --git a/src/main/scala/epic/sequences/HammingLossAugmentation.scala b/modules/core/src/main/scala/epic/sequences/HammingLossAugmentation.scala similarity index 100% rename from src/main/scala/epic/sequences/HammingLossAugmentation.scala rename to modules/core/src/main/scala/epic/sequences/HammingLossAugmentation.scala diff --git a/src/main/scala/epic/sequences/SegmentText.scala b/modules/core/src/main/scala/epic/sequences/SegmentText.scala similarity index 100% rename from src/main/scala/epic/sequences/SegmentText.scala rename to modules/core/src/main/scala/epic/sequences/SegmentText.scala diff --git a/src/main/scala/epic/sequences/Segmentation.scala b/modules/core/src/main/scala/epic/sequences/Segmentation.scala similarity index 100% rename from src/main/scala/epic/sequences/Segmentation.scala rename to modules/core/src/main/scala/epic/sequences/Segmentation.scala diff --git a/src/main/scala/epic/sequences/SegmentationEval.scala b/modules/core/src/main/scala/epic/sequences/SegmentationEval.scala similarity index 100% rename from src/main/scala/epic/sequences/SegmentationEval.scala rename to modules/core/src/main/scala/epic/sequences/SegmentationEval.scala diff --git a/src/main/scala/epic/sequences/Segmenter.scala b/modules/core/src/main/scala/epic/sequences/Segmenter.scala similarity index 100% rename from src/main/scala/epic/sequences/Segmenter.scala rename to modules/core/src/main/scala/epic/sequences/Segmenter.scala diff --git a/src/main/scala/epic/sequences/SemiCRF.scala b/modules/core/src/main/scala/epic/sequences/SemiCRF.scala similarity index 100% rename from src/main/scala/epic/sequences/SemiCRF.scala rename to modules/core/src/main/scala/epic/sequences/SemiCRF.scala diff --git a/src/main/scala/epic/sequences/SemiCRFModel.scala b/modules/core/src/main/scala/epic/sequences/SemiCRFModel.scala similarity index 100% rename from src/main/scala/epic/sequences/SemiCRFModel.scala rename to modules/core/src/main/scala/epic/sequences/SemiCRFModel.scala diff --git a/src/main/scala/epic/sequences/SemiNERPipeline.scala b/modules/core/src/main/scala/epic/sequences/SemiNERPipeline.scala similarity index 100% rename from src/main/scala/epic/sequences/SemiNERPipeline.scala rename to modules/core/src/main/scala/epic/sequences/SemiNERPipeline.scala diff --git a/src/main/scala/epic/sequences/TagText.scala b/modules/core/src/main/scala/epic/sequences/TagText.scala similarity index 100% rename from src/main/scala/epic/sequences/TagText.scala rename to modules/core/src/main/scala/epic/sequences/TagText.scala diff --git a/src/main/scala/epic/sequences/TaggedSequence.scala b/modules/core/src/main/scala/epic/sequences/TaggedSequence.scala similarity index 100% rename from src/main/scala/epic/sequences/TaggedSequence.scala rename to modules/core/src/main/scala/epic/sequences/TaggedSequence.scala diff --git a/src/main/scala/epic/sequences/TaggedSequenceEval.scala b/modules/core/src/main/scala/epic/sequences/TaggedSequenceEval.scala similarity index 100% rename from src/main/scala/epic/sequences/TaggedSequenceEval.scala rename to modules/core/src/main/scala/epic/sequences/TaggedSequenceEval.scala diff --git a/src/main/scala/epic/sequences/Tagger.scala b/modules/core/src/main/scala/epic/sequences/Tagger.scala similarity index 100% rename from src/main/scala/epic/sequences/Tagger.scala rename to modules/core/src/main/scala/epic/sequences/Tagger.scala diff --git a/src/main/scala/epic/sequences/TrainPosTagger.scala b/modules/core/src/main/scala/epic/sequences/TrainPosTagger.scala similarity index 100% rename from src/main/scala/epic/sequences/TrainPosTagger.scala rename to modules/core/src/main/scala/epic/sequences/TrainPosTagger.scala diff --git a/src/main/scala/epic/slab/AnalysisFunction.scala b/modules/core/src/main/scala/epic/slab/AnalysisFunction.scala similarity index 100% rename from src/main/scala/epic/slab/AnalysisFunction.scala rename to modules/core/src/main/scala/epic/slab/AnalysisFunction.scala diff --git a/src/main/scala/epic/slab/Slab.scala b/modules/core/src/main/scala/epic/slab/Slab.scala similarity index 100% rename from src/main/scala/epic/slab/Slab.scala rename to modules/core/src/main/scala/epic/slab/Slab.scala diff --git a/src/main/scala/epic/slab/package.scala b/modules/core/src/main/scala/epic/slab/package.scala similarity index 100% rename from src/main/scala/epic/slab/package.scala rename to modules/core/src/main/scala/epic/slab/package.scala diff --git a/src/main/scala/epic/trees/AnnotatedLabel.scala b/modules/core/src/main/scala/epic/trees/AnnotatedLabel.scala similarity index 100% rename from src/main/scala/epic/trees/AnnotatedLabel.scala rename to modules/core/src/main/scala/epic/trees/AnnotatedLabel.scala diff --git a/src/main/scala/epic/trees/Debinarizer.scala b/modules/core/src/main/scala/epic/trees/Debinarizer.scala similarity index 100% rename from src/main/scala/epic/trees/Debinarizer.scala rename to modules/core/src/main/scala/epic/trees/Debinarizer.scala diff --git a/src/main/scala/epic/trees/DependencyTree.scala b/modules/core/src/main/scala/epic/trees/DependencyTree.scala similarity index 100% rename from src/main/scala/epic/trees/DependencyTree.scala rename to modules/core/src/main/scala/epic/trees/DependencyTree.scala diff --git a/src/main/scala/epic/trees/HeadFinder.scala b/modules/core/src/main/scala/epic/trees/HeadFinder.scala similarity index 100% rename from src/main/scala/epic/trees/HeadFinder.scala rename to modules/core/src/main/scala/epic/trees/HeadFinder.scala diff --git a/src/main/scala/epic/trees/PartialTreeProcessor.scala b/modules/core/src/main/scala/epic/trees/PartialTreeProcessor.scala similarity index 100% rename from src/main/scala/epic/trees/PartialTreeProcessor.scala rename to modules/core/src/main/scala/epic/trees/PartialTreeProcessor.scala diff --git a/src/main/scala/epic/trees/PennTreeReader.scala b/modules/core/src/main/scala/epic/trees/PennTreeReader.scala similarity index 100% rename from src/main/scala/epic/trees/PennTreeReader.scala rename to modules/core/src/main/scala/epic/trees/PennTreeReader.scala diff --git a/src/main/scala/epic/trees/ProcessedTreebank.scala b/modules/core/src/main/scala/epic/trees/ProcessedTreebank.scala similarity index 100% rename from src/main/scala/epic/trees/ProcessedTreebank.scala rename to modules/core/src/main/scala/epic/trees/ProcessedTreebank.scala diff --git a/src/main/scala/epic/trees/Rule.scala b/modules/core/src/main/scala/epic/trees/Rule.scala similarity index 100% rename from src/main/scala/epic/trees/Rule.scala rename to modules/core/src/main/scala/epic/trees/Rule.scala diff --git a/src/main/scala/epic/trees/SimpleTreebank.scala b/modules/core/src/main/scala/epic/trees/SimpleTreebank.scala similarity index 100% rename from src/main/scala/epic/trees/SimpleTreebank.scala rename to modules/core/src/main/scala/epic/trees/SimpleTreebank.scala diff --git a/src/main/scala/epic/trees/Span.scala b/modules/core/src/main/scala/epic/trees/Span.scala similarity index 100% rename from src/main/scala/epic/trees/Span.scala rename to modules/core/src/main/scala/epic/trees/Span.scala diff --git a/src/main/scala/epic/trees/StandardTreeProcessor.scala b/modules/core/src/main/scala/epic/trees/StandardTreeProcessor.scala similarity index 100% rename from src/main/scala/epic/trees/StandardTreeProcessor.scala rename to modules/core/src/main/scala/epic/trees/StandardTreeProcessor.scala diff --git a/src/main/scala/epic/trees/SubsampledTreebank.scala b/modules/core/src/main/scala/epic/trees/SubsampledTreebank.scala similarity index 100% rename from src/main/scala/epic/trees/SubsampledTreebank.scala rename to modules/core/src/main/scala/epic/trees/SubsampledTreebank.scala diff --git a/src/main/scala/epic/trees/SupervisedHeadFinder.scala b/modules/core/src/main/scala/epic/trees/SupervisedHeadFinder.scala similarity index 100% rename from src/main/scala/epic/trees/SupervisedHeadFinder.scala rename to modules/core/src/main/scala/epic/trees/SupervisedHeadFinder.scala diff --git a/src/main/scala/epic/trees/TestTreebank.scala b/modules/core/src/main/scala/epic/trees/TestTreebank.scala similarity index 100% rename from src/main/scala/epic/trees/TestTreebank.scala rename to modules/core/src/main/scala/epic/trees/TestTreebank.scala diff --git a/src/main/scala/epic/trees/TraceRemover.scala b/modules/core/src/main/scala/epic/trees/TraceRemover.scala similarity index 100% rename from src/main/scala/epic/trees/TraceRemover.scala rename to modules/core/src/main/scala/epic/trees/TraceRemover.scala diff --git a/src/main/scala/epic/trees/TraceToSlashCategoryConverter.scala b/modules/core/src/main/scala/epic/trees/TraceToSlashCategoryConverter.scala similarity index 100% rename from src/main/scala/epic/trees/TraceToSlashCategoryConverter.scala rename to modules/core/src/main/scala/epic/trees/TraceToSlashCategoryConverter.scala diff --git a/src/main/scala/epic/trees/Tree.scala b/modules/core/src/main/scala/epic/trees/Tree.scala similarity index 100% rename from src/main/scala/epic/trees/Tree.scala rename to modules/core/src/main/scala/epic/trees/Tree.scala diff --git a/src/main/scala/epic/trees/TreeInstance.scala b/modules/core/src/main/scala/epic/trees/TreeInstance.scala similarity index 100% rename from src/main/scala/epic/trees/TreeInstance.scala rename to modules/core/src/main/scala/epic/trees/TreeInstance.scala diff --git a/src/main/scala/epic/trees/Treebank.scala b/modules/core/src/main/scala/epic/trees/Treebank.scala similarity index 100% rename from src/main/scala/epic/trees/Treebank.scala rename to modules/core/src/main/scala/epic/trees/Treebank.scala diff --git a/src/main/scala/epic/trees/UnaryChainCollapser.scala b/modules/core/src/main/scala/epic/trees/UnaryChainCollapser.scala similarity index 100% rename from src/main/scala/epic/trees/UnaryChainCollapser.scala rename to modules/core/src/main/scala/epic/trees/UnaryChainCollapser.scala diff --git a/src/main/scala/epic/trees/annotations/HeadTagAnnotator.scala b/modules/core/src/main/scala/epic/trees/annotations/HeadTagAnnotator.scala similarity index 100% rename from src/main/scala/epic/trees/annotations/HeadTagAnnotator.scala rename to modules/core/src/main/scala/epic/trees/annotations/HeadTagAnnotator.scala diff --git a/src/main/scala/epic/trees/annotations/KMAnnotator.scala b/modules/core/src/main/scala/epic/trees/annotations/KMAnnotator.scala similarity index 100% rename from src/main/scala/epic/trees/annotations/KMAnnotator.scala rename to modules/core/src/main/scala/epic/trees/annotations/KMAnnotator.scala diff --git a/src/main/scala/epic/trees/annotations/TreeAnnotations.scala b/modules/core/src/main/scala/epic/trees/annotations/TreeAnnotations.scala similarity index 100% rename from src/main/scala/epic/trees/annotations/TreeAnnotations.scala rename to modules/core/src/main/scala/epic/trees/annotations/TreeAnnotations.scala diff --git a/src/main/scala/epic/trees/annotations/TreeAnnotator.scala b/modules/core/src/main/scala/epic/trees/annotations/TreeAnnotator.scala similarity index 100% rename from src/main/scala/epic/trees/annotations/TreeAnnotator.scala rename to modules/core/src/main/scala/epic/trees/annotations/TreeAnnotator.scala diff --git a/src/main/scala/epic/trees/util/FilterTreesByLength.scala b/modules/core/src/main/scala/epic/trees/util/FilterTreesByLength.scala similarity index 100% rename from src/main/scala/epic/trees/util/FilterTreesByLength.scala rename to modules/core/src/main/scala/epic/trees/util/FilterTreesByLength.scala diff --git a/src/main/scala/epic/util/ArabicNormalization.scala b/modules/core/src/main/scala/epic/util/ArabicNormalization.scala similarity index 100% rename from src/main/scala/epic/util/ArabicNormalization.scala rename to modules/core/src/main/scala/epic/util/ArabicNormalization.scala diff --git a/src/main/scala/epic/util/BinarySearch.scala b/modules/core/src/main/scala/epic/util/BinarySearch.scala similarity index 100% rename from src/main/scala/epic/util/BinarySearch.scala rename to modules/core/src/main/scala/epic/util/BinarySearch.scala diff --git a/src/main/scala/epic/util/Cache.scala b/modules/core/src/main/scala/epic/util/Cache.scala similarity index 100% rename from src/main/scala/epic/util/Cache.scala rename to modules/core/src/main/scala/epic/util/Cache.scala diff --git a/src/main/scala/epic/util/FIFOWorkQueue.scala b/modules/core/src/main/scala/epic/util/FIFOWorkQueue.scala similarity index 100% rename from src/main/scala/epic/util/FIFOWorkQueue.scala rename to modules/core/src/main/scala/epic/util/FIFOWorkQueue.scala diff --git a/src/main/scala/epic/util/Has.scala b/modules/core/src/main/scala/epic/util/Has.scala similarity index 100% rename from src/main/scala/epic/util/Has.scala rename to modules/core/src/main/scala/epic/util/Has.scala diff --git a/src/main/scala/epic/util/LRUCache.scala b/modules/core/src/main/scala/epic/util/LRUCache.scala similarity index 100% rename from src/main/scala/epic/util/LRUCache.scala rename to modules/core/src/main/scala/epic/util/LRUCache.scala diff --git a/src/main/scala/epic/util/LockableSeenSet.scala b/modules/core/src/main/scala/epic/util/LockableSeenSet.scala similarity index 100% rename from src/main/scala/epic/util/LockableSeenSet.scala rename to modules/core/src/main/scala/epic/util/LockableSeenSet.scala diff --git a/src/main/scala/epic/util/Optional.scala b/modules/core/src/main/scala/epic/util/Optional.scala similarity index 100% rename from src/main/scala/epic/util/Optional.scala rename to modules/core/src/main/scala/epic/util/Optional.scala diff --git a/src/main/scala/epic/util/ProcessTextMain.scala b/modules/core/src/main/scala/epic/util/ProcessTextMain.scala similarity index 100% rename from src/main/scala/epic/util/ProcessTextMain.scala rename to modules/core/src/main/scala/epic/util/ProcessTextMain.scala diff --git a/src/main/scala/epic/util/ProgressLog.scala b/modules/core/src/main/scala/epic/util/ProgressLog.scala similarity index 100% rename from src/main/scala/epic/util/ProgressLog.scala rename to modules/core/src/main/scala/epic/util/ProgressLog.scala diff --git a/src/main/scala/epic/util/ThreadLocalBloomFilter.scala b/modules/core/src/main/scala/epic/util/ThreadLocalBloomFilter.scala similarity index 100% rename from src/main/scala/epic/util/ThreadLocalBloomFilter.scala rename to modules/core/src/main/scala/epic/util/ThreadLocalBloomFilter.scala diff --git a/src/main/scala/epic/util/TwoTwelveSupport.scala b/modules/core/src/main/scala/epic/util/TwoTwelveSupport.scala similarity index 100% rename from src/main/scala/epic/util/TwoTwelveSupport.scala rename to modules/core/src/main/scala/epic/util/TwoTwelveSupport.scala diff --git a/src/main/scala/epic/util/Unicode.scala b/modules/core/src/main/scala/epic/util/Unicode.scala similarity index 100% rename from src/main/scala/epic/util/Unicode.scala rename to modules/core/src/main/scala/epic/util/Unicode.scala diff --git a/src/main/scala/epic/util/WeightsCache.scala b/modules/core/src/main/scala/epic/util/WeightsCache.scala similarity index 100% rename from src/main/scala/epic/util/WeightsCache.scala rename to modules/core/src/main/scala/epic/util/WeightsCache.scala diff --git a/src/test/resources/lang/eng/stem/stemmed_vocabulary.txt b/modules/core/src/test/resources/lang/eng/stem/stemmed_vocabulary.txt similarity index 100% rename from src/test/resources/lang/eng/stem/stemmed_vocabulary.txt rename to modules/core/src/test/resources/lang/eng/stem/stemmed_vocabulary.txt diff --git a/src/test/resources/lang/eng/stem/vocabulary.txt b/modules/core/src/test/resources/lang/eng/stem/vocabulary.txt similarity index 100% rename from src/test/resources/lang/eng/stem/vocabulary.txt rename to modules/core/src/test/resources/lang/eng/stem/vocabulary.txt diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-cb.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-cb.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-cb.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-cb.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-event.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-event.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-event.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-event.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-fn.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-fn.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-fn.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-fn.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-fntok.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-fntok.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-fntok.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-fntok.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-logical.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-logical.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-logical.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-logical.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-mpqa.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-mpqa.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-mpqa.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-mpqa.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-nc.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-nc.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-nc.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-nc.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ne.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ne.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ne.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ne.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-penn.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-penn.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-penn.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-penn.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ptb.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ptb.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ptb.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ptb.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ptbtok.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ptbtok.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ptbtok.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-ptbtok.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-s.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-s.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-s.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-s.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-seg.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-seg.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-seg.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-seg.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-vc.xml b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-vc.xml similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-vc.xml rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW-vc.xml diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW.hdr b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW.hdr similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW.hdr rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW.hdr diff --git a/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW.txt b/modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW.txt similarity index 100% rename from src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW.txt rename to modules/core/src/test/resources/masc/data/written/newspaper/nyt/20000424_nyt-NEW.txt diff --git a/src/test/scala/epic/constraints/LabeledSpanConstraintsTest.scala b/modules/core/src/test/scala/epic/constraints/LabeledSpanConstraintsTest.scala similarity index 100% rename from src/test/scala/epic/constraints/LabeledSpanConstraintsTest.scala rename to modules/core/src/test/scala/epic/constraints/LabeledSpanConstraintsTest.scala diff --git a/src/test/scala/epic/corpora/MascTest.scala b/modules/core/src/test/scala/epic/corpora/MascTest.scala similarity index 100% rename from src/test/scala/epic/corpora/MascTest.scala rename to modules/core/src/test/scala/epic/corpora/MascTest.scala diff --git a/src/test/scala/epic/dense/AffineTransformTest.scala b/modules/core/src/test/scala/epic/dense/AffineTransformTest.scala similarity index 100% rename from src/test/scala/epic/dense/AffineTransformTest.scala rename to modules/core/src/test/scala/epic/dense/AffineTransformTest.scala diff --git a/src/test/scala/epic/dense/SigmoidTransformTest.scala b/modules/core/src/test/scala/epic/dense/SigmoidTransformTest.scala similarity index 100% rename from src/test/scala/epic/dense/SigmoidTransformTest.scala rename to modules/core/src/test/scala/epic/dense/SigmoidTransformTest.scala diff --git a/src/test/scala/epic/dense/TanhTransformTest.scala b/modules/core/src/test/scala/epic/dense/TanhTransformTest.scala similarity index 100% rename from src/test/scala/epic/dense/TanhTransformTest.scala rename to modules/core/src/test/scala/epic/dense/TanhTransformTest.scala diff --git a/src/test/scala/epic/features/CrossProductIndexTest.scala b/modules/core/src/test/scala/epic/features/CrossProductIndexTest.scala similarity index 100% rename from src/test/scala/epic/features/CrossProductIndexTest.scala rename to modules/core/src/test/scala/epic/features/CrossProductIndexTest.scala diff --git a/src/test/scala/epic/features/DistanceBinnerTest.scala b/modules/core/src/test/scala/epic/features/DistanceBinnerTest.scala similarity index 100% rename from src/test/scala/epic/features/DistanceBinnerTest.scala rename to modules/core/src/test/scala/epic/features/DistanceBinnerTest.scala diff --git a/src/test/scala/epic/features/NextActualWordFeaturizerTest.scala b/modules/core/src/test/scala/epic/features/NextActualWordFeaturizerTest.scala similarity index 100% rename from src/test/scala/epic/features/NextActualWordFeaturizerTest.scala rename to modules/core/src/test/scala/epic/features/NextActualWordFeaturizerTest.scala diff --git a/src/test/scala/epic/features/PorterStemmerTest.scala b/modules/core/src/test/scala/epic/features/PorterStemmerTest.scala similarity index 100% rename from src/test/scala/epic/features/PorterStemmerTest.scala rename to modules/core/src/test/scala/epic/features/PorterStemmerTest.scala diff --git a/src/test/scala/epic/features/packageTest.scala b/modules/core/src/test/scala/epic/features/packageTest.scala similarity index 100% rename from src/test/scala/epic/features/packageTest.scala rename to modules/core/src/test/scala/epic/features/packageTest.scala diff --git a/src/test/scala/epic/logo/ClassifierTest.scala b/modules/core/src/test/scala/epic/logo/ClassifierTest.scala similarity index 100% rename from src/test/scala/epic/logo/ClassifierTest.scala rename to modules/core/src/test/scala/epic/logo/ClassifierTest.scala diff --git a/src/test/scala/epic/parser/ChartDecoderTest.scala b/modules/core/src/test/scala/epic/parser/ChartDecoderTest.scala similarity index 100% rename from src/test/scala/epic/parser/ChartDecoderTest.scala rename to modules/core/src/test/scala/epic/parser/ChartDecoderTest.scala diff --git a/src/test/scala/epic/parser/GenerativeParserTest.scala b/modules/core/src/test/scala/epic/parser/GenerativeParserTest.scala similarity index 100% rename from src/test/scala/epic/parser/GenerativeParserTest.scala rename to modules/core/src/test/scala/epic/parser/GenerativeParserTest.scala diff --git a/src/test/scala/epic/parser/InsideOutsideTest.scala b/modules/core/src/test/scala/epic/parser/InsideOutsideTest.scala similarity index 100% rename from src/test/scala/epic/parser/InsideOutsideTest.scala rename to modules/core/src/test/scala/epic/parser/InsideOutsideTest.scala diff --git a/src/test/scala/epic/parser/LatentTreeMarginalTest.scala b/modules/core/src/test/scala/epic/parser/LatentTreeMarginalTest.scala similarity index 100% rename from src/test/scala/epic/parser/LatentTreeMarginalTest.scala rename to modules/core/src/test/scala/epic/parser/LatentTreeMarginalTest.scala diff --git a/src/test/scala/epic/parser/ParserTestHarness.scala b/modules/core/src/test/scala/epic/parser/ParserTestHarness.scala similarity index 100% rename from src/test/scala/epic/parser/ParserTestHarness.scala rename to modules/core/src/test/scala/epic/parser/ParserTestHarness.scala diff --git a/src/test/scala/epic/parser/SparseRuleTensorTest.scala b/modules/core/src/test/scala/epic/parser/SparseRuleTensorTest.scala similarity index 100% rename from src/test/scala/epic/parser/SparseRuleTensorTest.scala rename to modules/core/src/test/scala/epic/parser/SparseRuleTensorTest.scala diff --git a/src/test/scala/epic/parser/kbest/TopDownKBestAStarTest.scala b/modules/core/src/test/scala/epic/parser/kbest/TopDownKBestAStarTest.scala similarity index 100% rename from src/test/scala/epic/parser/kbest/TopDownKBestAStarTest.scala rename to modules/core/src/test/scala/epic/parser/kbest/TopDownKBestAStarTest.scala diff --git a/src/test/scala/epic/parser/models/EPParserTest.scala b/modules/core/src/test/scala/epic/parser/models/EPParserTest.scala similarity index 100% rename from src/test/scala/epic/parser/models/EPParserTest.scala rename to modules/core/src/test/scala/epic/parser/models/EPParserTest.scala diff --git a/src/test/scala/epic/parser/models/ProductParserTest.scala b/modules/core/src/test/scala/epic/parser/models/ProductParserTest.scala similarity index 100% rename from src/test/scala/epic/parser/models/ProductParserTest.scala rename to modules/core/src/test/scala/epic/parser/models/ProductParserTest.scala diff --git a/src/test/scala/epic/parser/projections/EnumeratedAnchoringTest.scala b/modules/core/src/test/scala/epic/parser/projections/EnumeratedAnchoringTest.scala similarity index 100% rename from src/test/scala/epic/parser/projections/EnumeratedAnchoringTest.scala rename to modules/core/src/test/scala/epic/parser/projections/EnumeratedAnchoringTest.scala diff --git a/src/test/scala/epic/parser/projections/SpanAnchoringTest.scala b/modules/core/src/test/scala/epic/parser/projections/SpanAnchoringTest.scala similarity index 100% rename from src/test/scala/epic/parser/projections/SpanAnchoringTest.scala rename to modules/core/src/test/scala/epic/parser/projections/SpanAnchoringTest.scala diff --git a/src/test/scala/epic/preprocess/JavaSentenceSegmenterTest.scala b/modules/core/src/test/scala/epic/preprocess/JavaSentenceSegmenterTest.scala similarity index 100% rename from src/test/scala/epic/preprocess/JavaSentenceSegmenterTest.scala rename to modules/core/src/test/scala/epic/preprocess/JavaSentenceSegmenterTest.scala diff --git a/src/test/scala/epic/preprocess/JavaWordTokenizerTest.scala b/modules/core/src/test/scala/epic/preprocess/JavaWordTokenizerTest.scala similarity index 100% rename from src/test/scala/epic/preprocess/JavaWordTokenizerTest.scala rename to modules/core/src/test/scala/epic/preprocess/JavaWordTokenizerTest.scala diff --git a/src/test/scala/epic/preprocess/MLSentenceSegmenterTest.scala b/modules/core/src/test/scala/epic/preprocess/MLSentenceSegmenterTest.scala similarity index 100% rename from src/test/scala/epic/preprocess/MLSentenceSegmenterTest.scala rename to modules/core/src/test/scala/epic/preprocess/MLSentenceSegmenterTest.scala diff --git a/src/test/scala/epic/preprocess/TreebankTokenizerTest.scala b/modules/core/src/test/scala/epic/preprocess/TreebankTokenizerTest.scala similarity index 100% rename from src/test/scala/epic/preprocess/TreebankTokenizerTest.scala rename to modules/core/src/test/scala/epic/preprocess/TreebankTokenizerTest.scala diff --git a/src/test/scala/epic/sequences/HMMTest.scala b/modules/core/src/test/scala/epic/sequences/HMMTest.scala similarity index 100% rename from src/test/scala/epic/sequences/HMMTest.scala rename to modules/core/src/test/scala/epic/sequences/HMMTest.scala diff --git a/src/test/scala/epic/sequences/SegmentationTest.scala b/modules/core/src/test/scala/epic/sequences/SegmentationTest.scala similarity index 100% rename from src/test/scala/epic/sequences/SegmentationTest.scala rename to modules/core/src/test/scala/epic/sequences/SegmentationTest.scala diff --git a/src/test/scala/epic/sequences/SemiCRFTest.scala b/modules/core/src/test/scala/epic/sequences/SemiCRFTest.scala similarity index 100% rename from src/test/scala/epic/sequences/SemiCRFTest.scala rename to modules/core/src/test/scala/epic/sequences/SemiCRFTest.scala diff --git a/src/test/scala/epic/slab/SlabTest.scala b/modules/core/src/test/scala/epic/slab/SlabTest.scala similarity index 100% rename from src/test/scala/epic/slab/SlabTest.scala rename to modules/core/src/test/scala/epic/slab/SlabTest.scala diff --git a/src/test/scala/epic/trees/PennTreeReaderTest.scala b/modules/core/src/test/scala/epic/trees/PennTreeReaderTest.scala similarity index 100% rename from src/test/scala/epic/trees/PennTreeReaderTest.scala rename to modules/core/src/test/scala/epic/trees/PennTreeReaderTest.scala diff --git a/src/test/scala/epic/trees/TraceRemoverTest.scala b/modules/core/src/test/scala/epic/trees/TraceRemoverTest.scala similarity index 100% rename from src/test/scala/epic/trees/TraceRemoverTest.scala rename to modules/core/src/test/scala/epic/trees/TraceRemoverTest.scala diff --git a/src/test/scala/epic/trees/TraceToSlashCategoryConverterTest.scala b/modules/core/src/test/scala/epic/trees/TraceToSlashCategoryConverterTest.scala similarity index 100% rename from src/test/scala/epic/trees/TraceToSlashCategoryConverterTest.scala rename to modules/core/src/test/scala/epic/trees/TraceToSlashCategoryConverterTest.scala diff --git a/src/test/scala/epic/trees/TreeTest.scala b/modules/core/src/test/scala/epic/trees/TreeTest.scala similarity index 100% rename from src/test/scala/epic/trees/TreeTest.scala rename to modules/core/src/test/scala/epic/trees/TreeTest.scala diff --git a/src/test/scala/epic/trees/annotations/KMAnnotatorTest.scala b/modules/core/src/test/scala/epic/trees/annotations/KMAnnotatorTest.scala similarity index 100% rename from src/test/scala/epic/trees/annotations/KMAnnotatorTest.scala rename to modules/core/src/test/scala/epic/trees/annotations/KMAnnotatorTest.scala diff --git a/src/test/scala/epic/trees/annotations/ParentAnnotateTest.scala b/modules/core/src/test/scala/epic/trees/annotations/ParentAnnotateTest.scala similarity index 100% rename from src/test/scala/epic/trees/annotations/ParentAnnotateTest.scala rename to modules/core/src/test/scala/epic/trees/annotations/ParentAnnotateTest.scala diff --git a/src/test/scala/epic/util/BinarySearchTest.scala b/modules/core/src/test/scala/epic/util/BinarySearchTest.scala similarity index 100% rename from src/test/scala/epic/util/BinarySearchTest.scala rename to modules/core/src/test/scala/epic/util/BinarySearchTest.scala diff --git a/src/test/scala/epic/util/FIFOWorkQueueTest.scala b/modules/core/src/test/scala/epic/util/FIFOWorkQueueTest.scala similarity index 100% rename from src/test/scala/epic/util/FIFOWorkQueueTest.scala rename to modules/core/src/test/scala/epic/util/FIFOWorkQueueTest.scala diff --git a/src/test/scala/epic/util/LRUCacheTest.scala b/modules/core/src/test/scala/epic/util/LRUCacheTest.scala similarity index 100% rename from src/test/scala/epic/util/LRUCacheTest.scala rename to modules/core/src/test/scala/epic/util/LRUCacheTest.scala diff --git a/src/main/scala/epic/preprocess/TextExtractor.scala b/modules/html/src/main/scala/epic/preprocess/TextExtractor.scala similarity index 95% rename from src/main/scala/epic/preprocess/TextExtractor.scala rename to modules/html/src/main/scala/epic/preprocess/TextExtractor.scala index f399be49..e5537945 100644 --- a/src/main/scala/epic/preprocess/TextExtractor.scala +++ b/modules/html/src/main/scala/epic/preprocess/TextExtractor.scala @@ -1,5 +1,4 @@ -package epic -package preprocess +package epic.preprocess import java.io.InputStream import java.net.URL @@ -11,19 +10,19 @@ import org.apache.tika.Tika import org.apache.tika.io.TikaInputStream import org.apache.tika.metadata.Metadata import org.apache.tika.parser.html.BoilerpipeContentHandler -import org.apache.tika.parser.{ParseContext, Parser} +import org.apache.tika.parser.{ ParseContext, Parser } import org.apache.tika.sax.ToTextContentHandler import org.xml.sax._ +import scala.xml._ +import scala.xml.factory.XMLLoader + /** * Just a simple thing for me to learn Tika * * @author dlwh **/ object TextExtractor { - if (!hasTika) - throw new RuntimeException("Apache Tika is an optional dependency and is not on the classpath") - def extractText(url: URL, extractMainContentOnly: Boolean = true) = loadSlab(url, extractMainContentOnly).content def loadSlab(url: URL, extractMainContentOnly: Boolean = true) = { @@ -213,9 +212,6 @@ object TextExtractor { import org.xml.sax._ import org.xml.sax.helpers.DefaultHandler -import scala.xml._ - import scala.xml.factory.XMLLoader - class Loader extends DefaultHandler with XMLLoader[Elem] { val newAdapter = adapter def value = newAdapter.rootElem.asInstanceOf[Elem] @@ -247,15 +243,4 @@ import scala.xml._ characters(ch, start, length) } } - - def hasTika = { - try { - Class.forName(classOf[Tika].getName) - true - } - catch { - case _: Any => false - } - } - } diff --git a/src/main/scala/epic/preprocess/Textify.scala b/modules/html/src/main/scala/epic/preprocess/Textify.scala similarity index 91% rename from src/main/scala/epic/preprocess/Textify.scala rename to modules/html/src/main/scala/epic/preprocess/Textify.scala index 40702ca2..b3f6e7b7 100644 --- a/src/main/scala/epic/preprocess/Textify.scala +++ b/modules/html/src/main/scala/epic/preprocess/Textify.scala @@ -1,6 +1,6 @@ package epic.preprocess -import java.io.{PrintWriter, FileWriter, File} +import java.io.{ File, FileWriter, PrintWriter } /** * TODO @@ -25,5 +25,4 @@ object Textify { oo.close() } } - } diff --git a/src/main/scala/epic/preprocess/package.scala b/modules/html/src/main/scala/epic/preprocess/preprocess.scala similarity index 93% rename from src/main/scala/epic/preprocess/package.scala rename to modules/html/src/main/scala/epic/preprocess/preprocess.scala index da3ac3f3..6252fe98 100644 --- a/src/main/scala/epic/preprocess/package.scala +++ b/modules/html/src/main/scala/epic/preprocess/preprocess.scala @@ -3,16 +3,11 @@ package epic import java.io.File import java.net.URL -/** - * TODO - * - * @author dlwh - **/ package object preprocess { def tokenize(sentence: String): IndexedSeq[String] = TreebankTokenizer(sentence) def loadContent(url: URL): String = TextExtractor.extractText(url) - + def preprocess(url: URL):IndexedSeq[IndexedSeq[String]] = { preprocess(loadContent(url)) } @@ -26,5 +21,4 @@ package object preprocess { } private lazy val _seg = MLSentenceSegmenter.bundled().get - } diff --git a/project/build.properties b/project/build.properties index a6e117b6..72f90289 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=0.13.8 +sbt.version=1.2.7 diff --git a/project/plugins.sbt b/project/plugins.sbt index 647dda76..994e2b5a 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,14 +7,16 @@ resolvers += Classpaths.sbtPluginReleases resolvers += Resolver.url("artifactory", url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns) -addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0") +addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10") -addSbtPlugin("org.scalanlp" % "sbt-jflex" % "0.3") +addSbtPlugin("org.scalanlp" % "sbt-jflex" % "0.4") -addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0") +// addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0") -addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.7.5") +addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.9.2") + +// addSbtPlugin("com.typesafe.sbt" % "sbt-osgi" % "0.7.0") + +addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "0.9.3") -addSbtPlugin("com.typesafe.sbt" % "sbt-osgi" % "0.7.0") -addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "0.8.5") diff --git a/src/main/resources/epic/.DS_Store b/src/main/resources/epic/.DS_Store deleted file mode 100644 index fa32f13d..00000000 Binary files a/src/main/resources/epic/.DS_Store and /dev/null differ diff --git a/src/main/resources/epic/features/.DS_Store b/src/main/resources/epic/features/.DS_Store deleted file mode 100644 index 36c76a91..00000000 Binary files a/src/main/resources/epic/features/.DS_Store and /dev/null differ