[Neo] neo4j for qualitative data analysis

Johan Svensson johan at neotechnology.com
Mon Apr 6 17:40:44 CEST 2009


Hello David,

On Mon, Apr 6, 2009 at 4:59 PM, David Lawrence Epstein
<davideps at umich.edu> wrote:
> Hello,
>
> I am a PhD student and have been looking for a database to use to
> store and search interconnected data, mostly qualitative notes. They
> may have a range of fields depending if they are about a person,
> place, book, event, etc. Everything will eventually have many-to-many
> connections.
>

Great, we should be a good fit then!

> I've worked with dedicated qualitative data analysis programs and
> found them convenient for data entry but confining in terms of
> structure and slow and primitive for searching. The ontology tool,
> Protege, is very cool but gets bogged down quickly. I've tried to use
> Microsoft Access. It has fantastic "form" making tools for data entry
> but linking such a large number of many-to-many connections via
> association tables is a horrible pain.
>
> neo4j looks extremely interesting. Perhaps if I explain some of the
> tasks I want to do, people would be kind enough to advocate for neo4j
> or for something else?
>
> 1. create people (name, DOB, etc)
> 2. create documents (title, year, etc)
> 3. connect people to documents
> 4. create notes connected to documents and people
> 5. create tags linked to all the above
> 6. create relations between notes (supports, challenges, etc)

I see no problem with 1-6 requirements. Have a look at
http://wiki.neo4j.org/content/Design_Guide to get started.

> 7. view all documents by specific person
> 8. view all links to specific person, document, note, etc out x steps

7-8 is perfect fit queries.

> 9. search EVERYTHING for regular expression
> 10. search only people for regular expression

This is not natively supported by Neo. We believe that such
functionality is best provided by other third party search index
tools.

> 11. add new attributes to nodes as I think of them

No problem just add them as you need them.

> 12. visualize whole graph or subset
> 13. have multiple views to the same data, filtered differently
> 14. control which attribute(s) are used for labels
> 15. view everything linked to a certain tag
> 16. view number of connections assigned to each tag
> 17. view number of people in database

Neoclipse (http://wiki.neo4j.org/content/Neoclipse) can be used with
filters to visualize graphs (have a look at
http://wiki.neo4j.org/content/IMDB_Example to see some examples). It
does however not scale to view many nodes and edges at the same time.

> 18. bulk add/delete relations between nodes with certain characteristics

It is very simple to write the code for it but you will have to do it
manually (loop through all the specific nodes and create the
relationship).

> 19. convert easily to common graph & flat formats

You would have to write your own exporter.

> 20. backup data easily

Next release (currently in b8-SNAPSHOT) have online backup support. If
you don't need online backup you can just copy the Neo store directory
to get a backup.

-Johan


More information about the User mailing list