From 49c696ebac1efe5cc17e99da0c076d4dccf8b8a4 Mon Sep 17 00:00:00 2001 From: Timo Baumann Date: Tue, 17 Apr 2018 16:59:30 -0400 Subject: [PATCH 1/9] make gradle compatible (seems to work except for some tests) --- .gitignore | 3 + build.gradle | 45 +++++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54333 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 172 ++++++++++++++++++ gradlew.bat | 84 +++++++++ scripts/extract-module-classes.rb | 4 +- settings.gradle | 1 + .../AbstractReinforcementParserState.java | 0 .../stanford/nlp/sempre/ActionFormula.java | 0 .../stanford/nlp/sempre/AggregateFormula.java | 0 .../nlp/sempre/ArithmeticFormula.java | 0 .../stanford/nlp/sempre/AtomicSemType.java | 0 .../nlp/sempre/BadFormulaException.java | 0 .../edu/stanford/nlp/sempre/BeamParser.java | 0 .../edu/stanford/nlp/sempre/BooleanValue.java | 0 .../nlp/sempre/BoundedPriorityQueue.java | 0 .../edu/stanford/nlp/sempre/Builder.java | 0 .../edu/stanford/nlp/sempre/CallFormula.java | 0 .../edu/stanford/nlp/sempre/CallTypeInfo.java | 0 .../stanford/nlp/sempre/CanonicalNames.java | 0 .../edu/stanford/nlp/sempre/CatSizeBound.java | 0 .../stanford/nlp/sempre/ChartParserState.java | 0 .../nlp/sempre/ChildDerivationsGroup.java | 0 .../edu/stanford/nlp/sempre/CoarseParser.java | 0 .../edu/stanford/nlp/sempre/Colorizer.java | 0 .../edu/stanford/nlp/sempre/ConcatFn.java | 0 .../edu/stanford/nlp/sempre/ConstantFn.java | 0 .../edu/stanford/nlp/sempre/ContextFn.java | 0 .../edu/stanford/nlp/sempre/ContextValue.java | 0 .../edu/stanford/nlp/sempre/Dataset.java | 0 .../java}/edu/stanford/nlp/sempre/DateFn.java | 0 .../edu/stanford/nlp/sempre/DateRangeFn.java | 0 .../edu/stanford/nlp/sempre/DateValue.java | 0 .../DefaultDerivationPruningComputer.java | 0 .../sempre/DerivOpCountFeatureComputer.java | 0 .../edu/stanford/nlp/sempre/Derivation.java | 0 .../stanford/nlp/sempre/DerivationPruner.java | 0 .../nlp/sempre/DerivationPruningComputer.java | 0 .../stanford/nlp/sempre/DerivationStream.java | 0 .../stanford/nlp/sempre/DescriptionValue.java | 0 .../edu/stanford/nlp/sempre/ErrorValue.java | 0 .../nlp/sempre/ExactValueEvaluator.java | 0 .../edu/stanford/nlp/sempre/Example.java | 0 .../edu/stanford/nlp/sempre/ExampleUtils.java | 0 .../edu/stanford/nlp/sempre/Executor.java | 0 .../stanford/nlp/sempre/FeatureComputer.java | 0 .../stanford/nlp/sempre/FeatureExtractor.java | 0 .../stanford/nlp/sempre/FeatureMatcher.java | 0 .../stanford/nlp/sempre/FeatureVector.java | 0 .../stanford/nlp/sempre/FilterNerSpanFn.java | 0 .../stanford/nlp/sempre/FilterPosTagFn.java | 0 .../nlp/sempre/FilterSpanLengthFn.java | 0 .../stanford/nlp/sempre/FilterTokenFn.java | 0 .../nlp/sempre/FloatingFeatureComputer.java | 0 .../stanford/nlp/sempre/FloatingParser.java | 0 .../nlp/sempre/FloatingRuleUtils.java | 0 .../edu/stanford/nlp/sempre/Formula.java | 0 .../nlp/sempre/FormulaMatchExecutor.java | 0 .../edu/stanford/nlp/sempre/Formulas.java | 0 .../edu/stanford/nlp/sempre/FuncSemType.java | 0 .../edu/stanford/nlp/sempre/FuzzyMatchFn.java | 0 .../stanford/nlp/sempre/FuzzyMatchable.java | 0 .../edu/stanford/nlp/sempre/Grammar.java | 0 .../edu/stanford/nlp/sempre/HasScore.java | 0 .../edu/stanford/nlp/sempre/IdentityFn.java | 0 .../edu/stanford/nlp/sempre/JavaExecutor.java | 0 .../java}/edu/stanford/nlp/sempre/JoinFn.java | 0 .../edu/stanford/nlp/sempre/JoinFormula.java | 0 .../java}/edu/stanford/nlp/sempre/Json.java | 0 .../stanford/nlp/sempre/KnowledgeGraph.java | 0 .../stanford/nlp/sempre/LambdaFormula.java | 0 .../stanford/nlp/sempre/LanguageAnalyzer.java | 0 .../edu/stanford/nlp/sempre/LanguageInfo.java | 0 .../edu/stanford/nlp/sempre/Learner.java | 0 .../nlp/sempre/LearnerParallelProcessor.java | 0 .../edu/stanford/nlp/sempre/ListValue.java | 0 .../java}/edu/stanford/nlp/sempre/Main.java | 0 .../edu/stanford/nlp/sempre/MarkFormula.java | 0 .../java}/edu/stanford/nlp/sempre/Master.java | 0 .../edu/stanford/nlp/sempre/MergeFn.java | 0 .../edu/stanford/nlp/sempre/MergeFormula.java | 0 .../edu/stanford/nlp/sempre/MixParser.java | 0 .../nlp/sempre/MultipleDerivationStream.java | 0 .../nlp/sempre/NaiveKnowledgeGraph.java | 0 .../edu/stanford/nlp/sempre/NameValue.java | 0 .../edu/stanford/nlp/sempre/NotFormula.java | 0 .../edu/stanford/nlp/sempre/NullExecutor.java | 0 .../stanford/nlp/sempre/NullTypeLookup.java | 0 .../edu/stanford/nlp/sempre/NumberFn.java | 0 .../edu/stanford/nlp/sempre/NumberValue.java | 0 .../stanford/nlp/sempre/PairListValue.java | 0 .../java}/edu/stanford/nlp/sempre/Params.java | 0 .../java}/edu/stanford/nlp/sempre/Parser.java | 0 .../edu/stanford/nlp/sempre/ParserAgenda.java | 0 .../edu/stanford/nlp/sempre/ParserState.java | 0 .../stanford/nlp/sempre/PrimitiveFormula.java | 0 .../nlp/sempre/ReinforcementParser.java | 0 .../nlp/sempre/ReinforcementUtils.java | 0 .../stanford/nlp/sempre/ReverseFormula.java | 0 .../java}/edu/stanford/nlp/sempre/Rule.java | 0 .../edu/stanford/nlp/sempre/RuleSource.java | 0 .../edu/stanford/nlp/sempre/SelectFn.java | 0 .../edu/stanford/nlp/sempre/SemType.java | 0 .../stanford/nlp/sempre/SemTypeHierarchy.java | 0 .../edu/stanford/nlp/sempre/SemanticFn.java | 0 .../edu/stanford/nlp/sempre/SempreUtils.java | 0 .../java}/edu/stanford/nlp/sempre/Server.java | 0 .../edu/stanford/nlp/sempre/Session.java | 0 .../stanford/nlp/sempre/SimpleAnalyzer.java | 0 .../stanford/nlp/sempre/SimpleLexicon.java | 0 .../stanford/nlp/sempre/SimpleLexiconFn.java | 0 .../nlp/sempre/SingleDerivationStream.java | 0 .../edu/stanford/nlp/sempre/StringValue.java | 0 .../nlp/sempre/SuperlativeFormula.java | 0 .../edu/stanford/nlp/sempre/TableValue.java | 0 .../nlp/sempre/TargetValuePreprocessor.java | 0 .../edu/stanford/nlp/sempre/TimeValue.java | 0 .../edu/stanford/nlp/sempre/TopSemType.java | 0 .../java}/edu/stanford/nlp/sempre/Trie.java | 0 .../stanford/nlp/sempre/TypeInference.java | 0 .../edu/stanford/nlp/sempre/TypeLookup.java | 0 .../edu/stanford/nlp/sempre/UnionSemType.java | 0 .../edu/stanford/nlp/sempre/UriValue.java | 0 .../java}/edu/stanford/nlp/sempre/Value.java | 0 .../stanford/nlp/sempre/ValueEvaluator.java | 0 .../edu/stanford/nlp/sempre/ValueFormula.java | 0 .../java}/edu/stanford/nlp/sempre/Values.java | 0 .../stanford/nlp/sempre/VariableFormula.java | 0 .../nlp/sempre/cache/FileStringCache.java | 0 .../nlp/sempre/cache/LruCallback.java | 0 .../edu/stanford/nlp/sempre/cache/LruMap.java | 0 .../nlp/sempre/cache/RemoteStringCache.java | 0 .../nlp/sempre/cache/StringCache.java | 0 .../nlp/sempre/cache/StringCacheServer.java | 0 .../nlp/sempre/cache/StringCacheUtils.java | 0 .../nlp/sempre/corenlp/CoreNLPAnalyzer.java | 0 .../nlp/sempre/cprune/CPruneDerivInfo.java | 0 .../sempre/cprune/CPruneFloatingParser.java | 0 .../nlp/sempre/cprune/CPruneStats.java | 0 .../sempre/cprune/CollaborativePruner.java | 0 .../nlp/sempre/cprune/CustomGrammar.java | 0 .../nlp/sempre/cprune/FormulaPattern.java | 0 .../stanford/nlp/sempre/cprune/Symbol.java | 0 .../nlp/sempre/executors/Example.java | 13 ++ .../nlp/sempre/freebase/BinaryLexicon.java | 0 .../nlp/sempre/freebase/BridgeFn.java | 0 .../sempre/freebase/BuildCanonicalIdMap.java | 0 .../nlp/sempre/freebase/BuildTypesMap.java | 0 .../sempre/freebase/CanonicalizeExamples.java | 0 .../nlp/sempre/freebase/CanonicalizeIds.java | 0 .../nlp/sempre/freebase/EntityLexicon.java | 0 .../nlp/sempre/freebase/ExecuteExamples.java | 0 .../nlp/sempre/freebase/FbFormulasInfo.java | 0 .../nlp/sempre/freebase/FilterFreebase.java | 0 .../nlp/sempre/freebase/Free917Converter.java | 0 .../nlp/sempre/freebase/FreebaseInfo.java | 0 .../nlp/sempre/freebase/FreebaseSearch.java | 0 .../sempre/freebase/FreebaseTypeLookup.java | 0 .../freebase/FreebaseValueEvaluator.java | 0 .../freebase/LambdaCalculusConverter.java | 0 .../stanford/nlp/sempre/freebase/Lexicon.java | 0 .../nlp/sempre/freebase/LexiconFn.java | 0 .../nlp/sempre/freebase/SparqlExecutor.java | 0 .../nlp/sempre/freebase/SparqlExpr.java | 0 .../stanford/nlp/sempre/freebase/Stemmer.java | 0 .../sempre/freebase/TextToTextMatcher.java | 0 .../nlp/sempre/freebase/UnaryLexicon.java | 0 .../stanford/nlp/sempre/freebase/Utils.java | 0 .../freebase/index/FbEntityIndexer.java | 0 .../freebase/index/FbEntitySearcher.java | 0 .../sempre/freebase/index/FbIndexField.java | 0 .../sempre/freebase/lexicons/EntrySource.java | 0 .../lexicons/ExtremeValueWrapper.java | 0 .../freebase/lexicons/LexicalEntry.java | 0 .../lexicons/TokenLevelMatchFeatures.java | 0 .../normalizers/BinaryNormalizer.java | 0 .../lexicons/normalizers/EntryNormalizer.java | 0 .../normalizers/IdentityNormalizer.java | 0 .../normalizers/PrepDropNormalizer.java | 0 .../freebase/utils/CollectionUtils.java | 0 .../freebase/utils/DoubleContainer.java | 0 .../nlp/sempre/freebase/utils/FileUtils.java | 0 .../freebase/utils/FormatConverter.java | 0 .../sempre/freebase/utils/FreebaseUtils.java | 0 .../utils/LinkedExtractionFileUtils.java | 0 .../nlp/sempre/freebase/utils/MathUtils.java | 0 .../freebase/utils/SemparseLogTools.java | 0 .../sempre/freebase/utils/ShortContainer.java | 0 .../nlp/sempre/freebase/utils/WnExpander.java | 0 .../nlp/sempre/freebase/utils/WordNet.java | 0 .../nlp/sempre/geo880/Geo880TypeLookup.java | 0 .../sempre/geo880/Geo880ValueEvaluator.java | 0 .../nlp/sempre/interactive/ApplyFn.java | 0 .../interactive/BadInteractionException.java | 0 .../nlp/sempre/interactive/BlockFn.java | 0 .../sempre/interactive/CitationTracker.java | 0 .../nlp/sempre/interactive/DALAnalyzer.java | 0 .../nlp/sempre/interactive/DALExecutor.java | 0 .../interactive/DALFeatureComputer.java | 0 .../nlp/sempre/interactive/Definition.java | 0 .../sempre/interactive/DefinitionAligner.java | 0 .../sempre/interactive/GrammarInducer.java | 0 .../interactive/InteractiveBeamParser.java | 0 .../sempre/interactive/InteractiveMaster.java | 0 .../sempre/interactive/InteractiveServer.java | 0 .../sempre/interactive/InteractiveUtils.java | 0 .../stanford/nlp/sempre/interactive/Item.java | 0 .../nlp/sempre/interactive/QueryStats.java | 0 .../interactive/SimulationAnalyzer.java | 0 .../nlp/sempre/interactive/Simulator.java | 0 .../nlp/sempre/interactive/World.java | 0 .../sempre/interactive/voxelurn/Color.java | 0 .../interactive/voxelurn/Direction.java | 0 .../sempre/interactive/voxelurn/Voxel.java | 0 .../interactive/voxelurn/VoxelWorld.java | 0 .../nlp/sempre/overnight/Aligner.java | 0 .../ConvertTargetValueFromListToString.java | 0 ...reateBerkeleyAlignerInputFromLispTree.java | 0 .../nlp/sempre/overnight/GenerationMain.java | 0 .../OvernightDerivationPruningComputer.java | 0 .../overnight/OvernightFeatureComputer.java | 0 .../nlp/sempre/overnight/PPDBModel.java | 0 .../nlp/sempre/overnight/SimpleWorld.java | 0 .../tables/DenotationTypeInference.java | 0 .../nlp/sempre/tables/InfiniteListValue.java | 0 .../nlp/sempre/tables/ScopedFormula.java | 0 .../nlp/sempre/tables/ScopedValue.java | 0 .../tables/StringNormalizationUtils.java | 0 .../stanford/nlp/sempre/tables/TableCell.java | 0 .../sempre/tables/TableCellProperties.java | 0 .../nlp/sempre/tables/TableColumn.java | 0 .../TableDerivationPruningComputer.java | 0 .../sempre/tables/TableFormulaEvaluator.java | 0 .../sempre/tables/TableKnowledgeGraph.java | 0 .../stanford/nlp/sempre/tables/TableRow.java | 0 .../nlp/sempre/tables/TableTypeLookup.java | 0 .../nlp/sempre/tables/TableTypeSystem.java | 0 .../sempre/tables/TableValueEvaluator.java | 0 .../sempre/tables/TableValuePreprocessor.java | 0 .../tables/alter/AggregatedTurkData.java | 0 .../tables/alter/AlteredTablesExecutor.java | 0 .../tables/alter/BatchTableAlterer.java | 0 .../tables/alter/CachedSubsetChooser.java | 0 .../sempre/tables/alter/DenotationData.java | 0 .../tables/alter/EntropySubsetChooser.java | 0 .../tables/alter/PureSubsetChooser.java | 0 .../nlp/sempre/tables/alter/Subset.java | 0 .../sempre/tables/alter/SubsetChooser.java | 0 .../nlp/sempre/tables/alter/TableAlterer.java | 0 .../tables/alter/TableAltererCache.java | 0 .../tables/alter/TurkEquivalentClassInfo.java | 0 .../tables/alter/ValueCanonicalizer.java | 0 .../TableBaselineFeatureComputer.java | 0 .../tables/baseline/TableBaselineParser.java | 0 .../nlp/sempre/tables/dpd/DPDErrorValue.java | 0 .../nlp/sempre/tables/dpd/DPDParser.java | 0 .../features/AnchorFeatureComputer.java | 0 .../tables/features/ColumnCategoryInfo.java | 0 .../sempre/tables/features/HeadwordInfo.java | 0 .../PhraseDenotationFeatureComputer.java | 0 .../sempre/tables/features/PhraseInfo.java | 0 .../PhrasePredicateFeatureComputer.java | 0 .../sempre/tables/features/PredicateInfo.java | 0 .../nlp/sempre/tables/grow/ApplyFn.java | 0 .../nlp/sempre/tables/grow/BeginGrowFn.java | 0 .../nlp/sempre/tables/grow/EndGrowFn.java | 0 .../tables/lambdadcs/BinaryDenotation.java | 0 .../tables/lambdadcs/BinaryTypeHint.java | 0 .../sempre/tables/lambdadcs/Binarylike.java | 0 .../tables/lambdadcs/DenotationUtils.java | 0 .../tables/lambdadcs/ExecutorCache.java | 0 .../tables/lambdadcs/ExplicitPairList.java | 0 .../lambdadcs/ExplicitUnaryDenotation.java | 0 .../lambdadcs/InfiniteUnaryDenotation.java | 0 .../tables/lambdadcs/LambdaDCSException.java | 0 .../tables/lambdadcs/LambdaDCSExecutor.java | 0 .../tables/lambdadcs/MappingDenotation.java | 0 .../nlp/sempre/tables/lambdadcs/PairList.java | 0 .../tables/lambdadcs/PredicatePairList.java | 0 .../nlp/sempre/tables/lambdadcs/TypeHint.java | 0 .../tables/lambdadcs/UnaryDenotation.java | 0 .../sempre/tables/lambdadcs/Unarylike.java | 0 .../tables/lambdadcs/UnarylikeTypeHint.java | 0 .../sempre/tables/match/ClosedClassFn.java | 0 .../match/EditDistanceFuzzyMatcher.java | 0 .../sempre/tables/match/FuzzyMatchCache.java | 0 .../nlp/sempre/tables/match/FuzzyMatcher.java | 0 .../sempre/tables/match/OriginalMatcher.java | 0 .../sempre/tables/serialize/DumpFilterer.java | 0 .../serialize/LazyLoadedExampleList.java | 0 .../tables/serialize/SerializedDataset.java | 0 .../tables/serialize/SerializedDumper.java | 0 .../tables/serialize/SerializedLoader.java | 0 .../tables/serialize/SerializedParser.java | 0 .../sempre/tables/serialize/TSVGenerator.java | 0 .../sempre/tables/serialize/TableReader.java | 3 +- .../sempre/tables/serialize/TableWriter.java | 3 +- .../serialize/TaggedDatasetGenerator.java | 0 .../serialize/TaggedFuzzyGenerator.java | 0 .../serialize/TaggedTableGenerator.java | 0 .../tables/test/BatchTableExecutor.java | 0 .../nlp/sempre/tables/test/CustomExample.java | 0 .../sempre/tables/test/DPDParserChecker.java | 0 .../test/DPDParserCheckerProcessor.java | 0 .../tables/test/TableColumnAnalyzer.java | 0 .../test/TableFormulaCanonicalizer.java | 0 .../tables/test/TableStatsComputer.java | 0 .../stanford/nlp/sempre/test/TestUtils.java | 0 .../sempre/cache/test/StringCacheTest.java | 0 .../corenlp/test/CoreNLPSemanticFnTest.java | 0 .../sempre/freebase/test/FbFormulasTest.java | 0 .../freebase/test/FreebaseInfoTest.java | 0 .../freebase/test/FreebaseSemTypeTest.java | 0 .../test/FreebaseTypeInferenceTest.java | 0 .../nlp/sempre/freebase/test/LexiconTest.java | 0 .../freebase/test/PrepDropNormalizerTest.java | 0 .../freebase/test/SparqlExecutorTest.java | 0 .../nlp/sempre/freebase/test/StemmerTest.java | 0 .../sempre/freebase/test/TokenMatchTest.java | 0 .../interactive/test/DALExecutorTest.java | 0 .../interactive/test/FloatingParsingTest.java | 0 .../interactive/test/GrammarInducerTest.java | 0 .../overnight/test/SimpleWorldTest.java | 0 .../lambdadcs/LambdaDCSExecutorTest.java | 0 .../nlp/sempre/test/DerivationStreamTest.java | 0 .../stanford/nlp/sempre/test/FormulaTest.java | 0 .../stanford/nlp/sempre/test/GrammarTest.java | 0 .../nlp/sempre/test/GrammarValidityTest.java | 0 .../nlp/sempre/test/JavaExecutorTest.java | 0 .../stanford/nlp/sempre/test/JsonTest.java | 0 .../nlp/sempre/test/L1RegularizationTest.java | 0 .../stanford/nlp/sempre/test/ParserTest.java | 0 .../stanford/nlp/sempre/test/SemTypeTest.java | 0 .../nlp/sempre/test/SemanticFnTest.java | 0 .../nlp/sempre/test/SystemSanityTest.java | 0 .../nlp/sempre/test/TypeInferenceTest.java | 0 337 files changed, 329 insertions(+), 4 deletions(-) create mode 100644 build.gradle create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle rename src/{ => main/java}/edu/stanford/nlp/sempre/AbstractReinforcementParserState.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ActionFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/AggregateFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ArithmeticFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/AtomicSemType.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/BadFormulaException.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/BeamParser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/BooleanValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/BoundedPriorityQueue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Builder.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/CallFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/CallTypeInfo.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/CanonicalNames.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/CatSizeBound.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ChartParserState.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ChildDerivationsGroup.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/CoarseParser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Colorizer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ConcatFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ConstantFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ContextFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ContextValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Dataset.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/DateFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/DateRangeFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/DateValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/DefaultDerivationPruningComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/DerivOpCountFeatureComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Derivation.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/DerivationPruner.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/DerivationPruningComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/DerivationStream.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/DescriptionValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ErrorValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ExactValueEvaluator.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Example.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ExampleUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Executor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FeatureComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FeatureExtractor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FeatureMatcher.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FeatureVector.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FilterNerSpanFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FilterPosTagFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FilterSpanLengthFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FilterTokenFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FloatingFeatureComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FloatingParser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FloatingRuleUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Formula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FormulaMatchExecutor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Formulas.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FuncSemType.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FuzzyMatchFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/FuzzyMatchable.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Grammar.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/HasScore.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/IdentityFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/JavaExecutor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/JoinFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/JoinFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Json.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/KnowledgeGraph.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/LambdaFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/LanguageAnalyzer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/LanguageInfo.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Learner.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/LearnerParallelProcessor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ListValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Main.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/MarkFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Master.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/MergeFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/MergeFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/MixParser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/MultipleDerivationStream.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/NaiveKnowledgeGraph.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/NameValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/NotFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/NullExecutor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/NullTypeLookup.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/NumberFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/NumberValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/PairListValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Params.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Parser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ParserAgenda.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ParserState.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/PrimitiveFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ReinforcementParser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ReinforcementUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ReverseFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Rule.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/RuleSource.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/SelectFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/SemType.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/SemTypeHierarchy.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/SemanticFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/SempreUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Server.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Session.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/SimpleAnalyzer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/SimpleLexicon.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/SimpleLexiconFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/SingleDerivationStream.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/StringValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/SuperlativeFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/TableValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/TargetValuePreprocessor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/TimeValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/TopSemType.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Trie.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/TypeInference.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/TypeLookup.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/UnionSemType.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/UriValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Value.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ValueEvaluator.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/ValueFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/Values.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/VariableFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cache/FileStringCache.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cache/LruCallback.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cache/LruMap.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cache/RemoteStringCache.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cache/StringCache.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cache/StringCacheServer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cache/StringCacheUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/corenlp/CoreNLPAnalyzer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cprune/CPruneDerivInfo.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cprune/CPruneFloatingParser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cprune/CPruneStats.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cprune/CollaborativePruner.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cprune/CustomGrammar.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cprune/FormulaPattern.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/cprune/Symbol.java (100%) create mode 100644 src/main/java/edu/stanford/nlp/sempre/executors/Example.java rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/BinaryLexicon.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/BridgeFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/BuildCanonicalIdMap.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/BuildTypesMap.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/CanonicalizeExamples.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/CanonicalizeIds.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/EntityLexicon.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/ExecuteExamples.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/FbFormulasInfo.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/FilterFreebase.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/Free917Converter.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/FreebaseInfo.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/FreebaseSearch.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/FreebaseTypeLookup.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/FreebaseValueEvaluator.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/LambdaCalculusConverter.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/Lexicon.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/LexiconFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/SparqlExecutor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/SparqlExpr.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/Stemmer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/TextToTextMatcher.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/UnaryLexicon.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/Utils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/index/FbEntityIndexer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/index/FbEntitySearcher.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/index/FbIndexField.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/lexicons/EntrySource.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/lexicons/ExtremeValueWrapper.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/lexicons/LexicalEntry.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/lexicons/TokenLevelMatchFeatures.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/BinaryNormalizer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/EntryNormalizer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/IdentityNormalizer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/PrepDropNormalizer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/utils/CollectionUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/utils/DoubleContainer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/utils/FileUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/utils/FormatConverter.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/utils/FreebaseUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/utils/LinkedExtractionFileUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/utils/MathUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/utils/SemparseLogTools.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/utils/ShortContainer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/utils/WnExpander.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/freebase/utils/WordNet.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/geo880/Geo880TypeLookup.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/geo880/Geo880ValueEvaluator.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/ApplyFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/BadInteractionException.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/BlockFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/CitationTracker.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/DALAnalyzer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/DALExecutor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/DALFeatureComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/Definition.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/DefinitionAligner.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/GrammarInducer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/InteractiveBeamParser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/InteractiveMaster.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/InteractiveServer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/InteractiveUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/Item.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/QueryStats.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/SimulationAnalyzer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/Simulator.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/World.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/voxelurn/Color.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/voxelurn/Direction.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/voxelurn/Voxel.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/interactive/voxelurn/VoxelWorld.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/overnight/Aligner.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/overnight/ConvertTargetValueFromListToString.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/overnight/CreateBerkeleyAlignerInputFromLispTree.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/overnight/GenerationMain.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/overnight/OvernightDerivationPruningComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/overnight/OvernightFeatureComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/overnight/PPDBModel.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/overnight/SimpleWorld.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/DenotationTypeInference.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/InfiniteListValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/ScopedFormula.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/ScopedValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/StringNormalizationUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/TableCell.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/TableCellProperties.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/TableColumn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/TableDerivationPruningComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/TableFormulaEvaluator.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/TableKnowledgeGraph.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/TableRow.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/TableTypeLookup.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/TableTypeSystem.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/TableValueEvaluator.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/TableValuePreprocessor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/AggregatedTurkData.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/AlteredTablesExecutor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/BatchTableAlterer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/CachedSubsetChooser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/DenotationData.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/EntropySubsetChooser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/PureSubsetChooser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/Subset.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/SubsetChooser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/TableAlterer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/TableAltererCache.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/TurkEquivalentClassInfo.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/alter/ValueCanonicalizer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/baseline/TableBaselineFeatureComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/baseline/TableBaselineParser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/dpd/DPDErrorValue.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/dpd/DPDParser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/features/AnchorFeatureComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/features/ColumnCategoryInfo.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/features/HeadwordInfo.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/features/PhraseDenotationFeatureComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/features/PhraseInfo.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/features/PhrasePredicateFeatureComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/features/PredicateInfo.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/grow/ApplyFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/grow/BeginGrowFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/grow/EndGrowFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/BinaryDenotation.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/BinaryTypeHint.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/Binarylike.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/DenotationUtils.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/ExecutorCache.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/ExplicitPairList.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/ExplicitUnaryDenotation.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/InfiniteUnaryDenotation.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSException.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSExecutor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/MappingDenotation.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/PairList.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/PredicatePairList.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/TypeHint.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/UnaryDenotation.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/Unarylike.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/lambdadcs/UnarylikeTypeHint.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/match/ClosedClassFn.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/match/EditDistanceFuzzyMatcher.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/match/FuzzyMatchCache.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/match/FuzzyMatcher.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/match/OriginalMatcher.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/DumpFilterer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/LazyLoadedExampleList.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/SerializedDataset.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/SerializedDumper.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/SerializedLoader.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/SerializedParser.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/TSVGenerator.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/TableReader.java (97%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/TableWriter.java (98%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/TaggedDatasetGenerator.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/TaggedFuzzyGenerator.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/serialize/TaggedTableGenerator.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/test/BatchTableExecutor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/test/CustomExample.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/test/DPDParserChecker.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/test/DPDParserCheckerProcessor.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/test/TableColumnAnalyzer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/test/TableFormulaCanonicalizer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/tables/test/TableStatsComputer.java (100%) rename src/{ => main/java}/edu/stanford/nlp/sempre/test/TestUtils.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/cache/test/StringCacheTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/corenlp/test/CoreNLPSemanticFnTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/freebase/test/FbFormulasTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/freebase/test/FreebaseInfoTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/freebase/test/FreebaseSemTypeTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/freebase/test/FreebaseTypeInferenceTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/freebase/test/LexiconTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/freebase/test/PrepDropNormalizerTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/freebase/test/SparqlExecutorTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/freebase/test/StemmerTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/freebase/test/TokenMatchTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/interactive/test/DALExecutorTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/interactive/test/FloatingParsingTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/interactive/test/GrammarInducerTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/overnight/test/SimpleWorldTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSExecutorTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/DerivationStreamTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/FormulaTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/GrammarTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/GrammarValidityTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/JavaExecutorTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/JsonTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/L1RegularizationTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/ParserTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/SemTypeTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/SemanticFnTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/SystemSanityTest.java (100%) rename src/{ => test/java}/edu/stanford/nlp/sempre/test/TypeInferenceTest.java (100%) diff --git a/.gitignore b/.gitignore index dc1e65a12..94e0bf79e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +.gradle +build/ + lib fig sfig diff --git a/build.gradle b/build.gradle new file mode 100644 index 000000000..65f8d0757 --- /dev/null +++ b/build.gradle @@ -0,0 +1,45 @@ +plugins { + id 'maven' + id 'application' + id 'java' +} + +repositories { + jcenter() + maven { url "https://jitpack.io" } +} + +dependencies { + compile 'org.slf4j:slf4j-api:1.7.25' + compile group: 'com.google.guava', name: 'guava', version: '23.0' + compile group: 'com.beust', name: 'jcommander', version: '1.72' + compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.5' + compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.5' + compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.5' + compile group: 'jline', name: 'jline', version: '2.14.6' + compile group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: '3.7.0' + compile group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: '3.7.0', classifier: 'models' + runtime group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: '3.7.0', classifier: 'models-english' + compile group: 'joda-time', name: 'joda-time', version: '2.9.9' + compile group: 'de.jollyday', name: 'jollyday', version: '0.5.5' + compile group: 'com.googlecode.efficient-java-matrix-library', name: 'ejml', version: '0.25' + compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25' + compile group: 'com.opencsv', name: 'opencsv', version: '4.1' + compile group: 'com.github.percyliang', name: 'fig', version: 'master-SNAPSHOT' + + testCompile group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25' + testCompile group: 'org.testng', name: 'testng', version: '6.14.3' + compile group: 'org.testng', name: 'testng', version: '6.14.3' + testCompile 'junit:junit:4.12' +} + +test { + useTestNG() + exclude 'edu/stanford/nlp/sempre/interactive/test/**' + exclude 'edu/stanford/nlp/sempre/freebase/test/SparqlExecutorTest.class' // freebase web access is not available anymore + exclude 'edu/stanford/nlp/sempre/overnight/test/SimpleWorldTest.class' // you need to copy overnight/unittest.db to lib/data/overnight/test/unittest.db for this to work. +} + +mainClassName = 'edu.stanford.nlp.sempre.Main' +distZip.enabled = false +distTar.enabled = false diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..99340b4ad18d3c7e764794d300ffd35017036793 GIT binary patch literal 54333 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 D&=%~j literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..2c2bbe5f9 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-bin.zip diff --git a/gradlew b/gradlew new file mode 100755 index 000000000..cccdd3d51 --- /dev/null +++ b/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 000000000..e95643d6a --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/scripts/extract-module-classes.rb b/scripts/extract-module-classes.rb index 3f3b3daaf..31d111d7d 100755 --- a/scripts/extract-module-classes.rb +++ b/scripts/extract-module-classes.rb @@ -11,8 +11,8 @@ items = [] core_packages = ['test'] # Packages in core which are not their own modules modules = {} -Dir['src/**/*.java'].each { |path| - class_name = path.sub(/^src\//, '').gsub(/\//, '.').gsub(/\.java$/, '') +Dir['src/main/java/**/*.java'].each { |path| + class_name = path.sub(/^src\/main\/java\//, '').gsub(/\//, '.').gsub(/\.java$/, '') module_name = path.sub(/^.*sempre\//, '').split(/\//)[0] module_name = 'core' if module_name =~ /\.java$/ || core_packages.index(module_name) modules[module_name] = true diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 000000000..a0704922c --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'sempre' diff --git a/src/edu/stanford/nlp/sempre/AbstractReinforcementParserState.java b/src/main/java/edu/stanford/nlp/sempre/AbstractReinforcementParserState.java similarity index 100% rename from src/edu/stanford/nlp/sempre/AbstractReinforcementParserState.java rename to src/main/java/edu/stanford/nlp/sempre/AbstractReinforcementParserState.java diff --git a/src/edu/stanford/nlp/sempre/ActionFormula.java b/src/main/java/edu/stanford/nlp/sempre/ActionFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ActionFormula.java rename to src/main/java/edu/stanford/nlp/sempre/ActionFormula.java diff --git a/src/edu/stanford/nlp/sempre/AggregateFormula.java b/src/main/java/edu/stanford/nlp/sempre/AggregateFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/AggregateFormula.java rename to src/main/java/edu/stanford/nlp/sempre/AggregateFormula.java diff --git a/src/edu/stanford/nlp/sempre/ArithmeticFormula.java b/src/main/java/edu/stanford/nlp/sempre/ArithmeticFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ArithmeticFormula.java rename to src/main/java/edu/stanford/nlp/sempre/ArithmeticFormula.java diff --git a/src/edu/stanford/nlp/sempre/AtomicSemType.java b/src/main/java/edu/stanford/nlp/sempre/AtomicSemType.java similarity index 100% rename from src/edu/stanford/nlp/sempre/AtomicSemType.java rename to src/main/java/edu/stanford/nlp/sempre/AtomicSemType.java diff --git a/src/edu/stanford/nlp/sempre/BadFormulaException.java b/src/main/java/edu/stanford/nlp/sempre/BadFormulaException.java similarity index 100% rename from src/edu/stanford/nlp/sempre/BadFormulaException.java rename to src/main/java/edu/stanford/nlp/sempre/BadFormulaException.java diff --git a/src/edu/stanford/nlp/sempre/BeamParser.java b/src/main/java/edu/stanford/nlp/sempre/BeamParser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/BeamParser.java rename to src/main/java/edu/stanford/nlp/sempre/BeamParser.java diff --git a/src/edu/stanford/nlp/sempre/BooleanValue.java b/src/main/java/edu/stanford/nlp/sempre/BooleanValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/BooleanValue.java rename to src/main/java/edu/stanford/nlp/sempre/BooleanValue.java diff --git a/src/edu/stanford/nlp/sempre/BoundedPriorityQueue.java b/src/main/java/edu/stanford/nlp/sempre/BoundedPriorityQueue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/BoundedPriorityQueue.java rename to src/main/java/edu/stanford/nlp/sempre/BoundedPriorityQueue.java diff --git a/src/edu/stanford/nlp/sempre/Builder.java b/src/main/java/edu/stanford/nlp/sempre/Builder.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Builder.java rename to src/main/java/edu/stanford/nlp/sempre/Builder.java diff --git a/src/edu/stanford/nlp/sempre/CallFormula.java b/src/main/java/edu/stanford/nlp/sempre/CallFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/CallFormula.java rename to src/main/java/edu/stanford/nlp/sempre/CallFormula.java diff --git a/src/edu/stanford/nlp/sempre/CallTypeInfo.java b/src/main/java/edu/stanford/nlp/sempre/CallTypeInfo.java similarity index 100% rename from src/edu/stanford/nlp/sempre/CallTypeInfo.java rename to src/main/java/edu/stanford/nlp/sempre/CallTypeInfo.java diff --git a/src/edu/stanford/nlp/sempre/CanonicalNames.java b/src/main/java/edu/stanford/nlp/sempre/CanonicalNames.java similarity index 100% rename from src/edu/stanford/nlp/sempre/CanonicalNames.java rename to src/main/java/edu/stanford/nlp/sempre/CanonicalNames.java diff --git a/src/edu/stanford/nlp/sempre/CatSizeBound.java b/src/main/java/edu/stanford/nlp/sempre/CatSizeBound.java similarity index 100% rename from src/edu/stanford/nlp/sempre/CatSizeBound.java rename to src/main/java/edu/stanford/nlp/sempre/CatSizeBound.java diff --git a/src/edu/stanford/nlp/sempre/ChartParserState.java b/src/main/java/edu/stanford/nlp/sempre/ChartParserState.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ChartParserState.java rename to src/main/java/edu/stanford/nlp/sempre/ChartParserState.java diff --git a/src/edu/stanford/nlp/sempre/ChildDerivationsGroup.java b/src/main/java/edu/stanford/nlp/sempre/ChildDerivationsGroup.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ChildDerivationsGroup.java rename to src/main/java/edu/stanford/nlp/sempre/ChildDerivationsGroup.java diff --git a/src/edu/stanford/nlp/sempre/CoarseParser.java b/src/main/java/edu/stanford/nlp/sempre/CoarseParser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/CoarseParser.java rename to src/main/java/edu/stanford/nlp/sempre/CoarseParser.java diff --git a/src/edu/stanford/nlp/sempre/Colorizer.java b/src/main/java/edu/stanford/nlp/sempre/Colorizer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Colorizer.java rename to src/main/java/edu/stanford/nlp/sempre/Colorizer.java diff --git a/src/edu/stanford/nlp/sempre/ConcatFn.java b/src/main/java/edu/stanford/nlp/sempre/ConcatFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ConcatFn.java rename to src/main/java/edu/stanford/nlp/sempre/ConcatFn.java diff --git a/src/edu/stanford/nlp/sempre/ConstantFn.java b/src/main/java/edu/stanford/nlp/sempre/ConstantFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ConstantFn.java rename to src/main/java/edu/stanford/nlp/sempre/ConstantFn.java diff --git a/src/edu/stanford/nlp/sempre/ContextFn.java b/src/main/java/edu/stanford/nlp/sempre/ContextFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ContextFn.java rename to src/main/java/edu/stanford/nlp/sempre/ContextFn.java diff --git a/src/edu/stanford/nlp/sempre/ContextValue.java b/src/main/java/edu/stanford/nlp/sempre/ContextValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ContextValue.java rename to src/main/java/edu/stanford/nlp/sempre/ContextValue.java diff --git a/src/edu/stanford/nlp/sempre/Dataset.java b/src/main/java/edu/stanford/nlp/sempre/Dataset.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Dataset.java rename to src/main/java/edu/stanford/nlp/sempre/Dataset.java diff --git a/src/edu/stanford/nlp/sempre/DateFn.java b/src/main/java/edu/stanford/nlp/sempre/DateFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/DateFn.java rename to src/main/java/edu/stanford/nlp/sempre/DateFn.java diff --git a/src/edu/stanford/nlp/sempre/DateRangeFn.java b/src/main/java/edu/stanford/nlp/sempre/DateRangeFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/DateRangeFn.java rename to src/main/java/edu/stanford/nlp/sempre/DateRangeFn.java diff --git a/src/edu/stanford/nlp/sempre/DateValue.java b/src/main/java/edu/stanford/nlp/sempre/DateValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/DateValue.java rename to src/main/java/edu/stanford/nlp/sempre/DateValue.java diff --git a/src/edu/stanford/nlp/sempre/DefaultDerivationPruningComputer.java b/src/main/java/edu/stanford/nlp/sempre/DefaultDerivationPruningComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/DefaultDerivationPruningComputer.java rename to src/main/java/edu/stanford/nlp/sempre/DefaultDerivationPruningComputer.java diff --git a/src/edu/stanford/nlp/sempre/DerivOpCountFeatureComputer.java b/src/main/java/edu/stanford/nlp/sempre/DerivOpCountFeatureComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/DerivOpCountFeatureComputer.java rename to src/main/java/edu/stanford/nlp/sempre/DerivOpCountFeatureComputer.java diff --git a/src/edu/stanford/nlp/sempre/Derivation.java b/src/main/java/edu/stanford/nlp/sempre/Derivation.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Derivation.java rename to src/main/java/edu/stanford/nlp/sempre/Derivation.java diff --git a/src/edu/stanford/nlp/sempre/DerivationPruner.java b/src/main/java/edu/stanford/nlp/sempre/DerivationPruner.java similarity index 100% rename from src/edu/stanford/nlp/sempre/DerivationPruner.java rename to src/main/java/edu/stanford/nlp/sempre/DerivationPruner.java diff --git a/src/edu/stanford/nlp/sempre/DerivationPruningComputer.java b/src/main/java/edu/stanford/nlp/sempre/DerivationPruningComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/DerivationPruningComputer.java rename to src/main/java/edu/stanford/nlp/sempre/DerivationPruningComputer.java diff --git a/src/edu/stanford/nlp/sempre/DerivationStream.java b/src/main/java/edu/stanford/nlp/sempre/DerivationStream.java similarity index 100% rename from src/edu/stanford/nlp/sempre/DerivationStream.java rename to src/main/java/edu/stanford/nlp/sempre/DerivationStream.java diff --git a/src/edu/stanford/nlp/sempre/DescriptionValue.java b/src/main/java/edu/stanford/nlp/sempre/DescriptionValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/DescriptionValue.java rename to src/main/java/edu/stanford/nlp/sempre/DescriptionValue.java diff --git a/src/edu/stanford/nlp/sempre/ErrorValue.java b/src/main/java/edu/stanford/nlp/sempre/ErrorValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ErrorValue.java rename to src/main/java/edu/stanford/nlp/sempre/ErrorValue.java diff --git a/src/edu/stanford/nlp/sempre/ExactValueEvaluator.java b/src/main/java/edu/stanford/nlp/sempre/ExactValueEvaluator.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ExactValueEvaluator.java rename to src/main/java/edu/stanford/nlp/sempre/ExactValueEvaluator.java diff --git a/src/edu/stanford/nlp/sempre/Example.java b/src/main/java/edu/stanford/nlp/sempre/Example.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Example.java rename to src/main/java/edu/stanford/nlp/sempre/Example.java diff --git a/src/edu/stanford/nlp/sempre/ExampleUtils.java b/src/main/java/edu/stanford/nlp/sempre/ExampleUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ExampleUtils.java rename to src/main/java/edu/stanford/nlp/sempre/ExampleUtils.java diff --git a/src/edu/stanford/nlp/sempre/Executor.java b/src/main/java/edu/stanford/nlp/sempre/Executor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Executor.java rename to src/main/java/edu/stanford/nlp/sempre/Executor.java diff --git a/src/edu/stanford/nlp/sempre/FeatureComputer.java b/src/main/java/edu/stanford/nlp/sempre/FeatureComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FeatureComputer.java rename to src/main/java/edu/stanford/nlp/sempre/FeatureComputer.java diff --git a/src/edu/stanford/nlp/sempre/FeatureExtractor.java b/src/main/java/edu/stanford/nlp/sempre/FeatureExtractor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FeatureExtractor.java rename to src/main/java/edu/stanford/nlp/sempre/FeatureExtractor.java diff --git a/src/edu/stanford/nlp/sempre/FeatureMatcher.java b/src/main/java/edu/stanford/nlp/sempre/FeatureMatcher.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FeatureMatcher.java rename to src/main/java/edu/stanford/nlp/sempre/FeatureMatcher.java diff --git a/src/edu/stanford/nlp/sempre/FeatureVector.java b/src/main/java/edu/stanford/nlp/sempre/FeatureVector.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FeatureVector.java rename to src/main/java/edu/stanford/nlp/sempre/FeatureVector.java diff --git a/src/edu/stanford/nlp/sempre/FilterNerSpanFn.java b/src/main/java/edu/stanford/nlp/sempre/FilterNerSpanFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FilterNerSpanFn.java rename to src/main/java/edu/stanford/nlp/sempre/FilterNerSpanFn.java diff --git a/src/edu/stanford/nlp/sempre/FilterPosTagFn.java b/src/main/java/edu/stanford/nlp/sempre/FilterPosTagFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FilterPosTagFn.java rename to src/main/java/edu/stanford/nlp/sempre/FilterPosTagFn.java diff --git a/src/edu/stanford/nlp/sempre/FilterSpanLengthFn.java b/src/main/java/edu/stanford/nlp/sempre/FilterSpanLengthFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FilterSpanLengthFn.java rename to src/main/java/edu/stanford/nlp/sempre/FilterSpanLengthFn.java diff --git a/src/edu/stanford/nlp/sempre/FilterTokenFn.java b/src/main/java/edu/stanford/nlp/sempre/FilterTokenFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FilterTokenFn.java rename to src/main/java/edu/stanford/nlp/sempre/FilterTokenFn.java diff --git a/src/edu/stanford/nlp/sempre/FloatingFeatureComputer.java b/src/main/java/edu/stanford/nlp/sempre/FloatingFeatureComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FloatingFeatureComputer.java rename to src/main/java/edu/stanford/nlp/sempre/FloatingFeatureComputer.java diff --git a/src/edu/stanford/nlp/sempre/FloatingParser.java b/src/main/java/edu/stanford/nlp/sempre/FloatingParser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FloatingParser.java rename to src/main/java/edu/stanford/nlp/sempre/FloatingParser.java diff --git a/src/edu/stanford/nlp/sempre/FloatingRuleUtils.java b/src/main/java/edu/stanford/nlp/sempre/FloatingRuleUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FloatingRuleUtils.java rename to src/main/java/edu/stanford/nlp/sempre/FloatingRuleUtils.java diff --git a/src/edu/stanford/nlp/sempre/Formula.java b/src/main/java/edu/stanford/nlp/sempre/Formula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Formula.java rename to src/main/java/edu/stanford/nlp/sempre/Formula.java diff --git a/src/edu/stanford/nlp/sempre/FormulaMatchExecutor.java b/src/main/java/edu/stanford/nlp/sempre/FormulaMatchExecutor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FormulaMatchExecutor.java rename to src/main/java/edu/stanford/nlp/sempre/FormulaMatchExecutor.java diff --git a/src/edu/stanford/nlp/sempre/Formulas.java b/src/main/java/edu/stanford/nlp/sempre/Formulas.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Formulas.java rename to src/main/java/edu/stanford/nlp/sempre/Formulas.java diff --git a/src/edu/stanford/nlp/sempre/FuncSemType.java b/src/main/java/edu/stanford/nlp/sempre/FuncSemType.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FuncSemType.java rename to src/main/java/edu/stanford/nlp/sempre/FuncSemType.java diff --git a/src/edu/stanford/nlp/sempre/FuzzyMatchFn.java b/src/main/java/edu/stanford/nlp/sempre/FuzzyMatchFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FuzzyMatchFn.java rename to src/main/java/edu/stanford/nlp/sempre/FuzzyMatchFn.java diff --git a/src/edu/stanford/nlp/sempre/FuzzyMatchable.java b/src/main/java/edu/stanford/nlp/sempre/FuzzyMatchable.java similarity index 100% rename from src/edu/stanford/nlp/sempre/FuzzyMatchable.java rename to src/main/java/edu/stanford/nlp/sempre/FuzzyMatchable.java diff --git a/src/edu/stanford/nlp/sempre/Grammar.java b/src/main/java/edu/stanford/nlp/sempre/Grammar.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Grammar.java rename to src/main/java/edu/stanford/nlp/sempre/Grammar.java diff --git a/src/edu/stanford/nlp/sempre/HasScore.java b/src/main/java/edu/stanford/nlp/sempre/HasScore.java similarity index 100% rename from src/edu/stanford/nlp/sempre/HasScore.java rename to src/main/java/edu/stanford/nlp/sempre/HasScore.java diff --git a/src/edu/stanford/nlp/sempre/IdentityFn.java b/src/main/java/edu/stanford/nlp/sempre/IdentityFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/IdentityFn.java rename to src/main/java/edu/stanford/nlp/sempre/IdentityFn.java diff --git a/src/edu/stanford/nlp/sempre/JavaExecutor.java b/src/main/java/edu/stanford/nlp/sempre/JavaExecutor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/JavaExecutor.java rename to src/main/java/edu/stanford/nlp/sempre/JavaExecutor.java diff --git a/src/edu/stanford/nlp/sempre/JoinFn.java b/src/main/java/edu/stanford/nlp/sempre/JoinFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/JoinFn.java rename to src/main/java/edu/stanford/nlp/sempre/JoinFn.java diff --git a/src/edu/stanford/nlp/sempre/JoinFormula.java b/src/main/java/edu/stanford/nlp/sempre/JoinFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/JoinFormula.java rename to src/main/java/edu/stanford/nlp/sempre/JoinFormula.java diff --git a/src/edu/stanford/nlp/sempre/Json.java b/src/main/java/edu/stanford/nlp/sempre/Json.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Json.java rename to src/main/java/edu/stanford/nlp/sempre/Json.java diff --git a/src/edu/stanford/nlp/sempre/KnowledgeGraph.java b/src/main/java/edu/stanford/nlp/sempre/KnowledgeGraph.java similarity index 100% rename from src/edu/stanford/nlp/sempre/KnowledgeGraph.java rename to src/main/java/edu/stanford/nlp/sempre/KnowledgeGraph.java diff --git a/src/edu/stanford/nlp/sempre/LambdaFormula.java b/src/main/java/edu/stanford/nlp/sempre/LambdaFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/LambdaFormula.java rename to src/main/java/edu/stanford/nlp/sempre/LambdaFormula.java diff --git a/src/edu/stanford/nlp/sempre/LanguageAnalyzer.java b/src/main/java/edu/stanford/nlp/sempre/LanguageAnalyzer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/LanguageAnalyzer.java rename to src/main/java/edu/stanford/nlp/sempre/LanguageAnalyzer.java diff --git a/src/edu/stanford/nlp/sempre/LanguageInfo.java b/src/main/java/edu/stanford/nlp/sempre/LanguageInfo.java similarity index 100% rename from src/edu/stanford/nlp/sempre/LanguageInfo.java rename to src/main/java/edu/stanford/nlp/sempre/LanguageInfo.java diff --git a/src/edu/stanford/nlp/sempre/Learner.java b/src/main/java/edu/stanford/nlp/sempre/Learner.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Learner.java rename to src/main/java/edu/stanford/nlp/sempre/Learner.java diff --git a/src/edu/stanford/nlp/sempre/LearnerParallelProcessor.java b/src/main/java/edu/stanford/nlp/sempre/LearnerParallelProcessor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/LearnerParallelProcessor.java rename to src/main/java/edu/stanford/nlp/sempre/LearnerParallelProcessor.java diff --git a/src/edu/stanford/nlp/sempre/ListValue.java b/src/main/java/edu/stanford/nlp/sempre/ListValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ListValue.java rename to src/main/java/edu/stanford/nlp/sempre/ListValue.java diff --git a/src/edu/stanford/nlp/sempre/Main.java b/src/main/java/edu/stanford/nlp/sempre/Main.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Main.java rename to src/main/java/edu/stanford/nlp/sempre/Main.java diff --git a/src/edu/stanford/nlp/sempre/MarkFormula.java b/src/main/java/edu/stanford/nlp/sempre/MarkFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/MarkFormula.java rename to src/main/java/edu/stanford/nlp/sempre/MarkFormula.java diff --git a/src/edu/stanford/nlp/sempre/Master.java b/src/main/java/edu/stanford/nlp/sempre/Master.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Master.java rename to src/main/java/edu/stanford/nlp/sempre/Master.java diff --git a/src/edu/stanford/nlp/sempre/MergeFn.java b/src/main/java/edu/stanford/nlp/sempre/MergeFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/MergeFn.java rename to src/main/java/edu/stanford/nlp/sempre/MergeFn.java diff --git a/src/edu/stanford/nlp/sempre/MergeFormula.java b/src/main/java/edu/stanford/nlp/sempre/MergeFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/MergeFormula.java rename to src/main/java/edu/stanford/nlp/sempre/MergeFormula.java diff --git a/src/edu/stanford/nlp/sempre/MixParser.java b/src/main/java/edu/stanford/nlp/sempre/MixParser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/MixParser.java rename to src/main/java/edu/stanford/nlp/sempre/MixParser.java diff --git a/src/edu/stanford/nlp/sempre/MultipleDerivationStream.java b/src/main/java/edu/stanford/nlp/sempre/MultipleDerivationStream.java similarity index 100% rename from src/edu/stanford/nlp/sempre/MultipleDerivationStream.java rename to src/main/java/edu/stanford/nlp/sempre/MultipleDerivationStream.java diff --git a/src/edu/stanford/nlp/sempre/NaiveKnowledgeGraph.java b/src/main/java/edu/stanford/nlp/sempre/NaiveKnowledgeGraph.java similarity index 100% rename from src/edu/stanford/nlp/sempre/NaiveKnowledgeGraph.java rename to src/main/java/edu/stanford/nlp/sempre/NaiveKnowledgeGraph.java diff --git a/src/edu/stanford/nlp/sempre/NameValue.java b/src/main/java/edu/stanford/nlp/sempre/NameValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/NameValue.java rename to src/main/java/edu/stanford/nlp/sempre/NameValue.java diff --git a/src/edu/stanford/nlp/sempre/NotFormula.java b/src/main/java/edu/stanford/nlp/sempre/NotFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/NotFormula.java rename to src/main/java/edu/stanford/nlp/sempre/NotFormula.java diff --git a/src/edu/stanford/nlp/sempre/NullExecutor.java b/src/main/java/edu/stanford/nlp/sempre/NullExecutor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/NullExecutor.java rename to src/main/java/edu/stanford/nlp/sempre/NullExecutor.java diff --git a/src/edu/stanford/nlp/sempre/NullTypeLookup.java b/src/main/java/edu/stanford/nlp/sempre/NullTypeLookup.java similarity index 100% rename from src/edu/stanford/nlp/sempre/NullTypeLookup.java rename to src/main/java/edu/stanford/nlp/sempre/NullTypeLookup.java diff --git a/src/edu/stanford/nlp/sempre/NumberFn.java b/src/main/java/edu/stanford/nlp/sempre/NumberFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/NumberFn.java rename to src/main/java/edu/stanford/nlp/sempre/NumberFn.java diff --git a/src/edu/stanford/nlp/sempre/NumberValue.java b/src/main/java/edu/stanford/nlp/sempre/NumberValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/NumberValue.java rename to src/main/java/edu/stanford/nlp/sempre/NumberValue.java diff --git a/src/edu/stanford/nlp/sempre/PairListValue.java b/src/main/java/edu/stanford/nlp/sempre/PairListValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/PairListValue.java rename to src/main/java/edu/stanford/nlp/sempre/PairListValue.java diff --git a/src/edu/stanford/nlp/sempre/Params.java b/src/main/java/edu/stanford/nlp/sempre/Params.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Params.java rename to src/main/java/edu/stanford/nlp/sempre/Params.java diff --git a/src/edu/stanford/nlp/sempre/Parser.java b/src/main/java/edu/stanford/nlp/sempre/Parser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Parser.java rename to src/main/java/edu/stanford/nlp/sempre/Parser.java diff --git a/src/edu/stanford/nlp/sempre/ParserAgenda.java b/src/main/java/edu/stanford/nlp/sempre/ParserAgenda.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ParserAgenda.java rename to src/main/java/edu/stanford/nlp/sempre/ParserAgenda.java diff --git a/src/edu/stanford/nlp/sempre/ParserState.java b/src/main/java/edu/stanford/nlp/sempre/ParserState.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ParserState.java rename to src/main/java/edu/stanford/nlp/sempre/ParserState.java diff --git a/src/edu/stanford/nlp/sempre/PrimitiveFormula.java b/src/main/java/edu/stanford/nlp/sempre/PrimitiveFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/PrimitiveFormula.java rename to src/main/java/edu/stanford/nlp/sempre/PrimitiveFormula.java diff --git a/src/edu/stanford/nlp/sempre/ReinforcementParser.java b/src/main/java/edu/stanford/nlp/sempre/ReinforcementParser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ReinforcementParser.java rename to src/main/java/edu/stanford/nlp/sempre/ReinforcementParser.java diff --git a/src/edu/stanford/nlp/sempre/ReinforcementUtils.java b/src/main/java/edu/stanford/nlp/sempre/ReinforcementUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ReinforcementUtils.java rename to src/main/java/edu/stanford/nlp/sempre/ReinforcementUtils.java diff --git a/src/edu/stanford/nlp/sempre/ReverseFormula.java b/src/main/java/edu/stanford/nlp/sempre/ReverseFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ReverseFormula.java rename to src/main/java/edu/stanford/nlp/sempre/ReverseFormula.java diff --git a/src/edu/stanford/nlp/sempre/Rule.java b/src/main/java/edu/stanford/nlp/sempre/Rule.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Rule.java rename to src/main/java/edu/stanford/nlp/sempre/Rule.java diff --git a/src/edu/stanford/nlp/sempre/RuleSource.java b/src/main/java/edu/stanford/nlp/sempre/RuleSource.java similarity index 100% rename from src/edu/stanford/nlp/sempre/RuleSource.java rename to src/main/java/edu/stanford/nlp/sempre/RuleSource.java diff --git a/src/edu/stanford/nlp/sempre/SelectFn.java b/src/main/java/edu/stanford/nlp/sempre/SelectFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/SelectFn.java rename to src/main/java/edu/stanford/nlp/sempre/SelectFn.java diff --git a/src/edu/stanford/nlp/sempre/SemType.java b/src/main/java/edu/stanford/nlp/sempre/SemType.java similarity index 100% rename from src/edu/stanford/nlp/sempre/SemType.java rename to src/main/java/edu/stanford/nlp/sempre/SemType.java diff --git a/src/edu/stanford/nlp/sempre/SemTypeHierarchy.java b/src/main/java/edu/stanford/nlp/sempre/SemTypeHierarchy.java similarity index 100% rename from src/edu/stanford/nlp/sempre/SemTypeHierarchy.java rename to src/main/java/edu/stanford/nlp/sempre/SemTypeHierarchy.java diff --git a/src/edu/stanford/nlp/sempre/SemanticFn.java b/src/main/java/edu/stanford/nlp/sempre/SemanticFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/SemanticFn.java rename to src/main/java/edu/stanford/nlp/sempre/SemanticFn.java diff --git a/src/edu/stanford/nlp/sempre/SempreUtils.java b/src/main/java/edu/stanford/nlp/sempre/SempreUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/SempreUtils.java rename to src/main/java/edu/stanford/nlp/sempre/SempreUtils.java diff --git a/src/edu/stanford/nlp/sempre/Server.java b/src/main/java/edu/stanford/nlp/sempre/Server.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Server.java rename to src/main/java/edu/stanford/nlp/sempre/Server.java diff --git a/src/edu/stanford/nlp/sempre/Session.java b/src/main/java/edu/stanford/nlp/sempre/Session.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Session.java rename to src/main/java/edu/stanford/nlp/sempre/Session.java diff --git a/src/edu/stanford/nlp/sempre/SimpleAnalyzer.java b/src/main/java/edu/stanford/nlp/sempre/SimpleAnalyzer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/SimpleAnalyzer.java rename to src/main/java/edu/stanford/nlp/sempre/SimpleAnalyzer.java diff --git a/src/edu/stanford/nlp/sempre/SimpleLexicon.java b/src/main/java/edu/stanford/nlp/sempre/SimpleLexicon.java similarity index 100% rename from src/edu/stanford/nlp/sempre/SimpleLexicon.java rename to src/main/java/edu/stanford/nlp/sempre/SimpleLexicon.java diff --git a/src/edu/stanford/nlp/sempre/SimpleLexiconFn.java b/src/main/java/edu/stanford/nlp/sempre/SimpleLexiconFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/SimpleLexiconFn.java rename to src/main/java/edu/stanford/nlp/sempre/SimpleLexiconFn.java diff --git a/src/edu/stanford/nlp/sempre/SingleDerivationStream.java b/src/main/java/edu/stanford/nlp/sempre/SingleDerivationStream.java similarity index 100% rename from src/edu/stanford/nlp/sempre/SingleDerivationStream.java rename to src/main/java/edu/stanford/nlp/sempre/SingleDerivationStream.java diff --git a/src/edu/stanford/nlp/sempre/StringValue.java b/src/main/java/edu/stanford/nlp/sempre/StringValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/StringValue.java rename to src/main/java/edu/stanford/nlp/sempre/StringValue.java diff --git a/src/edu/stanford/nlp/sempre/SuperlativeFormula.java b/src/main/java/edu/stanford/nlp/sempre/SuperlativeFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/SuperlativeFormula.java rename to src/main/java/edu/stanford/nlp/sempre/SuperlativeFormula.java diff --git a/src/edu/stanford/nlp/sempre/TableValue.java b/src/main/java/edu/stanford/nlp/sempre/TableValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/TableValue.java rename to src/main/java/edu/stanford/nlp/sempre/TableValue.java diff --git a/src/edu/stanford/nlp/sempre/TargetValuePreprocessor.java b/src/main/java/edu/stanford/nlp/sempre/TargetValuePreprocessor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/TargetValuePreprocessor.java rename to src/main/java/edu/stanford/nlp/sempre/TargetValuePreprocessor.java diff --git a/src/edu/stanford/nlp/sempre/TimeValue.java b/src/main/java/edu/stanford/nlp/sempre/TimeValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/TimeValue.java rename to src/main/java/edu/stanford/nlp/sempre/TimeValue.java diff --git a/src/edu/stanford/nlp/sempre/TopSemType.java b/src/main/java/edu/stanford/nlp/sempre/TopSemType.java similarity index 100% rename from src/edu/stanford/nlp/sempre/TopSemType.java rename to src/main/java/edu/stanford/nlp/sempre/TopSemType.java diff --git a/src/edu/stanford/nlp/sempre/Trie.java b/src/main/java/edu/stanford/nlp/sempre/Trie.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Trie.java rename to src/main/java/edu/stanford/nlp/sempre/Trie.java diff --git a/src/edu/stanford/nlp/sempre/TypeInference.java b/src/main/java/edu/stanford/nlp/sempre/TypeInference.java similarity index 100% rename from src/edu/stanford/nlp/sempre/TypeInference.java rename to src/main/java/edu/stanford/nlp/sempre/TypeInference.java diff --git a/src/edu/stanford/nlp/sempre/TypeLookup.java b/src/main/java/edu/stanford/nlp/sempre/TypeLookup.java similarity index 100% rename from src/edu/stanford/nlp/sempre/TypeLookup.java rename to src/main/java/edu/stanford/nlp/sempre/TypeLookup.java diff --git a/src/edu/stanford/nlp/sempre/UnionSemType.java b/src/main/java/edu/stanford/nlp/sempre/UnionSemType.java similarity index 100% rename from src/edu/stanford/nlp/sempre/UnionSemType.java rename to src/main/java/edu/stanford/nlp/sempre/UnionSemType.java diff --git a/src/edu/stanford/nlp/sempre/UriValue.java b/src/main/java/edu/stanford/nlp/sempre/UriValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/UriValue.java rename to src/main/java/edu/stanford/nlp/sempre/UriValue.java diff --git a/src/edu/stanford/nlp/sempre/Value.java b/src/main/java/edu/stanford/nlp/sempre/Value.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Value.java rename to src/main/java/edu/stanford/nlp/sempre/Value.java diff --git a/src/edu/stanford/nlp/sempre/ValueEvaluator.java b/src/main/java/edu/stanford/nlp/sempre/ValueEvaluator.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ValueEvaluator.java rename to src/main/java/edu/stanford/nlp/sempre/ValueEvaluator.java diff --git a/src/edu/stanford/nlp/sempre/ValueFormula.java b/src/main/java/edu/stanford/nlp/sempre/ValueFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/ValueFormula.java rename to src/main/java/edu/stanford/nlp/sempre/ValueFormula.java diff --git a/src/edu/stanford/nlp/sempre/Values.java b/src/main/java/edu/stanford/nlp/sempre/Values.java similarity index 100% rename from src/edu/stanford/nlp/sempre/Values.java rename to src/main/java/edu/stanford/nlp/sempre/Values.java diff --git a/src/edu/stanford/nlp/sempre/VariableFormula.java b/src/main/java/edu/stanford/nlp/sempre/VariableFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/VariableFormula.java rename to src/main/java/edu/stanford/nlp/sempre/VariableFormula.java diff --git a/src/edu/stanford/nlp/sempre/cache/FileStringCache.java b/src/main/java/edu/stanford/nlp/sempre/cache/FileStringCache.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cache/FileStringCache.java rename to src/main/java/edu/stanford/nlp/sempre/cache/FileStringCache.java diff --git a/src/edu/stanford/nlp/sempre/cache/LruCallback.java b/src/main/java/edu/stanford/nlp/sempre/cache/LruCallback.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cache/LruCallback.java rename to src/main/java/edu/stanford/nlp/sempre/cache/LruCallback.java diff --git a/src/edu/stanford/nlp/sempre/cache/LruMap.java b/src/main/java/edu/stanford/nlp/sempre/cache/LruMap.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cache/LruMap.java rename to src/main/java/edu/stanford/nlp/sempre/cache/LruMap.java diff --git a/src/edu/stanford/nlp/sempre/cache/RemoteStringCache.java b/src/main/java/edu/stanford/nlp/sempre/cache/RemoteStringCache.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cache/RemoteStringCache.java rename to src/main/java/edu/stanford/nlp/sempre/cache/RemoteStringCache.java diff --git a/src/edu/stanford/nlp/sempre/cache/StringCache.java b/src/main/java/edu/stanford/nlp/sempre/cache/StringCache.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cache/StringCache.java rename to src/main/java/edu/stanford/nlp/sempre/cache/StringCache.java diff --git a/src/edu/stanford/nlp/sempre/cache/StringCacheServer.java b/src/main/java/edu/stanford/nlp/sempre/cache/StringCacheServer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cache/StringCacheServer.java rename to src/main/java/edu/stanford/nlp/sempre/cache/StringCacheServer.java diff --git a/src/edu/stanford/nlp/sempre/cache/StringCacheUtils.java b/src/main/java/edu/stanford/nlp/sempre/cache/StringCacheUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cache/StringCacheUtils.java rename to src/main/java/edu/stanford/nlp/sempre/cache/StringCacheUtils.java diff --git a/src/edu/stanford/nlp/sempre/corenlp/CoreNLPAnalyzer.java b/src/main/java/edu/stanford/nlp/sempre/corenlp/CoreNLPAnalyzer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/corenlp/CoreNLPAnalyzer.java rename to src/main/java/edu/stanford/nlp/sempre/corenlp/CoreNLPAnalyzer.java diff --git a/src/edu/stanford/nlp/sempre/cprune/CPruneDerivInfo.java b/src/main/java/edu/stanford/nlp/sempre/cprune/CPruneDerivInfo.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cprune/CPruneDerivInfo.java rename to src/main/java/edu/stanford/nlp/sempre/cprune/CPruneDerivInfo.java diff --git a/src/edu/stanford/nlp/sempre/cprune/CPruneFloatingParser.java b/src/main/java/edu/stanford/nlp/sempre/cprune/CPruneFloatingParser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cprune/CPruneFloatingParser.java rename to src/main/java/edu/stanford/nlp/sempre/cprune/CPruneFloatingParser.java diff --git a/src/edu/stanford/nlp/sempre/cprune/CPruneStats.java b/src/main/java/edu/stanford/nlp/sempre/cprune/CPruneStats.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cprune/CPruneStats.java rename to src/main/java/edu/stanford/nlp/sempre/cprune/CPruneStats.java diff --git a/src/edu/stanford/nlp/sempre/cprune/CollaborativePruner.java b/src/main/java/edu/stanford/nlp/sempre/cprune/CollaborativePruner.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cprune/CollaborativePruner.java rename to src/main/java/edu/stanford/nlp/sempre/cprune/CollaborativePruner.java diff --git a/src/edu/stanford/nlp/sempre/cprune/CustomGrammar.java b/src/main/java/edu/stanford/nlp/sempre/cprune/CustomGrammar.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cprune/CustomGrammar.java rename to src/main/java/edu/stanford/nlp/sempre/cprune/CustomGrammar.java diff --git a/src/edu/stanford/nlp/sempre/cprune/FormulaPattern.java b/src/main/java/edu/stanford/nlp/sempre/cprune/FormulaPattern.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cprune/FormulaPattern.java rename to src/main/java/edu/stanford/nlp/sempre/cprune/FormulaPattern.java diff --git a/src/edu/stanford/nlp/sempre/cprune/Symbol.java b/src/main/java/edu/stanford/nlp/sempre/cprune/Symbol.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cprune/Symbol.java rename to src/main/java/edu/stanford/nlp/sempre/cprune/Symbol.java diff --git a/src/main/java/edu/stanford/nlp/sempre/executors/Example.java b/src/main/java/edu/stanford/nlp/sempre/executors/Example.java new file mode 100644 index 000000000..b0ca0e30e --- /dev/null +++ b/src/main/java/edu/stanford/nlp/sempre/executors/Example.java @@ -0,0 +1,13 @@ +package edu.stanford.nlp.sempre.executors; + +public class Example { + public static String helloWorld() { + return "Hello World"; + } + public static String goodbye() { + return "goodbye"; + } + public static String hello() { + return "Hello"; + } +} \ No newline at end of file diff --git a/src/edu/stanford/nlp/sempre/freebase/BinaryLexicon.java b/src/main/java/edu/stanford/nlp/sempre/freebase/BinaryLexicon.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/BinaryLexicon.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/BinaryLexicon.java diff --git a/src/edu/stanford/nlp/sempre/freebase/BridgeFn.java b/src/main/java/edu/stanford/nlp/sempre/freebase/BridgeFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/BridgeFn.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/BridgeFn.java diff --git a/src/edu/stanford/nlp/sempre/freebase/BuildCanonicalIdMap.java b/src/main/java/edu/stanford/nlp/sempre/freebase/BuildCanonicalIdMap.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/BuildCanonicalIdMap.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/BuildCanonicalIdMap.java diff --git a/src/edu/stanford/nlp/sempre/freebase/BuildTypesMap.java b/src/main/java/edu/stanford/nlp/sempre/freebase/BuildTypesMap.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/BuildTypesMap.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/BuildTypesMap.java diff --git a/src/edu/stanford/nlp/sempre/freebase/CanonicalizeExamples.java b/src/main/java/edu/stanford/nlp/sempre/freebase/CanonicalizeExamples.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/CanonicalizeExamples.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/CanonicalizeExamples.java diff --git a/src/edu/stanford/nlp/sempre/freebase/CanonicalizeIds.java b/src/main/java/edu/stanford/nlp/sempre/freebase/CanonicalizeIds.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/CanonicalizeIds.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/CanonicalizeIds.java diff --git a/src/edu/stanford/nlp/sempre/freebase/EntityLexicon.java b/src/main/java/edu/stanford/nlp/sempre/freebase/EntityLexicon.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/EntityLexicon.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/EntityLexicon.java diff --git a/src/edu/stanford/nlp/sempre/freebase/ExecuteExamples.java b/src/main/java/edu/stanford/nlp/sempre/freebase/ExecuteExamples.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/ExecuteExamples.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/ExecuteExamples.java diff --git a/src/edu/stanford/nlp/sempre/freebase/FbFormulasInfo.java b/src/main/java/edu/stanford/nlp/sempre/freebase/FbFormulasInfo.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/FbFormulasInfo.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/FbFormulasInfo.java diff --git a/src/edu/stanford/nlp/sempre/freebase/FilterFreebase.java b/src/main/java/edu/stanford/nlp/sempre/freebase/FilterFreebase.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/FilterFreebase.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/FilterFreebase.java diff --git a/src/edu/stanford/nlp/sempre/freebase/Free917Converter.java b/src/main/java/edu/stanford/nlp/sempre/freebase/Free917Converter.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/Free917Converter.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/Free917Converter.java diff --git a/src/edu/stanford/nlp/sempre/freebase/FreebaseInfo.java b/src/main/java/edu/stanford/nlp/sempre/freebase/FreebaseInfo.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/FreebaseInfo.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/FreebaseInfo.java diff --git a/src/edu/stanford/nlp/sempre/freebase/FreebaseSearch.java b/src/main/java/edu/stanford/nlp/sempre/freebase/FreebaseSearch.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/FreebaseSearch.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/FreebaseSearch.java diff --git a/src/edu/stanford/nlp/sempre/freebase/FreebaseTypeLookup.java b/src/main/java/edu/stanford/nlp/sempre/freebase/FreebaseTypeLookup.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/FreebaseTypeLookup.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/FreebaseTypeLookup.java diff --git a/src/edu/stanford/nlp/sempre/freebase/FreebaseValueEvaluator.java b/src/main/java/edu/stanford/nlp/sempre/freebase/FreebaseValueEvaluator.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/FreebaseValueEvaluator.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/FreebaseValueEvaluator.java diff --git a/src/edu/stanford/nlp/sempre/freebase/LambdaCalculusConverter.java b/src/main/java/edu/stanford/nlp/sempre/freebase/LambdaCalculusConverter.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/LambdaCalculusConverter.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/LambdaCalculusConverter.java diff --git a/src/edu/stanford/nlp/sempre/freebase/Lexicon.java b/src/main/java/edu/stanford/nlp/sempre/freebase/Lexicon.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/Lexicon.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/Lexicon.java diff --git a/src/edu/stanford/nlp/sempre/freebase/LexiconFn.java b/src/main/java/edu/stanford/nlp/sempre/freebase/LexiconFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/LexiconFn.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/LexiconFn.java diff --git a/src/edu/stanford/nlp/sempre/freebase/SparqlExecutor.java b/src/main/java/edu/stanford/nlp/sempre/freebase/SparqlExecutor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/SparqlExecutor.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/SparqlExecutor.java diff --git a/src/edu/stanford/nlp/sempre/freebase/SparqlExpr.java b/src/main/java/edu/stanford/nlp/sempre/freebase/SparqlExpr.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/SparqlExpr.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/SparqlExpr.java diff --git a/src/edu/stanford/nlp/sempre/freebase/Stemmer.java b/src/main/java/edu/stanford/nlp/sempre/freebase/Stemmer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/Stemmer.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/Stemmer.java diff --git a/src/edu/stanford/nlp/sempre/freebase/TextToTextMatcher.java b/src/main/java/edu/stanford/nlp/sempre/freebase/TextToTextMatcher.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/TextToTextMatcher.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/TextToTextMatcher.java diff --git a/src/edu/stanford/nlp/sempre/freebase/UnaryLexicon.java b/src/main/java/edu/stanford/nlp/sempre/freebase/UnaryLexicon.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/UnaryLexicon.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/UnaryLexicon.java diff --git a/src/edu/stanford/nlp/sempre/freebase/Utils.java b/src/main/java/edu/stanford/nlp/sempre/freebase/Utils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/Utils.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/Utils.java diff --git a/src/edu/stanford/nlp/sempre/freebase/index/FbEntityIndexer.java b/src/main/java/edu/stanford/nlp/sempre/freebase/index/FbEntityIndexer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/index/FbEntityIndexer.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/index/FbEntityIndexer.java diff --git a/src/edu/stanford/nlp/sempre/freebase/index/FbEntitySearcher.java b/src/main/java/edu/stanford/nlp/sempre/freebase/index/FbEntitySearcher.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/index/FbEntitySearcher.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/index/FbEntitySearcher.java diff --git a/src/edu/stanford/nlp/sempre/freebase/index/FbIndexField.java b/src/main/java/edu/stanford/nlp/sempre/freebase/index/FbIndexField.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/index/FbIndexField.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/index/FbIndexField.java diff --git a/src/edu/stanford/nlp/sempre/freebase/lexicons/EntrySource.java b/src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/EntrySource.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/lexicons/EntrySource.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/EntrySource.java diff --git a/src/edu/stanford/nlp/sempre/freebase/lexicons/ExtremeValueWrapper.java b/src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/ExtremeValueWrapper.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/lexicons/ExtremeValueWrapper.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/ExtremeValueWrapper.java diff --git a/src/edu/stanford/nlp/sempre/freebase/lexicons/LexicalEntry.java b/src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/LexicalEntry.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/lexicons/LexicalEntry.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/LexicalEntry.java diff --git a/src/edu/stanford/nlp/sempre/freebase/lexicons/TokenLevelMatchFeatures.java b/src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/TokenLevelMatchFeatures.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/lexicons/TokenLevelMatchFeatures.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/TokenLevelMatchFeatures.java diff --git a/src/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/BinaryNormalizer.java b/src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/BinaryNormalizer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/BinaryNormalizer.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/BinaryNormalizer.java diff --git a/src/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/EntryNormalizer.java b/src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/EntryNormalizer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/EntryNormalizer.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/EntryNormalizer.java diff --git a/src/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/IdentityNormalizer.java b/src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/IdentityNormalizer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/IdentityNormalizer.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/IdentityNormalizer.java diff --git a/src/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/PrepDropNormalizer.java b/src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/PrepDropNormalizer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/PrepDropNormalizer.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/lexicons/normalizers/PrepDropNormalizer.java diff --git a/src/edu/stanford/nlp/sempre/freebase/utils/CollectionUtils.java b/src/main/java/edu/stanford/nlp/sempre/freebase/utils/CollectionUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/utils/CollectionUtils.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/utils/CollectionUtils.java diff --git a/src/edu/stanford/nlp/sempre/freebase/utils/DoubleContainer.java b/src/main/java/edu/stanford/nlp/sempre/freebase/utils/DoubleContainer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/utils/DoubleContainer.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/utils/DoubleContainer.java diff --git a/src/edu/stanford/nlp/sempre/freebase/utils/FileUtils.java b/src/main/java/edu/stanford/nlp/sempre/freebase/utils/FileUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/utils/FileUtils.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/utils/FileUtils.java diff --git a/src/edu/stanford/nlp/sempre/freebase/utils/FormatConverter.java b/src/main/java/edu/stanford/nlp/sempre/freebase/utils/FormatConverter.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/utils/FormatConverter.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/utils/FormatConverter.java diff --git a/src/edu/stanford/nlp/sempre/freebase/utils/FreebaseUtils.java b/src/main/java/edu/stanford/nlp/sempre/freebase/utils/FreebaseUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/utils/FreebaseUtils.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/utils/FreebaseUtils.java diff --git a/src/edu/stanford/nlp/sempre/freebase/utils/LinkedExtractionFileUtils.java b/src/main/java/edu/stanford/nlp/sempre/freebase/utils/LinkedExtractionFileUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/utils/LinkedExtractionFileUtils.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/utils/LinkedExtractionFileUtils.java diff --git a/src/edu/stanford/nlp/sempre/freebase/utils/MathUtils.java b/src/main/java/edu/stanford/nlp/sempre/freebase/utils/MathUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/utils/MathUtils.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/utils/MathUtils.java diff --git a/src/edu/stanford/nlp/sempre/freebase/utils/SemparseLogTools.java b/src/main/java/edu/stanford/nlp/sempre/freebase/utils/SemparseLogTools.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/utils/SemparseLogTools.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/utils/SemparseLogTools.java diff --git a/src/edu/stanford/nlp/sempre/freebase/utils/ShortContainer.java b/src/main/java/edu/stanford/nlp/sempre/freebase/utils/ShortContainer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/utils/ShortContainer.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/utils/ShortContainer.java diff --git a/src/edu/stanford/nlp/sempre/freebase/utils/WnExpander.java b/src/main/java/edu/stanford/nlp/sempre/freebase/utils/WnExpander.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/utils/WnExpander.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/utils/WnExpander.java diff --git a/src/edu/stanford/nlp/sempre/freebase/utils/WordNet.java b/src/main/java/edu/stanford/nlp/sempre/freebase/utils/WordNet.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/utils/WordNet.java rename to src/main/java/edu/stanford/nlp/sempre/freebase/utils/WordNet.java diff --git a/src/edu/stanford/nlp/sempre/geo880/Geo880TypeLookup.java b/src/main/java/edu/stanford/nlp/sempre/geo880/Geo880TypeLookup.java similarity index 100% rename from src/edu/stanford/nlp/sempre/geo880/Geo880TypeLookup.java rename to src/main/java/edu/stanford/nlp/sempre/geo880/Geo880TypeLookup.java diff --git a/src/edu/stanford/nlp/sempre/geo880/Geo880ValueEvaluator.java b/src/main/java/edu/stanford/nlp/sempre/geo880/Geo880ValueEvaluator.java similarity index 100% rename from src/edu/stanford/nlp/sempre/geo880/Geo880ValueEvaluator.java rename to src/main/java/edu/stanford/nlp/sempre/geo880/Geo880ValueEvaluator.java diff --git a/src/edu/stanford/nlp/sempre/interactive/ApplyFn.java b/src/main/java/edu/stanford/nlp/sempre/interactive/ApplyFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/ApplyFn.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/ApplyFn.java diff --git a/src/edu/stanford/nlp/sempre/interactive/BadInteractionException.java b/src/main/java/edu/stanford/nlp/sempre/interactive/BadInteractionException.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/BadInteractionException.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/BadInteractionException.java diff --git a/src/edu/stanford/nlp/sempre/interactive/BlockFn.java b/src/main/java/edu/stanford/nlp/sempre/interactive/BlockFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/BlockFn.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/BlockFn.java diff --git a/src/edu/stanford/nlp/sempre/interactive/CitationTracker.java b/src/main/java/edu/stanford/nlp/sempre/interactive/CitationTracker.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/CitationTracker.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/CitationTracker.java diff --git a/src/edu/stanford/nlp/sempre/interactive/DALAnalyzer.java b/src/main/java/edu/stanford/nlp/sempre/interactive/DALAnalyzer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/DALAnalyzer.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/DALAnalyzer.java diff --git a/src/edu/stanford/nlp/sempre/interactive/DALExecutor.java b/src/main/java/edu/stanford/nlp/sempre/interactive/DALExecutor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/DALExecutor.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/DALExecutor.java diff --git a/src/edu/stanford/nlp/sempre/interactive/DALFeatureComputer.java b/src/main/java/edu/stanford/nlp/sempre/interactive/DALFeatureComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/DALFeatureComputer.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/DALFeatureComputer.java diff --git a/src/edu/stanford/nlp/sempre/interactive/Definition.java b/src/main/java/edu/stanford/nlp/sempre/interactive/Definition.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/Definition.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/Definition.java diff --git a/src/edu/stanford/nlp/sempre/interactive/DefinitionAligner.java b/src/main/java/edu/stanford/nlp/sempre/interactive/DefinitionAligner.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/DefinitionAligner.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/DefinitionAligner.java diff --git a/src/edu/stanford/nlp/sempre/interactive/GrammarInducer.java b/src/main/java/edu/stanford/nlp/sempre/interactive/GrammarInducer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/GrammarInducer.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/GrammarInducer.java diff --git a/src/edu/stanford/nlp/sempre/interactive/InteractiveBeamParser.java b/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveBeamParser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/InteractiveBeamParser.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveBeamParser.java diff --git a/src/edu/stanford/nlp/sempre/interactive/InteractiveMaster.java b/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveMaster.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/InteractiveMaster.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveMaster.java diff --git a/src/edu/stanford/nlp/sempre/interactive/InteractiveServer.java b/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveServer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/InteractiveServer.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveServer.java diff --git a/src/edu/stanford/nlp/sempre/interactive/InteractiveUtils.java b/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/InteractiveUtils.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveUtils.java diff --git a/src/edu/stanford/nlp/sempre/interactive/Item.java b/src/main/java/edu/stanford/nlp/sempre/interactive/Item.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/Item.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/Item.java diff --git a/src/edu/stanford/nlp/sempre/interactive/QueryStats.java b/src/main/java/edu/stanford/nlp/sempre/interactive/QueryStats.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/QueryStats.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/QueryStats.java diff --git a/src/edu/stanford/nlp/sempre/interactive/SimulationAnalyzer.java b/src/main/java/edu/stanford/nlp/sempre/interactive/SimulationAnalyzer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/SimulationAnalyzer.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/SimulationAnalyzer.java diff --git a/src/edu/stanford/nlp/sempre/interactive/Simulator.java b/src/main/java/edu/stanford/nlp/sempre/interactive/Simulator.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/Simulator.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/Simulator.java diff --git a/src/edu/stanford/nlp/sempre/interactive/World.java b/src/main/java/edu/stanford/nlp/sempre/interactive/World.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/World.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/World.java diff --git a/src/edu/stanford/nlp/sempre/interactive/voxelurn/Color.java b/src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/Color.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/voxelurn/Color.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/Color.java diff --git a/src/edu/stanford/nlp/sempre/interactive/voxelurn/Direction.java b/src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/Direction.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/voxelurn/Direction.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/Direction.java diff --git a/src/edu/stanford/nlp/sempre/interactive/voxelurn/Voxel.java b/src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/Voxel.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/voxelurn/Voxel.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/Voxel.java diff --git a/src/edu/stanford/nlp/sempre/interactive/voxelurn/VoxelWorld.java b/src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/VoxelWorld.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/voxelurn/VoxelWorld.java rename to src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/VoxelWorld.java diff --git a/src/edu/stanford/nlp/sempre/overnight/Aligner.java b/src/main/java/edu/stanford/nlp/sempre/overnight/Aligner.java similarity index 100% rename from src/edu/stanford/nlp/sempre/overnight/Aligner.java rename to src/main/java/edu/stanford/nlp/sempre/overnight/Aligner.java diff --git a/src/edu/stanford/nlp/sempre/overnight/ConvertTargetValueFromListToString.java b/src/main/java/edu/stanford/nlp/sempre/overnight/ConvertTargetValueFromListToString.java similarity index 100% rename from src/edu/stanford/nlp/sempre/overnight/ConvertTargetValueFromListToString.java rename to src/main/java/edu/stanford/nlp/sempre/overnight/ConvertTargetValueFromListToString.java diff --git a/src/edu/stanford/nlp/sempre/overnight/CreateBerkeleyAlignerInputFromLispTree.java b/src/main/java/edu/stanford/nlp/sempre/overnight/CreateBerkeleyAlignerInputFromLispTree.java similarity index 100% rename from src/edu/stanford/nlp/sempre/overnight/CreateBerkeleyAlignerInputFromLispTree.java rename to src/main/java/edu/stanford/nlp/sempre/overnight/CreateBerkeleyAlignerInputFromLispTree.java diff --git a/src/edu/stanford/nlp/sempre/overnight/GenerationMain.java b/src/main/java/edu/stanford/nlp/sempre/overnight/GenerationMain.java similarity index 100% rename from src/edu/stanford/nlp/sempre/overnight/GenerationMain.java rename to src/main/java/edu/stanford/nlp/sempre/overnight/GenerationMain.java diff --git a/src/edu/stanford/nlp/sempre/overnight/OvernightDerivationPruningComputer.java b/src/main/java/edu/stanford/nlp/sempre/overnight/OvernightDerivationPruningComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/overnight/OvernightDerivationPruningComputer.java rename to src/main/java/edu/stanford/nlp/sempre/overnight/OvernightDerivationPruningComputer.java diff --git a/src/edu/stanford/nlp/sempre/overnight/OvernightFeatureComputer.java b/src/main/java/edu/stanford/nlp/sempre/overnight/OvernightFeatureComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/overnight/OvernightFeatureComputer.java rename to src/main/java/edu/stanford/nlp/sempre/overnight/OvernightFeatureComputer.java diff --git a/src/edu/stanford/nlp/sempre/overnight/PPDBModel.java b/src/main/java/edu/stanford/nlp/sempre/overnight/PPDBModel.java similarity index 100% rename from src/edu/stanford/nlp/sempre/overnight/PPDBModel.java rename to src/main/java/edu/stanford/nlp/sempre/overnight/PPDBModel.java diff --git a/src/edu/stanford/nlp/sempre/overnight/SimpleWorld.java b/src/main/java/edu/stanford/nlp/sempre/overnight/SimpleWorld.java similarity index 100% rename from src/edu/stanford/nlp/sempre/overnight/SimpleWorld.java rename to src/main/java/edu/stanford/nlp/sempre/overnight/SimpleWorld.java diff --git a/src/edu/stanford/nlp/sempre/tables/DenotationTypeInference.java b/src/main/java/edu/stanford/nlp/sempre/tables/DenotationTypeInference.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/DenotationTypeInference.java rename to src/main/java/edu/stanford/nlp/sempre/tables/DenotationTypeInference.java diff --git a/src/edu/stanford/nlp/sempre/tables/InfiniteListValue.java b/src/main/java/edu/stanford/nlp/sempre/tables/InfiniteListValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/InfiniteListValue.java rename to src/main/java/edu/stanford/nlp/sempre/tables/InfiniteListValue.java diff --git a/src/edu/stanford/nlp/sempre/tables/ScopedFormula.java b/src/main/java/edu/stanford/nlp/sempre/tables/ScopedFormula.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/ScopedFormula.java rename to src/main/java/edu/stanford/nlp/sempre/tables/ScopedFormula.java diff --git a/src/edu/stanford/nlp/sempre/tables/ScopedValue.java b/src/main/java/edu/stanford/nlp/sempre/tables/ScopedValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/ScopedValue.java rename to src/main/java/edu/stanford/nlp/sempre/tables/ScopedValue.java diff --git a/src/edu/stanford/nlp/sempre/tables/StringNormalizationUtils.java b/src/main/java/edu/stanford/nlp/sempre/tables/StringNormalizationUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/StringNormalizationUtils.java rename to src/main/java/edu/stanford/nlp/sempre/tables/StringNormalizationUtils.java diff --git a/src/edu/stanford/nlp/sempre/tables/TableCell.java b/src/main/java/edu/stanford/nlp/sempre/tables/TableCell.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/TableCell.java rename to src/main/java/edu/stanford/nlp/sempre/tables/TableCell.java diff --git a/src/edu/stanford/nlp/sempre/tables/TableCellProperties.java b/src/main/java/edu/stanford/nlp/sempre/tables/TableCellProperties.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/TableCellProperties.java rename to src/main/java/edu/stanford/nlp/sempre/tables/TableCellProperties.java diff --git a/src/edu/stanford/nlp/sempre/tables/TableColumn.java b/src/main/java/edu/stanford/nlp/sempre/tables/TableColumn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/TableColumn.java rename to src/main/java/edu/stanford/nlp/sempre/tables/TableColumn.java diff --git a/src/edu/stanford/nlp/sempre/tables/TableDerivationPruningComputer.java b/src/main/java/edu/stanford/nlp/sempre/tables/TableDerivationPruningComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/TableDerivationPruningComputer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/TableDerivationPruningComputer.java diff --git a/src/edu/stanford/nlp/sempre/tables/TableFormulaEvaluator.java b/src/main/java/edu/stanford/nlp/sempre/tables/TableFormulaEvaluator.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/TableFormulaEvaluator.java rename to src/main/java/edu/stanford/nlp/sempre/tables/TableFormulaEvaluator.java diff --git a/src/edu/stanford/nlp/sempre/tables/TableKnowledgeGraph.java b/src/main/java/edu/stanford/nlp/sempre/tables/TableKnowledgeGraph.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/TableKnowledgeGraph.java rename to src/main/java/edu/stanford/nlp/sempre/tables/TableKnowledgeGraph.java diff --git a/src/edu/stanford/nlp/sempre/tables/TableRow.java b/src/main/java/edu/stanford/nlp/sempre/tables/TableRow.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/TableRow.java rename to src/main/java/edu/stanford/nlp/sempre/tables/TableRow.java diff --git a/src/edu/stanford/nlp/sempre/tables/TableTypeLookup.java b/src/main/java/edu/stanford/nlp/sempre/tables/TableTypeLookup.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/TableTypeLookup.java rename to src/main/java/edu/stanford/nlp/sempre/tables/TableTypeLookup.java diff --git a/src/edu/stanford/nlp/sempre/tables/TableTypeSystem.java b/src/main/java/edu/stanford/nlp/sempre/tables/TableTypeSystem.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/TableTypeSystem.java rename to src/main/java/edu/stanford/nlp/sempre/tables/TableTypeSystem.java diff --git a/src/edu/stanford/nlp/sempre/tables/TableValueEvaluator.java b/src/main/java/edu/stanford/nlp/sempre/tables/TableValueEvaluator.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/TableValueEvaluator.java rename to src/main/java/edu/stanford/nlp/sempre/tables/TableValueEvaluator.java diff --git a/src/edu/stanford/nlp/sempre/tables/TableValuePreprocessor.java b/src/main/java/edu/stanford/nlp/sempre/tables/TableValuePreprocessor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/TableValuePreprocessor.java rename to src/main/java/edu/stanford/nlp/sempre/tables/TableValuePreprocessor.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/AggregatedTurkData.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/AggregatedTurkData.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/AggregatedTurkData.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/AggregatedTurkData.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/AlteredTablesExecutor.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/AlteredTablesExecutor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/AlteredTablesExecutor.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/AlteredTablesExecutor.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/BatchTableAlterer.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/BatchTableAlterer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/BatchTableAlterer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/BatchTableAlterer.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/CachedSubsetChooser.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/CachedSubsetChooser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/CachedSubsetChooser.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/CachedSubsetChooser.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/DenotationData.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/DenotationData.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/DenotationData.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/DenotationData.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/EntropySubsetChooser.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/EntropySubsetChooser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/EntropySubsetChooser.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/EntropySubsetChooser.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/PureSubsetChooser.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/PureSubsetChooser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/PureSubsetChooser.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/PureSubsetChooser.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/Subset.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/Subset.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/Subset.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/Subset.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/SubsetChooser.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/SubsetChooser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/SubsetChooser.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/SubsetChooser.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/TableAlterer.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/TableAlterer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/TableAlterer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/TableAlterer.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/TableAltererCache.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/TableAltererCache.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/TableAltererCache.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/TableAltererCache.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/TurkEquivalentClassInfo.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/TurkEquivalentClassInfo.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/TurkEquivalentClassInfo.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/TurkEquivalentClassInfo.java diff --git a/src/edu/stanford/nlp/sempre/tables/alter/ValueCanonicalizer.java b/src/main/java/edu/stanford/nlp/sempre/tables/alter/ValueCanonicalizer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/alter/ValueCanonicalizer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/alter/ValueCanonicalizer.java diff --git a/src/edu/stanford/nlp/sempre/tables/baseline/TableBaselineFeatureComputer.java b/src/main/java/edu/stanford/nlp/sempre/tables/baseline/TableBaselineFeatureComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/baseline/TableBaselineFeatureComputer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/baseline/TableBaselineFeatureComputer.java diff --git a/src/edu/stanford/nlp/sempre/tables/baseline/TableBaselineParser.java b/src/main/java/edu/stanford/nlp/sempre/tables/baseline/TableBaselineParser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/baseline/TableBaselineParser.java rename to src/main/java/edu/stanford/nlp/sempre/tables/baseline/TableBaselineParser.java diff --git a/src/edu/stanford/nlp/sempre/tables/dpd/DPDErrorValue.java b/src/main/java/edu/stanford/nlp/sempre/tables/dpd/DPDErrorValue.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/dpd/DPDErrorValue.java rename to src/main/java/edu/stanford/nlp/sempre/tables/dpd/DPDErrorValue.java diff --git a/src/edu/stanford/nlp/sempre/tables/dpd/DPDParser.java b/src/main/java/edu/stanford/nlp/sempre/tables/dpd/DPDParser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/dpd/DPDParser.java rename to src/main/java/edu/stanford/nlp/sempre/tables/dpd/DPDParser.java diff --git a/src/edu/stanford/nlp/sempre/tables/features/AnchorFeatureComputer.java b/src/main/java/edu/stanford/nlp/sempre/tables/features/AnchorFeatureComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/features/AnchorFeatureComputer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/features/AnchorFeatureComputer.java diff --git a/src/edu/stanford/nlp/sempre/tables/features/ColumnCategoryInfo.java b/src/main/java/edu/stanford/nlp/sempre/tables/features/ColumnCategoryInfo.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/features/ColumnCategoryInfo.java rename to src/main/java/edu/stanford/nlp/sempre/tables/features/ColumnCategoryInfo.java diff --git a/src/edu/stanford/nlp/sempre/tables/features/HeadwordInfo.java b/src/main/java/edu/stanford/nlp/sempre/tables/features/HeadwordInfo.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/features/HeadwordInfo.java rename to src/main/java/edu/stanford/nlp/sempre/tables/features/HeadwordInfo.java diff --git a/src/edu/stanford/nlp/sempre/tables/features/PhraseDenotationFeatureComputer.java b/src/main/java/edu/stanford/nlp/sempre/tables/features/PhraseDenotationFeatureComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/features/PhraseDenotationFeatureComputer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/features/PhraseDenotationFeatureComputer.java diff --git a/src/edu/stanford/nlp/sempre/tables/features/PhraseInfo.java b/src/main/java/edu/stanford/nlp/sempre/tables/features/PhraseInfo.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/features/PhraseInfo.java rename to src/main/java/edu/stanford/nlp/sempre/tables/features/PhraseInfo.java diff --git a/src/edu/stanford/nlp/sempre/tables/features/PhrasePredicateFeatureComputer.java b/src/main/java/edu/stanford/nlp/sempre/tables/features/PhrasePredicateFeatureComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/features/PhrasePredicateFeatureComputer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/features/PhrasePredicateFeatureComputer.java diff --git a/src/edu/stanford/nlp/sempre/tables/features/PredicateInfo.java b/src/main/java/edu/stanford/nlp/sempre/tables/features/PredicateInfo.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/features/PredicateInfo.java rename to src/main/java/edu/stanford/nlp/sempre/tables/features/PredicateInfo.java diff --git a/src/edu/stanford/nlp/sempre/tables/grow/ApplyFn.java b/src/main/java/edu/stanford/nlp/sempre/tables/grow/ApplyFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/grow/ApplyFn.java rename to src/main/java/edu/stanford/nlp/sempre/tables/grow/ApplyFn.java diff --git a/src/edu/stanford/nlp/sempre/tables/grow/BeginGrowFn.java b/src/main/java/edu/stanford/nlp/sempre/tables/grow/BeginGrowFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/grow/BeginGrowFn.java rename to src/main/java/edu/stanford/nlp/sempre/tables/grow/BeginGrowFn.java diff --git a/src/edu/stanford/nlp/sempre/tables/grow/EndGrowFn.java b/src/main/java/edu/stanford/nlp/sempre/tables/grow/EndGrowFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/grow/EndGrowFn.java rename to src/main/java/edu/stanford/nlp/sempre/tables/grow/EndGrowFn.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/BinaryDenotation.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/BinaryDenotation.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/BinaryDenotation.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/BinaryDenotation.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/BinaryTypeHint.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/BinaryTypeHint.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/BinaryTypeHint.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/BinaryTypeHint.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/Binarylike.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/Binarylike.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/Binarylike.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/Binarylike.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/DenotationUtils.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/DenotationUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/DenotationUtils.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/DenotationUtils.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/ExecutorCache.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/ExecutorCache.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/ExecutorCache.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/ExecutorCache.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/ExplicitPairList.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/ExplicitPairList.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/ExplicitPairList.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/ExplicitPairList.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/ExplicitUnaryDenotation.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/ExplicitUnaryDenotation.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/ExplicitUnaryDenotation.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/ExplicitUnaryDenotation.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/InfiniteUnaryDenotation.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/InfiniteUnaryDenotation.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/InfiniteUnaryDenotation.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/InfiniteUnaryDenotation.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSException.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSException.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSException.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSException.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSExecutor.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSExecutor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSExecutor.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSExecutor.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/MappingDenotation.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/MappingDenotation.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/MappingDenotation.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/MappingDenotation.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/PairList.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/PairList.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/PairList.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/PairList.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/PredicatePairList.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/PredicatePairList.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/PredicatePairList.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/PredicatePairList.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/TypeHint.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/TypeHint.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/TypeHint.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/TypeHint.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/UnaryDenotation.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/UnaryDenotation.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/UnaryDenotation.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/UnaryDenotation.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/Unarylike.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/Unarylike.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/Unarylike.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/Unarylike.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/UnarylikeTypeHint.java b/src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/UnarylikeTypeHint.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/UnarylikeTypeHint.java rename to src/main/java/edu/stanford/nlp/sempre/tables/lambdadcs/UnarylikeTypeHint.java diff --git a/src/edu/stanford/nlp/sempre/tables/match/ClosedClassFn.java b/src/main/java/edu/stanford/nlp/sempre/tables/match/ClosedClassFn.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/match/ClosedClassFn.java rename to src/main/java/edu/stanford/nlp/sempre/tables/match/ClosedClassFn.java diff --git a/src/edu/stanford/nlp/sempre/tables/match/EditDistanceFuzzyMatcher.java b/src/main/java/edu/stanford/nlp/sempre/tables/match/EditDistanceFuzzyMatcher.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/match/EditDistanceFuzzyMatcher.java rename to src/main/java/edu/stanford/nlp/sempre/tables/match/EditDistanceFuzzyMatcher.java diff --git a/src/edu/stanford/nlp/sempre/tables/match/FuzzyMatchCache.java b/src/main/java/edu/stanford/nlp/sempre/tables/match/FuzzyMatchCache.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/match/FuzzyMatchCache.java rename to src/main/java/edu/stanford/nlp/sempre/tables/match/FuzzyMatchCache.java diff --git a/src/edu/stanford/nlp/sempre/tables/match/FuzzyMatcher.java b/src/main/java/edu/stanford/nlp/sempre/tables/match/FuzzyMatcher.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/match/FuzzyMatcher.java rename to src/main/java/edu/stanford/nlp/sempre/tables/match/FuzzyMatcher.java diff --git a/src/edu/stanford/nlp/sempre/tables/match/OriginalMatcher.java b/src/main/java/edu/stanford/nlp/sempre/tables/match/OriginalMatcher.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/match/OriginalMatcher.java rename to src/main/java/edu/stanford/nlp/sempre/tables/match/OriginalMatcher.java diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/DumpFilterer.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/DumpFilterer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/serialize/DumpFilterer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/DumpFilterer.java diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/LazyLoadedExampleList.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/LazyLoadedExampleList.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/serialize/LazyLoadedExampleList.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/LazyLoadedExampleList.java diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/SerializedDataset.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/SerializedDataset.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/serialize/SerializedDataset.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/SerializedDataset.java diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/SerializedDumper.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/SerializedDumper.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/serialize/SerializedDumper.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/SerializedDumper.java diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/SerializedLoader.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/SerializedLoader.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/serialize/SerializedLoader.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/SerializedLoader.java diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/SerializedParser.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/SerializedParser.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/serialize/SerializedParser.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/SerializedParser.java diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/TSVGenerator.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TSVGenerator.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/serialize/TSVGenerator.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/TSVGenerator.java diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/TableReader.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TableReader.java similarity index 97% rename from src/edu/stanford/nlp/sempre/tables/serialize/TableReader.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/TableReader.java index deecf94d7..65c5eac01 100644 --- a/src/edu/stanford/nlp/sempre/tables/serialize/TableReader.java +++ b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TableReader.java @@ -3,7 +3,8 @@ import java.io.*; import java.util.*; -import au.com.bytecode.opencsv.CSVReader; +//import au.com.bytecode.opencsv.CSVReader; +import com.opencsv.CSVReader; import edu.stanford.nlp.sempre.tables.StringNormalizationUtils; import fig.basic.LogInfo; diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/TableWriter.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TableWriter.java similarity index 98% rename from src/edu/stanford/nlp/sempre/tables/serialize/TableWriter.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/TableWriter.java index 6683b8365..d46aa5649 100644 --- a/src/edu/stanford/nlp/sempre/tables/serialize/TableWriter.java +++ b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TableWriter.java @@ -2,7 +2,8 @@ import java.io.*; -import au.com.bytecode.opencsv.CSVWriter; +//import au.com.bytecode.opencsv.CSVWriter; +import com.opencsv.CSVWriter; import edu.stanford.nlp.sempre.tables.*; import fig.basic.LogInfo; diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/TaggedDatasetGenerator.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TaggedDatasetGenerator.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/serialize/TaggedDatasetGenerator.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/TaggedDatasetGenerator.java diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/TaggedFuzzyGenerator.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TaggedFuzzyGenerator.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/serialize/TaggedFuzzyGenerator.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/TaggedFuzzyGenerator.java diff --git a/src/edu/stanford/nlp/sempre/tables/serialize/TaggedTableGenerator.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TaggedTableGenerator.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/serialize/TaggedTableGenerator.java rename to src/main/java/edu/stanford/nlp/sempre/tables/serialize/TaggedTableGenerator.java diff --git a/src/edu/stanford/nlp/sempre/tables/test/BatchTableExecutor.java b/src/main/java/edu/stanford/nlp/sempre/tables/test/BatchTableExecutor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/test/BatchTableExecutor.java rename to src/main/java/edu/stanford/nlp/sempre/tables/test/BatchTableExecutor.java diff --git a/src/edu/stanford/nlp/sempre/tables/test/CustomExample.java b/src/main/java/edu/stanford/nlp/sempre/tables/test/CustomExample.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/test/CustomExample.java rename to src/main/java/edu/stanford/nlp/sempre/tables/test/CustomExample.java diff --git a/src/edu/stanford/nlp/sempre/tables/test/DPDParserChecker.java b/src/main/java/edu/stanford/nlp/sempre/tables/test/DPDParserChecker.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/test/DPDParserChecker.java rename to src/main/java/edu/stanford/nlp/sempre/tables/test/DPDParserChecker.java diff --git a/src/edu/stanford/nlp/sempre/tables/test/DPDParserCheckerProcessor.java b/src/main/java/edu/stanford/nlp/sempre/tables/test/DPDParserCheckerProcessor.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/test/DPDParserCheckerProcessor.java rename to src/main/java/edu/stanford/nlp/sempre/tables/test/DPDParserCheckerProcessor.java diff --git a/src/edu/stanford/nlp/sempre/tables/test/TableColumnAnalyzer.java b/src/main/java/edu/stanford/nlp/sempre/tables/test/TableColumnAnalyzer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/test/TableColumnAnalyzer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/test/TableColumnAnalyzer.java diff --git a/src/edu/stanford/nlp/sempre/tables/test/TableFormulaCanonicalizer.java b/src/main/java/edu/stanford/nlp/sempre/tables/test/TableFormulaCanonicalizer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/test/TableFormulaCanonicalizer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/test/TableFormulaCanonicalizer.java diff --git a/src/edu/stanford/nlp/sempre/tables/test/TableStatsComputer.java b/src/main/java/edu/stanford/nlp/sempre/tables/test/TableStatsComputer.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/test/TableStatsComputer.java rename to src/main/java/edu/stanford/nlp/sempre/tables/test/TableStatsComputer.java diff --git a/src/edu/stanford/nlp/sempre/test/TestUtils.java b/src/main/java/edu/stanford/nlp/sempre/test/TestUtils.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/TestUtils.java rename to src/main/java/edu/stanford/nlp/sempre/test/TestUtils.java diff --git a/src/edu/stanford/nlp/sempre/cache/test/StringCacheTest.java b/src/test/java/edu/stanford/nlp/sempre/cache/test/StringCacheTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/cache/test/StringCacheTest.java rename to src/test/java/edu/stanford/nlp/sempre/cache/test/StringCacheTest.java diff --git a/src/edu/stanford/nlp/sempre/corenlp/test/CoreNLPSemanticFnTest.java b/src/test/java/edu/stanford/nlp/sempre/corenlp/test/CoreNLPSemanticFnTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/corenlp/test/CoreNLPSemanticFnTest.java rename to src/test/java/edu/stanford/nlp/sempre/corenlp/test/CoreNLPSemanticFnTest.java diff --git a/src/edu/stanford/nlp/sempre/freebase/test/FbFormulasTest.java b/src/test/java/edu/stanford/nlp/sempre/freebase/test/FbFormulasTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/test/FbFormulasTest.java rename to src/test/java/edu/stanford/nlp/sempre/freebase/test/FbFormulasTest.java diff --git a/src/edu/stanford/nlp/sempre/freebase/test/FreebaseInfoTest.java b/src/test/java/edu/stanford/nlp/sempre/freebase/test/FreebaseInfoTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/test/FreebaseInfoTest.java rename to src/test/java/edu/stanford/nlp/sempre/freebase/test/FreebaseInfoTest.java diff --git a/src/edu/stanford/nlp/sempre/freebase/test/FreebaseSemTypeTest.java b/src/test/java/edu/stanford/nlp/sempre/freebase/test/FreebaseSemTypeTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/test/FreebaseSemTypeTest.java rename to src/test/java/edu/stanford/nlp/sempre/freebase/test/FreebaseSemTypeTest.java diff --git a/src/edu/stanford/nlp/sempre/freebase/test/FreebaseTypeInferenceTest.java b/src/test/java/edu/stanford/nlp/sempre/freebase/test/FreebaseTypeInferenceTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/test/FreebaseTypeInferenceTest.java rename to src/test/java/edu/stanford/nlp/sempre/freebase/test/FreebaseTypeInferenceTest.java diff --git a/src/edu/stanford/nlp/sempre/freebase/test/LexiconTest.java b/src/test/java/edu/stanford/nlp/sempre/freebase/test/LexiconTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/test/LexiconTest.java rename to src/test/java/edu/stanford/nlp/sempre/freebase/test/LexiconTest.java diff --git a/src/edu/stanford/nlp/sempre/freebase/test/PrepDropNormalizerTest.java b/src/test/java/edu/stanford/nlp/sempre/freebase/test/PrepDropNormalizerTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/test/PrepDropNormalizerTest.java rename to src/test/java/edu/stanford/nlp/sempre/freebase/test/PrepDropNormalizerTest.java diff --git a/src/edu/stanford/nlp/sempre/freebase/test/SparqlExecutorTest.java b/src/test/java/edu/stanford/nlp/sempre/freebase/test/SparqlExecutorTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/test/SparqlExecutorTest.java rename to src/test/java/edu/stanford/nlp/sempre/freebase/test/SparqlExecutorTest.java diff --git a/src/edu/stanford/nlp/sempre/freebase/test/StemmerTest.java b/src/test/java/edu/stanford/nlp/sempre/freebase/test/StemmerTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/test/StemmerTest.java rename to src/test/java/edu/stanford/nlp/sempre/freebase/test/StemmerTest.java diff --git a/src/edu/stanford/nlp/sempre/freebase/test/TokenMatchTest.java b/src/test/java/edu/stanford/nlp/sempre/freebase/test/TokenMatchTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/freebase/test/TokenMatchTest.java rename to src/test/java/edu/stanford/nlp/sempre/freebase/test/TokenMatchTest.java diff --git a/src/edu/stanford/nlp/sempre/interactive/test/DALExecutorTest.java b/src/test/java/edu/stanford/nlp/sempre/interactive/test/DALExecutorTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/test/DALExecutorTest.java rename to src/test/java/edu/stanford/nlp/sempre/interactive/test/DALExecutorTest.java diff --git a/src/edu/stanford/nlp/sempre/interactive/test/FloatingParsingTest.java b/src/test/java/edu/stanford/nlp/sempre/interactive/test/FloatingParsingTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/test/FloatingParsingTest.java rename to src/test/java/edu/stanford/nlp/sempre/interactive/test/FloatingParsingTest.java diff --git a/src/edu/stanford/nlp/sempre/interactive/test/GrammarInducerTest.java b/src/test/java/edu/stanford/nlp/sempre/interactive/test/GrammarInducerTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/interactive/test/GrammarInducerTest.java rename to src/test/java/edu/stanford/nlp/sempre/interactive/test/GrammarInducerTest.java diff --git a/src/edu/stanford/nlp/sempre/overnight/test/SimpleWorldTest.java b/src/test/java/edu/stanford/nlp/sempre/overnight/test/SimpleWorldTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/overnight/test/SimpleWorldTest.java rename to src/test/java/edu/stanford/nlp/sempre/overnight/test/SimpleWorldTest.java diff --git a/src/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSExecutorTest.java b/src/test/java/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSExecutorTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSExecutorTest.java rename to src/test/java/edu/stanford/nlp/sempre/tables/lambdadcs/LambdaDCSExecutorTest.java diff --git a/src/edu/stanford/nlp/sempre/test/DerivationStreamTest.java b/src/test/java/edu/stanford/nlp/sempre/test/DerivationStreamTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/DerivationStreamTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/DerivationStreamTest.java diff --git a/src/edu/stanford/nlp/sempre/test/FormulaTest.java b/src/test/java/edu/stanford/nlp/sempre/test/FormulaTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/FormulaTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/FormulaTest.java diff --git a/src/edu/stanford/nlp/sempre/test/GrammarTest.java b/src/test/java/edu/stanford/nlp/sempre/test/GrammarTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/GrammarTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/GrammarTest.java diff --git a/src/edu/stanford/nlp/sempre/test/GrammarValidityTest.java b/src/test/java/edu/stanford/nlp/sempre/test/GrammarValidityTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/GrammarValidityTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/GrammarValidityTest.java diff --git a/src/edu/stanford/nlp/sempre/test/JavaExecutorTest.java b/src/test/java/edu/stanford/nlp/sempre/test/JavaExecutorTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/JavaExecutorTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/JavaExecutorTest.java diff --git a/src/edu/stanford/nlp/sempre/test/JsonTest.java b/src/test/java/edu/stanford/nlp/sempre/test/JsonTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/JsonTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/JsonTest.java diff --git a/src/edu/stanford/nlp/sempre/test/L1RegularizationTest.java b/src/test/java/edu/stanford/nlp/sempre/test/L1RegularizationTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/L1RegularizationTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/L1RegularizationTest.java diff --git a/src/edu/stanford/nlp/sempre/test/ParserTest.java b/src/test/java/edu/stanford/nlp/sempre/test/ParserTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/ParserTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/ParserTest.java diff --git a/src/edu/stanford/nlp/sempre/test/SemTypeTest.java b/src/test/java/edu/stanford/nlp/sempre/test/SemTypeTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/SemTypeTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/SemTypeTest.java diff --git a/src/edu/stanford/nlp/sempre/test/SemanticFnTest.java b/src/test/java/edu/stanford/nlp/sempre/test/SemanticFnTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/SemanticFnTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/SemanticFnTest.java diff --git a/src/edu/stanford/nlp/sempre/test/SystemSanityTest.java b/src/test/java/edu/stanford/nlp/sempre/test/SystemSanityTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/SystemSanityTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/SystemSanityTest.java diff --git a/src/edu/stanford/nlp/sempre/test/TypeInferenceTest.java b/src/test/java/edu/stanford/nlp/sempre/test/TypeInferenceTest.java similarity index 100% rename from src/edu/stanford/nlp/sempre/test/TypeInferenceTest.java rename to src/test/java/edu/stanford/nlp/sempre/test/TypeInferenceTest.java From d37ca6981ba3bb7b4dac8a91faa0d798d7517306 Mon Sep 17 00:00:00 2001 From: Timo Baumann Date: Tue, 17 Apr 2018 17:59:12 -0400 Subject: [PATCH 2/9] fix creation of module-classes.txt --- build.gradle | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/build.gradle b/build.gradle index 65f8d0757..a9ea88ce2 100644 --- a/build.gradle +++ b/build.gradle @@ -40,6 +40,15 @@ test { exclude 'edu/stanford/nlp/sempre/overnight/test/SimpleWorldTest.class' // you need to copy overnight/unittest.db to lib/data/overnight/test/unittest.db for this to work. } +// this will only run on POSIX-compatible OSs. Sorry Windows. +task extractModuleClasses(type:Exec) { + commandLine 'bash', '-c', './scripts/extract-module-classes.rb && mkdir -p src/main/resources/edu/stanford/nlp/sempre/ && cp module-classes.txt src/main/resources/edu/stanford/nlp/sempre/' +} +run.dependsOn extractModuleClasses + +distZip.enabled = false +distTar.enabled = false + mainClassName = 'edu.stanford.nlp.sempre.Main' distZip.enabled = false distTar.enabled = false From bdbc9236f2f6af40ff745c7470b9cde3bc3ea219 Mon Sep 17 00:00:00 2001 From: Todd Shore Date: Fri, 11 May 2018 18:24:43 -0400 Subject: [PATCH 3/9] added to .gitignore --- .gitignore | 316 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 300 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 94e0bf79e..33ccb7530 100644 --- a/.gitignore +++ b/.gitignore @@ -1,32 +1,18 @@ -.gradle -build/ +### PROJECT-SPECIFIC lib fig sfig refdb virtuoso-opensource - classes libsempre sempre.jar module-classes.txt - state -out test-output - -.project -.classpath -.settings -.idea -semparse.iml *~ -*.swp -*.bak -*.pyc -*.cache -*.DS_Store + java.hprof.txt # Don't put papers here @@ -47,3 +33,301 @@ interactive/.ipynb_checkpoints # Community server logs community-server/data community-server/data-backup + + +# Ignore all Eclipse project files because importing via Gradle is more consistent +.classpath +.project +# Ignore all JetBrains project files because importing via Gradle is more consistent +.idea/ +*.iml + + +### https://github.com/github/gitignore +## JAVA +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + + +## GRADLE +.gradle +/build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Cache of project +.gradletasknamecache + +# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 +# gradle/wrapper/gradle-wrapper.properties + + +## ECLIPSE +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + + +## JETBRAINS +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/dictionaries +.idea/**/shelf + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# CMake +cmake-build-debug/ +cmake-build-release/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + + +## MACOS +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + +# PYTHON +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ From 70688b6b6c1dca19d61d6251f7bb94b97601f310 Mon Sep 17 00:00:00 2001 From: Todd Shore Date: Fri, 11 May 2018 18:51:13 -0400 Subject: [PATCH 4/9] removed redundant dependencies --- build.gradle | 13 ++++--------- .../stanford/nlp/sempre/interactive/BlockFn.java | 2 +- .../nlp/sempre/interactive/GrammarInducer.java | 2 +- .../sempre/interactive/InteractiveBeamParser.java | 3 +-- .../nlp/sempre/interactive/InteractiveUtils.java | 4 +--- .../stanford/nlp/sempre/interactive/Simulator.java | 2 -- .../nlp/sempre/interactive/voxelurn/Voxel.java | 3 +-- 7 files changed, 9 insertions(+), 20 deletions(-) diff --git a/build.gradle b/build.gradle index a9ea88ce2..44f8282ca 100644 --- a/build.gradle +++ b/build.gradle @@ -10,27 +10,22 @@ repositories { } dependencies { - compile 'org.slf4j:slf4j-api:1.7.25' compile group: 'com.google.guava', name: 'guava', version: '23.0' - compile group: 'com.beust', name: 'jcommander', version: '1.72' - compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.5' + //compile group: 'com.beust', name: 'jcommander', version: '1.72' + //compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.5' compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.5' compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.5' compile group: 'jline', name: 'jline', version: '2.14.6' compile group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: '3.7.0' compile group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: '3.7.0', classifier: 'models' runtime group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: '3.7.0', classifier: 'models-english' - compile group: 'joda-time', name: 'joda-time', version: '2.9.9' - compile group: 'de.jollyday', name: 'jollyday', version: '0.5.5' - compile group: 'com.googlecode.efficient-java-matrix-library', name: 'ejml', version: '0.25' compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25' compile group: 'com.opencsv', name: 'opencsv', version: '4.1' compile group: 'com.github.percyliang', name: 'fig', version: 'master-SNAPSHOT' - testCompile group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25' testCompile group: 'org.testng', name: 'testng', version: '6.14.3' - compile group: 'org.testng', name: 'testng', version: '6.14.3' - testCompile 'junit:junit:4.12' + testCompile group: 'junit', name: 'junit', version: '4.12' + testRuntime group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25' } test { diff --git a/src/main/java/edu/stanford/nlp/sempre/interactive/BlockFn.java b/src/main/java/edu/stanford/nlp/sempre/interactive/BlockFn.java index 7e736ed2a..cddfd4034 100644 --- a/src/main/java/edu/stanford/nlp/sempre/interactive/BlockFn.java +++ b/src/main/java/edu/stanford/nlp/sempre/interactive/BlockFn.java @@ -2,7 +2,7 @@ import java.util.List; -import org.testng.collections.Lists; +import com.google.common.collect.Lists; import edu.stanford.nlp.sempre.ActionFormula; import edu.stanford.nlp.sempre.Derivation; diff --git a/src/main/java/edu/stanford/nlp/sempre/interactive/GrammarInducer.java b/src/main/java/edu/stanford/nlp/sempre/interactive/GrammarInducer.java index 1a988f343..2264b80bf 100644 --- a/src/main/java/edu/stanford/nlp/sempre/interactive/GrammarInducer.java +++ b/src/main/java/edu/stanford/nlp/sempre/interactive/GrammarInducer.java @@ -9,9 +9,9 @@ import java.util.Set; import java.util.stream.Collectors; -import com.beust.jcommander.internal.Lists; import com.google.common.base.Function; +import com.google.common.collect.Lists; import edu.stanford.nlp.sempre.ActionFormula; import edu.stanford.nlp.sempre.ConstantFn; import edu.stanford.nlp.sempre.Derivation; diff --git a/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveBeamParser.java b/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveBeamParser.java index 24c5e7b6a..d1ae0b178 100644 --- a/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveBeamParser.java +++ b/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveBeamParser.java @@ -12,10 +12,10 @@ import java.util.Set; import java.util.stream.Collectors; -import com.beust.jcommander.internal.Lists; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import edu.stanford.nlp.sempre.ChartParserState; import edu.stanford.nlp.sempre.Derivation; import edu.stanford.nlp.sempre.DerivationStream; @@ -28,7 +28,6 @@ import edu.stanford.nlp.sempre.Rule; import edu.stanford.nlp.sempre.SemanticFn; import edu.stanford.nlp.sempre.Trie; -import fig.basic.Evaluation; import fig.basic.IOUtils; import fig.basic.IntRef; import fig.basic.LogInfo; diff --git a/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveUtils.java b/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveUtils.java index 440acbb9f..d5d64f4f1 100644 --- a/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveUtils.java +++ b/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveUtils.java @@ -4,12 +4,10 @@ import java.util.List; import java.util.stream.Collectors; -import org.testng.collections.Lists; - import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import edu.stanford.nlp.sempre.ActionFormula; -import edu.stanford.nlp.sempre.BeamParser; import edu.stanford.nlp.sempre.Derivation; import edu.stanford.nlp.sempre.Example; import edu.stanford.nlp.sempre.Formula; diff --git a/src/main/java/edu/stanford/nlp/sempre/interactive/Simulator.java b/src/main/java/edu/stanford/nlp/sempre/interactive/Simulator.java index fce84018c..1be618f88 100644 --- a/src/main/java/edu/stanford/nlp/sempre/interactive/Simulator.java +++ b/src/main/java/edu/stanford/nlp/sempre/interactive/Simulator.java @@ -25,8 +25,6 @@ import java.util.stream.Stream; import java.util.zip.GZIPInputStream; -import org.testng.collections.Lists; - import edu.stanford.nlp.sempre.Json; import fig.basic.LogInfo; import fig.basic.Option; diff --git a/src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/Voxel.java b/src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/Voxel.java index eb0408d1d..4c1369c62 100644 --- a/src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/Voxel.java +++ b/src/main/java/edu/stanford/nlp/sempre/interactive/voxelurn/Voxel.java @@ -5,8 +5,7 @@ import java.util.Set; import java.util.stream.Collectors; -import org.testng.collections.Lists; - +import com.google.common.collect.Lists; import edu.stanford.nlp.sempre.Json; import edu.stanford.nlp.sempre.interactive.Item; From c7ed7c6634d6bdfba5a799a071c28428ca4c65a7 Mon Sep 17 00:00:00 2001 From: Todd Shore Date: Fri, 11 May 2018 19:01:25 -0400 Subject: [PATCH 5/9] now setting common dependency versions in gradle.properties file --- build.gradle | 19 ++++++++++--------- gradle.properties | 3 +++ 2 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 gradle.properties diff --git a/build.gradle b/build.gradle index 44f8282ca..578bebd1c 100644 --- a/build.gradle +++ b/build.gradle @@ -11,21 +11,22 @@ repositories { dependencies { compile group: 'com.google.guava', name: 'guava', version: '23.0' - //compile group: 'com.beust', name: 'jcommander', version: '1.72' - //compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.5' - compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.5' - compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.5' + compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: "${jacksonXmlVersion}" + compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jacksonXmlVersion}" compile group: 'jline', name: 'jline', version: '2.14.6' - compile group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: '3.7.0' - compile group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: '3.7.0', classifier: 'models' - runtime group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: '3.7.0', classifier: 'models-english' - compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25' + compile group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: "${corenlpVersion}" + runtime group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: "${corenlpVersion}", classifier: 'models' + runtime group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: "${corenlpVersion}", classifier: 'models-english' + compile group: 'org.slf4j', name: 'slf4j-api', version: "${slf4jVersion}" compile group: 'com.opencsv', name: 'opencsv', version: '4.1' compile group: 'com.github.percyliang', name: 'fig', version: 'master-SNAPSHOT' testCompile group: 'org.testng', name: 'testng', version: '6.14.3' testCompile group: 'junit', name: 'junit', version: '4.12' - testRuntime group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25' + testRuntime(group: 'org.slf4j', name: 'slf4j-simple', version: "${slf4jVersion}") { + // Software that depends on this project may have their own SLF4J implementation; avoid having more than one SLF4J implementation on the classpath + transitive = false + } } test { diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 000000000..b502fe074 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,3 @@ +corenlpVersion = 3.7.0 +jacksonXmlVersion = 2.9.5 +slf4jVersion = 1.7.25 \ No newline at end of file From 26d420d1addf23aa2a61f0eddbd7ce7cc9abc0ba Mon Sep 17 00:00:00 2001 From: Todd Shore Date: Fri, 11 May 2018 19:46:33 -0400 Subject: [PATCH 6/9] removed uncessary imports --- src/main/java/edu/stanford/nlp/sempre/SemanticFn.java | 1 - src/main/java/edu/stanford/nlp/sempre/Trie.java | 2 -- .../java/edu/stanford/nlp/sempre/geo880/Geo880TypeLookup.java | 2 -- .../edu/stanford/nlp/sempre/geo880/Geo880ValueEvaluator.java | 1 - .../stanford/nlp/sempre/interactive/InteractiveMaster.java | 1 - .../nlp/sempre/tables/features/AnchorFeatureComputer.java | 1 - .../nlp/sempre/tables/serialize/TaggedFuzzyGenerator.java | 2 -- .../nlp/sempre/interactive/test/FloatingParsingTest.java | 2 -- .../stanford/nlp/sempre/overnight/test/SimpleWorldTest.java | 4 ---- 9 files changed, 16 deletions(-) diff --git a/src/main/java/edu/stanford/nlp/sempre/SemanticFn.java b/src/main/java/edu/stanford/nlp/sempre/SemanticFn.java index 3c546d25f..1f4e70b6c 100644 --- a/src/main/java/edu/stanford/nlp/sempre/SemanticFn.java +++ b/src/main/java/edu/stanford/nlp/sempre/SemanticFn.java @@ -2,7 +2,6 @@ import fig.basic.LispTree; import fig.basic.Option; -import fig.basic.Utils; import java.util.ArrayList; import java.util.Collection; diff --git a/src/main/java/edu/stanford/nlp/sempre/Trie.java b/src/main/java/edu/stanford/nlp/sempre/Trie.java index 181db8838..4f34690ba 100644 --- a/src/main/java/edu/stanford/nlp/sempre/Trie.java +++ b/src/main/java/edu/stanford/nlp/sempre/Trie.java @@ -1,10 +1,8 @@ package edu.stanford.nlp.sempre; import java.util.ArrayList; -import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedHashSet; -import java.util.HashMap; import java.util.Map; import java.util.Set; diff --git a/src/main/java/edu/stanford/nlp/sempre/geo880/Geo880TypeLookup.java b/src/main/java/edu/stanford/nlp/sempre/geo880/Geo880TypeLookup.java index 920f48cdf..fae25dd50 100644 --- a/src/main/java/edu/stanford/nlp/sempre/geo880/Geo880TypeLookup.java +++ b/src/main/java/edu/stanford/nlp/sempre/geo880/Geo880TypeLookup.java @@ -8,8 +8,6 @@ import fig.basic.LogInfo; import java.io.IOException; -import java.util.HashSet; -import java.util.Set; /** * Type lookup for the geo880 domain, Mostly for distinguishing locations and numbers. diff --git a/src/main/java/edu/stanford/nlp/sempre/geo880/Geo880ValueEvaluator.java b/src/main/java/edu/stanford/nlp/sempre/geo880/Geo880ValueEvaluator.java index 3dc3feb14..1ac528588 100644 --- a/src/main/java/edu/stanford/nlp/sempre/geo880/Geo880ValueEvaluator.java +++ b/src/main/java/edu/stanford/nlp/sempre/geo880/Geo880ValueEvaluator.java @@ -1,7 +1,6 @@ package edu.stanford.nlp.sempre.geo880; import edu.stanford.nlp.sempre.*; -import edu.stanford.nlp.sempre.tables.StringNormalizationUtils; import fig.basic.LogInfo; import java.util.List; diff --git a/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveMaster.java b/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveMaster.java index 0454a4a63..276c7e83f 100644 --- a/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveMaster.java +++ b/src/main/java/edu/stanford/nlp/sempre/interactive/InteractiveMaster.java @@ -17,7 +17,6 @@ import edu.stanford.nlp.sempre.Master; import edu.stanford.nlp.sempre.Params; import edu.stanford.nlp.sempre.Parser; -import edu.stanford.nlp.sempre.ParserState; import edu.stanford.nlp.sempre.Rule; import edu.stanford.nlp.sempre.RuleSource; import edu.stanford.nlp.sempre.Session; diff --git a/src/main/java/edu/stanford/nlp/sempre/tables/features/AnchorFeatureComputer.java b/src/main/java/edu/stanford/nlp/sempre/tables/features/AnchorFeatureComputer.java index 0b4f09841..c3255464b 100644 --- a/src/main/java/edu/stanford/nlp/sempre/tables/features/AnchorFeatureComputer.java +++ b/src/main/java/edu/stanford/nlp/sempre/tables/features/AnchorFeatureComputer.java @@ -7,7 +7,6 @@ import edu.stanford.nlp.sempre.tables.TableKnowledgeGraph; import edu.stanford.nlp.sempre.tables.TableCell; import edu.stanford.nlp.sempre.tables.TableColumn; -import fig.basic.LogInfo; public class AnchorFeatureComputer implements FeatureComputer { diff --git a/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TaggedFuzzyGenerator.java b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TaggedFuzzyGenerator.java index 167f04e78..d5ea22944 100644 --- a/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TaggedFuzzyGenerator.java +++ b/src/main/java/edu/stanford/nlp/sempre/tables/serialize/TaggedFuzzyGenerator.java @@ -3,9 +3,7 @@ import java.util.*; import edu.stanford.nlp.sempre.*; -import edu.stanford.nlp.sempre.FuzzyMatchFn.FuzzyMatchFnMode; import edu.stanford.nlp.sempre.SemanticFn.CallInfo; -import edu.stanford.nlp.sempre.tables.TableKnowledgeGraph; import fig.basic.*; import fig.exec.Execution; diff --git a/src/test/java/edu/stanford/nlp/sempre/interactive/test/FloatingParsingTest.java b/src/test/java/edu/stanford/nlp/sempre/interactive/test/FloatingParsingTest.java index 05ba5863f..cd07a76a8 100644 --- a/src/test/java/edu/stanford/nlp/sempre/interactive/test/FloatingParsingTest.java +++ b/src/test/java/edu/stanford/nlp/sempre/interactive/test/FloatingParsingTest.java @@ -1,7 +1,5 @@ package edu.stanford.nlp.sempre.interactive.test; -import static org.testng.AssertJUnit.assertEquals; - import java.util.*; import java.util.function.Predicate; diff --git a/src/test/java/edu/stanford/nlp/sempre/overnight/test/SimpleWorldTest.java b/src/test/java/edu/stanford/nlp/sempre/overnight/test/SimpleWorldTest.java index 0ddb4cbfa..c49dec6f9 100644 --- a/src/test/java/edu/stanford/nlp/sempre/overnight/test/SimpleWorldTest.java +++ b/src/test/java/edu/stanford/nlp/sempre/overnight/test/SimpleWorldTest.java @@ -4,10 +4,6 @@ import org.testng.annotations.Test; -import edu.stanford.nlp.sempre.*; -import edu.stanford.nlp.sempre.overnight.*; -import fig.basic.*; - /** * Test simple world from overnight framework. * Creates a small database using SimpleWorld, From 3ed579c20356bd941131e8428ada3583ab7b2ef3 Mon Sep 17 00:00:00 2001 From: Timo Baumann Date: Mon, 21 May 2018 11:27:18 -0400 Subject: [PATCH 7/9] make jitpack prefer gradle over maven --- jitpack.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 jitpack.yml diff --git a/jitpack.yml b/jitpack.yml new file mode 100644 index 000000000..ccc724677 --- /dev/null +++ b/jitpack.yml @@ -0,0 +1,2 @@ +install: + - ./gradlew clean install -x test From 354301c9ec498eb47fb0a02fe792be01fe388c20 Mon Sep 17 00:00:00 2001 From: Timo Baumann Date: Mon, 21 May 2018 11:37:17 -0400 Subject: [PATCH 8/9] remove duplication --- build.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.gradle b/build.gradle index 578bebd1c..78dd990c7 100644 --- a/build.gradle +++ b/build.gradle @@ -46,5 +46,3 @@ distZip.enabled = false distTar.enabled = false mainClassName = 'edu.stanford.nlp.sempre.Main' -distZip.enabled = false -distTar.enabled = false From 0f48befd5bc5ab406f63f359537cd50c1418edb8 Mon Sep 17 00:00:00 2001 From: Timo Baumann Date: Mon, 21 May 2018 11:50:11 -0400 Subject: [PATCH 9/9] possible fix? --- build.gradle | 10 +++++++++- gradle/wrapper/gradle-wrapper.jar | Bin 54333 -> 56177 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- jitpack.yml | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 78dd990c7..f7820961f 100644 --- a/build.gradle +++ b/build.gradle @@ -4,9 +4,12 @@ plugins { id 'java' } +group = 'com.github.timobaumann' + repositories { jcenter() - maven { url "https://jitpack.io" } + mavenCentral() + maven { url "https://www.jitpack.io" } } dependencies { @@ -29,6 +32,8 @@ dependencies { } } + + test { useTestNG() exclude 'edu/stanford/nlp/sempre/interactive/test/**' @@ -44,5 +49,8 @@ run.dependsOn extractModuleClasses distZip.enabled = false distTar.enabled = false +configurations.archives.artifacts.removeAll{it.file =~ 'zip'} +configurations.archives.artifacts.removeAll{it.file =~ 'tar'} + mainClassName = 'edu.stanford.nlp.sempre.Main' diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 99340b4ad18d3c7e764794d300ffd35017036793..94336fcae912db8a11d55634156fa011f4686124 100644 GIT binary patch delta 49555 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