GALACTIC 0.5.0.dev5 (2022-06-20)
Features
Add the possibility to use a compression rate for the
HierarchicalRenderer
class:a compression rate of 1 means that the Hasse diagram will be as small as possible.
a compression rate of 0 means that the edges of the Hasse diagram will use the support difference between a concept and its successor for their length. (#112)
Create a
yaml
module inside thegalactic
package:add a
galactic.yaml.YAMLObject
class for automatically implement yaml exportation and importation using introspection on the__init__()
method (unless the class methodsto_yaml()
andfrom_yaml()
are present);add
galactic.yaml.Dumper
andgalactic.yaml.Loader
classes inhering fromyaml.Dumper
andyaml.Loader
classes for special design;add
galactic.yaml.add_dictionary_like()
andgalactic.yaml.add_sequence_like()
functions to represent dictionary and sequence data;add
galactic.yaml.dump()
andgalactic.yaml.load()
functions for dumping and loading yaml data. (#114)
Add two classes:
that are helpfull for managing imprecise characteristics. (#121)
Add an
IntegerSet
class able to efficiently represent subset of integers using either:a compact form if
array.array
can be used;a list of integers.
The
FiniteSubSet
uses nowIntegerSet
. (#122)Implement a
FrozenFIFOSet
class. (#131)Create a
hash_iterable()
function able to hash an iterable of hashable values. (#132)
Other Notes
Start using Deprecated. (#115)
GALACTIC 0.4.0 (2022-01-04)
Features
Use flake8-spellcheck for comments.
Add the possibility to use the cardinality difference between concepts for the length of the hierarchical link connecting them in the Hasse diagram.
This is made possible by two new classes
ConceptLatticeRenderer
andHierarchicalRenderer
inheriting respectively fromGraphRenderer
andEdgeRenderer
.Stop using the bitarray package which was bugged for a recent release. The
bitarray.frozenbitarray
structure was used as a container for the membership of an element to a concept. It has been replaced by the use of the newFiniteSubSet
class.Add the one and only ReducedContextCompletion (
_reduced_context_completion()
) algorithm, replacing the previousextends()
function. The ReducedContextCompletion algorithm works in a linear time and compute a new lattice \(L'\), from a previous lattice \(L\) where \(L'\) is the minimal lattice containing \(L\) and a given value \(v\).This is done by maintaining the direct predecessor \(j^-\) of a join irreducible \(j\) and the direct successor \(m^+\) of a given meet irreducible \(m\) in two dictionaries.
Bug Fixes
Replace
TypeError
exception by aValueError
exception when two concepts with different closure operators are mixed or compared.Stop using reno which is not designed to be used in a git flow environment. Now we use towncrier for release notes.
GALACTIC 0.3.0 (2021-06-23)
Prelude
Version 0.3.0 is a major rewrite of the galactic framework core.
Features
Use of
__slots__
everywhere.Implementation of algebraic structures:
Relational structures:
finitary relation
binary relation
selection
projection
Partially Ordered Set structures:
poset
covering relation
Closure systems
closure
closed
Moore Family
(Semi-)-lattices
join semi-lattices
meet semi-lattices
lattices
GALACTIC 0.2.0 (2020-06-26)
Features
Give the possibility to the concept renderer to specify a maximum width for a concept.
Combine predicates from the same description when establishing rules.
For example, using the multiple predicate (
M
), a ruleif M(3) and M(5) then M(15)
should not be generated, since M(15) can be always deduced from
M(3)
andM(5)
.Another type of useless information are the predicates which are always
True
(D(0)
andM(1)
for the case of divisor and multiple predicates).Each description class can implement the
intersection()
method which computes the minimal description of a collection of predicates for a given description. In the example above, the intersection ofM(3)
andM(5)
should giveM(15)
.Add a cache system on all characteristics.
Start using mypy.
Use renderers for displaying Hasse diagrams.
Use lazy instantiation for the
Descriptors
class.Add two array-like characteristics:
Deprecations and Removals
Change API for readers. They receive now a
TextIO
object.Add mandatory description argument in all sub-classes of
BasicStrategy
. RemoveOptional
inBasicStrategy
.Consider now an
Explorer
as a collection of strategies. AnExplorer
can be run on a population.
Bug Fixes
Ensure that identifiers used for lattice generation are unique.
Fix the way to compute predecessors and successors of a concept in the
CompactLattice
class.Use
html.escape()
for escaping HTML output.Fix _pseudo generators for Canonical Direct Basis.
Other Notes
Move
OrderedSet
to thegalactic.algebras.set
package.Use cythonize.
Refactor examples folder.
Reorganize documentation.
Start using reno.