Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
	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()
Exemple #4
0
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,
Exemple #5
0
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('(')
Exemple #6
0
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()
Exemple #7
0
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)
Exemple #8
0
    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'])()
Exemple #9
0
    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):
Exemple #10
0
			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
Exemple #11
0
"""
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
Exemple #12
0
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,
Exemple #13
0
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" ,
Exemple #15
0
#!/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/"
Exemple #16
0
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'])()
Exemple #18
0

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)
Exemple #19
0
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() -
Exemple #21
0
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