<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>qKAI project blog &#187; Development</title>
	<atom:link href="http://blog.qkai.org/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.qkai.org</link>
	<description>How to utilize Open Content for higher-layered applications?</description>
	<lastBuildDate>Fri, 20 Aug 2010 08:16:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>qKAI in Journal On Advances in Intelligent Systems</title>
		<link>http://blog.qkai.org/2009/12/qkai-in-journal-on-advances-in-intelligent-systems/</link>
		<comments>http://blog.qkai.org/2009/12/qkai-in-journal-on-advances-in-intelligent-systems/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 07:10:08 +0000</pubDate>
		<dc:creator>Monika</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Publication]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[DataManagement]]></category>
		<category><![CDATA[Interaction]]></category>
		<category><![CDATA[KnowledgeEngineering]]></category>
		<category><![CDATA[LinkedOpenData]]></category>
		<category><![CDATA[OpenContent]]></category>
		<category><![CDATA[qKAI]]></category>
		<category><![CDATA[SPARQL]]></category>

		<guid isPermaLink="false">http://blog.qkai.org/?p=166</guid>
		<description><![CDATA[The International Journal On Advances in Intelligent Systems just posted its new issue (Volume2/Nr2&#038;3). qKAI is part of it with a contribution titled &#8220;Utilizing Open Content for Higher-Layered Rich Client Applications&#8221; (pp. 303 &#8211; 316).
First, we introduce some background regarding the qKAI application framework. In Section 2 follows what we see as prerequisite to utilize [...]]]></description>
			<content:encoded><![CDATA[<p>The International Journal On Advances in Intelligent Systems just posted its <a href="http://www.iariajournals.org/intelligent_systems/tocv2n23.html" target="_blank">new issue (Volume2/Nr2&#038;3)</a>. qKAI is part of it with a contribution titled &#8220;<em>Utilizing Open Content for Higher-Layered Rich Client Applications</em>&#8221; (pp. 303 &#8211; 316).</p>
<p>First, we introduce some background regarding the qKAI application framework. In Section 2 follows what we see as prerequisite to utilize Open Content for higher-layered applications. Section 3 gives an overview of the qKAI application frameworks’ system design. Section 4 offers some more details concerning the qKAI hybrid data layer as one system level of the 4-tier design. Section 5 shows further services and components, Section 6 exemplifies use cases and further application scenarios. At least this contribution ends up with a conclusion and future work in Section 7.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.qkai.org/2009/12/qkai-in-journal-on-advances-in-intelligent-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>increasing productivity &#8211; part 2: Subversion</title>
		<link>http://blog.qkai.org/2009/08/subversion-version-control-to-increase-productivity/</link>
		<comments>http://blog.qkai.org/2009/08/subversion-version-control-to-increase-productivity/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 09:40:03 +0000</pubDate>
		<dc:creator>W-Mark Kubacki</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[pursuit of efficiency]]></category>
		<category><![CDATA[qKAI]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://blog.qkai.org/?p=109</guid>
		<description><![CDATA[These days about every adept in software engineering knows what version control (VC) is: A tool to commit changes into remote repositories. It is seen as replacement for some sort of postal system, where the source code is literally sent to a superior or customer.
But there are more aspects to know about it, which I [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-116" src="http://blog.qkai.org/wp-content/uploads/2009/08/flow-state-small.jpg" alt="" width="160" height="120" />These days about every adept in software engineering knows what <strong><a href="http://betterexplained.com/articles/a-visual-guide-to-version-control/">version control</a></strong> (VC) is: A tool to commit changes into remote repositories. It is seen as replacement for some sort of postal system, where the source code is literally sent to a superior or customer.</p>
<p>But there are <strong>more aspects to know about it</strong>, which I am going to write a about taking Subversion (SVN) as an example. One of it is lowering the barrier of committing code and enabling <strong>to maintain <a href="http://en.wikipedia.org/wiki/Flow_%28psychology%29">flow</a></strong>. <span id="more-109"></span> First we have to distinguish between centralized and decentral VC. I will limit this post to the first.</p>
<p>If you have ever seen developers working without VC you might probably know what mess it is, them copying working revisions to a dedicated directory, delving further into curring edge one and then eventually figuring out what they have to revert to from one of these folders &#8211; for minutes. A <strong>VC saves a good amount of time sparing the developer bookkeeping about the changes he made</strong>. Most importantly, without VC more than a few developers couldn&#8217;t work on a common code base without overwriting each one&#8217;s changes, synchronizing those history-folders and a good amount of coordination. With VC <strong>sharing changes (and reverting to a former changeset) becomes feasible</strong>.</p>
<p>Management or QA can see what was changed by whom, when and in which context. Thus they&#8217;re able to <strong>transparently track progress and account revision transitions</strong> to tickets, roadmaps and milestones without the often referring to the programmers.<br />
In SVN this can even be automatically done by establishing <strong>hooks &#8211; scripts to be run on given actions</strong>, such as the &#8216;commit&#8217;.</p>
<p>Software engineering wouldn&#8217;t be that easy as it is with VC. Novice programmers are inclined to keep their throphies, working functions for example, and drag them from revision to revision in commented-out parts of source files. In most cases this happens due to lack of understanding <strong>VC fullfills archival purposes</strong>: At any given time it is possible to revert parts of the code to a former revision, and reading them is possible, too.</p>
<p><img class="alignright size-full wp-image-119" src="http://blog.qkai.org/wp-content/uploads/2009/08/DSC05208.jpg" alt="" width="160" height="213" />Indeed that archival aspect is important in staging, where staging is the intermediate process to deploying an experimental/development version of a product to production systems. Should something go wrong <strong>a revert to a well-known working revision can occur</strong>. Even more importantly, <strong>errors can be tracked down to the small subset of code</strong> which actually has changed since last version.</p>
<p>Given common code-base <strong>updating systems becomes trivial</strong>: A revision is agreed upon to be promoted to a version to be deployed. On a systems that version is now checked-out and any upgrade scripts run (which should be versioned, too). The aspects earlier described in mind, some even version-control configuration directories.</p>
<p>A central versioning system <strong>enables usage of tools such as continuous integration</strong>, style-check and so on. As soon as code gets committed hooks can be utilized to trigger a build, test or check.<br />
And, such hooks can be used to <strong>run a check whether coding styles have been applied</strong> by the committor &#8211; if not, the code can get rejected from being written to the shared code-base as long as the novice does not correct the violations. Because this is done automatically, by a &#8220;machine&#8221;, no one from the team (or the QA) seems educational. Without losing face the coder can fix his mistake silently and <strong>preserve motivation</strong>.</p>
<p>When faced with the challenge to paint a blank page or in our case, append to existing code, one has to overcome a virtual barrier. This barrier is said to be the exact opposite of <strong>the state called flow</strong>, which to achieve is desired in the pursuit of efficiency. <strong>VC utilized right can lower that barrier down to flow significantly</strong>:<br />
Being able to get back to a working revision creates the feeling of <strong>safety and control</strong>, eliminating the need for explicitely storing and reading obsolete code or switching to update tickets or roadmaps maintains <strong>focus</strong>. Every <strong>commit becomes a small reward</strong> and updating to changes of others visualizes parallel and organized working of the group. With continuous integration and automatic (dev/staging) deployment <strong>one&#8217;s effords seem to have immediate consequences</strong> &#8211; which help keeping up motivation and everything the <strong>flow of productive working</strong>.</p>
<p>Yet assigning tasks not too hard and not to trivial is still the complementary challenge of the team leader.</p>
<p><img class="alignnone size-full wp-image-117" src="http://blog.qkai.org/wp-content/uploads/2009/08/flow-state-excerpt.jpg" alt="" width="560" height="183" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.qkai.org/2009/08/subversion-version-control-to-increase-productivity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>what languages qKAI is written in</title>
		<link>http://blog.qkai.org/2009/07/what-languages-qkai-is-written-in/</link>
		<comments>http://blog.qkai.org/2009/07/what-languages-qkai-is-written-in/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 15:54:48 +0000</pubDate>
		<dc:creator>W-Mark Kubacki</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[introductionary]]></category>
		<category><![CDATA[qKAI]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://blog.qkai.org/?p=102</guid>
		<description><![CDATA[Today I&#8217;ve been asked by a fellow student what languages qKAI is written in. So I launched CLOC and, before presenting you the output, I must give the remark that the actual language usage might change drastically in future. But here is the graph: 

These are &#8220;code lines&#8221; only, whatever CLOC means by that. Unit [...]]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve been asked by a fellow student <strong>what languages qKAI is written in</strong>. So I launched <a href="http://cloc.sourceforge.net/">CLOC</a> and, before presenting you the output, I must give the remark that <strong>the actual language usage might change drastically</strong> in future. But here is the graph: <span id="more-102"></span></p>
<p><img class="alignnone size-full wp-image-103" src="http://blog.qkai.org/wp-content/uploads/2009/07/pie-chart-r1592-language-distribution.png" alt="pie chart - r1592 language distribution" width="420" height="210" /></p>
<p>These are &#8220;code lines&#8221; only, whatever CLOC means by that. <strong>Unit tests have not been counted</strong> as well as code within comments and the documentation.</p>
<p>Since the first version (revision 863), written by Jan Hein, the distribution changed a lot. Here is another visualization, again only &#8220;code lines&#8221; count:</p>
<p><img class="alignnone size-full wp-image-105" src="http://blog.qkai.org/wp-content/uploads/2009/07/qKAI-source-code-language-history.png" alt="qKAI source code language history" width="456" height="750" /></p>
<p>In the next few days the amount of C/C++ code will double as our MySQL customizations will be extended. Most probably <strong>JSP will vanish in favour of Java</strong> and it could happen that the SQL code amount will stall where it is and a lot of Flex will be checked in.</p>
<p>We have <strong>about 12 design patterns</strong> in use, most of them have been introduced since revision 863.</p>
<p>But, as a future contributor to qKAI you don&#8217;t need to be afraid of mastering all the languages. Indeed you have the freedom to stick to two or three you know the best. That&#8217;s how everyone started and you can see where qKAI is now&#8230;</p>
<hr /><a href="http://blog.qkai.org/wp-content/uploads/2009/07/r893-cloc-output.txt">r893 cloc output</a>, <a href="http://blog.qkai.org/wp-content/uploads/2009/07/r1592-cloc-output.txt">r1592 cloc output</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.qkai.org/2009/07/what-languages-qkai-is-written-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Specification of information units</title>
		<link>http://blog.qkai.org/2009/07/specification-of-information-units/</link>
		<comments>http://blog.qkai.org/2009/07/specification-of-information-units/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 14:11:44 +0000</pubDate>
		<dc:creator>Monika</dc:creator>
				<category><![CDATA[Concept]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Chunking]]></category>
		<category><![CDATA[KnowledgeEngineering]]></category>
		<category><![CDATA[LinkedOpenData]]></category>
		<category><![CDATA[NLP]]></category>
		<category><![CDATA[OpenData]]></category>
		<category><![CDATA[qKAI]]></category>
		<category><![CDATA[Wikipedia]]></category>

		<guid isPermaLink="false">http://blog.qkai.org/?p=61</guid>
		<description><![CDATA[Jan Hein finished his Master thesis at the end of 2008 with the topic: &#8216;Specification and implementation of information units for qualifying knowledge modelling&#8217; (Thesis in German). Automated extraction of text chunks out of Wikipedia without loosing structure and context is next to semantic annotation the main focus of his work.
The specification of information units [...]]]></description>
			<content:encoded><![CDATA[<p>Jan Hein finished his Master thesis at the end of 2008 with the topic: <a href='http://blog.qkai.org/wp-content/uploads/2009/06/Masterarbeit_Hein.pdf'>&#8216;Specification and implementation of information units for qualifying knowledge modelling&#8217; (Thesis in German)</a>. Automated extraction of text chunks out of Wikipedia without loosing structure and context is next to semantic annotation the main focus of his work.</p>
<p>The specification of information units can be found here: <a href="http://qkai.org/spec/2008/10/" target="_blank">http://qkai.org/spec/2008/10/</a></p>
<p>The Wikipedia Extractor prototype is available under <a href="http://qkai.org/WikipediaExtractor" target=_blank">http://qkai.org/WikipediaExtractor</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.qkai.org/2009/07/specification-of-information-units/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>increasing productivity &#8211; part 1: Maven</title>
		<link>http://blog.qkai.org/2009/07/maven-to-increase-productivity/</link>
		<comments>http://blog.qkai.org/2009/07/maven-to-increase-productivity/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 11:39:01 +0000</pubDate>
		<dc:creator>W-Mark Kubacki</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[pursuit of efficiency]]></category>
		<category><![CDATA[qKAI]]></category>
		<category><![CDATA[software engineering]]></category>

		<guid isPermaLink="false">http://blog.qkai.org/?p=94</guid>
		<description><![CDATA[One of the most important challenges to face first is leveraging developers&#8217; time for maximum efficiency. At qKAI this is especially due to students, writing their theses, contribute to the code base. Therefore we have established several tools to spare them redundant work, maintain a constant code quality and automate the build.
This time I will [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-96" src="http://blog.qkai.org/wp-content/uploads/2009/07/automation.jpg" alt="" width="160" height="136" />One of the most important challenges to face first is <strong>leveraging developers&#8217; time for maximum efficiency</strong>. At qKAI this is especially due to students, writing their theses, contribute to the code base. Therefore we have <strong>established several tools</strong> to spare them redundant work, maintain a constant code quality and automate the build.</p>
<p>This time I will write about <a href="http://maven.apache.org/"><strong>Maven</strong></a>, <span id="more-94"></span> which &#8211; as Monika <a href="http://blog.qkai.org/2009/06/qkai-maven-project-documentation/">already revealed</a> &#8211; we utilize to generate (and publish) a simple <a href="http://docs.qkai.org/">documentation page</a>. I do see <em>Maven</em> as a mean to conserve and reproduce a process such as building the application and packaging it. Someone who is new to &#8220;all this&#8221; will most probably forget about byte-code enriching, converting charsets or simply running tests and integration tests. By <em>Maven</em> a &#8220;<code>mvn package</code>&#8221; is as easy to remember as it preserves the convenience to not forget about running one of the steps mentioned above.<br />
And, should the process be extended no present developer will even have the opportunity to omit eventual new steps; should one go his knowledge does not get lost.</p>
<p>An widely used alternative is <a href="http://ant.apache.org/"><strong>Ant</strong></a>. We have decided not to use it primarily as it <strong>lacks the ability to resolve and download dependencies</strong>, which our current tool is able to. (<a href="http://ant.apache.org/ivy/">See Ivy</a> for <em>Ant</em> as dependency manager downloading from Maven repositories.)<br />
By the time I wrote my thesis I have had to spend about a week to dig through qKAI&#8217;s dependencies, figure out which package requires another and how to update the clique in case of the errors I experienced.</p>
<p><img class="alignright size-full wp-image-98" src="http://blog.qkai.org/wp-content/uploads/2009/07/toyota-factory-2.jpg" alt="" width="149" height="188" />Today we can even introduce new tools such as <a href="http://pmd.sourceforge.net/">PMD</a> or <a href="http://clarkware.com/software/JDepend.html">JDepend</a> <strong>without burdening someone with installation, configuration or familiarization</strong>. A quick &#8220;notice the new reports on our page&#8221; at the distribution list suffices.</p>
<p>How we managed to automatically provide modified third party code and how we incorporated <strong>Maven with continuous integration</strong> is another topic. Such as enforcing coding styles and what we used Subversion&#8217;s scripts for. So, stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.qkai.org/2009/07/maven-to-increase-productivity/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>qKAI Maven project documentation</title>
		<link>http://blog.qkai.org/2009/06/qkai-maven-project-documentation/</link>
		<comments>http://blog.qkai.org/2009/06/qkai-maven-project-documentation/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 10:53:24 +0000</pubDate>
		<dc:creator>Monika</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[qKAI]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://blog.qkai.org/?p=74</guid>
		<description><![CDATA[Within his Bachelor thesis about search space limitation (details follow soon), Mark Kubacki established Apache Maven (amongst others) in the qKAI application framework:
Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project&#8217;s build, reporting and documentation from a central piece of [...]]]></description>
			<content:encoded><![CDATA[<p>Within his Bachelor thesis about search space limitation (details follow soon), <a href="http://mark.ossdl.de/about-me/" target="_blank">Mark Kubacki</a> established <a href="http://maven.apache.org/" target="_blank">Apache Maven</a> (amongst others) in the qKAI application framework:</p>
<blockquote><p>Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project&#8217;s build, reporting and documentation from a central piece of information. (http://maven.apache.org/)</p></blockquote>
<p>With Maven we got a nice project documentation now &#8211; available under <a href="http://docs.qkai.org" target="_blank">http://docs.qkai.org</a>. Especially the <a href="http://docs.qkai.org/api-methods.html" target="_blank">API section</a> is work in progress and will be enhanced by and by. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.qkai.org/2009/06/qkai-maven-project-documentation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

