Skip to content

Commit

Permalink
Preparing release (#145)
Browse files Browse the repository at this point in the history
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 <hirth@cs.uni-kassel.de>

* 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 <mmarx@users.noreply.github.com>

* 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 <hanika@cs.uni-kassel.de>

* 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 <tomhanika@users.noreply.github.com>

* 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 <jana.fischer@student.uni-kassel.de>

* 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 <jhi@cs.uni-kassel.de>
Co-authored-by: Johannes Hirth <hirth@cs.uni-kassel.de>
Co-authored-by: De Narm <s3152806@msx.tu-dresden.de>
Co-authored-by: hirthjo <58222089+hirthjo@users.noreply.github.com>
Co-authored-by: Tom Hanika <hanika@cs.uni-kassel.de>

* 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 <tomhanika@users.noreply.github.com>

* 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 <hirth@cs.uni-kassel.de>
Co-authored-by: Maximilian Felde <felde@cs.uni-kassel.de>
Co-authored-by: hirthjo <58222089+hirthjo@users.noreply.github.com>
Co-authored-by: Daniel Borchmann <517659+exot@users.noreply.github.com>
Co-authored-by: Jana <jana.fischer@student.uni-kassel.de>
Co-authored-by: Maximilian Marx <mmarx@wh2.tu-dresden.de>
Co-authored-by: maximilian-felde <43608455+maximilian-felde@users.noreply.github.com>
Co-authored-by: Jana Fischer <74052109+jana-fischer@users.noreply.github.com>
Co-authored-by: mmarx <mmarx@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: tomhanika <tomhanika@users.noreply.github.com>
Co-authored-by: Johannes Hirth <jhi@cs.uni-kassel.de>
Co-authored-by: De Narm <s3152806@msx.tu-dresden.de>
Co-authored-by: JannikNordmeyer <93387255+JannikNordmeyer@users.noreply.github.com>
  • Loading branch information
15 people committed Jun 6, 2024
1 parent 5254a10 commit 09352f7
Show file tree
Hide file tree
Showing 39 changed files with 2,121 additions and 355 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/run-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v17
- run: nix run .#test
- uses: DeterminateSystems/nix-installer-action@v4
- uses: DeterminateSystems/magic-nix-cache-action@v2
- run: nix flake check
5 changes: 3 additions & 2 deletions .github/workflows/update-deps-lock.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v17
- uses: DeterminateSystems/nix-installer-action@v4
- uses: DeterminateSystems/magic-nix-cache-action@v2
- name: Update deps-lock
run: "nix run .#deps-lock"
run: nix run .#deps-lock

- name: Create Pull Request
uses: peter-evans/create-pull-request@v4.0.3
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,5 @@
/doc/icfca-2013-tutorial/icfca2013-tutorial-talk.vrb
/doc/tutorials/icfca-2013/icfca2013-tutorial-live.html
/.lsp/
/.direnv/
/.direnv/
/.clj-kondo/
2 changes: 2 additions & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ Additional Contributors are
* Johannes Hirth (pq-cores, scale-measures)
* Gleb Kanterov (interval-scale)
* Maximilian Marx (Wikidata)
* Jannik Nordmeyer (Metric Contexts, Causal Implications)
* Maximilian Stubbemann (concept-robustness)
* Anselm von Wangenheim (DimDraw)
* Johannes Wollbold (bug reports, feature requests)

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ much more.
8. [Computing Traces in Contexts](doc/code/trace-context.clj)
9. [Counting Quasiorders](doc/code/quasiorders.clj)
10. [Rudolph's Algorithm for Computing Bases](doc/code/rudolph_computation.clj)
11. [Discovering Causal Implications](doc/Causal-Implications.org)
5. Advanced Topics
1. [pq-cores](doc/pq-cores-in-Formal-Contexts.md)
2. [REST-API Usage](doc/REST-API-usage.md)
Expand Down
Loading

0 comments on commit 09352f7

Please sign in to comment.