I have a problem that I think should have been studied. I am looking for algorithms for it.
Each item is a set of key-value pairs. Let $x$ be an item and $F$ be a set of items.
Each key and each value can appear multiple times. The number of possible keys and possible values can be arbitrary large.
We are given $x$ and $F$. We want to find all those items $y$ in $F$ such that $y.val \subseteq x$.
For example,
$x = \{(a,1), (b,2), (c,3), (d,4)\}$
$F= \{$
$(A, \{(a,1)\}), $
$(B, \{(a,1), (b,2)\}),$
$(C, \{(a,1), (b,3)\}),$
$(D, \{(b,2), (c,3), (d,4)\}),$
$(E, \{(a,1), (b,2), (c,3), (d,4)\}),$
$(F, \{(a,1), (b,2), (c,3), (d,4), (e,5)\}),$
$(G, \{(a,1), (b,2), (c,3), (e,5)\})$
$\}$
The answer is: $A$ yes, $B$ yes, $C$ no (right keys, wrong values), $D$ yes, $E$ yes (exact match), $F$ no, $G$ no.
Has this problem been studied?
The problem seems similar to finding features from a DNA sequence or detecting plagiarism in a document.