Skip to content

Commit

Permalink
Release 2.7.0 (#165)
Browse files Browse the repository at this point in the history
* Update CITATION.cff

Corrected (Main) Authors.

* Added preferred citation section.

* SNA (#29)

* Implemented k-cores

* Implemented Method for Accessing Contexts from FCA Repository.

* Added new metrics for contexts (a la Bazin & Kahn)
  • Loading branch information
tomhanika authored Feb 4, 2025
1 parent 0e45830 commit 43f3bd8
Show file tree
Hide file tree
Showing 16 changed files with 1,672 additions and 478 deletions.
4 changes: 2 additions & 2 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ Additional Contributors are
* Johannes Hirth (pq-cores, Ordinal Motifs, scale-measures)
* Gleb Kanterov (interval-scale)
* Maximilian Marx (Wikidata)
* Jannik Nordmeyer (Metric Contexts, Causal Implications)
* Maximilian Stubbemann (concept-robustness)
* Maximilian Stubbemann (concept robustness, social analytics)
* Jannik Nordmeyer (Metric Contexts, Causal Implications, Fuzzy recovered)
* Anselm von Wangenheim (DimDraw)
* Johannes Wollbold (bug reports, feature requests)

60 changes: 60 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: conexp-clj
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Daniel
family-names: Borchmann
affiliation: Technische Universität Dresden
- given-names: Tom
family-names: Hanika
affiliation: University of Hildesheim
email: [email protected]
orcid: 'https://orcid.org/0000-0002-4918-6374'
repository-code: 'https://github.com/fcatools/conexp-clj'
abstract: >-
This is conexp-clj, a general purpose software tool for
Formal Concept Analysis. Its main purpose is to enable
nontrivial examples to be computed easily, but it can be
used for much, much more.
preferred-citation:
type: "conference-paper"
publisher:
name: "CEUR-WS.org"
conference:
name: "Supplementary Proceedings of ICFCA 2019 Conference and Workshops,
Frankfurt, Germany, June 25-28, 2019"
url: "http://ceur-ws.org/Vol-2378/shortAT8.pdf"
date-released: "2019-01-01"
volume: "2378"
journal: "CEUR Workshop Proceedings"
title: "Conexp-Clj - A Research Tool for FCA"
volume-title: "Supplementary Proceedings of ICFCA 2019 Conference and Workshops,
Frankfurt, Germany, June 25-28, 2019"
editors:
- given-names: Diana
family-names: Cristea
- given-names: Florence
family-names: Le Ber
- given-names: Rokia
family-names: Missaoui
- given-names: Léonard
family-names: Kwuida
- given-names: Baris
family-names: Sertkaya
collection-title: "CEUR Workshop Proceedings"
start: "70"
end: "75"
authors:
- family-names: Hanika
given-names: Tom
- family-names: Hirth
given-names: Johannes
license: EPL-1.0
commit: 5254a10eab6759a7d0c60228892952de93f2aa58
date-released: '2023-07-17'
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ much more.
2. Don't Bother Me with Theory, I Want to Do Stuff! (aka: Tutorials)
1. [A Gentle Introduction](doc/tutorials/icfca-2013/icfca2013-tutorial-live.org) (ICFCA 2013)
2. [Compute the Canonical Base from a Formal Context that is given in CSV Format](doc/tutorials/How-to-compute-the-Canonical-Base-from-a-Context-given-in-CSV-Format.org)
3. [Standalone Console Application](https://github.com/tomhanika/brunt)
3. A more complete overview over `conexp-clj`
1. [Notation and Syntax](doc/Basic-Notation-and-Syntax.org)
2. [Creating and Working with Formal Contexts](doc/Formal-Contexts.org)
Expand Down
21 changes: 21 additions & 0 deletions doc/Getting-Started.org
Original file line number Diff line number Diff line change
Expand Up @@ -222,3 +222,24 @@ conexp.fca.implications/parallel-canonical-base-from-clop
predicate.
nil
#+end_src

** Console Client

~brunt~ is a standalone console application that supports some ~conexp-clj~ functions and can conveniently be run from the command line.
It can be downloaded here: [[https://github.com/tomhanika/brunt]]

Functions can be executed like this:

#+begin_src clojure :results silent
$ java -jar builds/uberjar/brunt-0.1.0.jar -f draw-concept-lattice testing-data/living-beings-and-water.ctx
#+end_src

For an overview of all supported functions and their parameters run:
#+begin_src clojure :results silent
$ java -jar brunt-0.1.0.jar -h
#+end_src

The ~brunt~ repository provides a detailed documentation.



9 changes: 9 additions & 0 deletions doc/IO.org
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,15 @@ You can obtain a list of available context output formats by calling
formats for formal contexts, you are also able to export formal contexts
directly to TeX-code using ~:tex~.

Formal contexts can also be accessed from the [[https://github.com/fcatools/contexts/tree/main/contexts][fcatools]] library using the following function:

#+begin_src clojure
(context-from-fcatools "animals_en.cxt")
#+end_src
The only parameter is the name of the file from the ~fcatools~ directory.

The function can be found in the ~conexp.fca.applications.fcatools~ namespace.


** Many-Valued Contexts

Expand Down
2 changes: 1 addition & 1 deletion project.clj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@



(defproject conexp-clj "2.6.0"
(defproject conexp-clj "2.7.0-SNAPSHOT"
:min-lein-version "2.0.0"
:description "A ConExp rewrite in clojure -- and so much more ..."
:url "http://github.com/tomhanika/conexp-clj/"
Expand Down
15 changes: 15 additions & 0 deletions src/main/clojure/conexp/base.clj
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,21 @@ metadata (as provided by def) merged into the metadata of the original."
(clojure.test/is true))))
body)))

(defn near?
"Tests if the distance of `x' and `y' is not greater
then the given tolerance `epsilon'.
If no third parameter `epsilon' is provided,
epsilon is set to 0.0001
Inspired by:
https://stackoverflow.com/questions/17711308/
how-to-test-if-two-numbers-are-close-in-clojure"
([x y epsilon]
(<= (Math/abs (double (- x y))) epsilon))
([x y]
(near? x y 0.0001)))

;;; Types

(def clojure-set clojure.lang.PersistentHashSet)
Expand Down
7 changes: 7 additions & 0 deletions src/main/clojure/conexp/fca/applications/fcatools.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
(ns conexp.fca.applications.fcatools
(:require [conexp.io.contexts :refer :all]))

(defn context-from-fcatools [ctx-name]
(read-context (str "https://raw.githubusercontent.com/fcatools/contexts/main/contexts/" ctx-name))
)

Loading

0 comments on commit 43f3bd8

Please sign in to comment.