Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
All features for relasing 2.5 * Added concept separation * fixed :anonymous-burmeister write to file function * changed context io test to ignore :anonymous-burmeister format The fix for the :anonymous-burmeister write to file function caused some context io tests to fail. This commit removes the :anonymous-burmeister format from the out-in and out-in-out-in tests. The reasoning is as follows: - Before fixing the io write function, the tests went through because calling `count` on a context results in an `UnsupportedOperationException` which is caught and accepted (other formats throw this exception, namely :fcalgs, which only accepts integral objects and attributes). - Fixing the write part for the :anonymous-burmeister format meant that the tests were actually running - The out-in tests fail for the :anonymous-burmeister format basically by design because the object and attribute labels are discarded on write - The out-in-out-in tests usually fail too because the order of objects and attributes is not guaranteed to be kept intact on write. This is because `(seq (set (range N)))` is not guaranteed to be the same as `(range N)`. Hence the context after importing is the same context but possibly with shuffled objects and attributes, and thus the equality check fails. * doc: corrected example for :anonymous-burmeister format * Added possible-isomorphy tests for :anonymous-burmeister format Previously there were no working tests for the :anonymous-burmeister format. Because this format drops object and attribute names when writing a context to a file and there is no determinism in the order of objects and attributes written to file, we can not test for equality in out-in and out-in-out-in tests. Therefore, we resort to testing for possible isomorphy -- testing for true isomorphy is not trivial and expensive to compute. * Update IO.org * Added Named Binary CSV Input and Doc * Fixed NB write and detection, Added write options and FCA Output * LaTeX Output for lattices supports valuation functions * Added gui I/O for layouts * More Valuations * Fixed concept probability for concepts having |extent|=|G| * Fixed concept probability ... debugging prints ;) * Added documentation * Added separation-index to the gui * Fixed syntax error * Fixed code junk found in metrics. * add read & write of json format for implications * correct read and write format for implications * add oi and oioi tests for json implication format * add json context input format * add json context output format and improve implication output format * add json concept input & output format * Add json input & output for whole process (context + concepts + implications) * rename process.clj to fca.clj and change output from triple to map * add validation for fca-schema * fix io/context tests that were failing for :json format * json format: lattices can be saved with order now * improve tests for reading / writing of implications * change fca_schema, so that objects and attributes can be of type string and number * adapt read-fca and write-fca after change of lattice format * add tests for reading / writing of fcas * add validation for context io * add validation for lattice io * add validation for implication io * refactoring of fca io * move context schema validation to read-context and add a general json validation for format detection * move schema validation to the read functions for lattice, implications and fca * Add documentation * add documentation * add myself as author * add tests for identifying context input formats * add test for writing / reading fcalgs format * add tests for identifying lattice input formats * add documentation + comments * improve documentation * minor changes in documentation * improve tests for fcas and implications * Add nix flake * Add nix flake * Updating the scene layout did not update the layout data * updating the layout cased a removal of the old value-fn * update documentation for drawing concept lattices * Triadic (#70) * triadic exploration * Triadic-Exploration: Added basic example to doc * Triadic Exploration: small fix in doc * modify :json context schema so that empty attribute columns are not dropped any more (#92) * csv reader library (#90) * use csv reader library for named-binary-csv * use csv reader library for :csv input * use csv reader library for :binary-csv input * use csv reader library for :csv output * use csv reader library for :binary-csv output * use csv reader library for :named-binary-csv output Co-authored-by: Johannes Hirth <[email protected]> * Minor stuff in exploration * Fast fix for CORS problem using api with browser frontend * Export layout json (#95) * add json export for layouts * save valuations in :json format * don't add nil valuations to layout * code cleanup and add annotations / labels when reading :json layout * save labels with position * annotations are saved, but not read * change layout api functions * use json io functions for layout api * Bump flake (#88) * flake.lock: Update Flake lock file changes: • Updated input 'flake-compat': 'github:edolstra/flake-compat/12c64ca55c1014cdc1b16ed5a804aa8576601ff2' (2021-08-02) → 'github:edolstra/flake-compat/b4a34015c698c7793d592d66adbab377907a2be8' (2022-04-19) • Updated input 'flake-utils': 'github:numtide/flake-utils/74f7e4319258e287b0f9cb95426c9853b282730b' (2021-11-28) → 'github:numtide/flake-utils/a4b154ebbdc88c8498a5c7b01589addc9e9cb678' (2022-04-11) • Updated input 'gitignoresrc': 'github:hercules-ci/gitignore.nix/5b9e0ff9d3b551234b4f3eb3983744fa354b17f1' (2021-10-25) → 'github:hercules-ci/gitignore.nix/bff2832ec341cf30acb3a4d3e2e7f1f7b590116a' (2022-03-05) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/86453059bf8312f0f5bf1fe8a2f52da2be664489' (2021-12-20) → 'github:NixOS/nixpkgs/3a9e0f239d80fa134e8fcbdee4dfc793902da37e' (2022-04-25) * Nix: Update hash for dependencies * Nix: fix shell.nix compatibility wrapper * Ignore .lsp * Nix: Drop conexp-clj from devShell PATH Remove `conexp-clj` from the devShell PATH, so that `nix develop` works even if the current checkout fails to build. A shell with `conexp-clj` in PATH is still available using `nix shell`. * Poset layout (#96) * rename "lattice" to "poset" in layouts * fix some errors * renaming and fixing errors * handle inf-irreducible and sup-irreducible layout functions for posets * compute context for poset * move Poset type to separate file and add change some layout tests * add more tests for posets and move neighbor functions from lattices to posets * add tests for posets * fix some errors and add tests for posets in layout functions * add to-inf-additive-layout for Posets * improve to-inf-additive-layout function for Posets * add tests for order-ideal and order-filter * add tests for poset and dim-draw layout * add tests for poset and freese layout * force layout does not work for posets, as inf-irreducibles are needed * fix failing tests * add GUI frame title for Poset * when constructing a poset from positions and connections in Layout, save it as Lattice if it has lattice order * add tests for concept-lattice-annotation with poset * add wrapper function for poset layouts * use wrapper function for to-inf-additive-layout with posets * add error handling for valuations in GUI * change order in annotation function * remove 2nd condition from annotation function for layouts, as it is never reached * minor changes in documentation * Prefer clj-nix over fixed-output derivations for nix flake (#98) * Bump json-schema to 0.3.4 json-schema-0.3.3 still refers to com.github.everit-org.json-schema/org.everit.json.schema, which is a redirect -- this breaks clj-nix. * Prefer clj-nix over fixed-output mvn build * Expose unit tests as a flake app * Add workflows for tests and dependency locking * Enable test workflow for clj-nix branch * Update deps-lock.json * Revert "Enable test workflow for clj-nix branch" This reverts commit 0f7f1aa. Co-authored-by: mmarx <[email protected]> * Fixed some of the deprecated code in latdraw. * Protoconcepts (#99) * add Protoconcept data type * add preconcepts? and protoconcepts? function * add protoconcept functions and tests * fix preconcepts? tests * add semiconcept? function * add protoconcepts order and visualization * add tests for protoconcept-layout * use preconcepts? as defined by R. Wille * add draw-protoconcepts function * add print method for protoconcepts * fix errors * enable draw for protoconcepts * add more protoconcepts functions and tests * remove functions that are not needed any more fore protoconcepts * add draw functions for posets and protoconcepts * improve documentation * add documentation for protoconcepts * minor changes in documentation * minor changes in documentation * minor changes in documentation * Protoconcepts (#100) * add Protoconcept data type * add preconcepts? and protoconcepts? function * add protoconcept functions and tests * fix preconcepts? tests * add semiconcept? function * add protoconcepts order and visualization * add tests for protoconcept-layout * use preconcepts? as defined by R. Wille * add draw-protoconcepts function * add print method for protoconcepts * fix errors * enable draw for protoconcepts * add more protoconcepts functions and tests * remove functions that are not needed any more fore protoconcepts * add draw functions for posets and protoconcepts * improve documentation * add documentation for protoconcepts * minor changes in documentation * minor changes in documentation * minor changes in documentation * add protoconcepts function in gui * Updated copyright notice and added reference request. * Update Common-FCA-File-Formats-for-Formal-Contexts.org (#102) * New context randomization (#103) * added edge swapping and edge rewiring for contexts * added tests for swapping and rewiring * fixed function aliases * Incomplete Contexts (#105) * generate random context that does not contain the maximal contranominal scale (for the generated size of context) * fixed bug in dimdraw greedy * Incomplete Contexts and exploration with multiple experts * added brief doc --------- Co-authored-by: Tom Hanika <[email protected]> * Match api and json I/O formats (#106) * modify :json context schema so that empty attribute columns are not dropped any more * add layouts to fca json schema * add schema and example for mv-context * add IO of fca schema in api and update context schema * adapt io :json schema to api for lattices * adapt api for implications to :json schema * change api handler tests for lattices and layouts - still failing * remove all UnsupportedOperationExceptions from context io tests * update lattice schema so that it can process both basic and concept-lattices * code cleanup in io/lattices * add json schema for mv-contexts * fix errors in IO for mv-contexts and update tests * add tests for mv-contexts automatic format detection * fix failing test * Fix draw-lattice (#107) * add IO of fca schema in api and update context schema * make draw-lattice work without args * add tests for draw-lattice and draw-protoconcepts * rename file * fix failing tests * Version bump * Feature/fix flake (#108) * Fix `buildInputs` in flake * flake.lock: Update Flake lock file updates: • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/9bdbbaa634aa666eb6a27096bdcb991c59181244' (2022-09-21) → 'github:NixOS/nixpkgs/0874168639713f547c05947c76124f78441ea46c' (2023-01-01) * Updated depdencies * Update deps-lock.json (#111) Co-authored-by: tomhanika <[email protected]> * add lein-aot-order plugin (#112) * Update flake (#113) * add lein-aot-order plugin * Bump flake to nixpkgs-23.05 * Update conexp version in flake * Force `lein-aot-order` into deps.lock The `lein-aot-order` plugin won't be picked up unless it's part of the `main` profile, and is thus not part of the lock file, which breaks the nix package. --------- Co-authored-by: Jana <[email protected]> * Fix build status badge in README (#114) * Explain the flake in the documentation (#115) * Add overlay to flake * Add documentation on the nix flake * add ben-and-jerrys context * first version of icfca2023 conexp tutorial * fix error for drawing lattices with valuations * update tutorial * fix error for drawing lattices with valuations (#117) * Scale Measures (#118) * Added many-valued context functions and quality of life improvements * Conexp now with pq-cores * moved files * renamed namespaces * moved subconcept function * fixed comments and removed two duplicate functions * Added Author Field * base functionality for smeasures * Added naive Object Clustering * smeasures now with clustering - Made async fast concepts compuatation usable for other methods - Moved transformation algorithms into their own ns - Implemented Cluster Scale Measure Algorithms that compute valid clusterings given an initial set * Bugfix and updated tests * Added documentation * added missing test * Fixed bug in object clustering * Added tests * Added interactive scale exploration * added draft for genetic algorithm * Terminal output * Terminal output smeasure * added genetic algorithm * genetic 2d subctx * removed debug * refectoring * repair cluster method * prepared helper methods for genetic clustering * Added Tikz support for measures * Added lattice tikz smeasure export * Now with genetic clustering * bugfix * genetic part 1 works now * genetic works Part 2 * Code Refactoring * smart cluster in explor. and decode for genetic * Fixed and improved Cluster Repair Algorithm * bigfix * Added Cluster Validity checkers * Scale-Measure init restructure * Scale-Measures Added logical attributes * Scale-Measures Moved Logical derivations to context.clj * Added Scale-Measures Framework * Scale-Measure Apposition * Recommend based on an importance measure * Added scale-measure exploration and recommendation by importance measures * Only meet-irreducible scale-measure attributes * More intuitive questionary + Minor Bug fix * smeasures: updated questionary * Scaling error * Resolved Merge * Added comment for cover method * meet and join operator * Bugfix * Added a relative scaling errors * Compute all concepts containing g and their covering * Removed prints * add test for smeasure? * test "make-smeasure" functions * test original-extents * test smeasure-by-exts * test for canonical-smeasure-representation * test meet-smeasure * fix error in canonical-smeasure-representation * test error-in-smeasure * fix and test invalid-attributes * fix & test conceptual-scaling-error + attribute-scaling-error * change 'make-smeasure' tests * test smeasure-valid-attr and smeasure-invalid-attr * test conjunctive normalform * add test for scale-apposition * test smeasure-valid-exts and smeasure-invalid-exts * test rename-scale for objects and attributes * test pre-image-measure * add test for join-complement * add test for recommend-by-importance * add tests for conceptual-navigation * add tests for conceptual-navigation * add tests for exploration-of-scales-iteration * add test for exploration-of-scales * add some minor test cases * add test for concept-lattice-filter+covering-concepts --------- Co-authored-by: Johannes Hirth <[email protected]> Co-authored-by: Johannes Hirth <[email protected]> Co-authored-by: De Narm <[email protected]> Co-authored-by: hirthjo <[email protected]> Co-authored-by: Tom Hanika <[email protected]> * tutorial finished * tutorial cleanup * Update icfca-2023-tutorial.org * update images for tutorial * fix typo * fix typos * Updated version in flake * Updated version in flake -- for real * add contexts to tutorial * Avoid duplicating the version number in `flake.nix` (#124) * Read version from project.clj * flake.lock: Update Flake lock file updates: • Updated input 'clj-nix': 'github:jlesquembre/clj-nix/7d9e244ea96988524ba3bd6c2bbafdf0a5340b96' (2023-02-25) → 'github:jlesquembre/clj-nix/6a017fb2bc7b60c9e67b1c6f0b04bbefcf8dc698' (2023-07-19) • Updated input 'clj-nix/devshell': 'github:numtide/devshell/0ffc7937bb5e8141af03d462b468bd071eb18e1b' (2022-07-25) → 'github:numtide/devshell/3864857b2754ab0e16c7c7c626f0e5a1d4e42f38' (2023-06-28) • Removed input 'clj-nix/devshell/flake-utils' • Added input 'clj-nix/devshell/systems': 'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09) • Removed input 'clj-nix/flake-utils' • Added input 'clj-nix/nix-fetcher-data': 'github:jlesquembre/nix-fetcher-data/f14967db6c92c79b77419f52c22a698518c91120' (2023-05-31) • Added input 'clj-nix/nix-fetcher-data/flake-part': 'github:hercules-ci/flake-parts/6ef2707776c6379bc727faf3f83c0dd60b06e0c6' (2023-05-31) • Added input 'clj-nix/nix-fetcher-data/flake-part/nixpkgs-lib': 'github:NixOS/nixpkgs/da45bf6ec7bbcc5d1e14d3795c025199f28e0de0?dir=lib' (2023-04-30) • Added input 'clj-nix/nix-fetcher-data/flake-parts': 'github:hercules-ci/flake-parts/6ef2707776c6379bc727faf3f83c0dd60b06e0c6' (2023-05-31) • Added input 'clj-nix/nix-fetcher-data/flake-parts/nixpkgs-lib': 'github:NixOS/nixpkgs/da45bf6ec7bbcc5d1e14d3795c025199f28e0de0?dir=lib' (2023-04-30) • Added input 'clj-nix/nix-fetcher-data/nixpkgs': follows 'clj-nix/nixpkgs' • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/6b0edc9c690c1d8a729f055e0d73439045cfda55' (2023-05-30) → 'github:NixOS/nixpkgs/53657afe29748b3e462f1f892287b7e254c26d77' (2023-07-17) * Clean up flake structure * Add metadata to conexp-clj package * Fix formatting * Build package (and thus run tests) as flake check * bind json schema resources such that they are also correctly opened in standalone jar (#126) * Clean up project dependencies * Added CSV load button * Update deps-lock.json (#137) Co-authored-by: tomhanika <[email protected]> * Exploration Step Method (#143) * Added Exploration Step Method * Removed Print Function Calls. * Metric Context (#139) * Implemented Metric Context Class and Related Functions. * Refactoring and Documentation. * Improved Implementation of Multi Arity Functions. * Added Tests. * Added Wrappers for Common Context Operations. * Improved Confusion Matrix Functions. * Update metric_contexts.clj Added Methods for Generating Valuation Functions. * Improved Implementation of Mewtric Functions. * Fully Implemented Generation of Valueation Functions. * Removed Testing Statements. * Improved Implementation of Dual Metric Context. * Fixed Implementation for Dual-Metric-Context and Added Option to generate Metric Contexts without Default Metrics. * Added Example Context and Metric. * Improved Implementation of Hamming Metrics. * Default Namespace (#135) * Added Analysis Namespace. * Added to Analysis Namespace. * Minor Edit to Documentation. * Expanded Analysis Namespace. * Corrected metric-context-naming / Version bump * Causal Implications (#132) * Restored Causal Implications Functionality * Outsourced Functions to implications.clj * Refactoring, Removed Test Data. * Refactoring. Added Test File. * Implemented Test for Causal Implications. * Added Documentation for Causal Rule Discovery. * Minor Documentation Fixes. * Refactoring. * Refactoring. * Corrected file encoding in causal test * Feature/relevant attributes (#119) * 60% of relevant attributes implemented * Necessary functions for relevant attributes implemented * Fixed n-next functions, some typos * Adatped methods in cover to new parameter list order in fast bitwise * Implemented Function for Generating Sublattice from Generators. (#140) * Corrected typo in generated-sublattice * Completed AUTHORS.md . (#144) * Typos etc. --------- Co-authored-by: Johannes Hirth <[email protected]> Co-authored-by: Maximilian Felde <[email protected]> Co-authored-by: hirthjo <[email protected]> Co-authored-by: Daniel Borchmann <[email protected]> Co-authored-by: Jana <[email protected]> Co-authored-by: Maximilian Marx <[email protected]> Co-authored-by: maximilian-felde <[email protected]> Co-authored-by: Jana Fischer <[email protected]> Co-authored-by: mmarx <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: tomhanika <[email protected]> Co-authored-by: Johannes Hirth <[email protected]> Co-authored-by: De Narm <[email protected]> Co-authored-by: JannikNordmeyer <[email protected]>
- Loading branch information