FAQ - overview
The following questions are answered here:
Emdros is a text database engine for analyzed or annotated text. It supports storage and retrieval of any kind of text plus annotations/analyses of that text. Linguistic analyses are its primary target, and here syntactic analyses are in focus (although other linguistic levels are supported, too). It excels in storing and querying structured data, supporting multiple hierarchies of embedding over the same text. Its powerful query language is built around sequence and embedding as the primary structuring operations. It implements the EMdF database model and the MQL query language.
Yes, Emdros is free as in price. It is also Free as in "Freedom", meaning it is licensed under the GNU General Public License (GPL). However, if you need commercial licensing, please contact the author. More information below.
Emdros stands for Engine for MdF Database Retrieval, Organization, and Storage.
By all means, yes, please do.
Emdros currently exists in two branches:
The legacy branch (1.1.X) is neither supported nor being developed any more, and is no longer available via the SourceForge.Net interface.
The current branch (3.X.Y) supports the following backends:
In addition, there is a proprietary database backend, called the BPT (Bit Packed Table) engine, written by the author. It is faster than any of the other backends supported. You can contact the author for more information about the BPT engine, including licensing options. The BPT engine is especially well suited to shipping databases with an application, where the databases can be encrypted encrypted for maximum protection of the content.
It is easy to add support for new databases. You can either do it yourself or ask the author if he has the time to implement support for your choice of database.
Emdros has been tested by the author on the following platforms:
However, it will probably run on any *nix. For example, OpenBSD should work, as should any other Unix-like system.
It should also run on Win95 and Windows(R) NT(R), although these platforms have not been tested.
PostgreSQL is 'more free' than MySQL in terms of licensing (BSD versus GPL/LGPL). SQLite is public domain, and thus "freeest" of the four back-ends supported.
MySQL is about the same speed as PostgreSQL. SQLite 3 is slower than MySQL, but SQLite 2 is fastest of them all.
SQLite provides an embedded, zero-install, zero-configuration database engine with no bootstrapping to do. MySQL and PostgreSQL both need a modicum of administration and bootstrapping (including username and password generation). See the file doc/bootstrapping.txt in the sources for information on the bootstrapping process for MySQL and PostgreSQL.
Short answer: Maybe.
Slightly longer answer:
Emdros is a general purpose text database engine. As such, it is really a software library that other programs can take advantage of.
However, I have written a number of programs which may mean that you don't have to program yourself in order to use Emdros. These programs include:
If you find that you need to program in order to use Emdros, there is a file, HOW-TO-USE in the doc/ directory of the sources which gives you some pointers for how to get going. The Programmer's Reference Guide also has a lot of hints.
If you have any questions, you are welcome to contact the author, and he will most likely try to be helpful.
You can use almost any programming language to program your application on top of Emdros. You just need a way of communicating with the MQL subsystem. You have a number of options for this:
Emdros can be run as a daemon provided you have a program, such as inetd or xinetd, to invoke Emdros when incoming requests arrive on a particular port.
If you would like to get full daemon-capabilities, feel free to drop the author an e-mail telling him of your need.
Emdros is licensed under the GNU General Public License (GPL) version 2.
All licensing questions should be addressed through Emergence Consult, the company behind Emdros.
Q: You released Emdros version 1.2.0.pre262, and then the next public release was Version 3.0.0. What happened to version 2?
A: The 1.2.0.preXX series started as a branch off of version 1.1. This was in 2004. It was a series of "previews" that ran to version 1.2.0.pre269 -- that is two hundred and sixty nine (269!) previews. Almost four (4!) years later, in 2008, I finally decided enough was enough: I really ought to get my act together and make a real, non-preview release, since the code had been stable for a very long time, and the "preview" label wasn't winning any users.
By January 2008, the code had evolved so much since version 1.1 from which the "1.2.0.preXX" series was branched, that a bump in -- not one but -- two major version numbers was merited. Version 2.0.0 did happen, though -- it was just an internal, non-public release.