Content area
AppArmor is a mandatory access control (MAC) system for Linux based on profiles. It focuses on protecting processes, without differentiating profiles based on the users running the processes themselves. Moreover, it does not implement inheritance mechanisms to simplify the management of profiles and avoid the duplication of rules. This work introduces UserArmor, an extension of AppArmor that overcomes the aforementioned limitations by allowing specific profiles to be associated with users and implementing an inheritance system to reduce complexity, improve reusability, and ensure consistency in security rules. An application to Answer Set Programming is discussed.
Full text
1. Introduction
AppArmor [1] is a security Mandatory Access Control (MAC) framework for Linux [2,3], based on security profiles that apply restriction on the resources available to processes [4,5]. In fact, these profiles define strict policies for accessing files, directories, networks and other critical resources [5,6]. Restrictions are applied at the kernel level, providing a mandatory control independent of application behavior [4]. Even if AppArmor improves multi-user security, it lacks flexibility in managing user-specific rules. Specifically, AppArmor allows profiles to be defined for applications or processes, but it lacks a mechanism to differentiate between different users running the same process. Suck a lack of user-level control makes it complex to ensure security in multi-user scenarios.
Let us consider an application that can be executed by two users, namely user1 and user2. The application writes to a file whose name depends on the user running the process. The most restrictive polices that can be implemented in AppArmor for such a scenario must include the following rules:
The proposed extension involves the use of different subprofiles for each user. For the scenario reported above, we would have the following subprofiles:
Another limitation of AppArmor is the absence of an inheritance mechanism for profile policies. Even if profiles can be nested, creating a seemingly hierarchical structure, AppArmor subprofiles are designed to define different security rules for subprocesses of an application. The way they are designed, subprofiles do not inherit the rules of the main profile, as it is possible that a subprocess needs a less restrictive security policy to work correctly. Technically, AppArmor implements a notion of abstractions to reuse common rules; such rules are stored in abstraction files and can be reused in other security policies via the
Consider a Bash Application
This paper presents UserArmor, an extension of AppArmor, with the goal of achieving greater granularity in user-level security policy management, and introducing an inheritance system based on tags. The user-level granularity is achieved by structuring AppArmor security policies hierarchically. In the proposed structure, the general application profile serves as the base level, while every user executing the application can be associated with a (nested) subprofile. As shown in Figure 1, in UserArmor, each confined application is associated with a directory containing user subprofiles, each one stored in a separate file to favor the modularity and scalability of the approach. The profiles are then copied into a single file, namely mappings, that is included in the security policy via the
UserArmor automates the creation and management of the hierarchical structure of profiles and the activation of the profile associated with the user running an application. Moreover, its inheritance system is designed to eliminate the duplication of rules. The idea is to tag some rules as selectable, and specify in each subprofile which tags to select. Untagged rules, on the other hand, are essential and included in all subprofiles. Figure 2 illustrates the usage of UserArmor for the scenario described in Example 2. UserArmor command-line tools, namely
The remainder of this article is structured as follows. Section 2 introduces the required background on AppArmor, and in particular, the notion of profile and the include directives. Section 3 defines the proposed tag system to reuse AppArmor rules, and the command-line tools introduced by UserArmor are as follows:
2. Background
In AppArmor, processes can be associated with profiles that enables access to system resources. Profile files are conventionally saved in the directory
AppArmor has several tools for simplifying profile generation and management. The tools most relevant for this work are the following:
Finally, AppArmor allows the reuse of common rules through abstraction files, which can be included with the directive
3. User Armor
The tag system uses a comment-based syntax, described below. Rules (and blocks) are associated with aliases (i.e., identifying strings).
Base rules. Untagged rules are considered essential and are automatically inherited by all subprofiles.
Selectable rules. Rules starting with a tag
Selectable blocks. A syntax similar to the previous one can be applied to rule blocks as follows:
Removable rules. Rules ending with a tag
Subprofile inheritance. Subprofiles can select rules and blocks using the following tag:
The tag system is applied to profile files within a directory associated with the confined application. The directory contains a profile file for each involved user and a
(Continuing Example 2). The scenario depicted in the introduction can be modeled by the following profile file
UserArmor simplifies the creation of the above files by automatically adding the
UserArmor comprises the following three command-line utilities:
(Continuing Example 3). The starting point is the file defining the base profile. Given the file
4. Literature Review
The closest work to our proposal is Paranoid Penguin [5], which introduces an extension of AppArmor primarily aimed at improving usability. The main contribution of Paranoid Penguin is the integration of a graphical user interface (GUI) to facilitate the creation, modification and management of AppArmor profiles. This approach makes AppArmor more accessible to users who may not be familiar with its command-line tools, lowering the barrier to entry for system administrators and security practitioners. The GUI provides an intuitive way to define and enforce security policies without requiring deep knowledge of the syntax used by AppArmor, reducing the risk of misconfigurations that could compromise security. While Paranoid Penguin enhances the usability of AppArmor, it does not extend or modify the underlying security enforcement model. That is, the access control mechanism itself remains unchanged, and security policies are still applied in the same way as in standard AppArmor. Stated differently, the framework does not introduce new functionalities for improving security beyond profile simplification.
In contrast, UserArmor goes beyond usability improvements by introducing two key enhancements to the core security model of AppArmor. First, UserArmor allows binding security profiles to specific users, ensuring fine-grained access control in multi-user environments. Traditional AppArmor applies profiles at the application level, meaning that all users executing the same process are subject to the same restrictions. This limitation can lead to security gaps, as different users may require different levels of access to resources. UserArmor addresses this by associating distinct subprofiles with individual users, ensuring that permissions are customized per user rather than being uniformly applied to all instances of an application. Second, UserArmor introduces an inheritance system for policy rules, which improves policy management and scalability. In standard AppArmor, profiles must explicitly define all required permissions, leading to redundancy when multiple profiles share common rules. While AppArmor provides a mechanism called abstractions to group reusable rules, these operate by an all-or-nothing inclusion, meaning administrators cannot selectively inherit only specific rules from an abstraction. UserArmor solves this problem by introducing a tag-based inheritance mechanism, where profiles can inherit only the necessary rules, reducing duplication and simplifying policy maintenance. By addressing these limitations, UserArmor extends the capabilities of AppArmor beyond usability enhancements and introduces structural improvements that make it more suitable for multi-user environments and dynamic security policies. Stated differently, while Paranoid Penguin provides a more user-friendly interface for AppArmor, UserArmor fundamentally improves its security model by enabling user-specific policy enforcement and hierarchical policy inheritance, making it a more flexible and scalable solution for access control in modern Linux systems.
A broader area of research focuses on dynamic profiling to enhance security at runtime. These approaches monitor application behavior and adaptively adjust permissions, allowing for more flexible and responsive access control. Unlike traditional security policies, which are static and predefined, dynamic profiling mechanisms observe how applications interact with system resources and adjust security policies accordingly to mitigate risks. One branch of research explores cloud-based profile generation, as seen in [13,14], where profile management is offloaded to Cloud Services. This approach offers greater flexibility and scalability, as security policies can be updated dynamically based on centralized monitoring and threat detection. On the other hand, some solutions are designed to run directly on the operating system, ensuring real-time policy enforcement at the local level [15]. These techniques provide a more fine-grained and immediate reaction to potential security threats, without requiring cloud infrastructure.
Among the various dynamic profiling approaches, containerized environments, particularly Docker-based infrastructures, have received significant attention due to their unique security challenges. Since containers package applications with their dependencies, they are vulnerable to container breakout attacks and misconfigurations that may lead to privilege escalation. Research works such as [16,17] propose automated profile generation techniques for containers, leveraging Auditd and SystemTap to analyze the required permissions dynamically. These solutions have been further integrated into a unified framework [13], which combines the strengths of both methods, ensuring a more robust security model. Another significant advancement is given by [18], which introduces dynamic runtime updates for container security policies. This mechanism allows security rules to be adjusted on the fly as the application state evolves, reducing the need for manual intervention. With the widespread adoption of container orchestrators like Kubernetes, Ref. [19] extends these profiling techniques to automatically generate AppArmor profiles for distributed containers in Kubernetes clusters. This automation streamlines security management and reduces misconfiguration risks in large-scale cloud environments. These studies share the overarching goal of optimizing security enforcement—either by introducing new functionalities or enhancing existing mechanisms. UserArmor aligns with these objectives, but instead of focusing on runtime profiling, it introduces structural improvements to AppArmor by enabling user-specific profile enforcement and hierarchical policy inheritance. While dynamic profiling aims to enhance security by adapting to application behavior, UserArmor provides a systematic and scalable approach to user-aware security policies, ensuring multi-user protection and reducing policy redundancy. Furthermore, the ability of UserArmor to limit process resource usage (e.g., CPU, memory, open files) makes it a complementary solution to dynamic profiling methods, contributing to a more robust and flexible security ecosystem.
Finally, we acknowledge that Linux already provides Role-Based Access Control (RBAC) via SELinux. However, SELinux is significantly more complex than AppArmor and is typically used with predefined policies rather than custom configurations per user [6,20,21]. Organizations that deploy SELinux often rely on standard policies without distinguishing between different users running the same application, because customizing SELinux requires deep knowledge of the security contexts, domains, and type enforcement. UserArmor, on the other hand, complements the simpler AppArmor security mechanisms by introducing a finer-grained, user-specific confinement model, ensuring that each user receives a tailored security profile without modifying global policies.
5. Experiment
In order to assess UserArmor empirically, we designed a benchmark comprising the security policies in the examples given in the Introduction. Our benchmark comprises a very simple Bash script, as follows:
The overall results are shown in Figure 3. We observe that AppArmor introduces no overhead, while Bubblewrap is more expensive. The performance of UserArmor is between the following two alternatives, as expected: it works on top of AppArmor, so it cannot be faster than AppArmor, but anyhow less expensive than Bubblewrap. We observe that the time measured for UserArmor are closer to those obtained by AppArmor than to the time needed by Bubblewrap, which is a positive result.
6. Application: Hardening Answer Set Programming Solvers
Answer Set Programming (ASP) is a declarative programming paradigm designed for solving complex combinatorial problems [22,23,24]. It is widely used in artificial intelligence, knowledge representation and automated reasoning [25,26,27,28]. Without going into much details, ASP programs comprise logic rules and are associated with zero or more stable models, that is, first-order models satisfying an additional stability condition designed to interpret default negation.
Let us consider the Hamiltonian Path problem:
Given a directed graph G, a starting node s and a target node t, we need to find a path from s to t that visits all nodes of G exactly once.
The graph shown in Figure 4 can be represented by the following ASP:
The state-of-the-art solver
While this approach is functional, it introduces serious security vulnerabilities.
A robust solution is to contain the execution of No filesystem access: Prevents No network access: Blocks Minimal execution environment: Restricts process execution, preventing the use of external system tools.
A UserArmor profile for
Without UserArmor, the only alternative is to apply AppArmor restrictions to
A possible alternative to UserArmor is to execute
We provide scripts showcasing the above scenarios as follows: Unconfined execution of Confined execution of Confined execution of Sand-boxed execution of
The script files are available online (
To sum up, hardening
7. Conclusions
In this paper, we introduced UserArmor, an extension of AppArmor that enhances security policy management by incorporating user-level granularity and inheritance mechanisms. Our approach addresses the following two major limitations of AppArmor: the inability to differentiate permissions for different users running the same process and the lack of an efficient inheritance system for security policies. By structuring security profiles hierarchically and introducing selectable rules via tagging, UserArmor allows administrators to enforce user-specific security constraints while minimizing policy duplication. This improves security, maintainability, and scalability, especially in multi-user environments where different users require distinct levels of access. Our implementation includes a set of CLI tools to facilitate profile management, ensuring that UserArmor is practical and easy to use. Performance evaluation shows that the additional overhead introduced is negligible. Future work on UserArmor will consider the definition of additional tools to support common operations with user accounts, like user renaming (profile files must be renamed accordingly) and deletion (the associated profile files can be deleted as well).
Conceptualization, P.S.; methodology, M.A.; software, P.S.; validation, P.S.; formal analysis, M.A.; investigation, P.S.; resources, P.S.; data curation, P.S.; writing—original draft preparation, P.S.; writing—review and editing, M.A.; visualization, P.S.; supervision, M.A.; project administration, M.A.; funding acquisition, M.A. All authors have read and agreed to the published version of the manuscript.
Source code and data used in this article are available online at
The author declare no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript; or in the decision to publish the results.
Footnotes
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.
Figure 1 Hierarchical structure of UserArmor profiles.
Figure 2 UserArmor usage for Example 2. Initially, the administrator executes
Figure 3 Execution time for running the Bash script in our benchmark under different security policies.
Figure 4 Graph used in Example 5. A Hamiltonian Path from A to G is shown using yellow arrows. Links not being part of the computed Hamiltonian Path are shown in blue.
Figure 5 Execution time of repeated calls to
1. Cowan, C. Securing linux systems with apparmor. DEF CON; 2007; 15, pp. 15-26.
2. Jiang, Y.; Lin, C.; Yin, H.; Tan, Z. Security analysis of mandatory access control model. Proceedings of the 2004 IEEE International Conference on Systems, Man and Cybernetics (IEEE Cat. No. 04CH37583); Hague, The Netherlands, 10–13 October 2004; Volume 6, pp. 5013-5018.
3. Osborn, S. Mandatory access control and role-based access control revisited. Proceedings of the Second ACM Workshop on Role-Based Access Control; Fairfax, VA, USA, 6–7 November 1997; pp. 31-40.
4. Ecarot, T.; Dussault, S.; Souid, A.; Lavoie, L.; Ethier, J. AppArmor For Health Data Access Control: Assessing Risks and Benefits. Proceedings of the 7th International Conference on Internet of Things: Systems, Management and Security, IOTSMS 2020; Virtual Event, France, 14–16 December 2020; Boubchir, L.; Benkhelifa, E.; Jararweh, Y.; Saleh, I. IEEE: Piscataway, NJ, USA, 2020; pp. 1-7. [DOI: https://dx.doi.org/10.1109/IOTSMS52051.2020.9340206]
5. Bauer, M. Paranoid penguin: An introduction to Novell AppArmor. Linux J.; 2006; 2006, 13.
6. Chen, H.; Li, N.; Mao, Z. Analyzing and Comparing the Protection Quality of Security Enhanced Operating Systems. Proceedings of the Network and Distributed System Security Symposium, NDSS 2009; San Diego, CA, USA, 8–11 February 2009.
7. Alviano, M.; Dodaro, C.; Fiorentino, S.; Previti, A.; Ricca, F. Enumeration of Minimal Models and MUSes in WASP. Proceedings of the Logic Programming and Nonmonotonic Reasoning— 16th International Conference, LPNMR 2022; Genova, Italy, 5–9 September 2022; Gottlob, G.; Inclezan, D.; Maratea, M. Lecture Notes in Computer Science Springer: Berlin/Heidelberg, Germany, 2022; Volume 13416, pp. 29-42. [DOI: https://dx.doi.org/10.1007/978-3-031-15707-3_3]
8. Alviano, M.; Faber, W.; Leone, N.; Perri, S.; Pfeifer, G.; Terracina, G. The Disjunctive Datalog System DLV. Proceedings of the Datalog Reloaded—First International Workshop, Datalog 2010; Oxford, UK, 16–19 March 2010; Revised Selected Papers de Moor, O.; Gottlob, G.; Furche, T.; Sellers, A.J. Lecture Notes in Computer Science Springer: Berlin/Heidelberg, Germany, 2010; Volume 6702, pp. 282-301. [DOI: https://dx.doi.org/10.1007/978-3-642-24206-9_17]
9. Cat, B.D.; Bogaerts, B.; Bruynooghe, M.; Janssens, G.; Denecker, M. Predicate logic as a modeling language: The IDP system. Declarative Logic Programming: Theory, Systems, and Applications; Kifer, M.; Liu, Y.A. ACM Books ACM/Morgan & Claypool: San Rafael, CA, USA, 2018; Volume 20, pp. 279-323. [DOI: https://dx.doi.org/10.1145/3191315.3191321]
10. Lierler, Y.; Maratea, M. Cmodels-2: SAT-based Answer Set Solver Enhanced to Non-tight Programs. Proceedings of the Logic Programming and Nonmonotonic Reasoning, 7th International Conference, LPNMR 2004; Fort Lauderdale, FL, USA, 6–8 January 2004; Lifschitz, V.; Niemelä, I. Lecture Notes in Computer Science Springer: Berlin/Heidelberg, Germany, 2004; Volume 2923, pp. 346-350. [DOI: https://dx.doi.org/10.1007/978-3-540-24609-1_32]
11. Janhunen, T.; Niemelä, I. GNT—A Solver for Disjunctive Logic Programs. Proceedings of the Logic Programming and Nonmonotonic Reasoning, 7th International Conference, LPNMR 2004; Fort Lauderdale, FL, USA, 6–8 January 2004; Lifschitz, V.; Niemelä, I. Lecture Notes in Computer Science Springer: Berlin/Heidelberg, Germany, 2004; Volume 2923, pp. 331-335. [DOI: https://dx.doi.org/10.1007/978-3-540-24609-1_29]
12. Gebser, M.; Kaminski, R.; Schaub, T. Complex optimization in answer set programming. Theory Pract. Log. Program.; 2011; 11, pp. 821-839. [DOI: https://dx.doi.org/10.1017/S1471068411000329]
13. Zhu, H.; Gehrmann, C. AppArmor Profile Generator as a Cloud Service. Proceedings of the 11th International Conference on Cloud Computing and Services Science, CLOSER 2021; Online Streaming, 28–30 April 2021; Helfert, M.; Ferguson, D.; Pahl, C. SCITEPRESS: Setúbal, Portugal, 2021; pp. 45-55. [DOI: https://dx.doi.org/10.5220/0010434100450055]
14. Zhu, H.; Gehrmann, C.; Roth, P. Access security policy generation for containers as a cloud service. SN Comput. Sci.; 2023; 4, 748.
15. Li, Y.; Huang, C.; Yuan, L.; Ding, Y.; Cheng, H. ASPGen: An Automatic Security Policy Generating Framework for AppArmor. Proceedings of the IEEE International Conference on Parallel & Distributed Processing with Applications, Big Data & Cloud Computing, Sustainable Computing & Communications, Social Computing & Networking, ISPA/BDCloud/SocialCom/SustainCom 2020; Exeter, UK, 17–19 December 2020; Hu, J.; Min, G.; Georgalas, N.; Zhao, Z.; Hao, F.; Miao, W. IEEE: Piscataway, NJ, USA, 2020; pp. 392-400. [DOI: https://dx.doi.org/10.1109/ISPA-BDCLOUD-SOCIALCOM-SUSTAINCOM51426.2020.00075]
16. Mattetti, M.; Shulman-Peleg, A.; Allouche, Y.; Corradi, A.; Dolev, S.; Foschini, L. Securing the infrastructure and the workloads of linux containers. Proceedings of the 2015 IEEE Conference on Communications and Network Security (CNS); Florence, Italy, 28–30 September 2015; pp. 559-567. [DOI: https://dx.doi.org/10.1109/CNS.2015.7346869]
17. Loukidis-Andreou, F.; Giannakopoulos, I.; Doka, K.; Koziris, N. Docker-sec: A fully automated container security enhancement mechanism. Proceedings of the 2018 IEEE 38th International Conference on Distributed Computing Systems (ICDCS); Vienna, Austria, 2–6 July 2018; pp. 1561-1564.
18. Huang, C.; Wang, K.; Li, Y.; Li, J.; Liao, Q. ASPGen-D: Automatically Generating Fine-grained Apparmor Policies for Docker. Proceedings of the IEEE Intl Conf on Parallel & Distributed Processing with Applications, Big Data & Cloud Computing, Sustainable Computing & Communications, Social Computing & Networking, ISPA/BDCloud/SocialCom/SustainCom 2022; Melbourne, Australia, 17–19 December 2022; IEEE: Piscataway, NJ, USA, 2022; pp. 822-829. [DOI: https://dx.doi.org/10.1109/ISPA-BDCLOUD-SOCIALCOM-SUSTAINCOM57177.2022.00110]
19. Zhu, H.; Gehrmann, C. Kub-Sec, an automatic Kubernetes cluster AppArmor profile generation engine. Proceedings of the 14th International Conference on Communication Systems & NETworks, COMSNETS 2022; Bangalore, India, 4–8 January 2022; pp. 129-137. [DOI: https://dx.doi.org/10.1109/COMSNETS53615.2022.9668504]
20. Schreuders, Z.C.; McGill, T.; Payne, C. Empowering End Users to Confine Their Own Applications: The Results of a Usability Study Comparing SELinux, AppArmor, and FBAC-LSM. ACM Trans. Inf. Syst. Secur.; 2011; 14, pp. 1-28. [DOI: https://dx.doi.org/10.1145/2019599.2019604]
21. Shepherd, C.; Markantonakis, K. Operating System Controls. Trusted Execution Environments; Springer: Berlin/Heidelberg, Germany, 2024; pp. 33-53.
22. Marek, V.; Truszczyński, M. Stable models and an alternative logic programming paradigm. The Logic Programming Paradigm: A 25-Year Perspective; Springer: Berlin/Heidelberg, Germany, 1999; pp. 375-398. [DOI: https://dx.doi.org/10.1007/978-3-642-60085-2_17]
23. Niemelä, I. Logic programming with stable model semantics as a constraint programming paradigm. Ann. Math. Artif. Intell.; 1999; 25, pp. 241-273. [DOI: https://dx.doi.org/10.1023/A:1018930122475]
24. Gelfond, M.; Lifschitz, V. Logic programs with classical negation. Logic Programming; Warren, D.; Szeredi, P. ACM: New York, NY, USA, 1990; pp. 579-597.
25. Cappanera, P.; Gavanelli, M.; Nonato, M.; Roma, M. Logic-Based Benders Decomposition in Answer Set Programming for Chronic Outpatients Scheduling. Theory Pract. Log. Program.; 2023; 23, pp. 848-864. [DOI: https://dx.doi.org/10.1017/S147106842300025X]
26. Cardellini, M.; Nardi, P.D.; Dodaro, C.; Galatà, G.; Giardini, A.; Maratea, M.; Porro, I. Solving Rehabilitation Scheduling Problems via a Two-Phase ASP Approach. Theory Pract. Log. Program.; 2024; 24, pp. 344-367. [DOI: https://dx.doi.org/10.1017/S1471068423000030]
27. Wotawa, F. On the Use of Answer Set Programming for Model-Based Diagnosis. Proceedings of the Trends in Artificial Intelligence Theory and Applications. Artificial Intelligence Practices—33rd International Conference on Industrial, Engineering and Other Applications of Applied Intelligent Systems, IEA/AIE 2020; Kitakyushu, Japan, 22–25 September 2020; Fujita, H.; Fournier-Viger, P.; Ali, M.; Sasaki, J. Lecture Notes in Computer Science Springer: Berlin/Heidelberg, Germany, 2020; Volume 12144, pp. 518-529. [DOI: https://dx.doi.org/10.1007/978-3-030-55789-8_45]
28. Taupe, R.; Friedrich, G.; Schekotihin, K.; Weinzierl, A. Solving Configuration Problems with ASP and Declarative Domain Specific Heuristics. Proceedings of the 23rd International Configuration Workshop (CWS/ConfWS 2021); Vienna, Austria, 16–17 September 2021; Aldanondo, M.; Falkner, A.A.; Felfernig, A.; Stettinger, M. CEUR Workshop Proceedings CEUR-WS.org: Aachen, Germany, 2021; Volume 2945, pp. 13-20.
29. Alviano, M.; Cirimele, D.; Reiners, L.A.R. Introducing ASP recipes and ASP Chef. Proceedings of the International Conference on Logic Programming 2023 Workshops Co-Located with the 39th International Conference on Logic Programming (ICLP 2023); London, UK, 9–10 July 2023; Arias, J.; Batsakis, S.; Faber, W.; Gupta, G.; Pacenza, F.; Papadakis, E.; Robaldo, L.; Rückschloß, K.; Salazar, E.; Saribatur, Z.G.
30. Alviano, M.; Reiners, L.A.R. ASP Chef: Draw and Expand. Proceedings of the 21st International Conference on Principles of Knowledge Representation and Reasoning, KR 2024; Hanoi, Vietnam, 2–8 November 2024; Marquis, P.; Ortiz, M.; Pagnucco, M. IJCAI Organization: Darmstadt Germany, 2024; [DOI: https://dx.doi.org/10.24963/KR.2024/68]
31. Calimeri, F.; Leone, N.; Melissari, G.; Pacenza, F.; Perri, S.; Reale, K.; Ricca, F.; Zangari, J. ASP-Based Declarative Reasoning in Data-Intensive Enterprise and IoT Applications. Algorithms; 2023; 16, 159. [DOI: https://dx.doi.org/10.3390/a16030159]
32. Syrjänen, T.; Niemelä, I. The Smodels System. Proceedings of the Logic Programming and Nonmonotonic Reasoning, 6th International Conference, LPNMR 2001; Vienna, Austria, 17–19 September 2001; Eiter, T.; Faber, W.; Truszczynski, M. Lecture Notes in Computer Science Springer: Berlin/Heidelberg, Germany, 2001; Volume 2173, pp. 434-438. [DOI: https://dx.doi.org/10.1007/3-540-45402-0_38]
33. Giunchiglia, E.; Maratea, M. On the Relation Between Answer Set and SAT Procedures (or, Between cmodels and smodels). Proceedings of the Logic Programming, 21st International Conference, ICLP 2005; Sitges, Spain, 2–5 October 2005; Gabbrielli, M.; Gupta, G. Lecture Notes in Computer Science Springer: Berlin/Heidelberg, Germany, 2005; Volume 3668, pp. 37-51. [DOI: https://dx.doi.org/10.1007/11562931_6]
34. Bogaerts, B.; Jansen, J.; Cat, B.D.; Janssens, G.; Bruynooghe, M.; Denecker, M. Bootstrapping Inference in the IDP Knowledge Base System. New Gener. Comput.; 2016; 34, pp. 193-220. [DOI: https://dx.doi.org/10.1007/s00354-016-0301-3]
35. Alviano, M.; Amendola, G.; Dodaro, C.; Leone, N.; Maratea, M.; Ricca, F. Evaluation of Disjunctive Programs in WASP. Proceedings of the Logic Programming and Nonmonotonic Reasoning—15th International Conference, LPNMR 2019; Philadelphia, PA, USA, 3–7 June 2019; Balduccini, M.; Lierler, Y.; Woltran, S. Lecture Notes in Computer Science Springer: Berlin/Heidelberg, Germany, 2019; Volume 11481, pp. 241-255. [DOI: https://dx.doi.org/10.1007/978-3-030-20528-7_18]
36. Eiter, T.; Ianni, G.; Schindlauer, R.; Tompits, H. A Uniform Integration of Higher-Order Reasoning and External Evaluations in Answer-Set Programming. Proceedings of the IJCAI-05, the Nineteenth International Joint Conference on Artificial Intelligence; Edinburgh, Scotland, UK, 30 July–5 August 2005; Kaelbling, L.P.; Saffiotti, A. Professional Book Center: Bethesda, MD, USA, 2005; pp. 90-96.
37. Calimeri, F.; Germano, S.; Palermiti, E.; Reale, K.; Ricca, F. Developing ASP Programs with ASPIDE and LoIDE. Künstliche Intell.; 2018; 32, pp. 185-186. [DOI: https://dx.doi.org/10.1007/s13218-018-0534-z]
38. Calimeri, F.; Fuscà, D.; Germano, S.; Perri, S.; Zangari, J. Fostering the Use of Declarative Formalisms for Real-World Applications: The EmbASP Framework. New Gener. Comput.; 2019; 37, pp. 29-65. [DOI: https://dx.doi.org/10.1007/S00354-018-0046-2]
39. Nethercote, N.; Stuckey, P.J.; Becket, R.; Brand, S.; Duck, G.J.; Tack, G. MiniZinc: Towards a Standard CP Modelling Language. Proceedings of the CP 2007; Providence, RI, USA, 23–27 September 2007; Bessiere, C. LNCS Springer: Berlin/Heidelberg, Germany, 2007; Volume 4741, pp. 529-543. [DOI: https://dx.doi.org/10.1007/978-3-540-74970-7_38]
40. Ivliev, A.; Gerlach, L.; Meusel, S.; Steinberg, J.; Krötzsch, M. Nemo: A Scalable and Versatile Datalog Engine. Proceedings of the 5th International Workshop on the Resurgence of Datalog in Academia and Industry (Datalog-2.0 2024) Co-Located with the 17th International Conference on Logic Programming and Nonmonotonic Reasoning (LPNMR 2024); Dallas, TX, USA, 11 October 2024; Alviano, M.; Lanzinger, M. CEUR; Workshop Proceedings CEUR-WS.org: Aachen, Germany, 2024; Volume 3801, pp. 43-47.
41. Ivliev, A.; Gerlach, L.; Meusel, S.; Steinberg, J.; Krötzsch, M. Nemo: Your Friendly and Versatile Rule Reasoning Toolkit. Proceedings of the 21st International Conference on Principles of Knowledge Representation and Reasoning, KR 2024; Hanoi, Vietnam, 2–8 November 2024; Marquis, P.; Ortiz, M.; Pagnucco, M. IJCAI Organization: Darmstadt Germany, 2024; [DOI: https://dx.doi.org/10.24963/KR.2024/70]
42. Alviano, M.; Reiners, L.A.R. Integrating MiniZinc with ASP Chef: Browser-Based Constraint Programming for Education and Prototyping. Proceedings of the Logic Programming and Nonmonotonic Reasoning—17th International Conference, LPNMR 2024; Dallas, TX, USA, 11–14 October 2024; Dodaro, C.; Gupta, G.; Martinez, M.V. Lecture Notes in Computer Science Springer: Berlin/Heidelberg, Germany, 2024; Volume 15245, pp. 174-186. [DOI: https://dx.doi.org/10.1007/978-3-031-74209-5_14]
43. Alviano, M.; Guarasci, P.; Reiners, L.A.R.; Vasile, I.R. Integrating Structured Declarative Language (SDL) into ASP Chef. Proceedings of the Logic Programming and Nonmonotonic Reasoning—17th International Conference, LPNMR 2024; Dallas, TX, USA, 11–14 October 2024; Dodaro, C.; Gupta, G.; Martinez, M.V. Lecture Notes in Computer Science Springer: Berlin/Heidelberg, Germany, 2024; Volume 15245, pp. 387-392. [DOI: https://dx.doi.org/10.1007/978-3-031-74209-5_29]
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.