pdclab/peregrine

About partial order、matching orders

Closed this issue · 2 comments

nldyy commented

Thanks to the open Peregrine‘s source code ,I have some question:
which variables arethe sequence of partial order and matching orders stored?is the partial order is defaulted?matching orders I am not found

nldyy commented

![image](https://user-images.githubusercontent.com/38241803/179702685-df7f0f3c-67e4-4456-802f-fa065dd55c12.png
when I use citeseer to match the pattern in the picture(house pattern,have five vertices), I would like to know how to produce the following sequence of results,why first vertex_cover order is 3311,3304,3309,and why after the 3311,3304,3309 ,the next vertex_cover match is 3309,3304,3311.
image

Hi, thanks for your interest in Peregrine!

The partial ordering is in AnalyzedGraph::conditions. The matching orders are comprised of the core vertices (AnalyzedGraph::vgs) and query sequences (AnalyzedGraph::qs). The vertex cover is matched and then permuted according to query sequences. That's why you see different permutations of the same 3 vertices in your output.

I refer you to the Peregrine paper for the details. The DualSIM paper is also a good resource, and you can always trace through the pattern matching code (you'll specifically be interested in the nonCoreVertexMatching methods in PatternMatching.hh).