{"id":29,"date":"2005-03-20T17:33:06","date_gmt":"2005-03-20T23:33:06","guid":{"rendered":"http:\/\/www.ourada.org\/blog\/archives\/29"},"modified":"2005-03-20T17:33:06","modified_gmt":"2005-03-20T23:33:06","slug":"semi-freeform-database","status":"publish","type":"post","link":"https:\/\/www.ourada.org\/blog\/archives\/29","title":{"rendered":"Semi-freeform database"},"content":{"rendered":"<p>I admit to not knowing much about ontologies (in the knowledge-management sense), but I am interested in them.<\/p>\n<p>However, what I did discover is that <a href=\"http:\/\/protege.stanford.edu\/\">Stanford&#8217;s Prot\u00e9g\u00e9<\/a> project works well as a semi-freeform personal database.<\/p>\n<p>For example, a while back I was writing a paper for a psych class, and of course had to have a bibliography. I wasn&#8217;t completely satisfied with the bibliographic database software I found out there, so I started to look around for some easy way to build some. I found Prot\u00e9g\u00e9 because I was exposed to it via another class. I found that despite the fact that I don&#8217;t really know what it&#8217;s for :-), I was able to use Prot\u00e9g\u00e9 to get the job done easily.<\/p>\n<p>The nice thing about it, from my perspective, is that it allows for the formality and precision of a database schema, while also allowing for some of the sloppiness and incremental evolution of, say, a plain text file. As I add entries to a database, I sometimes discover that I want new fields in the records, or that I want to formalize something that was informal before. Prot\u00e9g\u00e9 allows me to do that with a few clicks, without disturbing any existing data or causing any referential-integrity headaches, and it automatically populates the data-entry form to match.<\/p>\n<p>If a new field is marked as required, then I get a visual indication in the form that the field is required, but I&#8217;m not forced to add it. For example, if I was building a &#8220;people I know&#8221; database (which is my current Prot\u00e9g\u00e9 project), I could add a required birthdate field. I may not know all the birthdates of people I know yet, but I want the schema and form to reflect the fact that its important information that I should eventually fill in.<\/p>\n<p>It doesn&#8217;t have the best GUI, because it&#8217;s very general, and therefore not the best possible interface for any specific application. However, forms can be customized to make them prettier, or one can embed the database and\/or form components in some other program for total control. (I do have to say that the default GUI is much nicer in version 3 than in version 2.) In any case, it&#8217;s definitely smoother than any GUI I&#8217;ve tried as a front end to a relational database.<\/p>\n<p>I mentioned embedding; the API is easy to work with if you need to get some functionality that&#8217;s not natively supported. I wanted an HTML version of my entire bibliography, so I wrote a <a href=\"http:\/\/www.jython.org\/\">Jython<\/a> script in about half an hour to pull the data out of the store and format it appropriately.<\/p>\n<p>And finally, because it&#8217;s open-source, it&#8217;s free and easy to modify beyond even the API level. Woot again for open-source.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I admit to not knowing much about ontologies (in the knowledge-management sense), but I am interested in them. However, what I did discover is that Stanford&#8217;s Prot\u00e9g\u00e9 project works well as a semi-freeform personal database. For example, a while back I was writing a paper for a psych class, and of course had to have [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-29","post","type-post","status-publish","format-standard","hentry","category-general","author-admin"],"_links":{"self":[{"href":"https:\/\/www.ourada.org\/blog\/wp-json\/wp\/v2\/posts\/29","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ourada.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ourada.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ourada.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ourada.org\/blog\/wp-json\/wp\/v2\/comments?post=29"}],"version-history":[{"count":0,"href":"https:\/\/www.ourada.org\/blog\/wp-json\/wp\/v2\/posts\/29\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ourada.org\/blog\/wp-json\/wp\/v2\/media?parent=29"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ourada.org\/blog\/wp-json\/wp\/v2\/categories?post=29"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ourada.org\/blog\/wp-json\/wp\/v2\/tags?post=29"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}