Skip to content

Instantly share code, notes, and snippets.

View johnymontana's full-sized avatar
🤠
I'm very normal

William Lyon johnymontana

🤠
I'm very normal
View GitHub Profile
@johnymontana
johnymontana / 0_import.cypher
Last active April 12, 2023 15:33
NICAR 2023 Neo4j Workshop
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Parcel) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Subject) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Bill) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Committee) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Legislator) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Trip) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Organization) REQUIRE n.neo4jImportId IS UNIQUE;
CREATE CONSTRAINT IF NOT EXISTS FOR (n:Destination) REQUIRE n.neo4jImportId IS UNIQUE;
CALL apoc.import.json("https://cdn.neo4jlabs.com/data/landgraph/landgraph.json");
@johnymontana
johnymontana / cla.json
Last active August 14, 2019 16:45
CLA contributors
[
"lyonwj",
"johnymontana"
]
type Movie {
_id: Long!
countries: [String]
imdbId: String!
imdbRating: Float
imdbVotes: Int
languages: [String]
movieId: String!
plot: String
poster: String
type Legislator {
bioguideID: String!
birthday: String!
currentParty: String!
district: String
fecIDs: String!
firstName: String!
gender: String!
govtrackID: String!
lastName: String!
import { makeAugmentedSchema, inferSchema } from 'neo4j-graphql-js';
import { ApolloServer } from 'apollo-server';
import { v1 as neo4j } from 'neo4j-driver';
// Create Neo4j driver instance
const driver = neo4j.driver(
process.env.NEO4J_URI || 'bolt://localhost:7687',
neo4j.auth.basic(
process.env.NEO4J_USER || 'neo4j',
process.env.NEO4J_PASSWORD || 'letmein'
@johnymontana
johnymontana / AttendeeGraph.js
Created April 10, 2019 15:30
El Grapho Experiments
import React from "react";
import { Component } from "react";
import { withStyles } from "@material-ui/core/styles";
import neo4j from "neo4j-driver/lib/browser/neo4j-web";
import ElGrapho from "elgrapho";
const styles = theme => ({
});
CREATE CONSTRAINT ON (c:Company) ASSERT c.companyNumber IS UNIQUE;
CREATE CONSTRAINT ON (p:Person) ASSERT (p.birthMonth, p.birthYear, p.name ) IS NODE KEY;
CREATE CONSTRAINT ON (p:Property) ASSERT p.titleNumber IS UNIQUE;
LOAD CSV WITH HEADERS FROM "file:///data/PSCAmericans.csv" AS row
MERGE (c:Company {companyNumber: row.company_number})
MERGE (p:Person {name: row.`data.name`, birthYear: row.`data.date_of_birth.year`, birthMonth: row.`data.date_of_birth.month`})
ON CREATE SET p.nationality = row.`data.nationality`,
p.countryOfResidence = row.`data.country_of_residence`
// TODO: Address
CALL apoc.load.json("file:///Users/lyonwj/Desktop/issue_comments_000001.json") YIELD value
WITH value WHERE value.issue IS NOT NULL
MERGE (ic:IssueComment {url: value.url})
SET ic += value {.body, created_at: DateTime(value.created_at)}
MERGE (u:User {url: value.user})
MERGE (u)-[:AUTHORED]->(ic)
MERGE (r:Issue {url: value.issue})
MERGE (r)-[:HAS_COMMENT]->(ic)
CALL apoc.load.json("file:///Users/lyonwj/Desktop/issues_000001.json") YIELD value
MERGE (i:Issue {url: value.url})
SET i += value {.title, .body, created_at: DateTime(value.created_at), closed_at: DateTime(value.closed_at)}
MERGE (u:User {url: value.user})
MERGE (u)-[:OPENED]->(i)
MERGE (r:Repository {url: value.repository})
MERGE (i)<-[:HAS_ISSUE]-(r)
import { typeDefs } from "./graphql-schema";
import { ApolloServer } from "apollo-server";
import { v1 as neo4j } from "neo4j-driver";
import { makeAugmentedSchema } from "neo4j-graphql-js";
import dotenv from "dotenv";
// set environment variables from ../.env
dotenv.config();
/*