I am trying to research the literature for algorithms to solve a specific problem, but I do not think that I know the correct search term to describe what I am looking for.
The goal is to have the requested rule database, where each rule is defined as tuple conditions — some mandatory, some optional. A request to the system consists of a set of facts about the world and returns a list of all the rules, the mandatory conditions of which correspond to the facts in the request. Each rule is evaluated by the number and time, the weight of the optional conditions, and by matching the list.
So, for example, if I were to use this to write a neighbor matching service, the rules would be something like
alice : { mandatory : { nightowl = no, smoker = no, pets < 2 },
optional : { pets = 0 } }
bob : { mandatory : { nightowl = yes, pets = 0 },
optional : {smoker = no} }
charlie : { mandatory : { musician = no },
optional : {nightowl = yes, pets < 2 } }
and the request will be
( nightowl = no, pets = 1, smoker = no, musician = no )
return
( charlie : 1/1 mandatory matched, 1/2 optional matched,
alice : 3/3 mandatory matched, 0/1 optional matched )
, , , , . , / , . , , -, . , Rete, IF-THEN .
?
, . , , , , . ACM, , .