0. A C#- .Net- WPF- multi- column- component (at least 3 columns), columns filter (show/ hide), search (each column/ global, highlighting search term), synchronized scrolling (mouse wheel and arrow keys), line numbers on/off, line wrapping on/off (important for sync scrolling), floating text (each linebreak is a new line) and list mode (only [login to view URL] is treated as linebreak, like ListBox) individually for each column, sorting (in list mode), full clipboard support (input and output, single, all and all visible) for plain text, rtf and html, each, with full standard context menu and typical shortcuts (like crtl+a for select all, etc.) of text editors, basic richtext/html capabilities like italic, bold, normal text, underline, front color, background color, font size, font type, paragraphs, headlines, tables, images. Undo/ Redo. Two way data binding support.
1. Natural Language Processing with SharpNLP (port of OpenNLP, demo can be found on codeproject, article named "Statistical parsing of English sentences"), separating paragraphs, sentences and words into tokens. Better ideas are always welcome.
2. Examining tokens on similarity/ equality by simple compare algorithm on paragraph/ sentence basis (in that order) adapted for the generated parse trees of all columns from left to right (descending column priority). Sample on codeproject named “A Generic, Reusable Diff Algorithm in C# - II”
3. Drag & Drop of paragraphs (on mouse down), sentences (+holding shift), words (+holding control) into all three columns respecting the equivalent pasting mode (paragraphs before/ after paragraphs, sentences before/ after sentences, words before/ after words). Move (default), copy (+alt).
4. Adding markers/anchors on paragraphs, sentences, words to the parser tree in order to be able to apply a marker text in any other column (like comments in word, e.g. right click opens context menu, keys as mentioned above, default is paragraph, user chooses “add marker” and clicks the column where the marker-text should go), has a toggle button for opening/ closing the marker text block (aka folding area) like shown in the sample (note the three dots outside the text boundaries showing the text was cropped). Marker can be also added by selecting any paragraph, sentence or word and dragging it ON a paragraph, sentence or word (depending on the keys pressed), in the move and copy mode, a "pipe" is indicating where pasting BEFORE or AFTTER the appropriate elements (as known from MS Word) is possible.
5. the sample application should store the documents in an Explorer- tree like manner in a specified Directory (root of the tree), each Folder may contain multiple document, each document is stored in a XML file (the proprietary serializable object of the document, containing all columns, used for storage) or an OpenXML document with custom tags (storing meta data of the token tree) and an additional html document (with all columns proper formatted and aligned, separately selectable, as human readable backup).
A hopefully self-explaining UI- design- concept is attached.
Target platform mixed 32/64, .net 4.0 up to 4.5, VS 2010/2012 C# project, including full source code of all components used, means only additional open source frameworks (stable release only) , high/ enterprise quality and maintainable code, CPU and memory saving, coded and commented in English, only, respecting MS coding guidelines, naming conventions and best practices (Stylecop, FXcop), using latest techniques like EF, Linq, TPL, whenever possible, full Design Time support (rendering, properties, events, etc.), nice UI (office 2007/2010 like business design), WPF, component + sample, latest SharpNLP (working sample provided by me or obtainable via codeplex).