The project homepage says "Data scientists and developers can speak the same language now!". So it is surely easier to producitionize a ML project without rewriting the algorithms after the data scientists work out the model with R or Matlab.
It is true. Unfortunately, the project was started several years ago and had nothing to do with the startup world. I would like to complain that VCs destroy another nice name with their hypes :(
In most graph database, you find a vertex by filtering its properties, e.g. Gremlin graph query language. In Unicorn, you can do the similar with document vertices (it is, a vertex corresponding to a document in another table/collection). This is probably very nature in a business application. However, it is not very useful in your case as your vertices are abstract without any properties.
I guess what you want is some large scale graph analytics, which I suggest Spark GrpahX or other distributed graph computing engine.
Unicorn is designed for property directed multi-graphs.
When adding an edge, the end vertices are assumed existed. In your case, we could add a helper function to import a list of edges, similar to Spark GraphX.
It is not a bloated NLP library. Instead, it focuses on basic stuffs such as sentence splitter and tokenizer, bigram statistical test, phrase extractor, keyword extractor, stemmer, POS tagging, relevance ranking. Combined with various machine learning algorithms e.g. HMM, maxent, CRF, etc., you can work out advanced applications such as sentiment analysis, named entity recognition, etc.
Structural subtyping are mostly close to static polymorphism. After all, we just don't like inheritance, not dynamic polymorphism. Besides, interface and trait are not really inheritance although closely related.
http://haifengl.github.io/smile/linear-algebra.html