Example #1
0
 def create(time_properties):
     query = """
     CREATE (tim:Time $props)
     RETURN tim.entityID as entityID, tim.name as name, tim.des as description
     """
     result = dao.run_write_query(query, props=time_properties).data()
     return convert_date_results_to_string(result)
Example #2
0
    def create_fact(news_id: str, fact_data: Dict):
        query = "MATCH (news:News{entityID: $id_news}), " + \
                    "(sub:" + fact_data['subject_type']+ "{entityID: $id_subject}), " \
                    "(obj:" + fact_data['object_type'] + "{entityID: $id_object}) " \
                "OPTIONAL MATCH (loc:" + fact_data['location_type'] + "{entityID: $id_location})" \
                "OPTIONAL MATCH (time:" + fact_data['time_type'] + "{entityID: $id_time})" \
                "CREATE (fact:Fact{entityID: $id_fact}), " \
                    "(news)-[:HAS_FACT]->(fact), " \
                    "(fact)-[:HAS_SUBJECT_" + fact_data['relation'].replace(" ", "_").upper()+ "]->(sub)," \
                    "(fact)-[:HAS_OBJECT_" + fact_data["relation"].replace(" ", "_").upper()+ "]->(obj) " \
                "FOREACH (_ IN CASE WHEN loc IS NOT NULL THEN [1] ELSE [] END |" \
                    "CREATE (fact)-[:OCCURRED_IN]->(loc) )" \
                "FOREACH (_ IN CASE WHEN time IS NOT NULL THEN [1] ELSE [] END |" \
                    "CREATE (fact)-[:OCCURRED_ON]->(time) )" \
                "RETURN fact.entityID as factID"

        result = dao.run_write_query(
            query, {
                "id_news": news_id,
                "id_location": fact_data['location_id'],
                "id_time": fact_data["time_id"],
                "id_subject": fact_data["subject_id"],
                "id_object": fact_data["object_id"],
                "id_fact": fact_data["entityID"]
            }).data()
        return result
Example #3
0
 def update(agreement_properties: Dict, agr_id: str):
     query = """
         MATCH (agr:Agreement{entityID: $id_agr})
         SET agr = $props
         RETURN agr.entityID as entityID, agr.name as name, agr.des as description
         """
     return dao.run_write_query(query, {"props":agreement_properties, "id_agr": agr_id}).data()
Example #4
0
 def update(location_properties: Dict, loc_id: str):
     query = """
         MATCH (loc:Location{entityID: $id_loc})
         SET loc = $props
         RETURN loc.entityID as entityID, loc.name as name, loc.des as description
         """
     return dao.run_write_query(query, {"props":location_properties, "id_loc": loc_id}).data()
Example #5
0
 def delete_by_id(news_id: str):
     query = """
     MATCH (news:News{entityID: $id_news})
     USING INDEX news:News(entityID)
     OPTIONAL MATCH (news)-[:HAS_FACT]->(fact:Fact)
     DETACH DELETE news, fact
     """
     return dao.run_write_query(query, id_news=news_id).data()
Example #6
0
 def createUser(username, password):
     query = """
     CREATE (usr:User { username: $usr, password: $paswd, isAdmin: $isAd })
     RETURN usr.username as username, usr.password as password, usr.isAdmin as isAdmin
     """
     return dao.run_write_query(query,
                                usr=username,
                                paswd=password,
                                isAd=False).data()
Example #7
0
 def update(event_properties: Dict, event_id: str):
     query = """
         MATCH (event:Event{entityID: $id_event})
         SET event = $props
         RETURN event.entityID as entityID, event.name as name, event.des as description
         """
     return dao.run_write_query(query, {
         "props": event_properties,
         "id_event": event_id
     }).data()
Example #8
0
 def delete_fact(news_id: str, fact_id: str):
     query = """
     MATCH (news:News{entityID: $id_news})-[:HAS_FACT]-(fact:Fact{entityID: $id_fact})
     USING INDEX news:News(entityID)
     DETACH DELETE fact
     """
     return dao.run_write_query(query, {
         "id_news": news_id,
         "id_fact": fact_id
     }).data()
Example #9
0
 def update(country_properties: Dict, cty_id: str):
     query = """
         MATCH (cty:Country{entityID: $id_cty})
         SET cty = $props
         RETURN cty.entityID as entityID, cty.name as name, cty.des as description
         """
     return dao.run_write_query(query, {
         "props": country_properties,
         "id_cty": cty_id
     }).data()
Example #10
0
 def update(person_properties: Dict, per_id: str):
     query = """
         MATCH (per:Person{entityID: $id_per})
         SET per = $props
         RETURN per.entityID as entityID, per.name as name, per.des as description
         """
     return dao.run_write_query(query, {
         "props": person_properties,
         "id_per": per_id
     }).data()
Example #11
0
 def update(organization_properties: Dict, org_id: str):
     query = """
         MATCH (org:Organization{entityID: $id_org})
         SET org = $props
         RETURN org.entityID as entityID, org.name as name, org.des as description
         """
     return dao.run_write_query(query, {
         "props": organization_properties,
         "id_org": org_id
     }).data()
