Piggydb V4.19 releasedPosted: December 24, 2010 Filed under: uncategorized 20 Comments
This release upgrades the database engine (H2 Database Engine) to the latest stable version (1.2.147), which supports a more robust database file format.
Although the new format is not compatible with the older versions of Piggydb, this version supports automatic file conversion: the old database files will be converted into the new format automatically during startup.
H2 Database Engine: http://www.h2database.com
Download Piggydb V4.19 at https://piggydb.net/
Not sure if this is the place to put this, but I was curious about whether there would be a way to merge fragments in the future? And see all linked fragments without clicking each boxed [+] (while viewing a fragment)?
I’m quite happy with this app otherwise, and very glad you made it. Out of all the note taking apps I tried this was the one I found most comfortable.
Thank you for your comment.
I have a plan to add a merging (or partial export/import) feature in future versions.
Could you describe the latter feature (viewing fragments) you mentioned in detail?
Alright. Just a moment while I get things together.
http://i.imgur.com/wO7rw.png <– Basically, when we're looking at a fragment…
http://i.imgur.com/4PrCt.png <– …would it be possible to show all the child fragments like this, at the click of a button or link? (Sorry about the highlighting. I thought I had a point to make there.)
Currently, you cannot expand all linked fragments in a single operation. Not all linked fragments form simple trees, there can be loops in the fragment graph, so if you want to get a quick overview of the graph, it should be presented in another format.
I think I may be dense, because– even after coming back to this after a month– I’m not sure I really get it. I had a reply typed up but scrapped it precisely for this reason, and haven’t been able to come up with anything ever since. Couldn’t put it off forever, though.
To the best of my understanding, you’re saying the links between fragments can become too complex to be shown all at once. And that one of the issues involved is the looping. I admit the technical aspects are beyond me so my next question is out of ignorance: why isn’t it possible? I plan to learn Java at some point, but until then, I’m lost. (Sorry.)
On a different subject, I’ve since discovered it’s possible to select a bunch of fragments and give them a parent fragment, but not make a bunch of fragments the parent fragments of an individual fragment. I thought how you handled the former situation very useful, but the latter situation … well … not so much. But I’ve only ever tried to do the latter once or twice.
>why isn’t it possible?
It is not impossible. I just said there would be a more appropriate way to show a whole network of fragments rather than the current tree format, such as a visual graph (cf. http://www.graphviz.org/). How about a button which allows you to expand all visible tree toggles([+])? It doesn’t allow you to expand all linked fragments (all descendants) at once, but it would make it easy to drill down a large tree.
>select a bunch of fragments and give them a parent fragment
I thought it would function as some kind of grouping other than tags. Anyway, this feature will be changed in V5.x.
>there would be a more appropriate way to show a whole network of fragments rather than the current tree format, such as a visual graph
Aha, so I was overthinking it. It’s your mention of ‘looping’ that threw me off, I’m afraid. On top of that I suspect I may have been less than clear.
>How about a button which allows you to expand all visible tree toggles([+])? It doesn’t allow you to expand all linked fragments (all descendants) at once, but it would make it easy to drill down a large tree.
The toggles are located inside the same rectangular gray box as the title and tags, and expanding them won’t show the content of the fragments, right? It’s something I’m okay with (and was kind of what I was going for in my earlier posts). Basically, it’ll let me see what’s linked to what at a glance.
>I thought it would function as some kind of grouping other than tags.
It does, sort of, but it depends on the tree format to visually categorize the fragments — kind of like reading threads on a forum. For the most part I was referring to the feature you added recently where you could create new relationships between fragments via dragging and dropping. I tried going the other way (to drag and drop from the Selected Fragments box to a fragment), and found that it didn’t work.
And, on an unrelated note… This is coming from a stranger on the ‘net, but I hope you’re doing alright.
It’s been more than a month since you posted this comment. Sorry for late reply.
>And, on an unrelated note… This is coming from a stranger on the ‘net, but I hope you’re doing alright.
Thank you very much for your concern. I’m doing alright here in Tokyo.
I have decided to create a new-generation of Piggydb rewriting the old version from scratch with another programming language(Scala). I’m going to release a small version at first and evolve it to meet the goals. So your feedback will be helpful.
Good to hear you’re alright.
I would be happy to provide any impressions I have of your work in the future. 🙂
This is a very impressive piece of work, I must say – but equally impressive is your ongoing search to find the ideal knowledge creation/enhancement system. I notice other developers have been suggesting that some kind of visual system might be the way to go (indeed, you imply as much yourself with your sensible discussion of the difference between mindmaps and concept maps). But your thoughts about tagging (using existing tags/spontaneously creating new tags) are very intriguing – and I wanted to suggest something you may/may not have thought of yourself, which is allowing users to turn a search term into a tag, depending on whether it generates interesting/useful results or not. Although – the thought has just struck me – maybe that’s already possible (in a nice, simple way)?! Hm. I shall go away and experiment some more…
Expanding on this idea:
Searches are clearly an interesting knowledge vector, and maybe the answer to your frustration is to develop some kind of search taxonomy where the search process itself (e.g. multiple/sequential searches) is treated as a kind of knowledge-building exercise? So you could “map” searches and create new knowledge networks out of the most useful search results? That would, I suspect, entail some kind of relationship taggin, but maybe a slightly more sensible/less complex one than tagging relationships individually?
Anyway, this is a system I’m watching with particular interest!
All the best,
Thank you for your comments and kind words.
>allowing users to turn a search term into a tag
It’s just the same as a full-text search, isn’t it? You can search fragments with any terms which are not registered as tags.
What I have learned from using piggydb is that tags from your existing knowledge (or a familiar taxonomy) are not that valuable in knowledge creation. For example, you may select general categories as tags, such as “education”, “literature”, “science”, etc, this is a normal way of tagging, but this kind of tagging would end in failure. Tags should be derived from the content of fragments and be specific at first.
Terms you think up when you search fragments would tend to be from your existing knowledge. I think it’s a kind of purpose-oriented approach.
Having played with PiggyDB at greater length, I think it would be great if you could create and run multiple databases. The trouble is, if you build a truly enormous knowledge base, with lots of tags and lots of filters, it quickly becomes very difficult to keep track of all the elements in it (just to take an example, I was entering various bits of contact information in an experimental database, then setting up simple filters to sift out specific contacts very quickly, and I found that my filter list very quickly grew to almost unmanageable length!). Definitely a challenge, but the option to create multiple databases would resolve it (at least partially).
Keep up the good work!
I think you are right. From my experience, managing different types of information with different purposes in a single database is not very worthwhile.
If you use War Package, you can easily manage multiple databases by deploying multiple war files with different names.
Nice work! I am intrigued by the overall concept of knowledge creation.
From the discussion above, it sounds as if the approach to tagging knowledge fragments is somewhat different than I am accustomed to. Will you post some examples of tags you have created derived from knowledge fragments?
Thank you for your comment.
> it sounds as if the approach to tagging knowledge fragments is somewhat different than I am accustomed to.
Yes, I think so. In the context of folksonomy, simple (non-hierarchical) tagging we are accustomed to would be valuable since it enables many people to organize large amount of information collaboratively. But if you use tags for your personal information management, such as classifying pieces of information, I think it wouldn’t work out well as your knowledge base grows and you want to gain something valuable besides just an input-and-search database.
I think the tags in piggydb should be treated more like “concepts” you have found and created during writing and organizing knowledge fragments. I hope Piggydb V5.x will introduce users to a new way of using tags.
> Will you post some examples of tags you have created derived from knowledge fragments?
Yes, but it needs the release of V5.x in order to embody my thoughts.
I’m thinking about writing about these things as a blog entry, problems of classifying mechanisms, and moreover risks of classifying information for knowledge creation.
Thank you for PiggyDB. I learned of your program just last week, through a discussion on OutlinerSoftware.com. It’s absolutely first rate, and resolves so many of the problems encountered with other knowledge management packages.
I especially appreciate the customization that is possible through your browser interface. PiggyDB works beautifully in multiple panes with the extension Split Browser aka, Fox Splitter. A document view is often up in the left pane for reference while editing a fragment.
I’ve also been modifying some of the look and feel via the Stylish add-on (userstyles.org), which overrides active style sheet instructions. Enjoying PiggyDB with a light green background, a Book Antiqua font, and a larger editing window for fragments.
Also, since I’m using PiggyDB in a vertically split screen, I’ve edited fragment.htm to remove the sidebar. These are all examples of the excellent customization your design makes possible.
Two related questions:
Would it be possible to modify the Creation Date or Update Date of a fragment? I’m hoping to import entries made in other programs, and would like to access them by their original date through your calendar control.
And with those same objectives, import and date modification, could you kindly advise about loading or updating PiggyDB data through the H2 web interface? Is this a bad idea, or, if not, how does a user get started at the H2 sign-on screen?
Thank you again for your great program, and warmest regards.
Jerome J. Slote
Endwell, NY, USA
Thank you for your comments and kind words.
> Would it be possible to modify the Creation Date or Update Date of a fragment?
As a matter of fact, it is one of most asked questions: how to modify the fragment timestamps. Currently, Piggydb doesn’t support modifying those timestamps as a feature, but you can do it by modifying an exported file (*.xml/*.pig) and restoring with it, or manipulating the database directly as you wrote.
While I can understand the needs for timestamp modification, I think it should be resolved by a more sophisticated way other than just allowing users to modify the Creation Date or Update Date. For example, the Creation Date means the date when the fragment was created and it shouldn’t be modified by users. If you want to modify the date, actually it has another meaning, such as a date when a certain event which is mentioned in a fragment happened. I’m going to add a feature that solves these problems in V5.x.
> could you kindly advise about loading or updating PiggyDB data through the H2 web interface?
I just checked out H2 web console and I think it’s just a database browser tool and not suitable for editing the content.
The database can be also accessed via JDBC and there are many database management tools for JDBC-supported databases.
Piggydb doesn’t allow you to connect to the database via tcp by default, so you need to change the settings by replacing the file piggydb-standalone\webapp\WEB-INF\web.xml with:
and restart the piggydb server.
You can access to the database with the settings as follows:
[JDBC URL] jdbc:h2:tcp://localhost/~/piggydb/piggydb
Thank you for your reply and your solution. I’ll experiment with JDBC, but I’m pretty sure XML will work splendidly for import of old data. Either way, I’m looking forward to working with old and new fragments in one place at last, and see that I can convert data to Piggydb with confidence.
Anticipating version 5, would you perhaps consider adding a Comment template to Piggydb’s markup syntax? The Comment text would appear in the editing form and turn up in searches, but would not ordinarily display, at least not in Document View. This capability would enable the user to import meta-data such as old dates and tags without cluttering up the display. The meta-data conserved would also then be available to consolidate into tags, or to paste into whichever meta-data fields you may be adding in V.5.
Thanks for considering this enhancement.
I hold an interest in concept mapping, so I will be interested in seeing how you implement the next version of tags. BTW, there is book that released last month that might be of value to you. It’s called, “Applied Concept Mapping: Capturing, Analyzing, and Organizing Knowledge” by Moon, Hoffman, Novak, and Canas, 2011. Novak is seen by many as the early innovator of concept mapping. Take a look at the Cmap Tools, which are free to download. The concept mapping tool is designed to implement Novak’s ideas.
Thank you for the info about concept mapping. I will definitely check the book out.