| Type: | Package |
| Title: | Offline Calculation and Logic Rules for the EU Artificial Intelligence Act |
| Version: | 0.1.1 |
| Description: | Native offline evaluation of explicit calculation and logic rules for documented versions of the EU Artificial Intelligence Act. Supports German identifiers, unknown facts and traceable decisions. Explicitly bounded rule catalogue based on European Parliament and Council (2024) https://eur-lex.europa.eu/eli/reg/2024/1689/oj; evaluation of a factual condition is not a conformity assessment. |
| License: | Apache License (== 2.0) |
| Encoding: | UTF-8 |
| Language: | de |
| Depends: | R (≥ 4.1.0) |
| Imports: | jsonlite, stats |
| URL: | https://github.com/rds0001/euaiact-r |
| BugReports: | https://github.com/rds0001/euaiact-r/issues |
| NeedsCompilation: | no |
| Packaged: | 2026-10-26 08:13:15 UTC; qwert123 |
| Author: | Dimitrios Geromichalos [aut, cre] (Dr.), RiskDataScience GmbH [cph] |
| Maintainer: | Dimitrios Geromichalos <riskdatascience@web.de> |
| Repository: | CRAN |
| Date/Publication: | 2026-11-10 17:20:02 UTC |
Qualifizierte Unternehmensgruppen exakt aggregieren
Description
Ermittelt verbundene Komponenten und ihre unmittelbaren Partnergruppen und aggregiert disjunkte konsolidierte Datenkreise ohne Rundung oder Netzwerk. Beziehungsqualifikation und Konsolidierungsbuchungen sind vorgelagerte Aufgaben.
Usage
aggregiere_unternehmensgruppe(stamm_id, unternehmen, beziehungen,
datenkreise, groesse, bezugsperiode, kreis_vollstaendig, quellenfassung)
Arguments
stamm_id |
ID des betrachteten Unternehmens. |
unternehmen |
Eindeutige Unternehmens-IDs als unbenannte Liste oder Zeichenvektor. |
beziehungen |
Unbenannte Liste qualifizierter VERBUND- oder PARTNER-Objekte. |
datenkreise |
Disjunkte qualifizierte Unternehmensdaten; bei JAE mit Personensegmentinventar. |
groesse |
JAE, UMSATZ_EUR oder BILANZ_EUR. |
bezugsperiode |
Explizite gemeinsame Perioden-ID. |
kreis_vollstaendig |
Belegte Vollstaendigkeit des qualifizierten Beziehungskreises. |
quellenfassung |
EUAIACT_2026_07_27. |
Details
Verbundgruppen werden einmal voll, Partnergruppen proportional einbezogen. Partner eines Partners werden nicht rekursiv verfolgt. Ueberlappende Datenkreise, mehrfache Partnerpfade zwischen identischen Gruppen oder doppelte Personensegmente werden abgewiesen. Finanzwerte sind exakte Dezimaltexte; JAE sind Zaehler/Nenner-Texte. Der vollstaendige Vertrag befindet sich in inst/notes/UNTERNEHMENSGRUPPEN.md.
Value
Ergebnisumschlag mit exakter Summe, Unternehmensgewichten, Datenkreisbeitraegen, Quellen und Luecken. Keine allgemeine KMU-/SMC-Status- oder Rechtsentscheidung.
Kalenderfrist mit ausdrücklichem Nutzerkalender
Description
Berechnet ein Enddatum nach den ausdrücklich gewählten Datumsregeln der Verordnung 1182/71. Verwendet keine Systemzeit.
Usage
berechne_frist(ereignisdatum, anzahl, einheit, modus, kalender = NULL, quellenfassung)
Arguments
ereignisdatum |
ISO-Datum als Text YYYY-MM-DD, Jahre 0001 bis 9999. Bei STUNDE ein ISO-Zeitstempel mit explizitem UTC-Offset. |
anzahl |
Positive ganze Zahl. |
einheit |
TAG, ARBEITSTAG, WOCHE, MONAT, JAHR oder STUNDE (nur FRIST). |
modus |
FRIST, FESTER_TERMIN, INKRAFTTRETEN, RUECKWAERTS oder VERFAHREN_1755_TAGE. |
kalender |
Liste mit genau von, bis (ISO-Daten), feiertage (Liste von ISO-Daten) und bezug (nichtleerer Herkunfts-/Geltungsbereichstext). Feiertage müssen eindeutig und innerhalb der Kalenderdeckung liegen. Für FESTER_TERMIN/INKRAFTTRETEN ohne ARBEITSTAG-Einheit ist kein Kalender erforderlich. |
quellenfassung |
Explizit EUAIACT_2026_07_27. |
Details
Der Ereignistag wird ausgeschlossen. Monate und Jahre verwenden den entsprechenden Tag oder den letzten Tag des Zielmonats. Im Modus FRIST wird ein Ende an einem arbeitsfreien Tag auf den nächsten Arbeitstag verschoben; Fristen ab zwei Tagen enthalten mindestens zwei Arbeitstage. FESTER_TERMIN und INKRAFTTRETEN wenden diese beiden Verlängerungen nicht an. Samstag, Sonntag und explizite Feiertage sind arbeitsfrei. Unzureichende Kalenderdeckung bleibt unbekannt. VERFAHREN_1755_TAGE wendet Artikel 12 Absatz 2 der DVO 2026/1755 für GPAI-Kommissionsverfahren an: erster folgender Arbeitstag ist Tag 1; danach normale Endregeln. Nur TAG und ARBEITSTAG sind für diesen Modus zulässig. RUECKWAERTS rechnet vor dem ausgeschlossenen Bezugstag zurück. Keine Endverschiebung auf einen Arbeitstag; mindestens zwei Arbeitstage bei Perioden ab zwei Tagen werden durch weitere Rückrechnung erreicht. Kalender erforderlich. Korrespondenztag oder letzter Zielmonatstag, Ergebnis zum Ablauf des Grenztags. Wochen-/Monats-/Jahresfristen des Sonderverfahrens sind nicht enthalten. STUNDE im Modus FRIST schliesst die Ereignisstunde aus und zaehlt volle folgende Stunden. Der Ergebniswert enthaelt beginn und ende_exklusiv als UTC-Texte; an der exklusiven Endgrenze ist die Frist bereits abgelaufen. Keine Wochenend-Endverschiebung. Ab48Stunden bleibt F011 als REGEL_UNGEKLAERT ohne Fachwert erhalten. Keine automatische Anwendung auf spezielle AI-Act-Hoechstgrenzen. Eine zusätzliche Pflicht zu unverzüglichem Handeln wird nicht bewertet.
Value
Ergebnisumschlag mit ISO-Datum in wert beziehungsweise Stundenobjekt mit beginn/ende_exklusiv, Rechenschritten und Fundstelle. Ungültige Angaben ergeben EINGABE_UNGUELTIG; fehlende Angaben oder benötigte Kalenderdeckung EINGABE_FEHLT. Rechtliche Anwendbarkeit bleibt UNBEKANNT.
Examples
berechne_frist("2026-10-23", 2, "TAG", "FRIST",
list(von = "2026-01-01", bis = "2026-12-31", feiertage = list(),
bezug = "SYNTHETISCH: keine Feiertage"), "EUAIACT_2026_07_27")$wert
Zusammengesetzte Kalenderperioden
Description
Ganze Wochen, Monate oder Jahre und echte Monatsbrueche mit einmaliger Anwendung der Kalenderendregeln.
Usage
berechne_periodenfrist(ereignisdatum, anzahl, einheit, modus,
kalender = NULL, monatsbruch = NULL, beginnkonvention = NULL,
beginnbegruendung = NULL, quellenfassung)
Arguments
ereignisdatum |
Explizites ISO-Datum YYYY-MM-DD. |
anzahl |
Ganze Anzahl von0bis1000000; Gesamtperiode muss positiv sein. |
einheit |
WOCHE, MONAT oder JAHR. |
modus |
FRIST, FESTER_TERMIN, INKRAFTTRETEN, RUECKWAERTS oder VERFAHREN_1755. |
kalender |
Benannte Liste mit von, bis, feiertage und nichtleerem bezug. Erforderlich fuer Arbeitstagsregeln. |
monatsbruch |
Nur fuer MONAT: Liste mit zaehler und nenner als kanonische Ganzzahltexte, echter nichtnegativer Bruch. NULL bedeutet keine Bruchkomponente. |
beginnkonvention |
Nur fuer VERFAHREN_1755: explizites EREIGNISTAG, BEGINNTAG oder VORTAG_DES_BEGINNS. |
beginnbegruendung |
Nichtleere Begruendung des1755-Profils. F007 wird dadurch nicht rechtlich geloest. |
quellenfassung |
Explizit EUAIACT_2026_07_27. |
Details
Ganze Monate zuerst, danach30malMonatsbruch in Tagen. Endverschiebung und Mindestarbeitstage nur auf Gesamtperiode anwenden. Nichtganze Bruchtage bleiben ohne untertaegige Endkonvention REGEL_UNGEKLAERT. Ebenso1755-Langperioden ohne begruendetes Profil. Vollstaendiger Vertrag in notes/PERIODENFRISTEN.md.
Value
Ergebnisumschlag mit Datum, Komponenten, Quellen und ausdruecklichen Daten-/Rechtsgrenzen.
Examples
berechne_periodenfrist("2026-01-31", 1, "MONAT", "FRIST",
list(von="2026-01-01", bis="2026-12-31", feiertage=list(),
bezug="SYNTHETISCH"), list(zaehler="1", nenner="2"),
quellenfassung="EUAIACT_2026_07_27")
Qualifizierte Verjaehrungsverlaeufe
Description
Berechnet lokale Ereignisablaeufe mit getrennten Verfahrensregeln.
Usage
berechne_verjaehrung(verfahren, ereignisdatum, unterbrechungen, hemmungen,
stichtag, kalender, quellenfassung, beginnkonvention = NULL,
beginnbegruendung = NULL)
Arguments
verfahren |
GPAI_VERFOLGUNG, GPAI_VOLLSTRECKUNG, KI_BUERO_VERFOLGUNG oder KI_BUERO_VOLLSTRECKUNG. |
ereignisdatum |
Qualifizierter Tattag, Ende fortdauernden Verhaltens oder Bestandskraft, YYYY-MM-DD. |
unterbrechungen |
Liste mit hoechstens1000 benannten Listen mit datum und verfahrensspezifischer art. |
hemmungen |
Liste mit hoechstens1000 benannten Listen mit von, bis_exklusiv und art. NULL als Ende bezeichnet laufende Hemmung. Grenzen sind qualifizierte volle Kalendertage. |
stichtag |
Explizites Datum des betrachteten Ereignisbestands. |
kalender |
Benannte Liste mit von, bis, feiertage als Liste und nichtleerem bezug. |
quellenfassung |
Explizit EUAIACT_2026_07_27. |
beginnkonvention |
Fuer GPAI explizite Nutzervorgabe EREIGNISTAG, BEGINNTAG oder VORTAG_DES_BEGINNS; ohne Auswahl bleibt F007 offen. Im75c-Verfahren NULL. |
beginnbegruendung |
Nichtleere dokumentierte Begruendung der GPAI-Nutzervorgabe; keine Rechtsklaerung durch die Library. Im75c-Verfahren NULL. |
Details
GPAI-Verfolgung hat eine urspruengliche Zehnjahreshoechstfrist mit gerichtlicher Hemmung; Vollstreckung hat keinen solchen Deckel. Hemmungen werden vereinigt. Keine Wiederbelebung abgelaufener Fristen und keine Uebernahme1755 auf75c. Laufende relevante Hemmung liefert kein endgueltiges Fristende. Vollstaendiger Vertrag und Ereignisarten in der installierten Datei notes/VERJAEHRUNGSVERTRAG.md.
Value
Gemeinsamer Ergebnisumschlag mit Fristenden, Unterbrechungsschritten, Nutzervorgaben und ausdruecklichen Daten-/Rechtsluecken. Kein automatischer Verjaehrungsbescheid.
Examples
berechne_verjaehrung("GPAI_VERFOLGUNG", "2026-10-23", list(), list(),
"2026-10-25", list(von="2026-01-01", bis="2038-12-31",
feiertage=list(), bezug="SYNTHETISCH"), "EUAIACT_2026_07_27")
Vollständige Eingabefelder einer Katalogregel
Description
Liefert die Feldverträge einschließlich transitiver Regelverweise als unabhängige native Daten. Enthält keine Unternehmensdaten.
Usage
eingabevertrag(regel_id)
Arguments
regel_id |
Bekannte ID aus regel_katalog(). Unbekannte IDs lösen einen Fehler aus. |
Details
Zusammengesetzte Regeln benötigen auch Felder der referenzierten Regeln. Die unmittelbaren eingaben in regel_info() allein sind dann nicht vollständig. Fehlende Felder und NULL bleiben unbekannt; zusätzliche Felder sind unzulässig. Zeit- und Fristfunktionen haben separat dokumentierte Parameterverträge.
Value
Liste mit regel_id, regelversion, quellenfassung, schemaversion, felder (nach Namen sortiert), unbekannt und zusaetzliche_felder. Jeder Feldvertrag enthält den Typ und gegebenenfalls Einheit, Kategorieauswahl oder exakte Grenzen als Dezimalzeichenfolgen.
Examples
names(eingabevertrag("AIA_053_001_A")$felder)
Lokaler JSON-Austausch und nachvollziehbare Feldzuordnung
Description
Explizite lokale Dateien und reine Zuordnung direkter Feldnamen. Keine URLs, Remote-Referenzen oder ausführbaren Transformationen.
Usage
lese_json(pfad)
schreibe_json(daten, pfad)
ordne_daten_zu(datensatz, zuordnung)
Arguments
pfad |
Nichtleerer lokaler Dateipfad. URI/URLs und UNC-Pfade sind unzulässig. |
daten |
JSON-kompatibler Wert: benannte/ unbenannte Listen für Objekte/Arrays, skalare Texte, Boolean, NULL und ganze Zahlen bis absolut 9007199254740991. Dezimal- und Geldwerte als Text; NA ist im Austauschvertrag unzulässig. |
datensatz |
Benannte Liste mit eindeutigen, nichtleeren Quellfeldnamen. |
zuordnung |
Liste mit genau mappingversion (nichtleerer Text) und felder (benannte Liste: kanonischer Zielfeldname auf direkten Quellfeldnamen). Zielnamen bestehen aus Kleinbuchstaben, Ziffern und Unterstrichen und beginnen mit einem Buchstaben. |
Details
UTF-8, höchstens 16 MiB und 100 Verschachtelungsebenen. Doppelte Objektschlüssel, ungenaue Zahlen und ungültige Typen werden abgelehnt. Leeres Objekt: setNames(list(), character()); leeres Array: list(). Der Export validiert vor dem Öffnen und überschreibt niemals vorhandene Dateien. Schreibfehler können eine unvollständige neue Datei hinterlassen. Eingebundene Dateisysteme liegen in der Verantwortung des Betreibers.
Die Zuordnung übernimmt nur ausgewählte Felder, verändert keine Eingaben und ergänzt fehlende Quellschlüssel als NULL. Vorhandenes NULL und fehlender Schlüssel bleiben in der Herkunft unterscheidbar. Die anschließende Fachfunktion prüft bekannte Zielfelder und deren fachlichen Typ-/Wertevertrag.
Value
lese_json: native Daten; schreibe_json: unsichtbares NULL; ordne_daten_zu: Liste mit mappingversion, eingaben und herkunft (zielfeld, quellfeld, vorhanden), nach Zielfeld sortiert. Ungültige Verträge und Betriebssystemfehler lösen einen Fehler aus.
Examples
ordne_daten_zu(list(heilzweck = FALSE), list(mappingversion = "beispiel-1",
felder = list(medizinisch = "heilzweck", arbeitsplatz = "betrieb")))
pfad <- tempfile(fileext = ".json")
schreibe_json(list(kennzeichnung = "SYNTHETISCH", wert = "1.23"), pfad)
lese_json(pfad)
unlink(pfad)
Pflichtenkatalog und sachliche Pflichtauslösung
Description
Verknüpft sachliche Auslöser mit strukturierten, bedingten Rechtsfolgen und fachlich abgeleiteten Nachweisarten. Der Katalog ist ein Teilbestand.
Usage
pflicht_katalog()
ermittle_pflicht(pflicht_id, eingaben, quellenfassung)
Arguments
pflicht_id |
Stabile Kennung aus pflicht_katalog(). |
eingaben |
Benannte Liste nach eingabevertrag() der im Katalog hinterlegten Auslöserregel. Keine automatische Auswahl aus zusätzlichen Unternehmensfeldern. |
quellenfassung |
Explizite Quellenfassung, gegenwärtig EUAIACT_2026_07_27. |
Details
Der Katalog enthält Pflichtversion, Adressat, Gegenstand, Auslöserregel, Rechtsfolge, Ausnahmen, Zeitbezug, Nachweisarten, verfügbare Erfüllungskriterien, Quellenfassung und Bearbeitungsstatus. Kopien können unabhängig verändert werden.
ermittle_pflicht() prüft ausschließlich den sachlichen Auslöser. Zeitliche und allgemeine rechtliche Anwendbarkeit bleiben UNBEKANNT. Erfüllung und Belege werden nicht geprüft. Eine positive Auslöserprüfung ist keine Konformitätsaussage. Nachweisarten sind fachlich abgeleitete Belegarten, keine zusätzlich erfundenen gesetzlichen Dokumentpflichten. Es werden keine externen Aktionen ausgeführt.
Die Pflichtausgabe enthaelt auch Gegenstand, Ausnahmen, Fundstellen und fristregel_ids. Diese Zeitregelverweise sind mit regel_info und berechne_regel verwendbar. Ereignisdaten muessen separat uebergeben werden; keine automatische Frist- oder Erfuellungspruefung.
Value
pflicht_katalog() liefert eine Liste von Pflichtdatensätzen. ermittle_pflicht() liefert einen Ergebnisumschlag vom Typ OBJEKT. Bei gültigen Eingaben enthält wert pflicht_id, pflichtversion, ausloeser_erfuellt, adressat, gegenstand, ausnahmen, fundstellen, fristregel_ids, rechtsfolge, zeitbezug, nachweisanforderungen, erfuellungskriterien und erfuellung mit dem festen Wert NICHT_GEPRUEFT. Die Rechtsfolge ist immer bedingt, auch bei falschem oder unbekanntem Auslöser. Unbekannte Pflicht-ID oder ungültige Eingaben ergeben EINGABE_UNGUELTIG und wert=NULL; fehlende entscheidende Fakten EINGABE_FEHLT mit partiellem Objekt. Entscheidungsspur und Quellen bleiben erhalten.
See Also
eingabevertrag, pruefe_tatbestand
Examples
ermittle_pflicht("P_AIA_026_007", list(betreiberrolle = TRUE,
hochrisikosystem = TRUE, betreiber_ist_arbeitgeber = TRUE,
einsatz_am_arbeitsplatz_geplant = TRUE), "EUAIACT_2026_07_27")$wert
Allgemeinen Anwendungsbeginn nach Artikel 113 prüfen
Description
Vergleicht den ausdrücklich gewählten Stichtag mit dem allgemeinen Beginn eines Bereichs in der ausdrücklich gewählten Quellenfassung.
Usage
pruefe_anwendungsbeginn(bereich, stichtag, quellenfassung)
Arguments
bereich |
Ein Bereich aus der nachfolgenden Liste. |
stichtag |
ISO-Datum YYYY-MM-DD oder NULL für unbekannt. |
quellenfassung |
EUAIACT_2024_08_01 oder EUAIACT_2026_07_27. |
Details
In beiden Fassungen: ALLGEMEIN, KAPITEL_I_II_BESTAND, KAPITEL_III_ABSCHNITT_4, KAPITEL_V, KAPITEL_VII, KAPITEL_XII_OHNE_101, ARTIKEL_78, ARTIKEL_101, ARTIKEL_6_5, ARTIKEL_102_BIS_110 und HOCHRISIKO_ANHANG_III_ABSCHNITT_1_BIS_3_OHNE_6_5.
Nur 2024: HOCHRISIKO_ANHANG_I_ARTIKEL_6_1_UND_ZUGEHOERIGE_PFLICHTEN. Nur 2026: HOCHRISIKO_ANHANG_I_ABSCHNITT_1_BIS_3_OHNE_6_5 und ARTIKEL_5_BA_BB_1A_1B.
KAPITEL_I_II_BESTAND schließt den neuen Artikel 4a und die neuen Verbote aus. Stichtage vor Inkrafttreten der gewählten Fassung sind ungültig. Die frühere Fassung kann eine damalige Planung für spätere Daten abbilden; sie wird nicht automatisch durch die neue Fassung ersetzt. Artikel 111 sowie sachlicher, persönlicher und territorialer Geltungsbereich werden separat geprüft.
ARTIKEL_4A in der Fassung 2026 ist als offene Rechtsfrage F002 registriert. Vollständige gültige Eingaben liefern REGEL_UNGEKLAERT statt eines geschätzten Beginns.
Value
Ergebnisumschlag mit Boolean in wert und dem verglichenen Beginn in entscheidungsschritte. Anwendbarkeit bleibt UNBEKANNT. Fehlende Angaben ergeben EINGABE_FEHLT; ungültige Bereiche, Fassungen oder Daten EINGABE_UNGUELTIG.
Examples
pruefe_anwendungsbeginn("ARTIKEL_5_BA_BB_1A_1B", "2026-12-01",
"EUAIACT_2026_07_27")$wert
Bestandsfristen nach Artikel 111 prüfen
Description
Prüft Bestandsgrenze und festen Erfüllungstermin nach Artikel 111 Absätzen 1 bis 4 anhand ausdrücklich qualifizierter Fallgruppen.
Usage
pruefe_bestandsfrist(fallgruppe, stichtag, ereignisse, quellenfassung)
Arguments
fallgruppe |
GROSS_IT_ANHANG_X, GPAI_MODELL, SYNTHETISCHE_AUSGABEN_ART_50_2, HOCHRISIKO_ANHANG_I, HOCHRISIKO_ANHANG_III oder HOCHRISIKO_DOPPELT. |
stichtag |
ISO-Datum YYYY-MM-DD oder NULL. |
ereignisse |
Benannte Liste mit inverkehrbringen und optional inbetriebnahme. Jedes Ereignis ist NULL oder eine Liste mit erfolgt (logical/NULL) und datum (ISO-Datum/NULL). Ein Datum verlangt erfolgt=TRUE und darf nicht nach dem Stichtag liegen. Fehlende Ereignisse bleiben unbekannt. Hochrisiko-Fallgruppen erlauben zusätzlich aenderungen (Liste von Listen mit datum und erheblich), aenderungshistorie_vollstaendig, fuer_behoerden_bestimmt und anbieter_oder_betreiber (je logical/NULL). Die Historie beschreibt tatsächliche Entwurfsänderungen desselben Typs/Modells bis zum Stichtag; Vollständigkeit, Erheblichkeit, Zweckbestimmung und Akteursrolle sind anhand eigener Nachweise zu qualifizieren. |
quellenfassung |
EUAIACT_2024_08_01 oder EUAIACT_2026_07_27. Die synthetische Fallgruppe ist nur in der Fassung 2026 verfügbar. |
Details
Die Fallgruppe muss sachlich qualifiziert sein. Groß-IT: erstmaliges Inverkehrbringen oder Inbetriebnahme vor 2027-08-02, Frist 2030-12-31. GPAI: Inverkehrbringen vor 2025-08-02, Frist 2027-08-02. Synthetische Ausgaben: Inverkehrbringen vor 2026-08-02, Frist 2026-12-02; nur die Verpflichtung aus Artikel 50 Absatz 2 ist betroffen. Ein bekanntes altes Ereignis entscheidet die Groß-IT-Alternative trotz unbekanntem zweiten Ereignis. Ein junges Ereignis widerlegt ein unbekanntes altes nicht. Keine Wochenendverschiebung. Artikel 2, Artikel 5, Artikel 113 und die tatsächliche Pflichterfüllung sind separat zu prüfen. Hochrisiko-Gruppen setzen den Ausschluss des Absatz-1-Groß-IT-Falls voraus. Bestandsgrenzen: Fassung 2024 einheitlich 2026-08-02; Fassung 2026 Anhang III 2027-12-02, Anhang I 2028-08-02. Markt-/Betriebsereignisse müssen davor liegen, erhebliche Änderungen zählen ab der Grenze einschließlich. Eine leere Liste beweist Unverändertheit nur bei ausdrücklich vollständiger Historie. Ein bekanntes relevantes Ereignis genügt auch bei unvollständiger Historie. Die Auffangfrist 2030-08-02 betrifft Anbieter/Betreiber von Behördenbeständen. Bei Doppelklassifikation werden beide Stichtage geprüft: gemeinsame Ergebnisse bleiben nutzbar, abweichende Felder bleiben NULL bzw. UNBESTIMMT und führen zu REGEL_UNGEKLAERT (F004). Vollständiger Vertrag: system.file("notes", "UEBERGANG.md", package="euaiact").
Value
Ergebnisumschlag mit Objekt in wert: bestand (logical/NULL), erfuellungsfrist (Datum bei Bestand, sonst NULL) und friststatus (VOR_FRISTTAG, FRISTTAG, NACH_FRISTTAG, KEINE_BESTANDSFRIST oder UNBESTIMMT). Hochrisiko-Ergebnisse enthalten zusätzlich aenderungsvorbehalt_ausgeloest und behoerdenfrist_betroffen (logical/NULL); erfuellungsfrist betrifft nur die Behördenfrist, deren Nichtbetroffenheit KEINE_BEHOERDENFRIST ergibt. Anwendbarkeit bleibt UNBEKANNT. Unvollständige Angaben führen zu EINGABE_FEHLT, inkonsistente oder ungültige Angaben zu EINGABE_UNGUELTIG.
Examples
pruefe_bestandsfrist("GPAI_MODELL", "2027-08-02",
list(inverkehrbringen = list(erfolgt = TRUE, datum = "2025-08-01")),
"EUAIACT_2026_07_27")$wert
Exakte Obergrenzen und Größenmerkmale
Description
Berechnet die ausdrücklich spezifizierte Größe mit lokalen Daten. Geldbeträge werden ohne implizite Rundung als Dezimalzeichenfolgen ausgegeben.
Usage
berechne_regel(regel_id, eingaben, quellenfassung)
berechne_bussgeldobergrenze(eingaben, quellenfassung)
Arguments
regel_id |
Eine Rechenregel-ID aus |
eingaben |
Benannte Liste entsprechend |
quellenfassung |
Explizite Quellenfassung, gegenwärtig |
Details
AIA_075C_005_TAGESEINKOMMEN berechnet exakt fuenf Prozent eines
vorgelagert rechtlich qualifizierten durchschnittlichen Tageseinkommens.
Keine automatische Basiswahl, Umsatzumrechnung, Cent-Rundung oder tatsaechliche
Sanktionsfestsetzung. Die offene Umsatzfrage F003 bleibt gesondert.
Die Regeln AIA_097_003_WIRKSAMKEIT und OMN_003_03_WIRKSAMKEIT berechnen den Tag nach der Amtsblattveroeffentlichung oder einen ausdruecklich spaeteren Tag. Es gibt keine Wochenendverschiebung; konkrete Delegation und zustaendiges Organ bleiben getrennte Voraussetzungen.
Die Regel AIA_050_005_INFORMATIONSZEITPUNKT vergleicht
transparenzinformation_zeitpunkt mit
erste_interaktion_oder_exposition_zeitpunkt und liefert wahr, wenn die
Information spätestens beim Erstkontakt bereitgestellt wurde. Zeichenfolgen
verwenden das Profil YYYY-MM-DDTHH:MM:SS mit optional ein bis sechs
Nachkommastellen und Z oder explizitem Offset (+/-HH:MM). Jahre 0001 bis 9999;
keine Schaltsekunden, kein unbekannter Offset -00:00, keine Systemzeitzone.
UTC-Sekunden und Mikrosekunden werden getrennt exakt verglichen. Pflichtauslöser,
Informationsqualität, Barrierefreiheit und zeitliche Anwendbarkeit separat.
Die Regeln KMU_PARTNER_HINZURECHNUNG und
KMU_VERBUND_HINZURECHNUNG addieren einen qualifizierten noch nicht
enthaltenen Unternehmenswert zur Aggregationsbasis. Die Partnerregel verwendet
zusätzlich die exakte hinzurechnungsquote zwischen null und eins,
die Verbundregel die feste Quote eins. Die Eingaben
aggregationsbasiswert und
noch_hinzuzurechnender_unternehmenswert betreffen dieselbe Kennzahl,
Einheit und Periode. Bereits konsolidierte Daten sind vorab auszuschließen.
Es erfolgt keine automatische Beteiligungsgraph- oder Größenstatusermittlung
und keine Rundung. Multiplikation und Addition erscheinen in der Rechenspur.
Je Dezimaleingabe gelten maximal 4096 Zeichen, auch bei Weiterverwendung.
Anlassabhängige Dauern wählen einen gesetzlichen Dauerparameter anhand eines
expliziten Enum-Feldes. Eine fehlende Anlasskategorie führt zu keinem Standardwert.
Höchstdauern sind von tatsächlich gewährten Zeiträumen zu unterscheiden.
Feste Dauern liefern Anzahl und Einheit bei leerer Eingabeliste. Zeitbezug
und Richtung sind in regel_info dokumentiert. Es wird kein Enddatum
berechnet; eine Vorankündigung darf nicht als nachlaufende Frist verwendet
werden. Aufbewahrungsdauern sind keine automatische Löschfreigabe.
berechne_bussgeldobergrenze ist der fachliche Einstieg für Artikel 99.
Die Kategorien lauten VERBOT, PFLICHT und INFORMATION;
die Akteurklassen KEIN_UNTERNEHMEN, KMU, SMC und
SONSTIGES_UNTERNEHMEN. Für Unternehmen ist der
weltweiter_vorjahresumsatz_eur anzugeben.
Berechnet wird die gesetzliche Obergrenze, nicht das tatsächliche Bußgeld.
Zeitliche und rechtliche Anwendbarkeit sowie Größenstatus sind gesondert zu
prüfen. Die Regel KMU_SCHWELLEN liefert ausschließlich gegenwärtige
Größenmerkmale; Beteiligungen und Statushistorie werden dadurch nicht ersetzt.
AIA_073_MELDEFRISTTAGE verwendet die booleschen Eingaben weitverbreiteter_verstoss, schwere_irreversible_kritische_infrastrukturstoerung und todesfall. Ein wahrer Zweitagesgrund liefert 2 trotz anderer Lücken; bei zwei falschen Zweitagesgründen gilt 10 für Todesfall, sonst 15. Fehlende entscheidende Fakten bleiben unbekannt. Dies ist nur die äußerste Tagesdauer, kein Aufschub einer unverzüglichen Meldung. Meldepflicht, Kenntnistag, Vorfallschwere und Artikel 73 Absätze 9/10 sind separat zu prüfen.
AIA_030_EINWANDSPERIODE liefert die Anzahl 2 und die Einheit WOCHE oder MONAT abhängig von der Notifizierungsgrundlage. Ereignisdatum, Kalender, Fristablauf und Einwände sind gesondert zu prüfen.
Value
Vollständiger Ergebnisumschlag wie bei pruefe_tatbestand, mit
rechenschritte, Einheit und typisiertem wert. Fehlende relevante
Angaben ergeben EINGABE_FEHLT, ungültige Angaben EINGABE_UNGUELTIG.
Teilweise bestimmbare Größenmerkmale können innerhalb des Objekts unbekannt bleiben.
Grundrechtebewertung vor Ersteinsatz
AIA_027_001_VOR_EINSATZ vergleicht fria_abschluss_zeitpunkt strikt mit
erstmaliger_einsatz_zeitpunkt. Beide Eingaben verwenden DATUMZEIT mit
explizitem UTC-Offset. Gleiche Instanten sind nicht vorher. Pflichtauslöser und
Bewertungsinhalte separat prüfen; keine Stundenfristberechnung.
Jahresarbeitseinheiten
KMU_JAE_DEZIMALBEITRAG und SMC_JAE_DEZIMALBEITRAG multiplizieren die exakt endlichen Dezimaltexte arbeitszeitanteil_an_vollzeit und anrechenbarer_jahresanteil (jeweils 0 bis 1). JAE_DEZIMALSUMME addiert bisherige_jahresarbeitseinheiten und zusaetzliche_jahresarbeitseinheiten. Personenkreis, anrechenbare homogene Abschnitte und disjunkte Beiträge vorher qualifizieren. Keine automatische Kalenderbasis, keine Rundung periodischer Brüche wie 1/3 und keine vollständige rationale Quotenermittlung. Ergebnisse sind exakte Dezimaltexte.
See Also
Examples
berechne_bussgeldobergrenze(list(
verstosskategorie = "PFLICHT", akteurklasse = "SMC",
weltweiter_vorjahresumsatz_eur = "100000000"
), "EUAIACT_2026_07_27")$wert
Lokale sachliche Regelprüfung mit unbekannten Angaben
Description
Wertet ausdrücklich übergebene Fakten anhand eines paketinternen Regelkatalogs aus. Der Katalog ist ein fachlicher Entwicklungsstand. Die Prüfung eines Tatbestands ist keine umfassende Konformitätsprüfung.
Usage
regel_info(regel_id)
regel_katalog()
pruefe_tatbestand(regel_id, eingaben, quellenfassung)
pruefe_stapel(faelle, quellenfassung)
Arguments
regel_id |
Eindeutige Zeichenfolge aus dem Regelkatalog. |
eingaben |
Benannte Liste mit eindeutigen Schlüsseln. Booleanfelder sind
skalare logische Werte. Dezimalfelder sind kanonische Zeichenfolgen mit höchstens
4096 Zeichen; Exponenten, Tausendertrennzeichen und Komma sind unzulässig.
Fehlende Schlüssel, |
quellenfassung |
Explizite Quellenkennung. Der gegenwärtige Katalog verwendet
|
faelle |
Liste von Fällen mit genau |
Details
Entscheidungsrelevante offene Rechtsfragen liefern den Status
REGEL_UNGEKLAERT. Sie sind keine fehlenden Unternehmensdaten und werden
als frage_id beziehungsweise offene_rechtsfragen in der Spur
sowie in den Hinweisen ausgewiesen. Datenlücken bleiben separat; eine
Rechtsfrage ist kein überschreibbares Eingabefeld. Ein bestimmendes anderes
UND-/ODER-Glied kann sie unerheblich machen. Aktuelle Fälle sind divergierende
EN/DE-Business-Angel-Grenzen: exakt fünf Millionen EUR bei SMC (F015) und
exakt 1,25 Millionen EUR bei KMU (F016).
UND wird durch einen falschen Operanden falsch, ODER durch einen wahren Operanden wahr. In sonst nicht entscheidbaren Fällen bleibt der Wert unbekannt. Alle gelieferten Angaben werden unabhängig von ihrer Entscheidungsrelevanz typgeprüft. Die Funktionen verändern keine Eingaben und führen keine Netzwerkzugriffe oder externen Programmausführungen aus.
Zeitliche, territoriale und sonstige rechtliche Anwendbarkeit wird durch diese
Funktionen nicht bestimmt. Deshalb ist anwendbarkeit bei einer gültigen
Tatbestandsprüfung UNBEKANNT, auch wenn der sachliche Wert entschieden ist.
Der Katalogstatus bleibt im Ergebnis sichtbar.
ENUM-Kategorien werden exakt verglichen; zulässige Werte stehen in
eingabevertrag(regel_id). AIA_002_002_NORMGRUPPE_ZULAESSIG prüft nur
den besonderen Normgruppenausschluss, keine allgemeine Anwendbarkeit.
AIA_002_013_VORAUSSETZUNGEN bestätigt keinen erlassenen Ausnahmeakt.
Quellenbelege umfassen die durchlaufenen Unterregeln mit regel_id und regelversion. Unterregelgrenzen erscheinen in hinweise mit Regel-ID. Besuchsreihenfolge bleibt erhalten; mehrfach referenzierte Regeln erhalten nur eine Beleggruppe. Auch logisch nicht entscheidende Zweige werden betrachtet.
Value
regel_info liefert die Regelspezifikation als Liste und löst bei einer
unbekannten ID einen Fehler aus. regel_katalog liefert eine Liste von
Katalogeinträgen. pruefe_tatbestand liefert eine benannte Liste mit
wert, status, Fassungsinformationen, Eingaben, Entscheidungsschritten,
fehlenden Angaben, entscheidungsrelevanten Lücken und Quellenverweisen. Ein
unbekannter Wert ist NULL; ein falscher Wert ist FALSE.
pruefe_stapel liefert Ergebnisse mit ihren Fall-IDs. Strukturfehler und
doppelte IDs führen zu einem Fehler; ungültige Fakten werden fallbezogen berichtet.
Examples
pruefe_tatbestand(
"AIA_051_002",
list(trainings_flops = "10000000000000000000000001"),
"EUAIACT_2026_07_27"
)$wert
pruefe_tatbestand("AIA_051_002", list(), "EUAIACT_2026_07_27")$status
Lokales JSON-Schema des Ergebnisumschlags
Description
Lädt ausschließlich das mit dem Paket ausgelieferte Schema. Keine Netzwerkzugriffe oder Auflösung externer Referenzen.
Usage
schema_info(schema_id = "ERGEBNIS_0_1_0")
Arguments
schema_id |
Explizite lokale Schema-ID. ERGEBNIS_0_1_0 oder eine Katalogregel-ID mit dem Suffix :EINGABEN. |
Value
Unabhängige benannte Liste mit dem JSON-Schema nach Draft 2020-12. Eingabeschemata erlauben fehlende und null-Werte. Exakte Dezimalgrenzen stehen als Annotationen im Schema und werden nur durch die native Regelauswertung geprüft. Unbekannte IDs lösen einen Fehler aus. Die URI im Schema beschreibt den Standard und wird von der Library nicht aufgerufen.
Examples
schema_info()$required
Versionierte lokale Anhangtabellen
Description
Strukturierte Listen aus den Anhaengen I, II, X, XIII und XIV der Quellenfassung EUAIACT_2026_07_27, ohne Netzwerkzugriff.
Usage
tabellen_katalog()
tabelle_info(tabellen_id)
Arguments
tabellen_id |
Eine Zeichenkette: |
Details
Tabellenmitgliedschaft entscheidet keine individuelle Anwendbarkeit. Sektorale Rechtsakte werden nicht vollstaendig implementiert. Die Maschinenverordnung ist in dieser Fassung Anhang I Abschnitt B Nummer 21 zugeordnet; der gestrichene Eintrag A Nummer 1 ist kein aktueller Datensatz. Codes des Anhangs XIV beschreiben den Notifizierungsumfang, keine automatische Systemzulassung. Datensaetze koennen lokal mit eigenen Daten ueber explizite IDs oder CELEX-Kennungen verbunden werden. Keine automatische Aktualisierung.
Value
tabellen_katalog liefert eine unbenannte Liste von Metadaten mit ID, Version, Quellenfassung, Bezeichnung, Status und Zeilenzahl. tabelle_info liefert eine Liste mit geordneten Spalten und Zeilen, Quellennachweis, Grenzen und Status. Aufrufer koennen ihre Kopie veraendern, ohne den internen Bestand zu aendern. Unbekannte oder ungueltige IDs erzeugen einen Fehler.
Examples
tabellen_katalog()
t <- tabelle_info("ANH_I")
maschinen <- Filter(function(z) z$celex == "32023R1230", t$zeilen)
stopifnot(maschinen[[1]]$abschnitt == "B")