Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Protoconcepts #99

Merged
merged 23 commits into from
Oct 25, 2022
Merged

Protoconcepts #99

merged 23 commits into from
Oct 25, 2022

Conversation

jana-fischer
Copy link
Collaborator

  • add the functionality to work with protoconcepts (compute them from contexts etc.)
  • add the functionality to draw protoconcepts

@tomhanika tomhanika merged commit cc65169 into tomhanika:dev Oct 25, 2022
maximilian-felde pushed a commit to maximilian-felde/conexp-clj that referenced this pull request Feb 8, 2023
* 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
tomhanika added a commit that referenced this pull request Jul 17, 2023
* 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

* 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>

---------

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>
tomhanika added a commit that referenced this pull request Jun 6, 2024
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants