title: Graph database vertex/edge inference from a text (i.e. an informal Graph 'schema'), using Natural Language Processing (NLP) - does this exist?
body: <p>Caveat Emptor - I'm neither a linguist nor a Graph theorist, however, I am a [Java] developer wishing to use a Graph database for persistence and the following topic is of interest to me, and I hope to others.</p>
  
  <p>OK, the idea is to have some application or code to:</p>
  
  <ol>
  <li>recognise the embedded relationship structures between named entities within a given piece of text</li>
  <li>apply or expose these discovered relationships to usage within a Graph database structure.</li>
  </ol>
  
  <p>In such a system, the text might essentially form a basic, layman-written graph schema of sorts. To better visualise this, here is some [very], basic text:</p>
  
  <pre><code>Andrew is married to Jane
  </code></pre>
  
  <p>Using the <a href="http://ucrel.lancs.ac.uk/claws/trial.html" rel="nofollow">online CLAWS parts-of-speech tagger (POS)</a>, I'm given the following:</p>
  
  <pre><code>Andrew_NP0 is_VBZ married_AJ0 to_SENT Jane_NP0
  </code></pre>
  
  <p>According to '<a href="http://www.natcorp.ox.ac.uk/docs/c5spec.html" rel="nofollow">The BNC Basic (C5) Tagset</a>' @ Oxford University, NP0='Proper noun', which is a name (as you know) but these NP0-tagged entries would lend themselves to becoming graph vertice instances/nodes (the end user could be further prompted to give these entries an encompassing 'type/description'). The verb(s), 'VBZ' and adjective(s), AJ0, might highlight graph relationships.</p>
  
  <p>Once the end user has confirmed their graph representation, they might export it to <a href="http://en.wikipedia.org/wiki/GraphML" rel="nofollow">GraphML</a>, for re-import into a graph database such as <a href="http://thinkaurelius.github.io/titan" rel="nofollow">Titan</a> or <a href="http://www.neo4j.org" rel="nofollow">Neo4j</a>.</p>
  
  <p>So, the overall idea is to have a tool that allows a layman end user the ability to create Graph-theory-based database structures, using everyday language.</p>
  
  <p>Does such a tool exist already?</p>
  
  <p>Some of my observations above were influenced, in some way, by the following tools (amongst others):</p>
  
  <p><a href="http://www.plantuml.com" rel="nofollow">http://www.plantuml.com</a> &lt;- UML diagrams defined using a simple and intuitive language
  <a href="http://www.planttext.com" rel="nofollow">http://www.planttext.com</a> &lt;- See plantuml<br>
  <a href="http://www.acqualia.com/soulver" rel="nofollow">http://www.acqualia.com/soulver</a> &lt;- An NLP-based calculator and currency exchange tool, using natural sentence phrases<br>
  <a href="http://nlp.stanford.edu/software/tagger.shtml" rel="nofollow">http://nlp.stanford.edu/software/tagger.shtml</a> &lt;- Stanford Log-linear Part-Of-Speech Tagger</p>