Пример #1
0
def creat_map(record):
    subject_name = record[1]
    original_subject_label = record[2]
    relation_verb = record[3]
    object_name = record[4]
    original_object_label = record[5]
    try:
        query_from_name = graph.run(
            'Match (n) where n.name ="{}" return n'.format(
                subject_name)).data()
        query_to_name = graph.run(
            'Match (n) where n.name ="{}" return n'.format(
                object_name)).data()
    except:
        # print(subject_name)
        # print(subject_name)
        return 0
    #print(query_to_name)
    # 两种方式都可以添加属性
    if not query_from_name:
        from_name = Node(original_subject_label, name=subject_name)
        graph.create(from_name)
    else:
        from_name = query_from_name[0]['n']
        if not from_name.has_label(original_subject_label):
            from_name.add_label(original_subject_label)  # 增加label

    if not query_to_name:
        to_name = Node(original_object_label, name=object_name)
        graph.create(to_name)
    else:
        to_name = query_to_name[0]['n']
        if not to_name.has_label(original_object_label):
            to_name.add_label(original_object_label)  # 增加label
    try:
        Cypher_sql = 'Match (n:%s)-[:%s]->(m:%s) where n.name="%s"and m.name="%s" return m' % (
            original_subject_label, relation_verb, original_object_label,
            subject_name, object_name)
        # print(Cypher_sql)
        relation_exist = graph.run(Cypher_sql).data()
    except:
        return 0
    if not relation_exist:
        map_relation = Relationship(from_name, relation_verb, to_name)
        map_relation['original_subject_label'] = original_subject_label
        map_relation['original_object_label'] = original_object_label
        map_relation['original_text'] = record[6]
        map_relation['original_text_table'] = record[7]
        map_relation['original_text_table_id'] = record[8]
        graph.create(map_relation)
        return 1
    return 2
Пример #2
0
#dic={'n': (_117:pig {age: 10, name: '\u732a\u7238\u7238'})}
# buff=matcher.get(9)
# print(type(buff))

for record in data:
    query_from_name=graph.run("Match (n: pig) where n.name ='{}' return n".format(record[1])).data()
    query_to_name=graph.run("Match (n: pig) where n.name ='{}' return n".format(record[3])).data()
    #print(query_to_name)
    # 两种方式都可以添加属性
    if not query_from_name:
        from_name = Node("pig", name=record[1], age=0)
        graph.create(from_name)
    else:
        from_name=query_from_name[0]['n']

        print(from_name.has_label('zw'))#判断是否有label

        from_name.add_label('zw')#增加label
        print(from_name.has_label('zw'))  # 判断是否有label
    if not query_to_name:
        to_name = Node("pig", name=record[3], age=0)
        graph.create(to_name)
    else:
        to_name=query_to_name[0]['n']
    pig_relation = Relationship(from_name, record[2], to_name,name=record[4])
    pig_relation['count'] = 1
    graph.create(pig_relation)

db.close()
print('end')
'''