Skip to content

Commit

Permalink
Update constraint_commons.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Azzaare authored Mar 11, 2024
1 parent bc93d43 commit 3c59945
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion docs/src/constraints/constraint_commons.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
# ConstraintCommons.jl

Documentation for `ConstraintCommons.jl`.
*ConstraintCommons.jl* is an essential package within the *Julia Constraints* ecosystem designed to facilitate the development and interoperability of constraint programming solutions in Julia. It serves as a foundational layer that provides shared structures, abstract types, functions, and generic methods utilized by both basic feature packages and learning-oriented packages.

### Key Features and Functionality
- **Shared Structures and Abstract Types**: ConstraintCommons.jl offers a collection of shared data structures and abstract types. This standardization is crucial for ensuring that packages such as ConstraintDomains, Constraints, ConstraintLearning, etc. can seamlessly interact and integrate, fostering a cohesive development environment.
- **Generic Functions and Methods**: The package includes a set of generic functions and methods that are common across the JuliaConstraints ecosystem. This approach minimizes duplication and facilitates the extension of functionalities across different packages without requiring redundant code.
- **Interface for Learning and Application Transition**: One of the pivotal roles of ConstraintCommons.jl is to provide a shared interface that bridges the gap between learning packages (e.g., CompositionalNetworks, QUBOConstraints, and ConstraintTranslator) and basic functionality packages. This interface ensures that once a learning process is complete, the resulting models or solutions can be directly utilized with the basic packages, eliminating the need for users to manage multiple package dependencies actively.
- **Simplifying the User Experience**: By ensuring that learning outcomes are compatible with the fundamental packages for constraint programming, ConstraintCommons.jl simplifies the workflow for end-users. Once the learning aspect of problem modeling is completed, users can proceed with their projects relying solely on the basic packages, streamlining the development process and enhancing usability.
- **Impact on the JuliaConstraints Ecosystem**: ConstraintCommons.jl plays a critical role in the JuliaConstraints ecosystem by providing the foundational elements that enable package interoperability and efficient development workflows. Its design emphasizes ease of use and seamless transition between the learning phase of constraint programming and practical application, thereby enhancing productivity and reducing the complexity of developing constraint-based solutions.

### Sections
The package covers the following aspects:
- Languages: Automata, MDD
- Dictionaries utilities: `incsert!`
- Extrema: compute the difference between extrema of various kind of collections
- Nothing: extends `Base.in` and `Base.isempty` for `nothing`
- Parameters: list or extract parameters based on the *XCSP3-core* specifications
- Sampling utilities: `oversampling`
- Symbols: extends `*` to symbols

```@autodocs
Modules=[ConstraintCommons]
Expand Down

0 comments on commit 3c59945

Please sign in to comment.