A set of Maven-based libraries for High-Performance Knowledge Based Configuration Techniques.
Documentation: https://hiconfit.manleviet.info
If our implementations are utilized in your research, kindly cite the corresponding papers listed in the References.
ca-cdr is a library of Consistency-based Algorithms for Conflict Detection and Resolution.
Conflict Detection and Resolution (CDR) is a substantial task in Knowledge Base Engineering (KBE). ca-cdr publishes our implementations of CDR consistency-based algorithms, which can be applied throughout all phases of KBE, i.e., design, testing and debugging, and configuration.
- QuickXPlain [1]
- FastDiag [2]
- MSS-based FastDiag [15]
- FlexDiag [3]
- HS-tree [8]
- HSDAG [9]
- DirectDebug [4, 5, 6, 7]
- DirectDiag
- WipeOutR_T [12, 13]
- WipeOutR_FM [12, 13]
- (coming soon) AggregatedTest [14]
- (coming soon) LevelWiseParallelHSDAG [10, 11]
- (coming soon) FullParallelHSDAG [10, 11]
- (coming soon) FastDiagP [15] - Python implementation
- (coming soon) KBDiag [the related paper submitted on April 2023]
- (coming soon) InformedQX
- (coming soon) ParallelWipeOutR_T
- (coming soon) ParallelWipeOutR_FM
fma is a library for Feature Model Testing and Debugging.
Two key features:
- fma provides a mechanism to automatically generate property-based test cases for feature models. Test cases are generated based on six basic analysis operations, including void feature models, dead features, conditionally dead features, full mandatory features, false optional features, and redundant constraints, which are considered anomalies in feature models.
- On the basis of the generated test cases, fma allows checking whether a feature model contains one or more of these six anomalies and executes asynchronous test case validation as well as corresponding diagnosis. It uses three algorithms, namely DirectDebug, WipeOutR_FM, and HSDAG, to determine all explanations for the anomalies in the feature model.
configurator offers a compact knowledge-based configurator that supports the state-of-the-art Matrix Factorization-based Configuration and Recommendation.
hiconfit-core is organized in 11 following Maven libraries:
library | description |
---|---|
common | provides utility functions |
csp2choco | provides a translator converting CSP constraints into Choco Solver commands |
eval | provides a performance evaluator, including counters and timers, to measure the performance of algorithms |
fm | provides the management functionalities for basic feature models |
kb | provides classes managing CSP (Choco) representations of a knowledge base/feature model |
ca-cdr-core | provides core classes for representing user requirements and solutions of a configurator as well as for managing test cases and test suites |
cdrmodel | provides a programmatic approach to manage/prepare the constraints/test cases for consistency-based algorithms |
ca-cdr | provides implementations of Consistency-based Algorithms for Conflict Detection and Resolution (CA-CDR) and a ChocoConsistencyChecker |
heuristics | provides an implementation of Matrix Factorization Based Variable and Value Ordering Heuristics for Constraint Solving and a wrapper for Matrix Factorization algorithm on the basis of the Mahout library |
configurator | provides a compact knowledge-based configurator supporting Matrix Factorization based Configuration and Recommendation |
fma | provides a mechanism to automatically generate property-based test cases for feature models and allows the automated determination of faulty constraints in the feature model |
We publish libraries of hiconfit-core in Maven packages hosted by GitHub Packages. You'll find here how to import these Maven libraries into your Java project.
In your Maven project, please add the below script in the settings.xml
file.
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>github-maven-repository</id>
<username>USERNAME</username>
<password>TOKEN</password>
</server>
</servers>
</settings>
Replacing USERNAME
with your GitHub username, and TOKEN
with your personal access token (see Creating a personal access token).
Add also the below script into the pom.xml
file:
<profiles>
<profile>
<id>github-maven-repository</id>
<repositories>
<repository>
<id>github-maven-repository</id>
<url>https://maven.pkg.github.com/HiConfiT/*</url>
</repository>
</repositories>
</profile>
</profiles>
Add the library dependencies to the dependencies
element of your project pom.xml
file.
<dependency>
<groupId>at.tugraz.ist.ase</groupId>
<artifactId>ARTIFACT_ID</artifactId>
<version>VERSION</version>
</dependency>
Replacing ARTIFACT_ID
and VERSION
with the corresponding information from the following table.
ARTIFACT_ID | VERSION |
---|---|
common | 1.0 |
csp2choco | 1.0 |
eval | 1.0 |
fm | 1.0 |
kb | 1.0 |
ca-cdr-core | 1.0 |
cdrmodel | 1.0 |
ca-cdr | 1.0 |
heuristics | 1.0 |
configurator | 1.0 |
fma | 1.0 |
- U. Junker. 2004. QuickXPlain: preferred explanations and relaxations for over-constrained problems. In Proceedings of the 19th national conference on Artificial intelligence (AAAI'04). AAAI Press, 167–172. [ACM]
- A. Felfernig, M. Schubert, and C. Zehentner. 2012. An efficient diagnosis algorithm for inconsistent constraint sets. Artif. Intell. Eng. Des. Anal. Manuf. 26, 1 (February 2012), 53–62. [Cambridge Core]
- A. Felfernig, R. Walter, J.A. Galindo, et al. 2018. Anytime diagnosis for reconfiguration. J Intell Inf Syst 51, 161–182 (2018). [Springer]
- V.M. Le, A. Felfernig, M. Uta, D. Benavides, J. Galindo, and T.N.T. Tran. 2021. DirectDebug: Automated Testing and Debugging of Feature Models, 2021 IEEE/ACM 43rd International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER), 2021, pp. 81-85. [IEEE]
- V.M. Le, A. Felfernig, T.N.T. Tran, M. Atas, M. Uta, D. Benavides, J. Galindo. 2021. DirectDebug: A software package for the automated testing and debugging of feature models, Software Impacts, Volume 9, 2021, 100085, ISSN 2665-9638. [Elsevier]
- DirectDebug's Original version with an evaluation in GitHub.
- An executable evaluation of DirectDebug in CodeOcean.
- R. Reiter. 1987. A theory of diagnosis from first principles, Artificial Intelligence, Volume 32, Issue 1, 1987, pp. 57-95, ISSN 0004-3702. [ScienceDirect]
- R. Greiner, B. A. Smith, and R. W. Wilkerson. 1989. A correction to the algorithm in reiter’s theory of diagnosis, Artif Intell, vol. 41, no. 1, pp. 79–88. [ScienceDirect]
- D. Jannach, T. Schmitz, and K. Shchekotykhin. 2016. Parallel model-based diagnosis on multi-core computers. Journal of Artificial Intelligence Research 55 (2016): 835-887. [JAIR]
- D. Jannach, T. Schmitz, and K. Shchekotykhin. 2015. Parallelized Hitting Set Computation for Model-Based Diagnosis. Proceedings of the AAAI Conference on Artificial Intelligence, 29(1). [AAAI]
- V.M. Le, A. Felfernig, M. Uta, T.N.T. Tran, and C. Vidal. 2022. WipeOutR: Automated Redundancy Detection for Feature Models, 26th ACM International Systems and Software Product Line Conference (SPLC 2022). [ACM]
- An evaluation of WipeOutR algorithms in GitHub.
- V.M. Le, A. Felfernig, and T.N.T. Tran. 2022. Test Case Aggregation for Efficient Feature Model Testing, 26th ACM International Systems and Software Product Line Conference (SPLC 2022) - Volume B. [ACM]
- V.M. Le, C.V. Silva, A. Felfernig, T.N.T. Tran, J. Galindo, D. Benavides. 2023. FastDiagP: An Algorithm for Parallelized Direct Diagnosis. In 37th AAAI Conference on Artificial Intelligence. AAAI’23, Washington, DC, USA. [arXiv]
- An evaluation of FastDiagP algorithm in GitHub.