|
|
@@ -0,0 +1,91 @@ |
|
|
from py2neo import Node, Graph, Relationship, PropertyDict |
|
|
from db.types import GraphLabel, GraphRelationship |
|
|
|
|
|
graph_url = 'http://localhost:7474/db/data/' |
|
|
|
|
|
graph_db = Graph(graph_url) |
|
|
|
|
|
# delete everything |
|
|
graph_db.delete_all() |
|
|
|
|
|
publication_label = 'PUBLICATION' |
|
|
paper_label = 'PAPER' |
|
|
author_label = 'AUTHOR' |
|
|
|
|
|
publication = { |
|
|
'label':publication_label, |
|
|
'properties': { |
|
|
'title':'publication name', |
|
|
'topics':['science', 'kittens', 'rainbows'] |
|
|
} |
|
|
} |
|
|
|
|
|
publication_node = Node(publication_label, **publication['properties']) |
|
|
|
|
|
paper_1 = { |
|
|
'label':paper_label, |
|
|
'properties': { |
|
|
'title':'paper 1 title', |
|
|
'date_published': '9/9/2009' |
|
|
} |
|
|
} |
|
|
|
|
|
paper_1_node = Node(paper_label, **paper_1['properties']) |
|
|
|
|
|
paper_2 = { |
|
|
'label':paper_label, |
|
|
'properties':{ |
|
|
'title':'paper 2 title', |
|
|
'date_published':'10/10/2010' |
|
|
} |
|
|
} |
|
|
|
|
|
paper_2_node = Node(paper_label, **paper_2['properties']) |
|
|
|
|
|
author_1 = { |
|
|
'label':author_label, |
|
|
'properties':{ |
|
|
'first_name':'First_1', |
|
|
'last_name': 'Last_1' |
|
|
} |
|
|
} |
|
|
|
|
|
author_1_node = Node(author_label, **author_1['properties']) |
|
|
|
|
|
author_2 = { |
|
|
'label':author_label, |
|
|
'properties':{ |
|
|
'first_name': 'First_2', |
|
|
'last_name': 'Last_2' |
|
|
} |
|
|
} |
|
|
|
|
|
author_2_node = Node(author_label, **author_2['properties']) |
|
|
|
|
|
# build up the nodes which are our publications, papers, and authors |
|
|
# we could do this in a loop |
|
|
# node_list = [publication, paper_1, paper_2, author_1, author_2] |
|
|
# for node in node_list: |
|
|
# new_node = Node(node['label'], **node['properties']) |
|
|
# print new_node |
|
|
# graph_db.merge(new_node) |
|
|
|
|
|
cited = 'CITED' |
|
|
published = 'PUBLISHED' |
|
|
authored = 'AUTHORED' |
|
|
|
|
|
# create publication and paper relationships |
|
|
published_paper_relationship = Relationship(publication_node, published, paper_1_node) |
|
|
graph_db.merge(published_paper_relationship) |
|
|
published_paper_relationship = Relationship(publication_node, published, paper_2_node) |
|
|
graph_db.merge(published_paper_relationship) |
|
|
|
|
|
# create paper and author relationships |
|
|
paper_author_relationship = Relationship(author_1_node, authored, paper_1_node) |
|
|
graph_db.merge(paper_author_relationship) |
|
|
paper_author_relationship = Relationship(author_2_node, authored, paper_2_node) |
|
|
graph_db.merge(paper_author_relationship) |
|
|
|
|
|
# create paper citation relationships |
|
|
paper_citation_relationship = Relationship(paper_1_node, cited, paper_2_node) |
|
|
graph_db.merge(paper_citation_relationship) |