1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! # odis — Formal Concept Analysis in Rust
//!
//! `odis` is a library for [Formal Concept Analysis](https://en.wikipedia.org/wiki/Formal_concept_analysis).
//! It operates on formal contexts (objects × attributes incidence tables) and provides
//! concept enumeration, implication bases, lattice drawing, and attribute exploration.
//!
//! ## Quick start
//!
//! ```
//! use odis::{FormalContext, algorithms::NextClosure};
//! use odis::traits::ConceptEnumerator;
//!
//! // Burmeister (.cxt) format: 2 objects, 2 attributes
//! let bytes = b"B\n\n2\n2\n\nbird\nfish\nflies\nlives_in_water\nX.\n.X\n";
//! let ctx = FormalContext::<String>::from(bytes).unwrap();
//!
//! let concepts: Vec<_> = NextClosure.enumerate_concepts(&ctx).collect();
//! assert_eq!(concepts.len(), 4); // ∅, {bird}, {fish}, {bird, fish}
//! ```
//!
//! ## Modules
//!
//! - [`algorithms`] — Concept enumeration, implication bases, lattice drawing, exploration
//! - [`traits`] — Extension traits: [`traits::ConceptEnumerator`], [`traits::DrawingAlgorithm`],
//! [`traits::ImplicationEngine`], [`traits::IcebergConceptEnumerator`]
//!
//! ## Key types
//!
//! - [`FormalContext`] — objects, attributes, incidence relation
//! - [`Lattice`] / [`Poset`] — concept lattice and partially ordered set
//! - [`Drawing`] — 2-D coordinate output from a layout algorithm
//! - [`IcebergLattice`] — concept lattice filtered by minimum support
pub use ;
pub use Drawing;
pub use ;
pub use IcebergLattice;
pub use Lattice;
pub use ;
pub use ;