def initialize(): #Make sure you have done a neo4j start before this g = Graph() # uses default server address to connect g.add_proxy("article", Article) g.add_proxy("referral", Referral) return g
def create_models(names=vertex_names): g = Graph(config) g.add_proxy("people", Person) g.add_proxy("knows", Knows) for name in names: model = g.people.create(name=name) return g
name = String(nullable=False) region = String(nullable=False) security = Float() class IsConnectedTo(Relationship): label = "is_connected_to" conn = sqlite3.connect(os.path.expanduser("~/eve.db")) conn.row_factory = sqlite3.Row # populate graph from bulbs.neo4jserver import Graph, Config, NEO4J_URI g = Graph(Config(NEO4J_URI, "neo4j", "key")) g.add_proxy("system", System) g.add_proxy("is_connected_to", IsConnectedTo) systems = {} for item in g.V[1::]: systems[item.get("id")] = item def id_to_name(i): c = conn.cursor() c.execute("select solarSystemName from mapSolarSystems where solarSystemID=?", (i, )) return c.fetchone()[0] def distance_between(f, t): print f, t c = conn.cursor()
from bulbs.utils import current_datetime from bulbs.neo4jserver import Graph nltk.download('wordnet') # wn.synsets('dog') # len(wn.all_lemma_names()) # 140k words class Lemma(Node): element_type = "lemma" name = String(nullable=False) g = Graph() g.add_proxy("lemma", Lemma) # >>> g.add_proxy("knows", Knows) # >>> james = g.people.create(name="James") # >>> julie = g.people.create(name="Julie") # >>> g.knows.create(james, julie) import progressbar as pb N = 150000 for N, ln in enumerate(wn.all_lemma_names()): pass widgets = [ pb.Counter(), '%d rows: ' % N,
from celery import task from bulbs.neo4jserver import Graph from .models import * import pyping g = Graph() g.add_proxy('m', Measure) g.add_proxy('t', Trigger) g.add_proxy('tv', TriggerValue) @task def run(): print "run" for measure in g.m.get_all(): print measure.operation evaluate.delay(measure.operation, measure.uuid) for trigger in g.t.get_all(): control.delay(trigger) @task def evaluate(op, base): print "evaluate" print op print base ops = op.split(')')[0] ops = ops.split('(')
from bulbs.property import String, Integer, DateTime from bulbs.utils import current_datetime from bulbs.neo4jserver import Graph nltk.download('wordnet') # wn.synsets('dog') # len(wn.all_lemma_names()) # 140k words class Lemma(Node): element_type = "lemma" name = String(nullable=False) g = Graph() g.add_proxy("lemma", Lemma) # >>> g.add_proxy("knows", Knows) # >>> james = g.people.create(name="James") # >>> julie = g.people.create(name="Julie") # >>> g.knows.create(james, julie) import progressbar as pb N = 150000 for N, ln in enumerate(wn.all_lemma_names()): pass widgets = [pb.Counter(), '%d rows: ' % N, pb.Percentage(), ' ', pb.RotatingMarker(), ' ', pb.Bar(),' ', pb.ETA()] pbar = pb.ProgressBar(widgets=widgets, maxval=N).start()
def add_song(graph, song): artist, name, url, ts = song record = graph.song.get_or_create('name', name, name=name, artist=artist, url=url) return record def zip_db(db, prev=()): _tmp_db = copy(db) _tmp_db.insert(0, prev) _tmp_db.pop() return zip(db, _tmp_db) if __name__ == '__main__': g = Graph() g.add_proxy('song', Song) g.add_proxy('followed_by', FollowedBy) # db = pickle.load(open('db/tracks-00001.db')) # add_to_graph(g, db[1], db[0]) prev=() db_files = glob('db/tracks*') for db_file in db_files: print 'processing %s file right now...' % db_file db = pickle.load(open(db_file)) pbar = ProgressBar(widgets=WIDGETS, maxval=200).start() for i, (antes, depois) in enumerate(zip_db(db, prev)): if depois: add_to_graph(g, antes, depois)
label = "knows" created = DateTime(default=current_datetime, nullable=False) #from people import Person, Knows from bulbs.neo4jserver import Graph def build_parser(): parser = argparse.ArgumentParser(conflict_handler='resolve') parser.add_argument('-w', '--worker', action='store_true') return parser if __name__ == '__main__': parser = build_parser() args = parser.parse_args() g = Graph() g.config.set_logger(DEBUG) g.add_proxy("people", Person) g.add_proxy("knows", Knows) james = g.people.create(name="James") julie = g.people.create(name="Julie") relationship = g.knows.create(james, julie) friends = james.outV('knows') friends = julie.inV('knows') print relationship.data() from IPython import Shell Shell.IPShellEmbed(argv=['-noconfirm_exit'])()
region = String(nullable=False) security = Float() class IsConnectedTo(Relationship): label = "is_connected_to" conn = sqlite3.connect(os.path.expanduser("~/eve.db")) conn.row_factory = sqlite3.Row # populate graph from bulbs.neo4jserver import Graph, Config, NEO4J_URI g = Graph(Config(NEO4J_URI, "neo4j", "key")) g.add_proxy("system", System) g.add_proxy("is_connected_to", IsConnectedTo) systems = {} for item in g.V[1::]: systems[item.get("id")] = item def id_to_name(i): c = conn.cursor() c.execute("select solarSystemName from mapSolarSystems where solarSystemID=?", (i,)) return c.fetchone()[0] def distance_between(f, t):
g.describes.create(itf, varNode) print "Adding relationship..." selector = g.selects.create(impl, varNode, value_type=0, value=config[varName]) else: print " Updating current impl" count = count + 1 ## if __name__ == "__main__": g = Graph() print "Initialized graph." g.add_proxy("interfaces", Interface) g.add_proxy("templates", Template) g.add_proxy("implems", TemplateImplem) g.add_proxy("variables", ConfigVariable) g.add_proxy("describes", Describes) g.add_proxy("depends", Depends) g.add_proxy("implements", Implements) g.add_proxy("selects", Selects) print "Added structure to graph" """ For this test, we'll assume that the qualifier's value is: PROVIDED: 0 REQUIRED: 1
""" def _tripletGenerator(): #starts at the first word and goes forward if len(s) < 3: return for i in range(len(s) - 2): #generator, so we're independent of input file size words = [s[i], s[i+1], s[i+2]] yield words sen = "END this is a sentence END" s = sen.split() if __name__ == '__main__': g = Graph() g.clear() g.add_proxy("key", Key) g.add_proxy("link", Link) print(s) prev = '' prevg = g.vertices.create(data=prev) for words in _tripletGenerator(): curr = ' '.join(words) print(curr) currg = g.vertices.create(data=curr) g.edges.create(prevg, "link", currg) prevg = currg
from django.http import HttpResponseRedirect from django.shortcuts import render_to_response from django import forms from .models import * from inventory.models import * from monitor.tasks import * from bulbs.neo4jserver import Graph from django.template import RequestContext g = Graph() g.add_proxy('nd', NetworkDevice) g.add_proxy('i', Interface) g.add_proxy('l', Link) g.add_proxy('m', Measure) g.add_proxy('t', Trigger) g.add_proxy('tv', TriggerValue) g.add_proxy('connects', Connects) g.add_proxy('measures', Measures) g.add_proxy('has_trigger', HasTrigger) g.add_proxy('has_value', HasValue) g.add_proxy('has_state', HasState) class MeasureForm(forms.Form): component = forms.ChoiceField(choices = [ ("Nodes",[(x.eid,x.name) for x in g.nd.get_all()]), ("Links", [(z.eid,"%s-%s <-> %s-%s" % ( [b for b in [a for a in z.inV()][0].inV()][0].name,
from settlers import Tile, Adjacency, TileEdge, TileVertex from constants import * from bulbs.neo4jserver import Graph, Config import os, random, itertools from collections import defaultdict, Iterable config = Config('http://192.168.1.14:7474/db/data/') g = Graph(config) g.add_proxy('tiles', Tile) g.add_proxy('touches', Adjacency) g.add_proxy('sides', TileEdge) g.add_proxy('corners', TileVertex) def configure_model(): vertex_dict = defaultdict(lambda: defaultdict(dict)) edge_dict = defaultdict(dict) def mk_ti(**kwargs): return g.tiles.create(**kwargs) def mk_to(src, dst): return g.touches.create(src, 'touches', dst) def mk_s(src, dst, **data): h, t = sorted([src, dst], key=lambda x: x._id if hasattr(x, '_id') else 0) if not t in edge_dict[h]: edge_dict[h][t] = g.sides.create(src, dst, **data) return edge_dict[h][t]
import datetime import codecs import os # Import the bulbs graph ORM from bulbs.neo4jserver import Graph, ExactIndex from relationships import * from bulbs.element import Vertex # Import XML parser import xml.etree.ElementTree as ET print "Starting processing at ", datetime.datetime.now() # Neo4J Test g = Graph() g.add_proxy("agents", Agent) g.add_proxy("places", Place) g.add_proxy("documents", Document) g.add_proxy("associated", AssociatedWith) g.add_proxy("corresponded", CorrespondedWith) g.add_proxy("referencedIn", ReferencedIn) g.add_proxy("location", Location) g.vertices.occindex = g.factory.get_index(Vertex, ExactIndex, "occupationIndex") g.vertices.subindex = g.factory.get_index(Vertex, ExactIndex, "subjectIndex") #print g #print "Vertices:", g.V #print "Edges:" , g.E # XML Test namespaces = { "snac" : "urn:isbn:1-931666-33-4" ,
#!/usr/bin/env python # -*- coding: utf-8 -*- # from py2neo import neo4j, node, rel from bulbs.config import DEBUG from bulbs.neo4jserver import Graph, Config, NEO4J_URI from message import Message, IsRetweet # models from datetime import datetime # setup config = Config(NEO4J_URI, "james", "secret") g = Graph(config) # g.config.set_logger(DEBUG) # g.add_proxy("message", Message) g.add_proxy("tweet", Message) g.add_proxy("isRT", IsRetweet) # create node m1 = g.tweet.create(text="salut", created_at=datetime.now()) m2 = g.tweet.create(text="re-salut", created_at=datetime.now()) # nodes = g.tweet.index.lookup(text="salut") # create edge rt = g.isRT.create(m2, m1) # Connect to neo4j # graph_db = neo4j.GraphDatabaseService("http://localhost:7474/db/data/"
from django.http import HttpResponseRedirect, HttpResponse from django.shortcuts import render_to_response from django import forms import json from .models import * from .tasks import * from bulbs.neo4jserver import Graph from django.template import RequestContext g = Graph() g.add_proxy('nd', NetworkDevice) g.add_proxy('i', Interface) g.add_proxy('st', Storage) g.add_proxy('se', Service) g.add_proxy('a', SSHAgent) g.add_proxy('l', Link) g.add_proxy('contains', Contains) g.add_proxy('connects', Connects) class NetworkDeviceForm(forms.Form): name = forms.CharField() ip=forms.CharField() virtual = forms.BooleanField(required=False) class InterfaceForm(forms.Form): name = forms.CharField()
class Knows(Relationship): autoindex=True label = "knows" created = DateTime(default=current_datetime, nullable=False) #from people import Person, Knows from bulbs.neo4jserver import Graph def build_parser(): parser = argparse.ArgumentParser(conflict_handler='resolve') parser.add_argument('-w', '--worker', action='store_true') return parser if __name__ == '__main__': parser = build_parser() args = parser.parse_args() g = Graph() g.config.set_logger(DEBUG) g.add_proxy("people", Person) g.add_proxy("knows", Knows) james = g.people.create(name="James") julie = g.people.create(name="Julie") relationship = g.knows.create(james, julie) friends = james.outV('knows') friends = julie.inV('knows') print relationship.data() from IPython import Shell; Shell.IPShellEmbed(argv=['-noconfirm_exit'])()
class PresynapticTo(Relationship): label = "presynaptic_to" class PostsynapticTo(Relationship): label = "postsynaptic_to" #### # Test #### g = Graph() g.add_proxy("neuron", Neuron) g.add_proxy("treenode", Treenode) g.add_proxy("connector", Connector) g.add_proxy("has_child", HasChild) g.add_proxy("has_treenode", HasTreenode) g.add_proxy("presynaptic_to", PresynapticTo) g.add_proxy("postsynaptic_to", PostsynapticTo) # create a few objects neuron1 = g.neuron.create(name="MyNeuron1") neuron2 = g.neuron.create(name="MyNeuron2") neuron3 = g.neuron.create(name="MyNeuron3") treenode1 = g.treenode.create(x=3.3, y=4.3, z=3.2) treenode11 = g.treenode.create(x=3.3, y=4.3, z=3.2) treenode2 = g.treenode.create(x=3.3, y=4.3, z=3.2)
class HasTreenode(Relationship): label = "has_treenode" class PresynapticTo(Relationship): label = "presynaptic_to" class PostsynapticTo(Relationship): label = "postsynaptic_to" #### # Test #### g = Graph() g.add_proxy("neuron", Neuron) g.add_proxy("treenode", Treenode) g.add_proxy("connector", Connector) g.add_proxy("has_child", HasChild) g.add_proxy("has_treenode", HasTreenode) g.add_proxy("presynaptic_to", PresynapticTo) g.add_proxy("postsynaptic_to", PostsynapticTo) # create a few objects neuron1 = g.neuron.create(name="MyNeuron1") neuron2 = g.neuron.create(name="MyNeuron2") neuron3 = g.neuron.create(name="MyNeuron3") treenode1 = g.treenode.create(x=3.3,y=4.3,z=3.2) treenode11 = g.treenode.create(x=3.3,y=4.3,z=3.2) treenode2 = g.treenode.create(x=3.3,y=4.3,z=3.2)
class Employee(Relationship): label = 'Employee' class Has(Relationship): label = 'Has' # ToDo: automatic registering of all ckases and relations! node_types = (Company, Person, Email, Domain, City, Zipcode, Street, Address, Product, Customer) relation_types = (Contact, AddressCity, AddressZipcode, AddressStreet, Employee, Has, Location) for node_type in node_types: graph.add_proxy(node_type.element_type, node_type) for relation_type in relation_types: graph.add_proxy(relation_type.label, relation_type) def test_read( file_in=r"P:\data\source\kpn\swol_marketing\odin\2012-11-14\extract\odin_dump-small.csv", count=1000, every=10, offset=0): prev = datetime.datetime.now() for i, row in enumerate(StringReader(file_in)): if i < offset: continue if i % every == 0: print i, datetime.datetime.now(), (datetime.datetime.now() -
from settlers import Tile, Adjacency, TileEdge, TileVertex from constants import * from bulbs.neo4jserver import Graph, Config import os, random, itertools from collections import defaultdict, Iterable config = Config('http://192.168.1.14:7474/db/data/') g = Graph(config) g.add_proxy('tiles', Tile) g.add_proxy('touches', Adjacency) g.add_proxy('sides', TileEdge) g.add_proxy('corners', TileVertex) def configure_model(): vertex_dict = defaultdict(lambda: defaultdict(dict)) edge_dict = defaultdict(dict) def mk_ti(**kwargs): return g.tiles.create(**kwargs) def mk_to(src, dst): return g.touches.create(src, 'touches', dst) def mk_s(src, dst, **data): h, t = sorted([src, dst], key=lambda x: x._id if hasattr(x, '_id') else 0) if not t in edge_dict[h]: edge_dict[h][t] = g.sides.create(src, dst, **data) return edge_dict[h][t] def mk_c(x,y,v): coords = v_coords(x,y,v) vert = None