Open gabbard opened 4 years ago
A further challenge occurred to me about this: not only do we need to change the matching code itself, but we also need to change the code responsibly for identifying the cause of failed pattern matching (and its uses in places like pattern intersection) to account for a single edge causing a failure even when all nodes would match (e.g. there is one edge present of two requested in the pattern, so to relax the pattern we need to remove just one of the edges, and not either of the nodes).
Note: One big challenge with this is the conversion of the matching algorithm to use EdgePredicates, i.e also checking if the edges match, as currently we only look at the nodes and then check feasibility of edges. A possible alternative is to convert all the edges to nodes, and pretend the relations are also nodes in the graph.
We currently cannot represent multiple relationships between the same objects, which sometimes leads to errors when learning actions. We should asses what the consequences would be of switching to
MultiDiGraphs
. Will our matching algorithms still work? Will it slow down a lot?