This material details the design and implementation of the Proof-of-Concept (PoC) for the Grants4Companies application, a component of the Austrian Federal Business Portal (Unternehmensserviceportal, USP). Developed in Common Lisp, the system is engineered to filter and evaluate business grants based on data retrieved from public administration registers, aiming to significantly reduce the administrative burden on companies.
The core innovation lies in the use of S-expressions for the formalization of grant eligibility criteria, selected for their structural conciseness, unambiguous nature, and direct comparability to legally binding texts. The evaluation engine is purely functional, enforcing reproducibility and utilizing strong Kleene three-valued logic ($K_3$) to handle scenarios where necessary register data is unknown or unavailable. The PoC achieves high computational performance (averaging 0.5 µsec per grant evaluation), facilitating rapid iteration and large-scale testing. Furthermore, the architecture integrates a Prolog reasoner (Scryer Prolog) for symbolic meta-analysis of the formalized rules, enabling advanced deductive queries regarding grant redundancy and inclusion. Key organizational and legal challenges discussed include the manual translation of legal texts into code, the management of conflicting concept definitions via package structures, and constraints imposed by privacy regulations regarding personal data required for evaluation.
Summarization by a Senior Software Architect/Expert in Declarative Systems and E-Governance
0:00 Project Overview & Goal: The Grants4Companies PoC implements an automated filter within the Austrian USP to match companies with applicable grants (of which there are approximately 3,500 for businesses). The primary objective is to dramatically reduce the company workload by filtering out 90% of inapplicable grants (1:06).
1:32 Functional Constraints and Reproducibility: The system utilizes a purely functional rule evaluation paradigm, which, by definition, has no side effects (1:35). This is a foundational design choice supporting reproducibility, a mandatory requirement for symbolic AI deployment in public administration (2:19).
3:32 Language Design: S-Expressions: The formal rule specification language employs S-expressions (5:27). This selection was driven by the need for conciseness, machine parseability, human readability, unambiguous operator precedence (4:38), and long-term future-proofing (5:09).
7:31 Lexical Hybridization: The rule language uses a German/English hybrid lexicon: German terms are retained for specific legal concepts derived from local law (e.g., Rechtsform-in), while general programming operators (AND, OR, NOT) utilize English keywords for programmer familiarity (8:00).
9:26 Package Management for Definitions: The system addresses the problem of multiple, conflicting legal definitions for key terms (e.g., "small and medium-sized companies," KMU) by assigning distinct package namespaces to each interpretation (e.g., GV.AT:IS-KMU, FFG:IS-KMU) (9:55).
10:25 Architectural Organization: Grant definitions are stored in a Git repository, with a directory and a corresponding Common Lisp package generated for each funding agency. This structure isolates agency-specific definitions and facilitates modular maintenance (10:32).
11:46 Temporal Dependency and Numeric Logic: The language supports numeric calculations to manage legal limits (e.g., tax ceilings) that change over time. Calculations are expected to be enclosed within conditional structures (e.g., CASE statements) to retrieve the correct limit based on the year of application (12:32).
13:00 Evaluation Limitations: A significant portion of grant criteria cannot be formalized or evaluated automatically (e.g., whether a project is an "Innovative solution," or clauses where register data is unavailable) (13:04). These non-formalizable requirements are handled as descriptive comments.
14:55 Prolog Integration for Meta-Analysis: The PoC incorporates a feature to convert the S-expression rule base into Prolog code. This enables the use of an attached Prolog reasoner (Scryer Prolog) to perform sophisticated meta-analysis, such as identifying grants that fully include the criteria of other grants (15:16).
17:40 Operationalizing Code-as-Law: The primary obstacle to moving the system beyond an "information only" service is the manual nature of grant entry and the lack of official legal sign-off confirming that the codified rules accurately reflect the binding legal text (18:08).
20:08 Interactive Data Collection (FRAGE): To compensate for missing register data, the system utilizes an interactive querying mechanism (the FRAGE concept) (20:20). However, the implementation faces limitations regarding the storage and querying of personal information (e.g., data on disabled employees), due to compliance and security costs (20:31).
Performance (PoC): The Common Lisp implementation, utilizing SBCL, achieves an average evaluation time of 0.5 µsec per grant, facilitating rapid, interactive testing and mass assessments against a large number of companies (Paper, Sec 4.9).