Example #1
0
def prepare_params(args):
    if args.t == None:
        args.t = args.max_time
    monitoring_marks = utils.generate_monitoring_marks(args.t, args.max_time)
    try:
        data_graph = nx.read_gpickle(args.d)
    except:
        data_graph = nx.read_gml(args.d)

    pattern = nx.read_gml(args.p)
    if (not (os.path.exists(args.o))):
        os.makedirs(args.o)

    # DETERMINING ROOT NODE
    if args.root_node_name == None or args.root_node_id == None:
        ####hops make this faster
        hist = analyzer.get_sorted_labels_by_occurence_frequency_in_graph_hops(
            data_graph)
        ###
        #max degree node in pattern (hoPS)
        max_degree_nodes = None  #analyzer.get_maximum_degree_nodes(pattern)
        root_node, root_node_predicate_name = utils.choose_root_node(
            pattern, None, hist, max_degree_nodes)
    else:
        root_node = args.root_node_id
        root_node_predicate_name = args.root_node_name

    # get images of root node in the data graph
    root_nodes = [
        x for x in data_graph.nodes()
        if data_graph.node[x]['predicate'] == root_node_predicate_name
    ]
    OBdecomp = OBDsearch.get_heuristic4_OBD(pattern, startNode=root_node)
    if OBdecomp == None:
        no_obd_decomp = True
        OBdecomp = OBDsearch.get_flatList(pattern, startNode=root_node)
    Plist = [item for sublist in OBdecomp for item in sublist]
    return data_graph, pattern, OBdecomp, root_node, root_node_predicate_name, args.t, args.max_time, monitoring_marks, root_nodes, Plist
Example #2
0
                        default=None,
                        help='name of a root node')
    args = parser.parse_args()

    #Preparing the inputs
    data_graph, pattern, OBdecomp, root_node, root_node_predicate_name, interval, max_time, monitoring_marks, root_nodes, Plist = prepare_inputs.prepare_params(
        args)
    output_folder = 'fk_AD_results'
    output_path = os.path.join(args.o, output_folder)
    if not os.path.exists(output_path):
        os.makedirs(output_path)

    if OBdecomp != None:
        OBdecomp_false = [[item] for sublist in OBdecomp for item in sublist]
    else:
        OBdecomp_false = OBDsearch.get_flatList(pattern, startNode=root_node)

    #Main procedure
    monitoring_reports = {}
    all_furer_times = []
    fudicts = []
    average_time = 0
    start = time.time()

    m, estimates = get_nr_embedding(data_graph, pattern, OBdecomp_false,
                                    root_node_predicate_name, monitoring_marks)

    end = time.time()
    average_time += end - start
    fdictionaries_Furer = globals_sampling.globalist_furer
    times_Furer = globals_sampling.globaltimes_furer[1:]