Example #12
0
 def update(time_properties: Dict, tim_id: str):
     query = """
         MATCH (tim:Time{entityID: $id_tim})
         SET tim = $props
         RETURN tim.entityID as entityID, tim.name as name, tim.des as description
         """
     result = dao.run_write_query(query, {
         "props": time_properties,
         "id_tim": tim_id
     }).data()
     return convert_date_results_to_string(result)
Example #13
0
 def update(news_properties: dict, news_id: str):
     query = """
     MATCH (news:News{entityID: $id_news})
     USING INDEX news:News(entityID)
     SET news = $props
     RETURN news.entityID as entityID, news.link as link, news.topics as topics
     """
     return dao.run_write_query(query, {
         "props": news_properties,
         "id_news": news_id
     }).data()
Example #14
0
 def merge_nodes(set_entity_id: List[str]) -> Dict:
     query = """
         UNWIND $entity_id_set as entity_id 
         MATCH (node:Agreement{entityID: entity_id})
         WITH collect(node) as nodes
         CALL apoc.refactor.mergeNodes(nodes, 
                 {properties: {entityID: "discard", name:"combine", des:"combine"},
                 mergeRels:True})
         YIELD node 
         RETURN node.entityID as entityID, node.name as name, node.des as description
         """
     result = dao.run_write_query(query, {"entity_id_set": list(set(set_entity_id))}).data()
     return result
Example #15
0
 def merge_nodes(set_entity_id: List[str], entity_type: str) -> Dict:
     query = """
     UNWIND $entity_id_set as entity_id 
     MATCH (node {entityID: entity_id})
     WHERE $label IN labels(node)
     WITH collect(node) as nodes
     CALL apoc.refactor.mergeNodes(nodes, 
             {properties: {entityID: "discard", name:"combine", des:"combine"},
             mergeRels:True})
     YIELD node 
     RETURN node
     """
     result = dao.run_write_query(query, {
         "entity_id_set": list(set(set_entity_id)),
         "label": entity_type
     }).single()
     if (result):
         merged_node = result["node"]
         return serialize_node_to_dict(merged_node)
     else:
         return {}
Example #16
0
 def create(organization_properties):
     query = """
     CREATE (org:Organization $props)
     RETURN org.entityID as entityID, org.name as name, org.des as description
     """
     return dao.run_write_query(query, props=organization_properties).data()
Example #17
0
 def create(country_properties):
     query = """
     CREATE (cty:Country $props)
     RETURN cty.entityID as entityID, cty.name as name, cty.des as description
     """
     return dao.run_write_query(query, props=country_properties).data()
Example #18
0
 def delete(agr_id):
     query = """
     MATCH (agr: Agreement{entityID: $id_entity})
     DELETE agr
     """
     return dao.run_write_query(query, id_entity=agr_id).data()
Example #19
0
 def create(agreement_properties):
     query = """
     CREATE (agr:Agreement $props)
     RETURN agr.entityID as entityID, agr.name as name, agr.des as description
     """
     return dao.run_write_query(query, props= agreement_properties).data()
Example #20
0
 def delete(org_id):
     query = """
     MATCH (org: Organization{entityID: $id_entity})
     DELETE org
     """
     return dao.run_write_query(query, id_entity=org_id).data()
Example #21
0
 def create(event_properties):
     query = """
     CREATE (event:Event $props)
     RETURN event.entityID as entityID, event.name as name, event.des as description
     """
     return dao.run_write_query(query, props=event_properties).data()
Example #22
0
 def delete(cty_id):
     query = """
     MATCH (cty: Country{entityID: $id_entity})
     DELETE cty
     """
     return dao.run_write_query(query, id_entity=cty_id).data()
Example #23
0
 def create(person_properties):
     query = """
     CREATE (per:Person $props)
     RETURN per.entityID as entityID, per.name as name, per.des as description
     """
     return dao.run_write_query(query, props=person_properties).data()
Example #24
0
 def create(news_properties):
     query = """
     CREATE (news:News $props)
     RETURN news.entityID as entityID, news.link as link, news.topics as topics
     """
     return dao.run_write_query(query, props=news_properties).data()
Example #25
0
 def delete(event_id):
     query = """
     MATCH (event: Event{entityID: $id_entity})
     DELETE event
     """
     return dao.run_write_query(query, id_entity=event_id).data()
Example #26
0
 def delete(loc_id):
     query = """
     MATCH (loc: Location{entityID: $id_entity})
     DELETE loc
     """
     return dao.run_write_query(query, id_entity=loc_id).data()
Example #27
0
 def delete(per_id):
     query = """
     MATCH (per: Person{entityID: $id_entity})
     DELETE per
     """
     return dao.run_write_query(query, id_entity=per_id).data()
Example #28
0
 def delete(tim_id):
     query = """
     MATCH (tim: Time{entityID: $id_entity})
     DELETE tim
     """
     return dao.run_write_query(query, id_entity=tim_id).data()
Example #29
0
 def create(location_properties):
     query = """
     CREATE (loc:Location $props)
     RETURN loc.entityID as entityID, loc.name as name, loc.des as description
     """
     return dao.run_write_query(query, props= location_properties).data()