November 10th, 2009
For some time, I have been having ideas for how to make a tree-based topographic query editor. Today I’ve been working my way towards the preliminaries for an implementation of those ideas. That is, I have been working on getting the tree displays that are in the wx/htreecanvas.cpp source code file to look much better. That’s the first step.
The ideas can be laid out as follows:
- Have an interactive query-editor in which the query looks like a linguistic tree, with the root (Query) at the top and its branches (going dowards) going to nodes that represent object blocks, power blocks, gap blocks, optional gap blocks, groupings, etc.
- For object blocks, the main node name should be the object type. Below the object type name is shown the node number (e.g., “Clause 1″) (this becomes an object reference declaration, e.g., “AS CLause1″). Any repetition (kleene star) gets shown below the node number, e.g., “*{1-3}” or simply “*”. Then, if there are any feature-restrictions, they get to be shown below it, probably as a subtree of nodes where each AND becomes two new nodes (with OR being the node name), and each OR becomes another line in a stacked box of disjoined terms.
- For power blocks, the node name is simply “…” and below it we find any monad-restrictions spelled out (e.g., “< 5″).
- For gap blocks, the node name is simply “gap”.
- For optional gap blocks, the node name is simply “optional gap”.
- For groupings, the node name is simply “group”. Any repetition (kleene star) gets shown below the “group” name, e.g., “*{1-3}” or simply “*”.
- For OR between strings of blocks, the node name is simply “OR”.
There should be a palette from which to choose these node types.
Each node should result in a side-panel which shows the options for this node-type
If it is an object block:
- All features, together with the possible values (e.g., for enumerations, a checklistbox; for strings, a text control, etc.)
- A way of saying that such and such a feature is equal to (less than, greater than, different from, etc.) some other feature of some other, named node in the tree.
- Whether the object block should NOTEXIST or not.
- Whether the object block should be FIRST, LAST, or FIRST AND LAST within the context.
- Any repetition (Kleene Star).
If it is a power block:
If it is a gap or optional gap block:
If it is a grouping:
- Any repetition (Kleene Star).
If it is an OR between strings of blocks:
There should be ways of moving nodes around, and copying and pasting subtrees.
The tree should probably have slanted lines rather than lines that are perpendicular.
The tree should not have the leaf nodes in a straight line at the bottom, but should have the leaf nodes that are at the same level be horizontally laid out in a straight line.
The above is a general overview of what it should look and feel like. Much inspiration was taken from the way that Logos Bible Software does it. They, however, have a tree which grows from the left and goes right.
I do believe that the above will make it easier for the user to understand what is going on.
The above is only a sketch, with lots of details to be filled out.
But it’s a start.
Ulrik
Tags: query editor, syntax search
Posted in General, Meta | No Comments »
October 27th, 2009
I’ve made version 0.0.1 of JEmdros, the Java port of Emdros, available:
http://ulrikp.dk/download/index.php?dir=&file=JEmdros-0.0.1.zip
The port has barely begun, and only has SetOfMonads and a few other, supporting classes. StringList and IntegerList are also present, as are JUnit tests for some of the classes.
Please do give me feedback if you use it. Any feedback is appreciated, even “hey, it works!”.
Enjoy!
Ulrik
Tags: Java, JEmdros, porting Emdros
Posted in Releases | No Comments »
October 22nd, 2009
Every year, my University selects one of its young researchers for a “Research Award”. The criteria are: a) The researcher has to be younger than a certain age, and b) The researcher has to have completed an especially excellent research project within the past year and a half (or so).
This year, I won the award for my PhD work. My PhD was mostly about Emdros and its ability to save cultural heritage. Hence the relevance for this blog :-).
The press release is in Danish, unfortunately :-).
Ulrik
Tags: PhD
Posted in General | No Comments »
October 6th, 2009
I have an Open Source project called “Linguistic Tree Constructor” (LTC), which just today achieved its 20,000th download!
LTC uses Emdros, and the EMdF model in particular, as its basis. Hence the relevance to this blog.
LTC is a program for drawing linguistic syntax trees — fast! — over large amounts of text. Basically, where most other syntax tree drawing programs aim to produce beautiful trees of single sentences, LTC aims to assist in data production of linguistically annotated data, or more precisely, treebanks.
I hope that some readers of this blog will find some use for LTC. It’s Free (as in GPL) for the taking.
Ulrik
Posted in General | No Comments »
October 6th, 2009
The Java port of Emdros is progressing. Today I expanded the implementation of SetOfMonads and related classes. I also expanded the test coverage of the JUnit tests.
This is part of my research at my University. I am finding that basing the SetOfMonads algorithms on Allen’s 1983 paper that I mentioned in the immediately previous post, makes for more elegant algorithms than my own home-grown version of how to categorize the relationships between intervals. Maybe the C++ version will benefit as well from this discovery.
Again, if you want to encourage a Java version of Emdros, please do send me an email, or add a comment below.
Ulrik
Tags: interval relationships, Java, porting
Posted in General | No Comments »
October 5th, 2009
I’ve begun a (possibly long, possibly never-to-be-finished) journey to port Emdros to pure Java.
Today’s efforts went into writing SetOfMonads and related classes. The implementation is mostly done. It is slightly different from the one used in the C++ implementation of Emdros, and uses James F. Allen’s 1983 paper, “Maintaining Knowledge about Temporal Intervals”, Communications of the ACM, Volume 26, Number 11, November 1983, as a basis.
Don’t hold your breath for the Java port to be complete. But if you want this to happen sooner rather than later, please send me an encouraging note, either below, or via email.
Thanks.
Ulrik
Tags: Implementation, Java
Posted in General | No Comments »
August 15th, 2009
This release has long been overdue.
It adds support for gcc 4.4, which means it can be compiled on the latest Linux distributions, such as Fedora 11 and Ubuntu 9.04.
As usual, Windows binaries and Mac OS X Universal binaries are provided. Fedora 11 binaries and a .src.rpm are provided as well.
http://emdros.org/download.html is the place to be…
Would anyone care to help me write the debian/ files, so that I can provide .debs as well? In that case, please contact me. Thanks!
Enjoy!
Ulrik
Tags: Fedora 11, gcc 4.4, Ubuntu 9.04, Xubuntu 9.04
Posted in Releases | 2 Comments »
March 10th, 2009
I have released Emdros version 3.1.0. Go get it while it’s hot.
The biggest change since 3.0.1 (the previous public release) is that the “uncles and nephews” bug mentioned earlier on this blog has been fixed.
Enjoy!
Ulrik
Posted in Releases | No Comments »
February 12th, 2009
Windows deteriorates over time — i.e., it doesn’t maintain itself very well. This can lead to Windows becoming slow as molasses.
I recently had to try to speed up a computer running Windows XP SP3. The computer had been running Windows XP since 2006, without a reinstall in the interim. It had gotten dreadfully slow, to the point where it took 5-7 minutes for it just to boot to the point where it was moderately usable.
I actually succeeded in bringing the computer back to its original speed, without reinstalling Windows XP. Below are my findings, for anyone who might be in a similar situation.
First, I am going to refer below to a “registry cleaner”. A registry cleaner is a program which cleans up the Windows Registry Database. The one I used is callled “CCleaner“, and is free as in freeware (no cost). I highly recommend this tool. The authors ask for a donation in case you are satisfied, but this is not required as of this writing. Just be aware that the installer will also install a Yahoo! Toolbar in your web browser, unless you opt out of this during the install process.
Here is what I did:
- Defragment the harddrive.
- Remove icons from the desktop. Yes, I know this sounds crazy, but it worked for me, some of the way to full speed!
- Download and install CCleaner Registry Cleaner.
- Run CCleaner, and clean both the harddrive, the system, and the registry. The registry might need to be cleaned several times before all defects have been cleaned. Just keep cleaning until the scan says there are zero defects.
- Deinstall all unnecessary and/or outdated software.
- Run CCleaner, cleaning both the harddrive, the system, and the registry.
- Reinstall the latest versions of the software you actually need (e.g., FireFox, OpenOffice.org, Adobe Reader, Adobe Flash, Java, etc.)
- Run CCleaner again.
Once I had gone through this process, the computer ran almost as fast as it did when Windows was first installed.
Ulrik
Posted in General | No Comments »
February 5th, 2009
Emdros and related files have just been downloaded for the 20,000th time within the last few days.
/Ulrik
Posted in General | No Comments »