UIMA vs uimaFIT - uima

I was trying to implement a text processing application using UIMA. But then I found it very convenient to use uimaFIT rather than UIMA.
Is there anything that UIMA has but uimaFIT does not have? Does uimaFIT add support for natural language processing on video and audio?

uimaFIT is an alternative API for UIMA that builds internally on the original UIMA API. Mainly, the uimaFIT API is less verbose and more intuitive.
In terms of functionality, there is very little that uimaFIT adds that is not possible with plain UIMA (e.g. support for nested external resources).
uimaFIT aims to cover typical use-cases, but it is not a full replacement for the original UIMA API. For advanced functionality, it may be necessary at times to use the original UIMA API, e.g. advanced operations on indexes, access to the low-level CAS API, etc.
Like UIMA, uimaFIT can be used with custom type-systems oriented towards video/audio annotation, but it does not add any specific support for video or audio applications.
Disclosure: I am a member of the Apache UIMA project and look mainly after uimaFIT.

Related

Can anyone explain the when to use graph in guava and when to use graph in jung 2.1.1?

I am new to use JUNG and guava. I am trying to use JUNG 2.1.1 graphs but I learned that it uses com.google.common.graph. Please tell me which interface is good, and what are the differences (if any)?
import com.google.common.graph.Graph
or
import edu.uci.ics.jung.graph.Graph;
Syed
JUNG 2.1.1 has its own graph type: edu.uci.ics.jung.graph.Graph
The JUNG 3.0 snapshot (not yet released, but currently at head on the Github repo) uses Guava's graph type: com.google.common.graph.Graph (and its sibling types ValueGraph and Network).
I am responsible for both maintaining JUNG (and was one of the original architects) and for the common.graph package (which I created and whose development I've been driving).
If you just want a graph type and will be mostly writing your own code to work with it, I'd use Guava's graph types; we're still developing that API, but it is (IMO) a much better design; it was based in part on looking at the design warts of JUNG's graph model (many of which I was responsible for).
If you need some of the extended capabilities that JUNG provides that Guava's common.graph package doesn't include (algorithms, visualization, etc.) then you've got a choice:
(1) If you want a library that is not going to change, use JUNG 2.1.1. It has some known bugs, which are not going to be fixed in 2.x.
(2) If you are willing to use a library that's not yet fully baked, you can check out JUNG 3.0 from GitHub and use its build setup to create the jars you want. JUNG 3.0 has virtually all of the capabilities of JUNG 2.1.1, and has a significantly improved architecture.
Hope that helps.

Integrating Sphinx or other search engines with Question2Answer

My first impression from peeking into the source for Question2Answer is that it seems to be built to co-exist nicely with other OS applications. For example, one can plug in their own code for user database management or for localization - for example if one wanted to use gettext instead of PHP arrays for multilingual messages (even though it's just code filling in, not some OO pattern based style - but that's a different matter all together).
However, there does not seem to be a pre design to allow plugging in search functionality. My question is: if anyone has integrated the sphinx search engine into Question2Answer, then what is the best technique or tips to achieve that.
I checked the docs on creating plugins here: http://www.question2answer.org/plugins.php, and the plugins system seems to accommodate certain types of functionality such as event handlers or content widgets - but not generic functionality or a search module specifically.
Version 1.5 of Question2Answer will support search modules in plugins which allow you to implement a custom indexer and search engine.

Scala, Charts and Google Visualisation API

Those anyone know of a Scala Library for Graphs / Charts or an implementation of the Google Visualisation API.
Cheers
While Scala is cool and all, why not use a well-established library from the Java domain? JFreeChart comes to mind, it's very versatile and works well.
One of Scala's strengths is its interoperability with Java. Without lifting a finger, Scala programs get access to most of the wealth of libraries developed in/for Java. No need to wait for someone to re-invent the wheel in Scala for specialized solutions like these.
Actually, there are a scala wrapper over JFreeCharts:
https://github.com/wookietreiber/scala-chart
It may be more handy to use scala API's working with java-based libraries.

Google Closure Editor/WYSIWYG

Does anyone have experience with Google Closure Editor/WYSIWYG? I'm thinking of moving from CKEDITOR to Google Closure Editor/WYSIWYG. Ideally I'd love to use the etherpad editor but it doesn't appear that anyone has separated the editor from all the app.
Anyhow, for Google Closure Editor/WYSIWYG, does anyone know, does it support the real-time collaborative aspects seen in Google Docs?
The Google Closure editor is a wrapper around the built-in browser editing capabilities. It is thus similar to other rich text editors like TinyMCE, CKEditor, etc. It is less feature-rich than either of those, but it's smaller and faster. The base editor is used by Gmail (most notably) and various other Google properties.
There is nothing within the public Google Closure editor to enable Google Docs style real-time collaboration. With that said, it has a plugin model which enables you to add new functionality. I would not recommend taking something like this on without a solid understanding of working with Google Closure.
Until recently, the editor was also used by Google Docs. However, the limitations of core browser editing technology became a barrier to innovation, so they built their own editing surface[1,2] (codenamed Kix). This editing surface is not included in Closure Library.
https://drive.googleblog.com/2010/04/a-rebuilt-more-real-time-google.html
https://drive.googleblog.com/2010/05/whats-different-about-new-google-docs.html
It might not last, but there is a standalone version of kix up on github:
https://github.com/benjamn/kix-standalone
EtherPad Lite is the most viable option I've seen so far:
https://github.com/ether/etherpad-lite
Personally I favor this one, because:
It's open source
You can host your own
Has few server-side dependencies (Node.js)
It has an API, so you can build your app in any language
Attempting to steal Google's work is probably not a good long-term plan. (I'm also not convinced that having the client-side libraries actually helps you, in terms of the real-time collaboration feature, which depends heavily on the server-side.)

Best programming languages to create technical charts for stocks on the server side

What programming languages are best suited to create technical charts for stocks on the server side and then stream out to http and see it on the browser.
Thanks
Vishal
It is hard to say what is "best".
This is something that Python can do well since it has add-on libraries for complex mathematical data manipulation such as NumPy and for quantitative finance such as Quantlib. Matplotlib is a very flexible Python charting library.
In addition, there is an IronPython-based spreadsheet called Resolver One that is popular in the financial services industry and they have an add-on that turns any spreadsheet into a web application.
If you did decide to use Resolver, you should be able to use almost any Python or .NET library and integrate it with your application.
I would suggest that you take a look at SVG as the graphical format for the technical charts because you can zoom into these charts in the web browser.
Any language with a graphical library will do. I know of implementations in Perl, C++, and Java
The perfect language for you would be Scala, here's why. You can write your serverside program using Scala, and you can then use the Scala.js framework to display the output(The Chart) to the browser(Client Side). The output will then be handled using Javascript.
Many websites currently use this method, for example, Twitter and Facebook.