|
From: <chr...@us...> - 2012-02-21 14:49:26
|
Revision: 3555
http://dlvhex.svn.sourceforge.net/dlvhex/?rev=3555&view=rev
Author: chrisr86
Date: 2012-02-21 14:49:09 +0000 (Tue, 21 Feb 2012)
Log Message:
-----------
merge trunk 3246-3554 into refactoring branch
Modified Paths:
--------------
dlvhex/branches/dlvhex-refactoring/ChangeLog
dlvhex/branches/dlvhex-refactoring/Makefile.am
dlvhex/branches/dlvhex-refactoring/NEWS
dlvhex/branches/dlvhex-refactoring/README
dlvhex/branches/dlvhex-refactoring/TODO
dlvhex/branches/dlvhex-refactoring/configure.ac
dlvhex/branches/dlvhex-refactoring/examples/Makefile.am
dlvhex/branches/dlvhex-refactoring/examples/extatom3.hex
dlvhex/branches/dlvhex-refactoring/examples/manyanswersets.hex
dlvhex/branches/dlvhex-refactoring/generator/Module.cpp
dlvhex/branches/dlvhex-refactoring/include/Makefile.am
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ASPSolver.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ASPSolverManager.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Atoms.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Benchmarking.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/DLVProcess.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/DLVresultParserDriver.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Error.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/HexGrammar.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/HexGrammar.tcc
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Makefile.am
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/PluginContainer.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/PluginInterface.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Process.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ProcessBuf.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ProgramCtx.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/SafetyChecker.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/State.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/URLBuf.h
dlvhex/branches/dlvhex-refactoring/m4/libcurl.m4
dlvhex/branches/dlvhex-refactoring/testsuite/Makefile.am
dlvhex/branches/dlvhex-refactoring/testsuite/TestASPSolver.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestComponentGraph.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestDependencyGraph.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestEvalEndToEnd.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestEvalGraph.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestEvalHeuristic.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestHexParser.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestHexParserModule.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestMLPSolver.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestModelGraph.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestOfflineModelBuilder.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestOnlineModelBuilder.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestPlainHEX.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestPlugin.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/TestTables.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/benchgen/bomb1.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/benchgen/bomb2.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/benchgen/bomb3.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/benchgen/easy1.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/benchgen/matrix1.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/benchgen/matrix2.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/benchgen/revsel1.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/benchgen/revsel2.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/dummytypes.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureE1.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureE2.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureE2M2.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureEx1.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/mcsie_perftests/include/DiagExplPrintVisitor.h
dlvhex/branches/dlvhex-refactoring/testsuite/mcsie_perftests/include/EquilibriumPrintVisitor.h
dlvhex/branches/dlvhex-refactoring/testsuite/mcsie_perftests/include/OutputRewriter.h
dlvhex/branches/dlvhex-refactoring/testsuite/mcsie_perftests/src/DiagExplPrintVisitor.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/mcsie_perftests/src/EquilibriumPrintVisitor.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/mcsie_perftests/src/InputConverter.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/mcsie_perftests/src/OutputRewriter.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/olddlvhex_perfplugins/testplugin.cpp
Added Paths:
-----------
dlvhex/branches/dlvhex-refactoring/dlvhex2.pc.in
dlvhex/branches/dlvhex-refactoring/doc/extatom3.hex_evalplanfactinput.asp
dlvhex/branches/dlvhex-refactoring/examples/extatom3_aspheur_faultya.asp
dlvhex/branches/dlvhex-refactoring/examples/extatom3_aspheur_faultyb.asp
dlvhex/branches/dlvhex-refactoring/examples/extatom3_aspheur_old.asp
dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplana.txt
dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplanb.txt
dlvhex/branches/dlvhex-refactoring/examples/tests/basic.test.in
dlvhex/branches/dlvhex-refactoring/examples/tests/extatom3_faultya.stderr
dlvhex/branches/dlvhex-refactoring/examples/tests/extatom3_faultyb.stderr
dlvhex/branches/dlvhex-refactoring/examples/tests/libclingobackend.test.in
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/AggregateAtomTable.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/AnswerSet.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/AnswerSetPrinterCallback.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Atoms.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/BaseModelGenerator.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/BuiltinAtomTable.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/CAUAlgorithms.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/CDNLSolver.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ClaspSolver.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ComfortPluginInterface.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ComponentGraph.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Configuration.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/DependencyGraph.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/DependencyGraphFull.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/DumpingEvalGraphBuilder.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/DynamicVector.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalGraph.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalGraphBuilder.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicASP.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicBase.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicEasy.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicFromFile.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicOldDlvhex.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicShared.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicTrivial.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ExtSourceProperties.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ExternalAtomTable.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/FinalEvalGraph.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GenuineGuessAndCheckModelGenerator.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GenuinePlainModelGenerator.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GenuineSolver.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GenuineWellfoundedModelGenerator.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GraphvizHelpers.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GringoGrounder.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GuessAndCheckModelGenerator.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/HexParser.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/HexParserModule.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/HigherOrderPlugin.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ID.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/InputProvider.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/InternalGroundASPSolver.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/InternalGroundDASPSolver.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/InternalGrounder.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Interpretation.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Logger.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/MLPSolver.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/MLPSyntaxChecker.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ModelBuilder.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ModelGenerator.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ModelGraph.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Module.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ModuleAtomTable.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ModuleTable.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Nogood.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/OfflineModelBuilder.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/OnlineModelBuilder.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/OrdinaryASPProgram.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/OrdinaryAtomTable.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/PlainAuxPrinter.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/PlainModelGenerator.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Predicate.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/PredicateMask.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/PredicateTable.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Printer.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Printhelpers.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/QueryPlugin.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Registry.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Rule.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/RuleTable.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Set.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/StrongNegationPlugin.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Table.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Term.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/TermTable.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/WellfoundedModelGenerator.h
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/fwd.h
dlvhex/branches/dlvhex-refactoring/m4/dlvhex.m4
dlvhex/branches/dlvhex-refactoring/src/ASPSolver.cpp
dlvhex/branches/dlvhex-refactoring/src/ASPSolverManager.cpp
dlvhex/branches/dlvhex-refactoring/src/ASPSolver_dlv.cpp
dlvhex/branches/dlvhex-refactoring/src/ASPSolver_libclingo.cpp
dlvhex/branches/dlvhex-refactoring/src/AnswerSet.cpp
dlvhex/branches/dlvhex-refactoring/src/AnswerSetPrinterCallback.cpp
dlvhex/branches/dlvhex-refactoring/src/AtomNode.cpp
dlvhex/branches/dlvhex-refactoring/src/AtomSet.cpp
dlvhex/branches/dlvhex-refactoring/src/Atoms.cpp
dlvhex/branches/dlvhex-refactoring/src/BaseModelGenerator.cpp
dlvhex/branches/dlvhex-refactoring/src/Benchmarking.cpp
dlvhex/branches/dlvhex-refactoring/src/BoostComponentFinder.cpp
dlvhex/branches/dlvhex-refactoring/src/CAUAlgorithms.cpp
dlvhex/branches/dlvhex-refactoring/src/CDNLSolver.cpp
dlvhex/branches/dlvhex-refactoring/src/ClaspSolver.cpp
dlvhex/branches/dlvhex-refactoring/src/ComfortPluginInterface.cpp
dlvhex/branches/dlvhex-refactoring/src/ComponentGraph.cpp
dlvhex/branches/dlvhex-refactoring/src/Configuration.cpp
dlvhex/branches/dlvhex-refactoring/src/DLVProcess.cpp
dlvhex/branches/dlvhex-refactoring/src/DLVresultParserDriver.cpp
dlvhex/branches/dlvhex-refactoring/src/DependencyGraph.cpp
dlvhex/branches/dlvhex-refactoring/src/DependencyGraph.cpp.biggerauxrulebodiesstrategy.diff
dlvhex/branches/dlvhex-refactoring/src/DependencyGraphFull.cpp
dlvhex/branches/dlvhex-refactoring/src/DumpingEvalGraphBuilder.cpp
dlvhex/branches/dlvhex-refactoring/src/Error.cpp
dlvhex/branches/dlvhex-refactoring/src/EvalGraphBuilder.cpp
dlvhex/branches/dlvhex-refactoring/src/EvalHeuristicASP.cpp
dlvhex/branches/dlvhex-refactoring/src/EvalHeuristicEasy.cpp
dlvhex/branches/dlvhex-refactoring/src/EvalHeuristicFromFile.cpp
dlvhex/branches/dlvhex-refactoring/src/EvalHeuristicOldDlvhex.cpp
dlvhex/branches/dlvhex-refactoring/src/EvalHeuristicTrivial.cpp
dlvhex/branches/dlvhex-refactoring/src/GenuineGuessAndCheckModelGenerator.cpp
dlvhex/branches/dlvhex-refactoring/src/GenuinePlainModelGenerator.cpp
dlvhex/branches/dlvhex-refactoring/src/GenuineSolver.cpp
dlvhex/branches/dlvhex-refactoring/src/GenuineWellfoundedModelGenerator.cpp
dlvhex/branches/dlvhex-refactoring/src/GraphProcessor.cpp
dlvhex/branches/dlvhex-refactoring/src/GraphvizHelpers.cpp
dlvhex/branches/dlvhex-refactoring/src/GringoGrounder.cpp
dlvhex/branches/dlvhex-refactoring/src/GuessAndCheckModelGenerator.cpp
dlvhex/branches/dlvhex-refactoring/src/HexGrammar.cpp
dlvhex/branches/dlvhex-refactoring/src/HexParser.cpp
dlvhex/branches/dlvhex-refactoring/src/HigherOrderPlugin.cpp
dlvhex/branches/dlvhex-refactoring/src/ID.cpp
dlvhex/branches/dlvhex-refactoring/src/InputProvider.cpp
dlvhex/branches/dlvhex-refactoring/src/InternalGroundASPSolver.cpp
dlvhex/branches/dlvhex-refactoring/src/InternalGroundDASPSolver.cpp
dlvhex/branches/dlvhex-refactoring/src/InternalGrounder.cpp
dlvhex/branches/dlvhex-refactoring/src/Interpretation.cpp
dlvhex/branches/dlvhex-refactoring/src/Literal.cpp
dlvhex/branches/dlvhex-refactoring/src/Logger.cpp
dlvhex/branches/dlvhex-refactoring/src/MLPSolver.cpp
dlvhex/branches/dlvhex-refactoring/src/MLPSyntaxChecker.cpp
dlvhex/branches/dlvhex-refactoring/src/Makefile.am
dlvhex/branches/dlvhex-refactoring/src/NodeGraph.cpp
dlvhex/branches/dlvhex-refactoring/src/Nogood.cpp
dlvhex/branches/dlvhex-refactoring/src/ParserDriver.cpp
dlvhex/branches/dlvhex-refactoring/src/PlainAuxPrinter.cpp
dlvhex/branches/dlvhex-refactoring/src/PlainModelGenerator.cpp
dlvhex/branches/dlvhex-refactoring/src/PluginContainer.cpp
dlvhex/branches/dlvhex-refactoring/src/PluginInterface.cpp
dlvhex/branches/dlvhex-refactoring/src/PredicateMask.cpp
dlvhex/branches/dlvhex-refactoring/src/Printer.cpp
dlvhex/branches/dlvhex-refactoring/src/ProcessBuf.cpp
dlvhex/branches/dlvhex-refactoring/src/ProgramCtx.cpp
dlvhex/branches/dlvhex-refactoring/src/QueryPlugin.cpp
dlvhex/branches/dlvhex-refactoring/src/Registry.cpp
dlvhex/branches/dlvhex-refactoring/src/ResultContainer.cpp
dlvhex/branches/dlvhex-refactoring/src/RuleMLOutputBuilder.cpp
dlvhex/branches/dlvhex-refactoring/src/SafetyChecker.cpp
dlvhex/branches/dlvhex-refactoring/src/State.cpp
dlvhex/branches/dlvhex-refactoring/src/StrongNegationPlugin.cpp
dlvhex/branches/dlvhex-refactoring/src/TextOutputBuilder.cpp
dlvhex/branches/dlvhex-refactoring/src/URLBuf.cpp
dlvhex/branches/dlvhex-refactoring/src/WellfoundedModelGenerator.cpp
dlvhex/branches/dlvhex-refactoring/src/dlvhex.cpp
dlvhex/branches/dlvhex-refactoring/src/gdbdlvhex.sh
dlvhex/branches/dlvhex-refactoring/src/postpross.sh
dlvhex/branches/dlvhex-refactoring/src/valgrinddlvhex.sh
dlvhex/branches/dlvhex-refactoring/testsuite/dummytypes.h
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureE1.h
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureE2.h
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureE2M2.h
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureEx1.h
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureOfflineMB.h
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureOnlineMB.h
dlvhex/branches/dlvhex-refactoring/testsuite/fixturesDepgraphCompgraphGeneric.h
dlvhex/branches/dlvhex-refactoring/testsuite/fixturesExt1.h
dlvhex/branches/dlvhex-refactoring/testsuite/fixturesMCS.h
dlvhex/branches/dlvhex-refactoring/testsuite/graphviz.h
Removed Paths:
-------------
dlvhex/branches/dlvhex-refactoring/cheatsheet
dlvhex/branches/dlvhex-refactoring/dlvhex.pc.in
dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplan.txt
dlvhex/branches/dlvhex-refactoring/examples/tests/dlvhextests.test
dlvhex/branches/dlvhex-refactoring/include/dlvhex/
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/AggregateAtomTable.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/AnswerSet.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/AnswerSetPrinterCallback.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/BaseModelGenerator.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/BuiltinAtomTable.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/CAUAlgorithms.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/CDNLSolver.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ClaspSolver.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ComfortPluginInterface.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ComponentGraph.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Configuration.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/DependencyGraph.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/DependencyGraphFull.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/DynamicVector.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalGraph.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalGraphBuilder.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicBase.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicEasy.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicFromFile.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicOldDlvhex.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/EvalHeuristicTrivial.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ExtSourceProperties.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ExternalAtomTable.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/FinalEvalGraph.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GenuineGuessAndCheckModelGenerator.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GenuinePlainModelGenerator.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GenuineSolver.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GenuineWellfoundedModelGenerator.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GraphvizHelpers.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GringoGrounder.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/GuessAndCheckModelGenerator.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/HexParser.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/HexParserModule.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/HigherOrderPlugin.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ID.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/InputProvider.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/InternalGroundASPSolver.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/InternalGroundDASPSolver.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/InternalGrounder.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Interpretation.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Logger.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/MLPSolver.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/MLPSyntaxChecker.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ModelBuilder.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ModelGenerator.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ModelGraph.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Module.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ModuleAtomTable.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/ModuleTable.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Nogood.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/OfflineModelBuilder.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/OnlineModelBuilder.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/OrdinaryASPProgram.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/OrdinaryAtomTable.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/PlainAuxPrinter.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/PlainModelGenerator.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Predicate.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/PredicateMask.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/PredicateTable.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Printer.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Printhelpers.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/QueryPlugin.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Registry.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Rule.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/RuleTable.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Set.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/StrongNegationPlugin.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Table.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/Term.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/TermTable.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/WellfoundedModelGenerator.hpp
dlvhex/branches/dlvhex-refactoring/include/dlvhex2/fwd.hpp
dlvhex/branches/dlvhex-refactoring/src/Makefile.am
dlvhex/branches/dlvhex-refactoring/src/dlvhex/
dlvhex/branches/dlvhex-refactoring/testsuite/TestMCSIE.cpp
dlvhex/branches/dlvhex-refactoring/testsuite/dummytypes.hpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureE1.hpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureE2.hpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureE2M2.hpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureEx1.hpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureOfflineMB.hpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixtureOnlineMB.hpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixturesDepgraphCompgraphGeneric.hpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixturesExt1.hpp
dlvhex/branches/dlvhex-refactoring/testsuite/fixturesMCS.hpp
dlvhex/branches/dlvhex-refactoring/testsuite/graphviz.hpp
Property Changed:
----------------
dlvhex/branches/dlvhex-refactoring/
dlvhex/branches/dlvhex-refactoring/examples/module-ABBA.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-AFin.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-Cardinality.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-Complex.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-Cs.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-Disjunction.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-EvenOdd.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-EvenOddTwoCalls1.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-EvenOddTwoCalls2.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-EvenOddTwoMain.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-Hanoi.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-Inconsistent.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-Indirection.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-Negation.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-Not-ic-Stratified.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-Reachability.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-i-Stratified-2.mlp
dlvhex/branches/dlvhex-refactoring/examples/module-i-Stratified.mlp
dlvhex/branches/dlvhex-refactoring/examples/module1-Big.mlp
dlvhex/branches/dlvhex-refactoring/examples/module1-DiffArity.mlp
dlvhex/branches/dlvhex-refactoring/examples/module1-MainModules.mlp
dlvhex/branches/dlvhex-refactoring/examples/module1-NotExist.mlp
dlvhex/branches/dlvhex-refactoring/examples/module1-Two.mlp
dlvhex/branches/dlvhex-refactoring/examples/module1.mlp
dlvhex/branches/dlvhex-refactoring/examples/module2-DiffArity.mlp
dlvhex/branches/dlvhex-refactoring/examples/module2-SwapArity.mlp
dlvhex/branches/dlvhex-refactoring/examples/module2-TooFew.mlp
dlvhex/branches/dlvhex-refactoring/examples/module2-TooMany.mlp
dlvhex/branches/dlvhex-refactoring/examples/module2-Two.mlp
dlvhex/branches/dlvhex-refactoring/examples/module2.mlp
dlvhex/branches/dlvhex-refactoring/examples/module3-DiffArity.mlp
dlvhex/branches/dlvhex-refactoring/examples/module3-NotExist.mlp
dlvhex/branches/dlvhex-refactoring/examples/module3-SwapArity.mlp
dlvhex/branches/dlvhex-refactoring/examples/module3.mlp
dlvhex/branches/dlvhex-refactoring/examples/tests/module-ABBA.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-AFin.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-Cardinality.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-Complex.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-Cs.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-Disjunction.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-EvenOdd-n1.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-EvenOdd.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-EvenOddTwoCalls1.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-EvenOddTwoCalls2.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-EvenOddTwoMain.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-Hanoi.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-Inconsistent.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-Indirection.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-Negation.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-Not-ic-Stratified.stderr
dlvhex/branches/dlvhex-refactoring/examples/tests/module-Reachability.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-i-Stratified-2.out
dlvhex/branches/dlvhex-refactoring/examples/tests/module-i-Stratified.out
Property changes on: dlvhex/branches/dlvhex-refactoring
___________________________________________________________________
Deleted: svnmerge-integrated
- /dlvhex/branches/dlvhex-spirit-refactoring:1-1629
Modified: svn:mergeinfo
- /dlvhex/branches/Release_1_7_1:2266-2271
/dlvhex/branches/aspsolver_weak_parser_extension:2197-2210
/dlvhex/branches/dlvhex+mlp:1979-3104
/dlvhex/branches/dlvhex-add-better-benchmarking:2150-2177
/dlvhex/branches/dlvhex-fix-nonmon-atoms:2095-2099
/dlvhex/branches/dlvhex-refactoring-modularparser:2930*,3037
/dlvhex/branches/dlvhex-refactoring-spiritv2:3003-3045
/dlvhex/branches/dlvhex-spirit-refactoring:1603-1611,1615-1616,1619,1621-1629
/dlvhex/tags/Release_1_7_0:2130-2265
/dlvhex/trunk:2241-2410,2422,2505,2510,2525,2527,2552-2553,2564-2565,2625,3359,3361,3365-3367
+ /dlvhex/branches/Release_1_7_1:2266-2271
/dlvhex/branches/aspsolver_weak_parser_extension:2197-2210
/dlvhex/branches/dlvhex+mlp:1979-3104
/dlvhex/branches/dlvhex-add-better-benchmarking:2150-2177
/dlvhex/branches/dlvhex-fix-nonmon-atoms:2095-2099
/dlvhex/branches/dlvhex-refactoring-evalheurimprovements:3189-3296
/dlvhex/branches/dlvhex-refactoring-modularparser:2930*,3037
/dlvhex/branches/dlvhex-refactoring-spiritv2:3003-3045
/dlvhex/branches/dlvhex-spirit-refactoring:1603-1611,1615-1616,1619,1621-1629
/dlvhex/branches/release2x:3240-3339
/dlvhex/tags/Release_1_7_0:2130-2265
/dlvhex/trunk:2241-2410,2422,2505,2510,2525,2527,2552-2553,2564-2565,2625,3195-3238,3247-3367,3369-3370,3373,3386-3387,3390,3397,3402-3532
Modified: dlvhex/branches/dlvhex-refactoring/ChangeLog
===================================================================
--- dlvhex/branches/dlvhex-refactoring/ChangeLog 2012-02-17 22:38:19 UTC (rev 3554)
+++ dlvhex/branches/dlvhex-refactoring/ChangeLog 2012-02-21 14:49:09 UTC (rev 3555)
@@ -1,5 +1,54 @@
+2012-XX-XX Peter Schueller <ps...@kr...>
+
+ Release version 2.0.0.
+
+ * NEWS: Describe Changes for Release 2.0.0.
+
+2012-02-21 Christoph Redl <re...@kr...>
+
+ * Merge trunk 3246-3554 into refactoring branch
+
+2012-02-01 Peter Schueller <ps...@kr...>
+
+ * Makefile.am: Installing local bitmagic to safe location if using it,
+ and setting up CFLAGS accordingly.
+ * dlvhex2.pc.in: Likewise.
+ * configure.ac: Likewise, and added AC_CACHE_SAVE checkpoints.
+ * src/PluginContainer.cpp: Improved diagnostics for library loading.
+
+2012-01-23 Peter Schueller <ps...@kr...>
+
+ * include/dlvhex2/ComfortPluginInterface.h: Documentation.
+ * include/dlvhex2/PluginInterface.h: Documentation.
+ * README: Update.
+ * TODO: Update.
+
+2012-01-19 Peter Schueller <ps...@kr...>
+
+ Renaming all ".hpp" header files to ".h".
+
+2012-01-18 Peter Schueller <ps...@kr...>
+
+ Moving all files from src/dlvhex/ to src/.
+
2012-01-16 Peter Schueller <ps...@kr...>
+ * include/dlvhex2/PluginInterface.h: Added plugin versioning API
+ (loadable modules usually do not have external version numbers)
+ * src/dlvhex/PluginContainer.cpp: Implemented version check in
+ library loading code.
+ * testsuite/TestPlugin.cpp: Adapted test plugin to versioning API.
+ * m4/dlvhex.m4: Likewise.
+
+ * configure.ac: Preparing release (renaming binary and include
+ directory to dlvhex2 to ensure coexistence with older version).
+ * src/dlvhex/Makefile.am: Likewise, and dlvhex-specific naming of
+ library for internal dlvhex plugins.
+ * dlvhex2.pc.in: Likewise (renamed from dlvhex.pc.in).
+ * dlvhex.pc.in: Likewise (remove).
+
+2012-01-16 Peter Schueller <ps...@kr...>
+
* include/dlvhex/Registry.hpp: Added storeRule() which checks
if rule already exists in rule table and does not store duplicates.
* include/dlvhex/RuleTable.hpp: Likewise.
@@ -145,6 +194,7 @@
* cheatsheet: Remove.
+>>>>>>> .merge-rechts.r3358
2011-11-16 Peter Schueller <ps...@kr...>
* src/dlvhex/SafetyChecker.cpp: Fixed bug in safety checker.
@@ -186,7 +236,7 @@
* examples/tests/README.txt: Likewise.
* examples/Makefile.am: Likewise.
- * src/dlvhex/ProcessBuf.cpp: Making processes kill-able.
+ * src/dlvhex/ProcessBuf.cpp: Making processes kill()-able.
* src/dlvhex/DLVProcess.cpp: Likewise.
* include/dlvhex/ProcessBuf.h: Likewise.
* include/dlvhex/DLVProcess.h: Likewise.
Modified: dlvhex/branches/dlvhex-refactoring/Makefile.am
===================================================================
--- dlvhex/branches/dlvhex-refactoring/Makefile.am 2012-02-17 22:38:19 UTC (rev 3554)
+++ dlvhex/branches/dlvhex-refactoring/Makefile.am 2012-02-21 14:49:09 UTC (rev 3555)
@@ -1,5 +1,5 @@
-# use at least automake >= 1.11
-AUTOMAKE_OPTIONS = 1.11
+# use at least automake >= 1.10
+AUTOMAKE_OPTIONS = 1.10
# use ./m4 directory for additional macros
ACLOCAL_AMFLAGS = -I m4
@@ -9,18 +9,26 @@
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = dlvhex.pc
+pkgconfig_DATA = dlvhex2.pc
html-local: doc/dlvhex.tag
make doxygen-doc
install-html-local:
- install -d $(DESTDIR)/$(docdir)
+ $(INSTALL) -d $(DESTDIR)/$(docdir)
cp -rv $(top_builddir)/doc/html $(DESTDIR)/$(docdir)
+pkgincludedir = $(includedir)/dlvhex2
+install-data-local:
+ if test x$(BM_INSTALL) == xyes; then \
+ $(INSTALL) -d $(DESTDIR)$(pkgincludedir)/bm$(BM_VERSION)/bm; \
+ $(INSTALL) $(top_srcdir)/bm$(BM_VERSION)/bm/*.h $(DESTDIR)/$(pkgincludedir)/bm$(BM_VERSION)/bm/; \
+ fi
+
uninstall-local:
test -d $(DESTDIR)/$(docdir)/html || exit 0; \
cd $(DESTDIR)/$(docdir) && rm -rf html
+ -rm -rf $(includedir)/bm$(BM_VERSION)
SUBDIRS = libltdl examples include src testsuite
@@ -28,7 +36,7 @@
EXTRA_DIST = \
bm3.7.0 \
COPYING.LESSER \
- dlvhex.pc.in \
+ dlvhex2.pc.in \
doxygen.am \
doxygen.cfg
Modified: dlvhex/branches/dlvhex-refactoring/NEWS
===================================================================
--- dlvhex/branches/dlvhex-refactoring/NEWS 2012-02-17 22:38:19 UTC (rev 3554)
+++ dlvhex/branches/dlvhex-refactoring/NEWS 2012-02-21 14:49:09 UTC (rev 3555)
@@ -1,17 +1,22 @@
dlvhex NEWS -- history of user-visible changes.
-* Version 2.0.0 (??)
+* Version 2.0.0 (??? 2012)
-** Complete rewrite.
-
+** Rewrite of evaluation and decomposition framework, see the paper
+ "Pushing Efficient Evaluation of HEX Programs by Modular Decomposition"
+ by Thomas Eiter, Michael Fink, Giovambattista Ianni, Thomas
+ Krennwallner, and Peter Schüller (LPNMR 2011).
+** Rewrite of entity management (IDs plus Registry instead of strings).
+** Extend Plugin API: ComfortPluginAtom parallel to PluginAtom.
+** Add incremental model building (one model at a time).
+** Add Plugin Versioniong ABI.
+** Add interface for input parser modules.
+** Add ASP querying support (brave, cautious, ground, nonground).
+** Add multithreaded support.
** Add support for input-call stratified modular nonmonotonic logic programs (MLPs).
+** Various fixes, improvements, and new testcases.
-* Version 1.7.3 ( 2010)
-
-** Fix ticket #33.
-
-
* Version 1.7.2 (October 2010)
** Fix configuration error with boost 1.44.
@@ -32,7 +37,7 @@
* Version 1.7.0 (June 2010)
-** This is the last dlvhex release with major number 1.
+** This is the last dlvhex release with major number 1 and minor number 7.
** Add support for dlvdb as ASP solver (--solver=dlvdb).
@@ -71,6 +76,7 @@
** Improved documentation.
+vi:ts=4:tw=75
Local variables:
mode: outline
paragraph-separate: "[ ]*$"
Modified: dlvhex/branches/dlvhex-refactoring/README
===================================================================
--- dlvhex/branches/dlvhex-refactoring/README 2012-02-17 22:38:19 UTC (rev 3554)
+++ dlvhex/branches/dlvhex-refactoring/README 2012-02-21 14:49:09 UTC (rev 3555)
@@ -80,6 +80,8 @@
Boost.Spirit
Boost.String_Algo
Boost.Tokenizer
+ Boost.Thread
+ Boost.UnitTestFramework
Popular Linux and Unix distributions such as Fedora, Debian, and
NetBSD include pre-built Boost packages. E.g., in Debian/Ubuntu
@@ -93,14 +95,23 @@
for boost version N.NN.
- If your Ubuntu system did not provide recent boost packages, have
- a look at <https://launchpad.net/~boost-latest/+archive/ppa>.
+ If your Debian/Ubuntu system did not provide recent boost
+ packages, have a look at
+ <https://launchpad.net/~boost-latest/+archive/ppa>.
Installation instructions are given in the INSTALL file found in
- the boost distributions tarball. If you have compiled boost by
- yourself, you have to tell the dlvhex configure script where you
- have installed it:
+ the boost distributions tarball. In order to install
+ boost-iostream, install libbz2-dev. Here is a quick-start guide
+ for compiling boost (if you have multiple cpus available, call the
+ 2nd b2 with -j<N>, where <N> is the number of cpus):
+ $ ./bootstrap.h --prefix=/path/to/install/boost
+ $ ./b2 --build-type=complete --layout=tagged threading=single,multi variant=release
+ $ ./b2 install
+
+ If you have compiled boost by yourself, you have to tell the
+ dlvhex configure script where you have installed it with
+
$ ./configure --with-boost=/path/to/boost-prefix
*** libcurl
libcurl is a multi-protocol file transfer library. dlvhex uses it
@@ -171,3 +182,14 @@
<http://http://www.kr.tuwien.ac.at/research/systems/dlvhex/> or look
at the `examples' directory here. DLV programs are described at
<http://www.dbai.tuwien.ac.at/proj/dlv/#docs>.
+
+* Implementing your own plugins and external computations
+ For documentation on plugin writing, please consult the doxygen
+ documentation in header files include/dlvhex2/PluginInterface.h and
+ include/dlvhex2/ComfortPluginInterface.h. You might also want to have a
+ look at testsuite/TestPlugin.cpp, the internal plugins of dlvhex
+ (classes QueryPlugin, StrongNegationPlugin, and HigherOrderPlugin) and
+ existing plugins like dlvhex-stringplugin and dlvhex-scriptplugin in the
+ same repository as dlvhex.
+
+vim:ts=4:tw=75:
Modified: dlvhex/branches/dlvhex-refactoring/TODO
===================================================================
--- dlvhex/branches/dlvhex-refactoring/TODO 2012-02-17 22:38:19 UTC (rev 3554)
+++ dlvhex/branches/dlvhex-refactoring/TODO 2012-02-21 14:49:09 UTC (rev 3555)
@@ -1,5 +1,6 @@
-*- org -*-
+* TODO think about whether benchmarking should use different mutexes or thread-local storage instead of mutexes
* TODO add some "built-in" testing ext-atoms like &e_1_1[a](X), &e_2_3[a,b](X,Y,Z)
* TODO AC_CONFIG_SUBDIRS([libltdl]) is non-functional with newer autotools
* TODO allow --solver=/path/to/solver?
@@ -14,54 +15,20 @@
Obviously, Boost.Graph has support for it.
* TODO Check if the undecorated external atom replacement and aux names are working
-* TODO Fix extatom3.hex and dawg.hex testcases
+* TODO Fix dawg.hex testcases
This goes in line with GuessCheckModelGenerator: if there are already
solved stratified replacement atoms in the result and there are
unstratified external atoms in the GnC-component, the guessed model
also contains the replacement atoms from the input result, hence
making the check always incompatible with the guess. This need to be
fixed by introducing a better numbering scheme for the replacement
-atoms.
-* TODO Add Component Optimizer API
-We should allow to optimize the components: generalize component API
-and dependency graph API.
-
-For instance, we can move constraints to the closest possible
-component in order to kill impossible models early.
-* TODO Return a list of rewriters/optimizers
-And adapt to shared_ptrs. This gives greater flexibility to the plugin
-programmers.
-* TODO rebuild depgraph after invoking an optimizer?
-check the interface for optimizers...
+atoms. [PS: probably solved, extatom3.hex now works, however dawg.hex cannot
+work as we do not support namespaces]
* TODO use boost iostreams for retrieving URLs/ASPsolver/dlt?
<http://www.boost.org/libs/iostreams/doc/index.html>
mmap'd file(s)?
-* TODO Fix Term's namespace handling
-We need to add qname support to the Terms, i.e., store prefix and
-localname separately.
-
-Also check boost spirit's symbol table implementation:
-<http://spirit.sourceforge.net/distrib/spirit_1_8_5/libs/spirit/doc/symbols.html>
-
-URIs are effectively identifiers, so namespace prefixes should be
-integers, or map to a namespace table.
-* TODO Move strong negation handling to Term
-Whenever we create a symbol with '-' as first character, or a ctor is
-called with the proper parameter, we set a negation flag in Term.
-* TODO Move auxiliary predicates to Term
-Whenever we create an auxiliary symbol, we tag it in the symbol table
-with the "aux tag."
-
-In general, Terms are immutable wrappers (Flyweights) for the symbol
-table, hence, creating symbols can only be achieved via Term's ctors
-(and no setter methods).
* TODO Global URI API
Most plugins need URI handling (as well as dlvhex).
-* TODO Remove replacement/aux name handling from ExternalAtom
-Replacement name == function name, and auxiliary name is generated on
-the fly in GraphBuilder. But we need some context for EvaluateExtatom,
-since it needs to AtomSet::matchPredicate() the auxname for the
-function call. (Or we can matchPredicate in ExternalComponent?)
* TODO RuleBuilder for all the internal rewriting processes
Make the rewritings explicit through a dedicated rewriting
hierarchy. We need to rewrite in
@@ -82,16 +49,7 @@
* TODO Semantics API
Design proper interfaces for different semantics, e.g., HEX, WFS,
etc. Should we allow plugins to add new semantic computations?
-* TODO Let plugins maintain global state in the program itself?
-Like
- #document(foobar.xml)
- a(X) :- &xpath['//person'](X).
-or
- #ontology(hugo.owl)
- a(X) :- DL[Q](X).
-* TODO Query support
-And what kind of queries can we push to dlv? (Query answer parser must
-be created!)
+* TODO what kind of queries can we push to dlv?
* TODO Magic Set rewriting
and what kind of MS rewriting can be delegated to dlv?
* TODO Add support for RIF BLD presentation syntax
Deleted: dlvhex/branches/dlvhex-refactoring/cheatsheet
===================================================================
--- dlvhex/branches/dlvhex-refactoring/cheatsheet 2012-02-17 22:38:19 UTC (rev 3554)
+++ dlvhex/branches/dlvhex-refactoring/cheatsheet 2012-02-21 14:49:09 UTC (rev 3555)
@@ -1,33 +0,0 @@
-dlvhex+mlp cheat sheet
-
-1. Install boost
-- get boost from: http://www.boost.org/
-- [sometimes] in order to install boost-iostream, install libbz2-dev
-- in root dir:
- $ ./bootstrap.h --prefix=build
- $ ./bjam --build-type=complete --layout=tagged --build-dir=build threading=single
- $ ./bjam --prefix=build --build-dir=build --layout=tagged threading=single install
-
-
-2. Install dlvhex+mlp
-- checkout from svn repository:
- $ svn co https://dlvhex.svn.sourceforge.net/svnroot/dlvhex/dlvhex/branches/dlvhex+mlp
-- in root dir:
- $ ./bootstrap.h
-- build in separate directory:
- $ mkdir build
- $ cd build
- $ ../configure --with-boost=<boost-build-dir>
- [if necessary: $ LD_LIBRARY_PATH=<boost-build-dir>/lib ../configure --with-boost=<boost-build-dir> ]
-- build in root directory
- $ ./configure --with-boost=<boost-build-dir>
- [if necessary: $ LD_LIBRARY_PATH=<boost-build-dir>/lib ./configure --with-boost=<boost-build-dir> ]
-- build with clingo:
- get clingo: http://sourceforge.net/projects/potassco/files/clingo/3.0.3/clingo-3.0.3-source.tar.gz/download
- extract it
- Delete the lua support in Makefile, i.e.,
- delete the [second] line cmake_options=-DWITH_LUA=shipped -DWITH_LUASQL=1
- add --with-libclingo=<CLINGO-DIR> when configure, e.g.
- $ ./configure --with-boost=<boost-build-dir> --with-libclingo=<CLINGO-DIR>
-
-
Modified: dlvhex/branches/dlvhex-refactoring/configure.ac
===================================================================
--- dlvhex/branches/dlvhex-refactoring/configure.ac 2012-02-17 22:38:19 UTC (rev 3554)
+++ dlvhex/branches/dlvhex-refactoring/configure.ac 2012-02-21 14:49:09 UTC (rev 3555)
@@ -1,10 +1,15 @@
AC_PREREQ([2.61])
-AC_INIT([dlvhex],[2.0.0],[dlv...@li...])
-AM_INIT_AUTOMAKE([-Wall gnu check-news color-tests 1.11])
+AC_INIT([dlvhex2],[2.0.0],[dlv...@li...])
+AM_INIT_AUTOMAKE([-Wall gnu check-news 1.10])
-AC_CONFIG_SRCDIR([src/dlvhex/dlvhex.cpp])
+AC_CONFIG_SRCDIR([src/dlvhex.cpp])
AC_CONFIG_HEADER([include/config.h])
+# provide package and ABI version to substitute in .in files and to config.h
+DLVHEX_DEFINE_VERSION([DLVHEX],[$PACKAGE_VERSION])
+# for ABI and library versioning,
+# see https://sourceforge.net/apps/trac/dlvhex/wiki/LibraryVersions
+DLVHEX_DEFINE_VERSION([DLVHEX_ABI],[7.0.0])
AC_CANONICAL_HOST
@@ -43,7 +48,7 @@
AC_MSG_CHECKING([for g++ >= 4.3 or clang++ >= 2.9])
AC_LANG_PUSH([C++])
- AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
int dummy;
#else
@@ -59,7 +64,7 @@
#endif
]], [[
dummy;
-]]),
+]])],
[
AC_MSG_RESULT([yes])
],
@@ -83,6 +88,7 @@
;;
esac
+AC_CACHE_SAVE
# Checks for header files.
AC_HEADER_DIRENT
@@ -133,12 +139,13 @@
)
# default = release
-dbgrelbench="$enable_debug,$enable_release,$enable_benchmark,$enable_profiling,$extradebug"
+dbgrelbench="$enable_debug,$enable_release,$enable_benchmark,$enable_profiling,$enable_extradebug"
if test "$dbgrelbench" = "false,false,false,false,false"; then
- enable_debug=true
- dbgrelbench="$enable_debug,$enable_release,$enable_benchmark,$enable_profiling,$extradebug"
+ enable_release=true
+ dbgrelbench="$enable_debug,$enable_release,$enable_benchmark,$enable_profiling,$enable_extradebug"
fi
+
optlevel=""
debuginfo=""
prof=""
@@ -150,16 +157,20 @@
true,*,*,*,*)
# do stuff that must be done for --enable-debug here
AC_DEFINE(DEBUG, [], [Activates assertions and debug logging])
+ CPPFLAGS="$CPPFLAGS -DDEBUG"
optlevel="-O0"
debuginfo="-g"
enable_release=false
enable_benchmark=false
enable_profiling=false
+ AC_SUBST([DISTCHECK_CONFIGURE_FLAGS],
+ ["$DISTCHECK_CONFIGURE_FLAGS --enable-debug"])
;;
*,*,*,*,true)
# do stuff that must be done for --enable-extra-debug here
AC_DEFINE(DEBUG, [], [Activates assertions and debug logging])
+ CPPFLAGS="$CPPFLAGS -DDEBUG"
optlevel="-O0"
defines="-D_GLIBCXX_DEBUG"
#defines="-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC"
@@ -174,12 +185,16 @@
# (we have an implicit DLVHEX_BENCHMARK definition in config.h)
AC_DEFINE(DLVHEX_BENCHMARK, [], [Turns on benchmarking timers and counters])
AC_DEFINE(NDEBUG, [], [Turns off debug logging and assertions])
+ CPPFLAGS="$CPPFLAGS -DNDEBUG"
optlevel="-O3"
+ AC_SUBST([DISTCHECK_CONFIGURE_FLAGS],
+ ["$DISTCHECK_CONFIGURE_FLAGS --enable-benchmark"])
;&
*,*,*,true,*)
# do stuff that must be done for --enable-profiling here
AC_DEFINE(NDEBUG, [], [Turns off debug logging and assertions])
+ CPPFLAGS="$CPPFLAGS -DNDEBUG"
optlevel="-O3"
prof="-pg"
;&
@@ -187,7 +202,10 @@
*,true,*,*,*)
# do stuff that must be done for --enable-release here
AC_DEFINE(NDEBUG, [], [Turns off debug logging and assertions])
+ CPPFLAGS="$CPPFLAGS -DNDEBUG"
optlevel="-O3"
+ AC_SUBST([DISTCHECK_CONFIGURE_FLAGS],
+ ["$DISTCHECK_CONFIGURE_FLAGS --enable-release"])
;&
esac
@@ -197,14 +215,15 @@
CPPFLAGS="$CPPFLAGS $defines"
+# libtool
+LT_INIT([dlopen])
+
# Checks for libtool's libltdl
-AC_LIB_LTDL
-AC_LIBLTDL_CONVENIENCE
-AC_LIBTOOL_DLOPEN
-AC_PROG_LIBTOOL
-AC_SUBST(INCLTDL)
-AC_SUBST(LIBLTDL)
+LT_CONFIG_LTDL_DIR([libltdl])
+LTDL_INIT([installable])
+#AC_SUBST(INCLTDL)
+#AC_SUBST(LIBLTDL)
# configure autogenerated libltdl directory
# AC_CONFIG_SUBDIRS([libltdl])
@@ -213,6 +232,7 @@
# pkg-config support
PKG_PROG_PKG_CONFIG
+AC_CACHE_SAVE
# checking for boost libs
# we need 1.43 for functional/factory
@@ -221,16 +241,21 @@
BOOST_STRING_ALGO
BOOST_TOKENIZER
BOOST_IOSTREAMS
+AC_CACHE_SAVE
BOOST_GRAPH
BOOST_PROGRAM_OPTIONS
+AC_CACHE_SAVE
BOOST_TEST
+AC_CACHE_SAVE
BOOST_SYSTEM
BOOST_FILESYSTEM
+AC_CACHE_SAVE
BOOST_THREADS
# for --enable-debug, we need the boost_date_time library
if test "x$enable_debug" = "xtrue"; then
BOOST_DATE_TIME
fi
+AC_CACHE_SAVE
#
# the default system-wide plugin dir ${pkglibdir}/plugins can be
@@ -252,11 +277,11 @@
#
# the user plugin dir consists of the user home concatenated with
-# and USER_PLUGIN_DIR, which is .dlvhex/plugins by default and can be
+# and USER_PLUGIN_DIR, which is .dlvhex2/plugins by default and can be
# overridden by setting USER_PLUGIN_DIR=... at configure-time
#
if test "$USER_PLUGIN_DIR" = ""; then
- userplugindir=".dlvhex/plugins"
+ userplugindir=".dlvhex2/plugins"
else
userplugindir="$USER_PLUGIN_DIR"
fi
@@ -268,6 +293,9 @@
CPPFLAGS="$CPPFLAGS -DUSER_PLUGIN_DIR='\"$userplugindir\"'"
+WHICH_DLVHEX_TESTS="\$(top_builddir)/examples/tests/basic.test"
+AC_SUBST(WHICH_DLVHEX_TESTS)
+
#
# third-party solver integration
# * dlv as executable
@@ -369,6 +397,9 @@
EXTSOLVER_LIBS="${EXTSOLVER_LIBS} ${BOOST_FILESYSTEM_LIBS} ${BOOST_SYSTEM_LIBS}"
EXTSOLVER_LDFLAGS="${EXTSOLVER_LDFLAGS} -L${GRINGO_TRUNK_DIR}/build/release/lib/ ${BOOST_FILESYSTEM_LDFLAGS} ${BOOST_SYSTEM_LDFLAGS}"
EXTSOLVER_CPPFLAGS="${EXTSOLVER_CPPFLAGS} -I${GRINGO_TRUNK_DIR}/libprogram_opts/ -I${GRINGO_TRUNK_DIR}/libgringo/ -I${GRINGO_TRUNK_DIR}/libclasp/ -I${GRINGO_TRUNK_DIR}/app/"
+ WHICH_DLVHEX_TESTS="${WHICH_DLVHEX_TESTS} \$(top_builddir)/examples/tests/libclingobackend.test"
+ AC_SUBST([DISTCHECK_CONFIGURE_FLAGS],
+ ["$DISTCHECK_CONFIGURE_FLAGS '--with-libclingo=$GRINGO_TRUNK_DIR'"])
extsolver_found=true
fi
@@ -453,7 +484,9 @@
)
BM_CPPFLAGS=""
+BM_PKGCONFIG_CPPFLAGS=""
BM_VERSION=""
+BM_INSTALL="no"
if test x$with_bmagic != xlocal; then
@@ -476,11 +509,22 @@
if test x$have_bm != xtrue; then
# force local bmagic
- BM_CPPFLAGS="-I\${top_srcdir}/bm3.7.0/"
BM_VERSION=3.7.0
+ # include bmagic for building this
+ BM_CPPFLAGS="-I\${top_srcdir}/bm${BM_VERSION}/"
+ # in pkgconfig we have include flags
+ # -I$(includedir)/dlvhex2/bm${BM_VERSION}/
+ # as this is the location where the local bmagic headers will be installed
+ # (rationale: we do not want to install over an existing bmagic if we force local bmagic)
+ BM_PKGCONFIG_CPPFLAGS="-I\${includedir}/dlvhex2/bm${BM_VERSION}/"
+ # this is used in SUBDIRS in makefile, to either install bitmagic headers or not
+ BM_INSTALL=yes
fi
+AC_SUBST(BM_INSTALL)
AC_SUBST(BM_CPPFLAGS)
+AC_SUBST(BM_VERSION)
+AC_SUBST(BM_PKGCONFIG_CPPFLAGS)
@@ -496,19 +540,19 @@
DX_XML_FEATURE([OFF])
DX_PDF_FEATURE([OFF])
DX_PS_FEATURE([OFF])
-DX_INIT_DOXYGEN([dlvhex], [doxygen.cfg], [doc])
+DX_INIT_DOXYGEN([dlvhex2], [doxygen.cfg], [doc])
-
# output autogenerated files
AC_CONFIG_FILES([
Makefile
- dlvhex.pc
+ dlvhex2.pc
examples/Makefile
+ examples/tests/basic.test
+ examples/tests/libclingobackend.test
include/Makefile
include/common.h
- include/dlvhex/Makefile
+ include/dlvhex2/Makefile
src/Makefile
- src/dlvhex/Makefile
testsuite/Makefile
])
Deleted: dlvhex/branches/dlvhex-refactoring/dlvhex.pc.in
===================================================================
--- dlvhex/branches/dlvhex-refactoring/dlvhex.pc.in 2012-02-17 22:38:19 UTC (rev 3554)
+++ dlvhex/branches/dlvhex-refactoring/dlvhex.pc.in 2012-02-21 14:49:09 UTC (rev 3555)
@@ -1,15 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-bindir=@bindir@
-libdir=@libdir@
-includedir=@includedir@
-pkglibdir=${libdir}/@PACKAGE@
-sysplugindir=@sysplugindir@
-userplugindir=@userplugindir@
-
-Name: @PACKAGE@
-Description: HEX-Program Reasoner
-Version: @VERSION@
-Libs: -L${libdir} -ldlvhexbase -laspsolver
-Cflags: -I${includedir}
-
Copied: dlvhex/branches/dlvhex-refactoring/dlvhex2.pc.in (from rev 3369, dlvhex/trunk/dlvhex2.pc.in)
===================================================================
--- dlvhex/branches/dlvhex-refactoring/dlvhex2.pc.in (rev 0)
+++ dlvhex/branches/dlvhex-refactoring/dlvhex2.pc.in 2012-02-21 14:49:09 UTC (rev 3555)
@@ -0,0 +1,15 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+bindir=@bindir@
+libdir=@libdir@
+includedir=@includedir@
+pkglibdir=${libdir}/@PACKAGE@
+sysplugindir=@sysplugindir@
+userplugindir=@userplugindir@
+
+Name: @PACKAGE@
+Description: HEX-Program Reasoner
+Version: @VERSION@
+Libs: -L${libdir} -ldlvhex2-base -ldlvhex2-aspsolver @LIBCURL@ @BOOST_THREAD_LDFLAGS@ @BOOST_THREAD_LIBS@
+Cflags: -I${includedir} @BOOST_CPPFLAGS@ @BM_PKGCONFIG_CPPFLAGS@
+
Property changes on: dlvhex/branches/dlvhex-refactoring/dlvhex2.pc.in
___________________________________________________________________
Added: svn:mergeinfo
+ /dlvhex/trunk/dlvhex2.pc.in:3369-3370,3373,3386-3387,3390,3397,3402-3532
Copied: dlvhex/branches/dlvhex-refactoring/doc/extatom3.hex_evalplanfactinput.asp (from rev 3358, dlvhex/trunk/doc/extatom3.hex_evalplanfactinput.asp)
===================================================================
--- dlvhex/branches/dlvhex-refactoring/doc/extatom3.hex_evalplanfactinput.asp (rev 0)
+++ dlvhex/branches/dlvhex-refactoring/doc/extatom3.hex_evalplanfactinput.asp 2012-02-21 14:49:09 UTC (rev 3555)
@@ -0,0 +1,117 @@
+% component 0:
+% innerRules:
+% in_ww(X) :- dom(X), not out_ww(X).
+% out_ww(X) :- dom(X), not in_ww(X).
+component(0).
+rules(0).
+disjheads(0).
+innerextnonmon(0).
+outerextnonmon(0).
+% component 1:
+% innerRules:
+% dl_pc_1(ww,X) :- in_ww(X).
+component(1).
+rules(1).
+disjheads(1).
+negcycles(1).
+innerextnonmon(1).
+outerextnonmon(1).
+% component 2:
+% outerEatoms:
+% &testA[dl_pc_1](X)
+component(2).
+outerext(2).
+disjheads(2).
+negcycles(2).
+innerextnonmon(2).
+% component 3:
+% innerRules:
+% p_ww(X) :- &testA[dl_pc_2](X), dom(X), not &testA[dl_pc_1](X).
+% dl_pc_2(ww,X) :- p_ww(X).
+% innerEatoms:
+% &testA[dl_pc_2](X)
+component(3).
+rules(3).
+innerext(3).
+disjheads(3).
+outerextnonmon(3).
+% component 4:
+% outerEatoms:
+% &testA[dl_pc_2](X)
+component(4).
+outerext(4).
+disjheads(4).
+negcycles(4).
+innerextnonmon(4).
+% component 5:
+% outerEatoms:
+% &testA[dl_pc_1](X)
+component(5).
+outerext(5).
+disjheads(5).
+negcycles(5).
+innerextnonmon(5).
+% component 6:
+% outerEatoms:
+% &testA[dl_pc_2](X)
+component(6).
+outerext(6).
+disjheads(6).
+negcycles(6).
+innerextnonmon(6).
+% component 7:
+% innerRules:
+% fail :- in_ww(X), not fail, not &testA[dl_pc_2](X).
+% fail :- out_ww(X), &testA[dl_pc_1](X), not fail.
+% fail :- out_ww(X), &testA[dl_pc_2](X), not fail.
+component(7).
+rules(7).
+disjheads(7).
+innerextnonmon(7).
+outerextnonmon(7).
+% component 8:
+% innerConstraints:
+% :- p_ww(X), dl_pc_2(ww,X).
+component(8).
+constraints(8).
+disjheads(8).
+negcycles(8).
+innerextnonmon(8).
+outerextnonmon(8).
+% dependency from 1 to 0.
+dep(1,0).
+posrule(1,0).
+% dependency from 2 to 1.
+dep(2,1).
+extpred(2,1).
+% dependency from 3 to 2.
+dep(3,2).
+posext(3,2).
+negext(3,2).
+% dependency from 4 to 3.
+dep(4,3).
+extpred(4,3).
+% dependency from 5 to 1.
+dep(5,1).
+extpred(5,1).
+% dependency from 6 to 3.
+dep(6,3).
+extpred(6,3).
+% dependency from 7 to 4.
+dep(7,4).
+posext(7,4).
+negext(7,4).
+% dependency from 7 to 0.
+dep(7,0).
+posrule(7,0).
+% dependency from 7 to 5.
+dep(7,5).
+posext(7,5).
+negext(7,5).
+% dependency from 7 to 6.
+dep(7,6).
+posext(7,6).
+negext(7,6).
+% dependency from 8 to 3.
+dep(8,3).
+posconstraint(8,3).
Modified: dlvhex/branches/dlvhex-refactoring/examples/Makefile.am
===================================================================
--- dlvhex/branches/dlvhex-refactoring/examples/Makefile.am 2012-02-17 22:38:19 UTC (rev 3554)
+++ dlvhex/branches/dlvhex-refactoring/examples/Makefile.am 2012-02-21 14:49:09 UTC (rev 3555)
@@ -1,5 +1,6 @@
EXTRA_DIST = \
- tests/dlvhextests.test \
+ tests/basic.test \
+ tests/libclingobackend.test \
tests/README.txt \
3col.hex \
agg1.hex \
@@ -22,7 +23,11 @@
extatom2dup.hex \
extatom2safety.hex \
extatom3.hex \
- extatom3_evalplan.txt \
+ extatom3_aspheur_faultya.asp \
+ extatom3_aspheur_faultyb.asp \
+ extatom3_aspheur_old.asp \
+ extatom3_evalplana.txt \
+ extatom3_evalplanb.txt \
extatom4.hex \
extatom5.hex \
extatom6.hex \
@@ -131,6 +136,8 @@
tests/extatom2.out \
tests/extatom2dup.out \
tests/extatom3.out \
+ tests/extatom3_faultya.stderr \
+ tests/extatom3_faultyb.stderr \
tests/extatom4.out \
tests/extatom5.out \
tests/extatom6.out \
Modified: dlvhex/branches/dlvhex-refactoring/examples/extatom3.hex
===================================================================
--- dlvhex/branches/dlvhex-refactoring/examples/extatom3.hex 2012-02-17 22:38:19 UTC (rev 3554)
+++ dlvhex/branches/dlvhex-refactoring/examples/extatom3.hex 2012-02-21 14:49:09 UTC (rev 3555)
@@ -30,3 +30,5 @@
fail :- out_ww(X), &testA[dl_pc_1](X), not fail.
fail :- out_ww(X), &testA[dl_pc_2](X), not fail.
+% useless constraint to demonstrate constraint sharing in eval plans
+:- p_ww(X), dl_pc_2(ww,X).
Copied: dlvhex/branches/dlvhex-refactoring/examples/extatom3_aspheur_faultya.asp (from rev 3358, dlvhex/trunk/examples/extatom3_aspheur_faultya.asp)
===================================================================
Copied: dlvhex/branches/dlvhex-refactoring/examples/extatom3_aspheur_faultyb.asp (from rev 3358, dlvhex/trunk/examples/extatom3_aspheur_faultyb.asp)
===================================================================
--- dlvhex/branches/dlvhex-refactoring/examples/extatom3_aspheur_faultyb.asp (rev 0)
+++ dlvhex/branches/dlvhex-refactoring/examples/extatom3_aspheur_faultyb.asp 2012-02-21 14:49:09 UTC (rev 3555)
@@ -0,0 +1,3 @@
+use(C,C) :- component(C).
+use(0,1).
+unit(C) :- use(C,C).
Copied: dlvhex/branches/dlvhex-refactoring/examples/extatom3_aspheur_old.asp (from rev 3358, dlvhex/trunk/examples/extatom3_aspheur_old.asp)
===================================================================
--- dlvhex/branches/dlvhex-refactoring/examples/extatom3_aspheur_old.asp (rev 0)
+++ dlvhex/branches/dlvhex-refactoring/examples/extatom3_aspheur_old.asp 2012-02-21 14:49:09 UTC (rev 3555)
@@ -0,0 +1,31 @@
+% guess: build units from components (in worst case each unit is one component)
+% +symmetry breaking
+use(U,C) v nuse(U,C) :- component(U), component(C), U <= C.
+% check: every component in one unit
+:- not #count{ U : use(U,C) } = 1, component(C).
+% deduce unit from use
+unit(U) :- use(U,C).
+
+% heuristics:
+% an outer external component in a unit
+% must not depend on other components in that unit
+:- component(EC), outerext(EC), use(U,EC), use(U,C2), EC != C2, dep(EC,C2).
+
+% define dependencies between units (necessary for more checks)
+unitdep(U1,U2) :- use(U1,C1), use(U2,C2), U1 != U2, C1 != C2, dep(C1,C2).
+% define transitive closure over unitdep
+unitdep(U1,U3) :- unitdep(U1,U2), unitdep(U2,U3), U1 != U2, U2 != U3. % allow U1 = U3 on purpose
+
+% check: no cyclic unit dependencies allowed
+:- unitdep(U,U).
+
+% as few units as possible
+:~ unit(U). [1:3]
+% use unit indices as small as possible
+:~ unit(U), W=U+1. [W:2]
+% units as large as possible (=> as many rules as possible in early units as possible)
+rulecount_in_unit(U,Count) :- unit(U), Count = #count{ C : use(U,C) }, component(Count).
+maxcount(Maxcount) :- Maxcount = #max {C : component(C) }.
+:~ rulecount_in_unit(U,Count), ACount = Maxcount - Count, maxcount(Maxcount), W = U*ACount. [W:1]
+
+% vim:syntax=prolog:
Deleted: dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplan.txt
===================================================================
--- dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplan.txt 2012-02-17 22:38:19 UTC (rev 3554)
+++ dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplan.txt 2012-02-21 14:49:09 UTC (rev 3555)
@@ -1,3 +0,0 @@
-collapse 0 1
-collapse 2 3
-collapse 4 5 6 7
Copied: dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplana.txt (from rev 3358, dlvhex/trunk/examples/extatom3_evalplana.txt)
===================================================================
--- dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplana.txt (rev 0)
+++ dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplana.txt 2012-02-21 14:49:09 UTC (rev 3555)
@@ -0,0 +1,3 @@
+collapse 0 1
+collapse 2 3
+collapse 4 5 6 7
Copied: dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplanb.txt (from rev 3358, dlvhex/trunk/examples/extatom3_evalplanb.txt)
===================================================================
--- dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplanb.txt (rev 0)
+++ dlvhex/branches/dlvhex-refactoring/examples/extatom3_evalplanb.txt 2012-02-21 14:49:09 UTC (rev 3555)
@@ -0,0 +1,3 @@
+collapse 0 1
+collapse 2 3 share 8
+collapse 4 5 6 7 8
Modified: dlvhex/branches/dlvhex-refactoring/examples/manya...
[truncated message content] |