Skip to content

Instantly share code, notes, and snippets.

@ReedJessen
Last active January 6, 2017 00:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ReedJessen/224a49a6736b3232f865fcfb5481f890 to your computer and use it in GitHub Desktop.
Save ReedJessen/224a49a6736b3232f865fcfb5481f890 to your computer and use it in GitHub Desktop.
Runtime for building an Neo4j graph from IP Street Patent Data
from neo4j_writer import Neo4jWriter
from entity_models import Person, Patent, Company
from IPStreet import client, query


if __name__ == '__main__':

    # Instantiate neo4j writer and IP Street client
    writer = Neo4jWriter()
    client = client.Client('YOUR_API_KEY',2)

    # Prep and send IP Street query
    query = query.PatentData()
    query.add_owner('Magic Leap, Inc.')
    results = client.send(query)


    # Write all patent nodes
    for patent in results:
        print(patent)
        # Write all patent nodes
        patent_node = Patent()
        patent_node.grant_number = patent['grant_number']
        patent_node.publication_number = patent['publication_number']
        patent_node.title = patent['title']
        patent_node.application_date = patent['application_date']
        writer.write_patent(patent_node)

        inventors = patent['inventor'].split(';')
        for inventor in inventors:
            person_node = Person()
            person_node.full_name = inventor
            writer.write_person(person_node)
            writer.write_person_to_patent(person_node,patent_node)

        companies = patent['owner'].split(';')
        for company in companies:
            company_node = Company()
            company_node.full_name = company
            writer.write_company(company_node)
            writer.write_company_to_patent(company_node,patent_node)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment