public function addRelationship($start, $end, $type, array $properties = array())
    {
        $sa = 'r'.sha1($start.microtime());
        $es = 'r'.sha1($end.microtime());
        $q = 'MERGE ('.$sa.' { neogen_id: "'.$start.'" }) ';
        $q .= 'MERGE ('.$es.' { neogen_id: "'.$end.'" }) ';

        if (!empty($properties)) {
            $props = ' { ';
            $i = 0;
            $max = count($properties);
            foreach ($properties as $key => $value) {
                if (is_string($value)) {
                    $val = '"'.htmlentities($value, ENT_QUOTES, 'UTF-8').'"';
                } elseif (is_int($value)) {
                    $val = 'toInt('.$value.')';
                } elseif (is_float($value)) {
                    $val = 'toFloat('.$value.')';
                } else {
                    $val = htmlentities($value);
                }
                $props .= $key.':'.$val;
                if ($i < $max-1) {
                    $props .= ',';
                }

                $i++;
            }

            $props .= '}';
        } else {
            $props = '';
        }

        $q .= 'MERGE ('.$sa.')-[:'.$type.$props.']->('.$es.') ';
        if (!empty($props)) {
            //print_r($q);
            //exit();
        }

        return $q;
    }