Spaces:

POMS-QA-LogicLLM / knowledge_base.pl
npc0's picture
Update knowledge_base.pl
988bedd verified
% Entity types
program('SSI').
law('PRWORA').
law('P.L._105-306').
law('Noncitizen_Benefit_Clarification_and_Other_Technical_Amendments_Act_of_1998').
law('INA').
law('NACARA').
law('HRIFA').
law('CAA66').
law('Refugee_Education_Assistance_Act_of_1980').
alien_category('Qualified_Alien').
alien_category('Nonqualified_Alien').
alien_category('LAPR').
ethnicity('American_Indian').
ethnicity('Amerasian_Immigrant').
organization('Federally_Recognized_Indian_Tribe').
organization('U.S._Armed_Forces').
status('PRUCOL').
status('Refugee').
status('Asylee').
status('Deportation_Withheld').
status('Removal_Withheld').
status('Conditional_Entrant').
status('Cuban_Haitian_Entrant').
status('Parolee').
status('Battered_Alien').
status('Compact_Of_Free_Association_States_Citizen').
condition('Blind').
condition('Disabled').
time_period('7_Years').
% SSI eligibility requirements for aliens
eligibility_requirement('SSI', 'Qualified_Alien').
eligibility_requirement('SSI', 'Exception_Condition').
% PRWORA applicability
applies_to('PRWORA', 'SSI', 'Alien_Applicants').
applies_to('INA', 'Refugee', 'Section_207').
applies_to('INA', 'Asylee', 'Section_208').
applies_to('INA', 'Deportation_Withheld', 'Section_243_h').
applies_to('INA', 'Removal_Withheld', 'Section_241_b_3').
applies_to('INA', 'Conditional_Entrant', 'Section_203_a_7').
applies_to('INA', 'Parolee', 'Section_212_d_5').
% General SSI eligibility rule
eligible_for_ssi(Person) :-
(us_citizen(Person); us_national(Person));
american_indian_exception(Person);
grandfathered_ssi_recipient(Person);
qualified_alien_eligible(Person).
% American Indian exception
american_indian_exception(Person) :-
(ethnicity(Person, 'American_Indian'),
born_in_canada(Person),
indian_blood_percentage(Person, Percentage),
Percentage >= 50);
member(Person, 'Federally_Recognized_Indian_Tribe').
% Grandfathered SSI recipient
grandfathered_ssi_recipient(Person) :-
receiving_ssi_before(Person, date(1979, 1, 1));
(not_qualified_alien(Person),
receiving_ssi_on(Person, date(1996, 8, 22)),
prucol_status_continues(Person)).
% Qualified Alien eligibility
qualified_alien_eligible(Person) :-
qualified_alien_status(Person),
(blind_or_disabled_1996(Person);
lawfully_residing_and_receiving_ssi_1996(Person);
has_40_qualifying_quarters(Person);
military_connection(Person);
time_limited_eligibility(Person)).
% Blind or disabled in 1996
blind_or_disabled_1996(Person) :-
lawfully_residing(Person, 'U.S.', date(1996, 8, 22)),
(condition(Person, 'Blind'); condition(Person, 'Disabled')).
% Lawfully residing and receiving SSI in 1996
lawfully_residing_and_receiving_ssi_1996(Person) :-
lawfully_residing(Person, 'U.S.', date(1996, 8, 22)),
receiving_ssi_on(Person, date(1996, 8, 22)).
% Military connection
military_connection(Person) :-
(veteran(Person, 'U.S._Armed_Forces');
active_duty(Person, 'U.S._Armed_Forces');
spouse_of_veteran_or_active_duty(Person);
dependent_child_of_veteran_or_active_duty(Person)).
% Time-limited eligibility (7-year rule)
time_limited_eligibility(Person) :-
member(Status, ['Refugee', 'Asylee', 'Deportation_Withheld', 'Removal_Withheld', 'Cuban_Haitian_Entrant', 'Amerasian_Immigrant']),
status_granted_within_7_years(Person, Status).
% Specific alien category eligibility rules
refugee_eligible(Person) :-
status(Person, 'Refugee'),
(blind_or_disabled_1996(Person);
lawfully_residing_and_receiving_ssi_1996(Person);
military_connection(Person);
status_granted_within_7_years(Person, 'Refugee')).
asylee_eligible(Person) :-
status(Person, 'Asylee'),
(blind_or_disabled_1996(Person);
lawfully_residing_and_receiving_ssi_1996(Person);
military_connection(Person);
status_granted_within_7_years(Person, 'Asylee')).
deportation_removal_withheld_eligible(Person) :-
(status(Person, 'Deportation_Withheld'); status(Person, 'Removal_Withheld')),
(blind_or_disabled_1996(Person);
lawfully_residing_and_receiving_ssi_1996(Person);
military_connection(Person);
status_granted_within_7_years(Person, 'Deportation_Withheld');
status_granted_within_7_years(Person, 'Removal_Withheld')).
conditional_entrant_eligible(Person) :-
status(Person, 'Conditional_Entrant'),
(blind_or_disabled_1996(Person);
lawfully_residing_and_receiving_ssi_1996(Person);
military_connection(Person)).
cuban_haitian_entrant_eligible(Person) :-
status(Person, 'Cuban_Haitian_Entrant'),
(blind_or_disabled_1996(Person);
lawfully_residing_and_receiving_ssi_1996(Person);
military_connection(Person);
status_granted_within_7_years(Person, 'Cuban_Haitian_Entrant')).
parolee_eligible(Person) :-
status(Person, 'Parolee'),
parolee_for_at_least_1_year(Person),
(blind_or_disabled_1996(Person);
lawfully_residing_and_receiving_ssi_1996(Person);
military_connection(Person);
status_granted_within_7_years(Person, 'Cuban_Haitian_Entrant')).
battered_alien_eligible(Person) :-
status(Person, 'Battered_Alien'),
(blind_or_disabled_1996(Person);
lawfully_residing_and_receiving_ssi_1996(Person);
military_connection(Person)).
% Compact of Free Association States citizens are ineligible
compact_of_free_association_states_citizen_eligible(Person) :-
status(Person, 'Compact_Of_Free_Association_States_Citizen'),
fail.
% Loss of eligibility
loses_eligibility(Person, Date) :-
qualified_alien_status(Person),
(loses_7_year_eligibility(Person, Date);
loses_military_connection(Person, Date);
loses_40_quarters(Person, Date)).
% Helper predicates (to be defined elsewhere)
us_citizen(_).
us_national(_).
ethnicity(_, _).
born_in_canada(_).
indian_blood_percentage(_, _).
member(_, _).
receiving_ssi_before(_, _).
not_qualified_alien(_).
receiving_ssi_on(_, _).
prucol_status_continues(_).
qualified_alien_status(_).
qualified_alien_status(_, _).
lawfully_residing(_, _, _).
blind(_).
disabled(_).
has_40_qualifying_quarters(_).
veteran(_, _).
active_duty(_, _).
spouse_of_veteran_or_active_duty(_).
dependent_child_of_veteran_or_active_duty(_).
status_granted_within_7_years(_, _).
nationality(_, _).
adjusted_status_under(_, _).
loses_7_year_eligibility(_, _).
loses_military_connection(_, _).
loses_40_quarters(_, _).
parolee_for_at_least_1_year(_).
condition(_, _).
status(_, _).