У меня есть задача сопоставить несколько событий(фактов) друг с другом по некоторым их свойствам. В результате совпадения событий должно быть сгенерировано некоторое действие. Действие может быть сгенерировано при совпадении событий всех существующих типов.
Есть ли какой-нибудь алгоритм, который можно было бы использовать для такой задачи? Или любое направление?
Спасибо
Пример. У нас есть несколько событий с разными типами и свойствами. Тип SEEN является кумулятивным событием (несколько событий могут быть объединены для сопоставления), а тип FOUND — нет.
Event 1 (SEEN):
DATE="2009-09-30"
EYES_COLOR="BLUE"
LEFT_SOCK_COLOR="RED"
Event 2 (SEEN):
DATE="2009-09-30"
EYES_COLOR="BLUE"
RIGHT_SOCK_COLOR="GREEN"
Event 3 (FOUND):
DATE="2009-09-30"
EYES_COLOR="BLUE"
LEFT_SOCK_COLOR="BLUE"
RIGHT_SOCK_COLOR="GREEN"
PLACE="MARKET"
Event 4 (FOUND):
DATE="2009-09-30"
EYES_COLOR="BLUE"
LEFT_SOCK_COLOR="GREEN"
PLACE="SHOP"
Event 5 (FOUND):
DATE="2009-09-30"
EYES_COLOR="BLUE"
PLACE="AIRPORT"
Для вышеуказанных событий должны быть сгенерированы такие действия (путем составления совпадающих событий):
Action 1_2_3:
DATE="2009-09-30"
EYES_COLOR="BLUE"
LEFT_SOCK_COLOR="RED"
RIGHT_SOCK_COLOR="GREEN"
PLACE="MARKET"
Action 2_4:
DATE="2009-09-30"
EYES_COLOR="BLUE"
LEFT_SOCK_COLOR="GREEN"
PLACE="SHOP"
Означает:
Event 1 + Event 2 + Event 3 => Action 1_2_3
Event 2 + Event 4 => Action 2_4
Event 5 does not match with anything.