<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Anton Andreev's blog - Techno-talk</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/</link>
    <description>Anton Andreev's blog</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    
    

<item>
    <title>Semantic annotation now looks even sexier</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/251-Semantic-annotation-now-looks-even-sexier.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/251-Semantic-annotation-now-looks-even-sexier.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=251</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=251</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    I am investigating whether I can run Linux and &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/kim/index.html&#039;);&quot;  href=&quot;http://ontotext.com/kim/index.html&quot; target=_blank&gt;Ontotext KIM&lt;/a&gt; on the Play Station 3. As far as I see I need the IBM Java VM. &lt;br /&gt;
&lt;br /&gt;
Looks like Fedora 11 install under PS3 just fine. More &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/forums.fedoraforum.org/showthread.php?t=220906&#039;);&quot;  href=&quot;http://forums.fedoraforum.org/showthread.php?t=220906&quot; target=_blank&gt;here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Officially KIM supports only the Sun JVM. I have tried the KIM platform under the IBM Java VM on a 32-bit Fedora 11 on Intel machine.  I have downloaded it from IBM &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ibm.com/developerworks/java/jdk/linux/download.html&#039;);&quot;  href=&quot;http://www.ibm.com/developerworks/java/jdk/linux/download.html&quot; target=_blank&gt;web-site&lt;/a&gt;. The archive name is: &quot;ibm-java-sdk-6.0-5.0-linux-i386.tgz&quot;. I also did fix a potential problem in my Relations framework in the development version of KIM 3.0 thanks to using the IBM JVM.&lt;br /&gt;
&lt;br /&gt;
1. There seems to be a bug related to incompatibility with older com.thoughtworks.xstream.XStream and IBM Java VM: http://jira.codehaus.org/browse/XSTR-379 &lt;br /&gt;
&lt;br /&gt;
The resolution is to replace the current XStream 1.2 with the current XStream 1.3.1 &lt;br /&gt;
We did that today in the main-stream KIM 3.0 dev version. &lt;br /&gt;
&lt;br /&gt;
2. The line: &lt;br /&gt;
KIM_OPTS=&quot;$KIM_OPTS -Xshare:off&quot; in KIM_control.sh &lt;br /&gt;
prevents KIM from starting because &quot;-Xshare:off&quot; is not supported parameter from the IBM Java VM. &lt;br /&gt;
The resolution that allowed KIM to start is: KIM_OPTS=&quot;$KIM_OPTS&quot;&lt;br /&gt;
I have modified the KIM bash scripts to resolve this problem.&lt;br /&gt;
&lt;br /&gt;
Fixing these two problems now allows KIM to start normally with IBM JVM and it should also work with PowerPC version of the IBM JVM(32-bit iSeries/pSeries). The archive for the Play Station 3 should be &quot;ibm-java-sdk-6.0-5.0-linux-ppc.tgz&quot;.&lt;br /&gt;
&lt;br /&gt;
OpenJDK also starts KIM just fine and seems to work for now.&lt;br /&gt;
&lt;br /&gt;
Also keep in mind that officially &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/kim/index.html&#039;);&quot;  href=&quot;http://ontotext.com/kim/index.html&quot; target=_blank&gt;Ontotext KIM&lt;/a&gt; does not support non-Sun VMs. &lt;br /&gt;
&lt;br /&gt;
Now the only missing piece is the Play Station 3 itself. 
    </content:encoded>

    <pubDate>Mon, 07 Sep 2009 16:49:23 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/251-guid.html</guid>
    <category>kim</category>
<category>linkedin</category>
<category>ontotext</category>
<category>playstation3</category>
<category>semantic web</category>

</item>
<item>
    <title>Semantic Techology Specialist</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/250-Semantic-Techology-Specialist.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/250-Semantic-Techology-Specialist.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=250</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=250</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    Last week we had some presentations/lectures here in &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/&#039;);&quot;  href=&quot;http://ontotext.com/&quot; target=_blank&gt;Ontotext&lt;/a&gt; from the University of Sheffield. We learned more about &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/gate.ac.uk/&#039;);&quot;  href=&quot;http://gate.ac.uk/&quot; target=_blank&gt;GATE&lt;/a&gt;  and &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/gate.ac.uk/teamware/&#039;);&quot;  href=&quot;http://gate.ac.uk/teamware/&quot; target=_blank&gt;GATE Teamware&lt;/a&gt;. I am going to dedicate a whole post to &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/gate.ac.uk/teamware/&#039;);&quot;  href=&quot;http://gate.ac.uk/teamware/&quot; target=_blank&gt;GATE Teamware&lt;/a&gt; soon. It was interesting to see some of the internals of GATE and new features in versions 5.0/5.1. Lectures were presented by &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.dcs.shef.ac.uk/~kalina/&#039;);&quot;  href=&quot;http://www.dcs.shef.ac.uk/~kalina/&quot; target=_blank&gt;Kalina Bontcheva&lt;/a&gt;, Senior researcher in the Natural Language Processing Group, Department of Computer Science, University of Sheffield. &lt;br /&gt;
&lt;br /&gt;
I also got my certificate as a semantic technology specialist from &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.semsphere.com/en/training/certifications&#039;);&quot;  href=&quot;http://www.semsphere.com/en/training/certifications&quot; target=_blank&gt;Semsphere&lt;/a&gt;. The course was good to my opinion. &lt;br /&gt;
&lt;br /&gt;
Photos are coming. 
    </content:encoded>

    <pubDate>Mon, 07 Sep 2009 11:07:53 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/250-guid.html</guid>
    <category>english</category>
<category>linkedin</category>
<category>ontotext</category>
<category>semantic web</category>

</item>
<item>
    <title>KIM Multi-threaded Clustered Client Application - KIM part 9</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/249-KIM-Multi-threaded-Clustered-Client-Application-KIM-part-9.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/249-KIM-Multi-threaded-Clustered-Client-Application-KIM-part-9.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=249</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=249</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;strong&gt;Summary:&lt;/strong&gt;&lt;br /&gt;
Today we are going to talk about performance optimizations in the next version of KIM that will released by the end of this year. Its version number is 3.0 and most likely in will appear in October, but if needed the release will be postponed. &lt;br /&gt;
We are going to talk about both clustering(use of more than one KIM sever instance) and multi-threading. Threads are used for executing the KIM semantic annotator in parallel which returns annotated documents.&lt;br /&gt;
&lt;br /&gt;
One of the most important setting to remember is configured in \config\nerc.properties:&lt;br /&gt;
&lt;br /&gt;
# Maximum number of annotation processes that can run at the same time.&lt;br /&gt;
# If set to more than 1,  KIM will load multiple copies of the pipelines listed in the IE_APP parameter above&lt;br /&gt;
# during initialization. Multiple copies of the pipeline allow for parallel annotation of up to that number of documents&lt;br /&gt;
# Default: 1 (parallel annotation disabled)&lt;br /&gt;
&lt;div class=&quot;java&quot; style=&quot;text-align: left&quot;&gt;com.&lt;span style=&quot;color: #006600;&quot;&gt;ontotext&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;kim&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;semanticannotation&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;PARALLEL_NERCS&lt;/span&gt;=&lt;span style=&quot;color: #cc66cc;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
As you see by using this new parameter in KIM 3.0 you will get 6 instances of the pipeline, so that 6 documents could be processed(annotated) in the same time. &lt;br /&gt;
&lt;br /&gt;
Now you need to take a look at the KIMProcessor I have written. The code is &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/kimnetdemos/source/browse/#svn/trunk/KIMProcessor&#039;);&quot;  href=&quot;http://code.google.com/p/kimnetdemos/source/browse/#svn/trunk/KIMProcessor&quot; target=_blank&gt;here&lt;/a&gt;. Keep in mind that this code has been created with a development build of the KIM 3.0. &lt;br /&gt;
&lt;br /&gt;
Threads have been used to speed-up the supply of the documents to the KIM server. The problem is that this won&#039;t speed up you work much. If you supply KIM with too much documents and there is no free pipeline than probably your documents will be queued and you will only take memory.&lt;br /&gt;
&lt;br /&gt;
You may set:&lt;br /&gt;
&lt;div class=&quot;java&quot; style=&quot;text-align: left&quot;&gt;com.&lt;span style=&quot;color: #006600;&quot;&gt;ontotext&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;kim&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;semanticannotation&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;PARALLEL_NERCS&lt;/span&gt;=auto&lt;/div&gt;and the number of pipelines will be equal to the number of processor cores reported by the OS (on Windows cmd: echo %NUMBER_OF_PROCESSORS%)&lt;br /&gt;
&lt;br /&gt;
The threading functionality needs to be extended and would be useful in two cases:&lt;br /&gt;
&lt;br /&gt;
1. When using the KIMProcessor with multiple KIM servers. You could set for example 5 physical machines with 1 KIM server each. The machine that is running the KIMProcessor is the one who reads the documents(Postgresql 8.4 in this example). So if you are reading the documents from a single standard hard-drive it is possible that you need to supply the articles faster now as you now have 5 servers with let&#039;s say 6 pipelines each which results in 30 pipelines. In this case the use of threading is definitely useful. Of course the threads won&#039;t help when you reach the  I/O limit of your hard-drive.&lt;br /&gt;
&lt;br /&gt;
2. If you have big documents they will be read slower and in the same time they will take more time to process. Using threads to supply the documents might again be too fast as all the pipelines might be busy again. A good example when you should use threads is when you load documents from a web-service and these documents are of normal news article size(not too big). &lt;br /&gt;
&lt;br /&gt;
Note that in the KIMProcessor all the articles are first loaded in memory and then they are supplied to the KIM server async. The right way to code this is to use some kind of async calls to the database and use a synchronized blocking queue, so the moment a document is read it is being send to the KIM server.&lt;br /&gt;
&lt;br /&gt;
Another cool feature to add to the KIMProcessor will be fail-safe support. When one of the servers is down, the documents that were sent to it should now be pulled back to the queue, so that another node in the cluster can process them. Also a automatic check should be done once in a while so that the server can be used again when it is back on-line.&lt;br /&gt;
The best solution is to implement KIM with &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/hadoop.apache.org/&#039;);&quot;  href=&quot;http://hadoop.apache.org/&quot; target=_blank&gt;Hadoop&lt;/a&gt;, but that will take time.&lt;br /&gt;
&lt;br /&gt;
In &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/&#039;);&quot;  href=&quot;http://www.ontotext.com/&quot; target=_blank&gt;Ontotext&lt;/a&gt; we have a different tested application which is used to process more than 100 000 documents. The one provided here(the KIMProcessor) is only maintained by me fro now.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Disclaimer:&lt;/strong&gt;&lt;br /&gt;
Keep in mind that this post represents only my personal view of the topic. You should try different configurations and see how it works for yourself or probably use our tested tool.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quick links:&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/258-The-Semantic-Annotation-Workflow-KIM-part-10.html&quot; target=_blank&gt;The Semantic Annotation Workflow - KIM part 10&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/249-KIM-Multithreaded-Clustered-Client-Application-KIM-part-9.html&quot; target=_blank&gt;KIM Multi-threaded Clustered Client Application - KIM part 9&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/260-Gazetteers-KIMGATE-part-7.html&quot; target=_blank &gt;Gazetteers - KIM/GATE part 7&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/231-Strict-Rules-vs-Machine-Learning-KIM-part-6.html&quot; target=_blank &gt;Strict Rules vs Machine Learning - KIM part 6&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/242-KIM-Tips-and-Tricks-KIM-PART-5.html&quot; target=_blank&gt;Tips and Tricks - KIM part 5&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/230-Using-a-Gate-application-KIM-part-4.html&quot; target=_blank&gt;Using a Gate application - KIM part 4&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/228-GATE-tutorial-KIM-part-3.html&quot; target=_blank&gt;Gate tutorial - KIM part 3&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/216-KIM-.NET-Demo-Part-2.html&quot; target=_blank&gt;Using KIM from .NET - KIM part 2&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/256-KIMGATE-Getting-Started-part-1.html&quot; target=_blank&gt;Getting Started - KIM part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/214-Install-Ontotext-KIM-on-windows-Part-1.html&quot; target=_blank&gt;Installation - KIM part 0&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 03 Sep 2009 13:54:36 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/249-guid.html</guid>
    <category>english</category>
<category>java</category>
<category>kim</category>
<category>linkedin</category>
<category>nlp</category>
<category>ontotext</category>
<category>semantic web</category>

</item>
<item>
    <title>.NET for the iPhone</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/243-.NET-for-the-iPhone.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/243-.NET-for-the-iPhone.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=243</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=243</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.mono-project.com/MonoTouch&#039;);&quot;  href=&quot;http://www.mono-project.com/MonoTouch&quot; target=_blank&gt;MonoTouch&lt;/a&gt; is a platform for developing .NET applications for the iPhone. This time I may really consider buying an iPhone. The uncertainties around the Apple store and their software kit were preventing me from doing that. Not to mention that in my country is it at least three times more expensive that in the US. The iPhone might be cool, but Apple have some weird policies and developers are not that respected as in the Android platform.&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 04 Aug 2009 19:56:16 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/243-guid.html</guid>
    <category>english</category>
<category>linkedin</category>

</item>
<item>
    <title>KIM Tips and Tricks - KIM PART 5</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/242-KIM-Tips-and-Tricks-KIM-PART-5.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/242-KIM-Tips-and-Tricks-KIM-PART-5.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=242</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=242</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;strong&gt;Summary:&lt;/strong&gt;&lt;br /&gt;
While working with &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/kim/&#039;);&quot;  href=&quot;http://ontotext.com/kim/&quot; target=_blank&gt;Ontotext KIM&lt;/a&gt; you may encounter some difficulties or you may want to do some simple common tasks, so I have created this FAQ:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;1. Problems starting KIM&lt;/strong&gt;&lt;br /&gt;
KIM incorporates a semantic repository - a storage and inference layer software called &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/owlim/&#039;);&quot;  href=&quot;http://ontotext.com/owlim/&quot; target=_blank&gt;OWLIM&lt;/a&gt; (see below). It is not a relative database, we could call it a knowledge database, but still a database. It has locks, transactions and thus when you forcibly should down the database, you will get some complaints that something went wrong. &lt;br /&gt;
To avoid this you should always use: &lt;em&gt;startKIM.bat&lt;/em&gt; and &lt;em&gt;stopKIM.bat&lt;/em&gt; to start/stop the KIM server and the KIM GATE UI (&lt;em&gt;\bin\startKIMGate.bat&lt;/em&gt;). Problems are usually related to the  &lt;em&gt;lock&lt;/em&gt;(or &lt;em&gt;stack&lt;/em&gt; file) in &lt;em&gt;\context\default\populated&lt;/em&gt; folder and you need to delete this file manually.  This file tells &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/owlim/&#039;);&quot;  href=&quot;http://ontotext.com/owlim/&quot; target=_blank&gt;OWLIM&lt;/a&gt; that the previous instance of &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/owlim/&#039;);&quot;  href=&quot;http://ontotext.com/owlim/&quot; target=_blank&gt;OWLIM&lt;/a&gt; did shutdown correctly.  The &lt;em&gt;populated&lt;/em&gt; folder is where all data and index files are stored. If you do not keep something important in the database you may delete all files in the &lt;em&gt;\context\default\populated&lt;/em&gt; folder. This will force OWLIM to reload all &lt;em&gt;nt&lt;/em&gt; and &lt;em&gt;owl&lt;/em&gt; files, create a new cache and thus fix some problems. It is something like a Windows reinstall. Keep in mind that clearing your entire &lt;em&gt;populated&lt;/em&gt; folder will make KIM load much slower in order to rebuild everything.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;2. I do not see my annotations&lt;/strong&gt;&lt;br /&gt;
Suppose you have a Jape file and you use it KIM GATE UI(&lt;em&gt;\bin\startKIMGate.bat&lt;/em&gt;) and you do not see your annotation in the &quot;Annotation Sets&quot; in GATE. If you are sure that this annotation should be visible the problem might be in the KIM GATE pipeline. The pipeline has two resources &quot;Instance Generator&quot; and &quot;Annotation Cleaner&quot;. The &quot;Instance Generator&quot; is very important resource in KIM and part of its jobs is to clear unrecognized and temp annotations. The &quot;Annotation Cleaner&quot; also does a similar job. To make the &quot;Instance Generator&quot; aware of your annotation you need to add it to a white list in &lt;em&gt;\config\nerc.properties&lt;/em&gt; in &lt;em&gt;com.ontotext.kim.KIMConstants.IE_ANN_TYPES&lt;/em&gt;. The second solution is to temporally disable these two GATE resources from  the pipeline. This can be done when you click on the KIM application and click a resource in &quot;Selected processing resources&quot;. &lt;br /&gt;
&lt;br /&gt;
The &quot;Instance Generator&quot; is the one who makes the connection between your annotation and the entities in the semantic repository (stored in the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/owlim/&#039;);&quot;  href=&quot;http://ontotext.com/owlim/&quot; target=_blank&gt;OWLIM&lt;/a&gt; database).&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;3. What is the difference between &quot;inst&quot; and &quot;class&quot;?&lt;/strong&gt;&lt;br /&gt;
Generally the &quot;inst&quot; feature holds the URI of an entity.  If the entity has been recognized by the semantic gazetteer (KIM Gazetteer), it is an existing entity in the semantic repository with  a specific URI. If, on the other side, it has been extracted with the help of some Jape rules for example, the entity does not exist so only a class feature should be provided. Later, if the Instance Generator  PR is a part of the pipeline, it will create a unique instance URI for this entity and put it in the semantic repository.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;4. How to add a new &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Web_Ontology_Language&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Web_Ontology_Language&quot; target=_blank&gt;OWL&lt;/a&gt; file?&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
1. You can use a tool in the&lt;em&gt; \bin\tools&lt;/em&gt; called &quot;toolRdfImport.bat(.sh)&quot; which requires a folder as a parameter. The tool will import all files in the specified folder.&lt;br /&gt;
&lt;br /&gt;
d:\kim\bin\tools&gt;toolrdfimport c:\test\owl&lt;br /&gt;
&lt;br /&gt;
Every time you add a new property you can just use this tool over the same file. Check the documentation &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/kim/doc/sys-doc/RDFImport.html&#039;);&quot;  href=&quot;http://ontotext.com/kim/doc/sys-doc/RDFImport.html&quot; target=_blank&gt;here&lt;/a&gt;. &lt;br /&gt;
There is also another tool called &quot;toolRdfUpdate.bat&quot; which can make a diff between two files and then applies the changes - both add and remove. With  &quot;toolRdfImport.bat&quot; you can only add. Unfortunately  &quot;toolRdfUpdate.bat&quot; is not that easy to use. &lt;br /&gt;
&lt;br /&gt;
2. Usually all knowledge-base files reside in &quot;\kim\context\default\kb&quot; and OWL files are in the subfolder &quot;owl&quot;. The second option is to edit the file&lt;em&gt; \config\owlim.ttl&lt;/em&gt;. As the name tells this file configures the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/owlim/&#039;);&quot;  href=&quot;http://ontotext.com/owlim/&quot; target=_blank&gt;OWLIM&lt;/a&gt; database. You need to add a new line in both  &quot;imports&quot; and &quot;defaultNS&quot;. The first line points to your OWL file and the one in &quot;defaultNS&quot; must be at same row number as in &quot;imports&quot;. Every line in &quot;imports&quot; has a corresponding line in &quot;defaultNS&quot;. Both sections must have the same row number count (obviously). Then you need to delete the contents of your &lt;em&gt;\context\default\populated&lt;/em&gt; folder and restart KIM. Keep in mind that by deleting  &lt;em&gt;\context\default\populated&lt;/em&gt; you will lose all data loaded through KIM GATE UI or the &quot;&lt;em&gt;\bin\tools\toolConsolePopulate &lt;/em&gt;&quot;. You will also need to wait longer for KIM to start than usual, so that OWLIM indexes and cache are built again.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;5. Troubleshooting the KIM server communication&lt;/strong&gt;&lt;br /&gt;
Usually communication is done through RMI or Web Services. &lt;br /&gt;
The most important config properties when using RMI are:&lt;br /&gt;
&lt;br /&gt;
5.1. Changing the Java Policy &lt;br /&gt;
The JVM that KIM Server uses must be configured so that it allows calls on the ports KIM Server exposes. This is done by editing permissions in: &lt;br /&gt;
(JRE) /$JRE/lib/security/java.policy &lt;br /&gt;
(JDK) /$JDK/jre/lib/security/java.policy &lt;br /&gt;
The following line in the file should be modified so it allows connecting to the ports specified from an outer machine:&lt;br /&gt;
// allows anyone to listen on un-privileged ports&lt;br /&gt;
&lt;div class=&quot;java&quot; style=&quot;text-align: left&quot;&gt;permission java.&lt;span style=&quot;color: #006600;&quot;&gt;net&lt;/span&gt;.&lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASocketPermission+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;SocketPermission&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;localhost:1024-&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;listen&quot;&lt;/span&gt;;&lt;/div&gt;&lt;br /&gt;
 to&lt;br /&gt;
// allows anyone to listen, connect or accept connections on un-privileged ports&lt;br /&gt;
&lt;div class=&quot;java&quot; style=&quot;text-align: left&quot;&gt;permission java.&lt;span style=&quot;color: #006600;&quot;&gt;net&lt;/span&gt;.&lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASocketPermission+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;SocketPermission&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;*:1024-&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;listen,connect,accept&quot;&lt;/span&gt;;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
5.2. Setting up your external IP address&lt;br /&gt;
&lt;br /&gt;
You get message like these:&lt;br /&gt;
WARN: It appears that the remote KIM RMI server, expected at XXX.XXX.XXX.XXX reported the wrong endpoint socket: ChannelIfaceImpl_Stub[UnicastRef [liveRef: [endpoint:[127.0.0.1:40695](remote),objID:&lt;br /&gt;
WARN: The connection is likely to fail. If it does, alert the server administrators and attach this message.&lt;br /&gt;
&lt;br /&gt;
This means that the RMI do not know on which IP to listen for your incoming connections. This usually happens on machines with more than one IP address and it depends by the RMI implementation for each JVM. You need to explicitly state the IP address on which you expect to find the KIM server in config/install.properties:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;java&quot; style=&quot;text-align: left&quot;&gt;com.&lt;span style=&quot;color: #006600;&quot;&gt;ontotext&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;kim&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;KIMConstants&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;RMI_HOST&lt;/span&gt;=&lt;span style=&quot;color: #cc66cc;&quot;&gt;192&lt;/span&gt;.&lt;span style=&quot;color: #cc66cc;&quot;&gt;168&lt;/span&gt;.&lt;span style=&quot;color: #cc66cc;&quot;&gt;121&lt;/span&gt;.&lt;span style=&quot;color: #cc66cc;&quot;&gt;139&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
This specifies a visible/outer IP for the server. Java RMI clients will try to find the KIM Server at that IP address, so it must be the same as the address used in GetService.from(IP, port) in the client code. &lt;br /&gt;
Usually on a Linux systems with more than one IP address you need to set the address that you are going to use to access the KIM server in \config\install.properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next version KIM 3.0 will provide services through &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Java_Message_Service&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Java_Message_Service&quot; target=_blank&gt;JMS&lt;/a&gt;. You can find a .NET demo utilizing the Web Services &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/kimnetdemos/source/browse/#svn/trunk/KIM-dotnet&#039;);&quot;  href=&quot;http://code.google.com/p/kimnetdemos/source/browse/#svn/trunk/KIM-dotnet&quot; target=_blank&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;6. How to develop Jape rules easier&lt;/strong&gt;&lt;br /&gt;
A JAPE Eclipse plug-in with code-complete and syntax high-lightening is definitely a good idea, but it is not available!&lt;br /&gt;
Each JAPE rule is being converted to pure JAVA code.&lt;br /&gt;
&lt;br /&gt;
If you make a mistake in the Java part (there might be no JAVA code) of  your JAPE rule you will get an exception and you will see the generated Java code. You could copy paste this code into Eclipse and complete it comfortably. You may need to cause an exception on purpose from the very beginning to get the that code. Then when done you can paste the needed part back to the Java part of your Jape rule. Once again - Jape rules might contain Java code thanks to the GATE API or they might not. Let&#039;s illustrate what I mean:&lt;br /&gt;
&lt;div class=&quot;java&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;Phase:&amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AName+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Name&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Input: Token Lookup TempDate&lt;br /&gt;Options: control = appelt&lt;br /&gt;&lt;br /&gt;Rule: EarlyDate&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// early in 2002&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// in early 2002&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;Token.&lt;span style=&quot;color: #006600;&quot;&gt;string&lt;/span&gt; == early&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;|&lt;br /&gt;&amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;Token.&lt;span style=&quot;color: #006600;&quot;&gt;string&lt;/span&gt; == late&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;Token.&lt;span style=&quot;color: #006600;&quot;&gt;string&lt;/span&gt; == &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;in&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;?&lt;br /&gt;&amp;#160;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;TempDate&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;|&lt;br /&gt;&amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;Lookup.&lt;span style=&quot;color: #006600;&quot;&gt;majorType&lt;/span&gt; == time_modifier&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;br /&gt;&amp;#160; &amp;#160;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;Lookup.&lt;span style=&quot;color: #006600;&quot;&gt;majorType&lt;/span&gt; == date_unit&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;:date&lt;br /&gt;--&amp;gt;&lt;br /&gt;&amp;#160;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//removes TempDate annotation, gets the rule feature and adds a new TempDate annotation&lt;/span&gt;&lt;br /&gt;gate.&lt;span style=&quot;color: #006600;&quot;&gt;AnnotationSet&lt;/span&gt; date = &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;gate.&lt;span style=&quot;color: #006600;&quot;&gt;AnnotationSet&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;bindings.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;date&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;gate.&lt;a href=&quot;http://www.google.com/search?q=allinurl%3AAnnotation+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Annotation&lt;/span&gt;&lt;/a&gt; dateAnn = &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;gate.&lt;a href=&quot;http://www.google.com/search?q=allinurl%3AAnnotation+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Annotation&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;date.&lt;span style=&quot;color: #006600;&quot;&gt;iterator&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;next&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;gate.&lt;span style=&quot;color: #006600;&quot;&gt;FeatureMap&lt;/span&gt; features = Factory.&lt;span style=&quot;color: #006600;&quot;&gt;newFeatureMap&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;features.&lt;span style=&quot;color: #006600;&quot;&gt;put&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;rule&quot;&lt;/span&gt;, dateAnn.&lt;span style=&quot;color: #006600;&quot;&gt;getFeatures&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;rule&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;features.&lt;span style=&quot;color: #006600;&quot;&gt;put&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;rule2&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;EarlyDate&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;annotations.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;date.&lt;span style=&quot;color: #006600;&quot;&gt;firstNode&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, date.&lt;span style=&quot;color: #006600;&quot;&gt;lastNode&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;TempDate&quot;&lt;/span&gt;,&lt;br /&gt;features&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;annotations.&lt;span style=&quot;color: #006600;&quot;&gt;removeAll&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;date&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
And the Java code I got by causing a compiler exception by putting some random symbols(here removed):&lt;br /&gt;
&lt;div class=&quot;java&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;package japeactionclasses; &lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.io.*;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.util.*;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.*;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.jape.*;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.creole.ontology.Ontology;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.annotation.*;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.util.*;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;br /&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; NameEarlyDateActionClass314&lt;br /&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;implements&lt;/span&gt; java.&lt;span style=&quot;color: #006600;&quot;&gt;io&lt;/span&gt;.&lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASerializable+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Serializable&lt;/span&gt;&lt;/a&gt;, RhsAction &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;br /&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; doit&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=allinurl%3ADocument+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Document&lt;/span&gt;&lt;/a&gt; doc, java.&lt;span style=&quot;color: #006600;&quot;&gt;util&lt;/span&gt;.&lt;a href=&quot;http://www.google.com/search?q=allinurl%3AMap+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Map&lt;/span&gt;&lt;/a&gt; bindings, &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;AnnotationSet annotations, &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; AnnotationSet inputAS, AnnotationSet outputAS, &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Ontology ontology&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//removes TempDate annotation, gets the rule feature and adds a new TempDate annotation&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160;gate.&lt;span style=&quot;color: #006600;&quot;&gt;AnnotationSet&lt;/span&gt; date = &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;gate.&lt;span style=&quot;color: #006600;&quot;&gt;AnnotationSet&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;bindings.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;date&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160;gate.&lt;a href=&quot;http://www.google.com/search?q=allinurl%3AAnnotation+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Annotation&lt;/span&gt;&lt;/a&gt; dateAnn = &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;gate.&lt;a href=&quot;http://www.google.com/search?q=allinurl%3AAnnotation+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Annotation&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;date.&lt;span style=&quot;color: #006600;&quot;&gt;iterator&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;next&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160;gate.&lt;span style=&quot;color: #006600;&quot;&gt;FeatureMap&lt;/span&gt; features = Factory.&lt;span style=&quot;color: #006600;&quot;&gt;newFeatureMap&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160;features.&lt;span style=&quot;color: #006600;&quot;&gt;put&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;rule&quot;&lt;/span&gt;, dateAnn.&lt;span style=&quot;color: #006600;&quot;&gt;getFeatures&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;rule&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160;features.&lt;span style=&quot;color: #006600;&quot;&gt;put&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;rule2&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;EarlyDate&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160;annotations.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;date.&lt;span style=&quot;color: #006600;&quot;&gt;firstNode&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, date.&lt;span style=&quot;color: #006600;&quot;&gt;lastNode&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;TempDate&quot;&lt;/span&gt;,&lt;br /&gt;&amp;#160; &amp;#160;features&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; annotations.&lt;span style=&quot;color: #006600;&quot;&gt;removeAll&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;date&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
This Java code sample should compile in Eclipse without any problem (after you add the GATE libraries). You can download these two files from: &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/kimnetdemos/source/browse/#svn/trunk/Jape-template&#039;);&quot;  href=&quot;http://code.google.com/p/kimnetdemos/source/browse/#svn/trunk/Jape-template&quot; target=_blank&gt;http://code.google.com/p/kimnetdemos/source/browse/#svn/trunk/Jape-template&lt;/a&gt;. Also keep in mind that you do not control the import section and thus you should use non-GATE classes with their fully qualified names.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/owlim/&#039;);&quot;  href=&quot;http://ontotext.com/owlim/&quot; target=_blank&gt;OWLIM&lt;/a&gt;: It not only stores knowledge, but it also expands this knowledge based on the already stored knowledge. &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/owlim/&#039;);&quot;  href=&quot;http://ontotext.com/owlim/&quot; target=_blank&gt;OWLIM&lt;/a&gt; also stores the rules that are used to infer new knowledge from the old one. &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/owlim/&#039;);&quot;  href=&quot;http://ontotext.com/owlim/&quot; target=_blank&gt;OWLIM&lt;/a&gt; is striving to be the fastest storage and inference layer database on the market and it would backup its claims if you download it for a test drive.&lt;br /&gt;
&lt;br /&gt;
I will be adding more tips while I dig deeper into the  &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/kim/&#039;);&quot;  href=&quot;http://ontotext.com/kim/&quot; target=_blank&gt;Ontotext KIM&lt;/a&gt; platform &lt;img src=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; and &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/gate.ac.uk/&#039;);&quot;  href=&quot;http://gate.ac.uk/&quot; target=_blank&gt;Sheffield GATE&lt;/a&gt;.&lt;br /&gt;
This FAQ is not officially provided/approved/supported by &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com&#039;);&quot;  href=&quot;http://ontotext.com&quot; target=_blank&gt;Ontotext&lt;/a&gt; or the GATE team.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quick links:&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/258-The-Semantic-Annotation-Workflow-KIM-part-10.html&quot; target=_blank&gt;The Semantic Annotation Workflow - KIM part 10&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/249-KIM-Multithreaded-Clustered-Client-Application-KIM-part-9.html&quot; target=_blank&gt;KIM Multi-threaded Clustered Client Application - KIM part 9&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/260-Gazetteers-KIMGATE-part-7.html&quot; target=_blank &gt;Gazetteers - KIM/GATE part 7&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/231-Strict-Rules-vs-Machine-Learning-KIM-part-6.html&quot; target=_blank &gt;Strict Rules vs Machine Learning - KIM part 6&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/242-KIM-Tips-and-Tricks-KIM-PART-5.html&quot; target=_blank&gt;Tips and Tricks - KIM part 5&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/230-Using-a-Gate-application-KIM-part-4.html&quot; target=_blank&gt;Using a Gate application - KIM part 4&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/228-GATE-tutorial-KIM-part-3.html&quot; target=_blank&gt;Gate tutorial - KIM part 3&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/216-KIM-.NET-Demo-Part-2.html&quot; target=_blank&gt;Using KIM from .NET - KIM part 2&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/256-KIMGATE-Getting-Started-part-1.html&quot; target=_blank&gt;Getting Started - KIM part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/214-Install-Ontotext-KIM-on-windows-Part-1.html&quot; target=_blank&gt;Installation - KIM part 0&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 22 Jul 2009 16:22:06 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/242-guid.html</guid>
    <category>english</category>
<category>kim</category>
<category>linkedin</category>
<category>ontotext</category>
<category>semantic web</category>

</item>
<item>
    <title>Text-based Query Interfaces to the Semantic Web</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/236-Text-based-Query-Interfaces-to-the-Semantic-Web.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/236-Text-based-Query-Interfaces-to-the-Semantic-Web.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=236</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=236</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;strong&gt;A list of text-based query interfaces to the Semantic Web:&lt;/strong&gt;&lt;br /&gt;
This a brief list of software projects and articles related to transforming a human typed query to languages which are processable by computers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. QuestIO&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/gate.ac.uk/sale/lrec2008/clone-ql/clone-ql-paper.pdf&#039;);&quot;  href=&quot;http://gate.ac.uk/sale/lrec2008/clone-ql/clone-ql-paper.pdf&quot; target=_blank&gt;QuestIO white paper&lt;/a&gt; by Danica Damljanovic, Valentin Tablan, Kalina Bontcheva (University of Sheffield)&lt;br /&gt;
It contains a short description of the projects covered in this post.&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/videolectures.net/eswc08_tablan_nlq/&#039;);&quot;  href=&quot;http://videolectures.net/eswc08_tablan_nlq/&quot; target=_blank&gt;A good video presentation to QuestIO&lt;/a&gt; by Valentin Tablan&lt;br /&gt;
&lt;br /&gt;
2. Orakel (Cimiano et al., 2007)&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontoware.org/projects/orakel/&#039;);&quot;  href=&quot;http://ontoware.org/projects/orakel/&quot; target=_blank&gt;ORAKEL home page&lt;/a&gt; (University of Karlsruhe)&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.aifb.uni-karlsruhe.de/WBS/pci/orakel_short.ps&#039;);&quot;  href=&quot;http://www.aifb.uni-karlsruhe.de/WBS/pci/orakel_short.ps&quot; target=_blank&gt;Introduction&lt;/a&gt; (&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/74.125.77.132/search?q=cache:2lRLxnSmXrsJ:www.aifb.uni-karlsruhe.de/WBS/pci/orakel_short.ps+orakel+java&amp;amp;cd=4&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;client=firefox-a&#039;);&quot;  href=&quot;http://74.125.77.132/search?q=cache:2lRLxnSmXrsJ:www.aifb.uni-karlsruhe.de/WBS/pci/orakel_short.ps+orakel+java&amp;cd=4&amp;hl=en&amp;ct=clnk&amp;client=firefox-a&quot; target=_blank&gt;google html version&lt;/a&gt;, scroll down a bit)&lt;br /&gt;
The project seems being developed in Java.&lt;br /&gt;
&lt;br /&gt;
3. Librarian (Serge Linckels, 2007)&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.linckels.lu/research/elibrarian/&#039;);&quot;  href=&quot;http://www.linckels.lu/research/elibrarian/&quot; target=_blank&gt;Home page&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
4. Querix (Kaufmann et al., 2006)&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ifi.uzh.ch/pax/uploads/pdf/publication/103/Kaufmann_Querix_Demo_ISWC2006.pdf&#039;);&quot;  href=&quot;http://www.ifi.uzh.ch/pax/uploads/pdf/publication/103/Kaufmann_Querix_Demo_ISWC2006.pdf&quot; target=_blank&gt;Introduction&lt;/a&gt; by Esther Kaufmann, Abraham Bernstein, and Renato Zumstein (University of Zurich)&lt;br /&gt;
&lt;br /&gt;
5. Aqualog: A portable question-answering system (Knowledge Media Institute, The Open University)&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/eprints.aktors.org/449/01/eswc05_proceedings-lopez.pdf&#039;);&quot;  href=&quot;http://eprints.aktors.org/449/01/eswc05_proceedings-lopez.pdf&quot; target=_blank&gt;Introduction&lt;/a&gt; by Vanessa Lopez, Michele Pasin, and Enrico Motta&lt;br /&gt;
&lt;br /&gt;
6. SemSearch: A Search Engine for the Semantic Web (Knowledge Media Institute, The Open University)&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/kmi.open.ac.uk/publications/pdf/semsearch_paper.pdf&#039;);&quot;  href=&quot;http://kmi.open.ac.uk/publications/pdf/semsearch_paper.pdf&quot; target=_blank&gt;Introduction&lt;/a&gt; by Yuangui Lei, Victoria Uren, and Enrico Motta&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;An interesting search engine:&lt;/strong&gt; &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/libra.msra.cn/&#039;);&quot;  href=&quot;http://libra.msra.cn/&quot; target=_blank&gt;libra.msra.cn&lt;/a&gt;&lt;br /&gt;
It gives access to many academic resources. It looks good, check out the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/libra.msra.cn/about.htm&#039;);&quot;  href=&quot;http://libra.msra.cn/about.htm&quot; target=_blank&gt;about page&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;A list of commercial implementations:&lt;/strong&gt;&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.trueknowledge.com/&#039;);&quot;  href=&quot;http://www.trueknowledge.com/&quot;&gt;True Knowledge&lt;/a&gt;&lt;br /&gt;
You can install a &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/addons.mozilla.org/en-US/firefox/addon/11738&#039;);&quot;  href=&quot;https://addons.mozilla.org/en-US/firefox/addon/11738&quot; taget=_blank&gt;Firefox plugin&lt;/a&gt; to enhance your search experience and ask questions like: &quot;What is the distance between the earth and the moon?&quot;. &lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 15 Jun 2009 10:40:11 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/236-guid.html</guid>
    <category>english</category>
<category>linkedin</category>
<category>semantic web</category>

</item>
<item>
    <title>My interests list as of June 2009</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/235-My-interests-list-as-of-June-2009.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/235-My-interests-list-as-of-June-2009.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=235</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=235</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    Semantic Web:&lt;br /&gt;
  - text based query interface for the semantic web (Think ask.com). Check &lt;a href=&quot;236-Text-based-Query-Interfaces-to-the-Semantic-Web.html&quot;&gt;my post on the topic&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Bio-devices:&lt;br /&gt;
  - &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Brain-computer_interface&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Brain-computer_interface&quot; target=_blank&gt;BCI (Brain Computer Interface)&lt;/a&gt;. We have an EEG&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/bg.wikipedia.org/wiki/%D0%95%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D1%86%D0%B5%D1%84%D0%B0%D0%BB%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F&#039;);&quot;  href=&quot;http://bg.wikipedia.org/wiki/%D0%95%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D1%86%D0%B5%D1%84%D0%B0%D0%BB%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F&quot; target=_blank&gt;(bg)&lt;/a&gt;&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Eeg&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Eeg&quot; target=_blank&gt;(en)&lt;/a&gt; which we do not use (wanna buy it?).&lt;br /&gt;
  - Artificial Neuron in Medicine (the one in Mathematics is more famous). Check out &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.neurotechreports.com/pages/hybrids.html&#039;);&quot;  href=&quot;http://www.neurotechreports.com/pages/hybrids.html&quot; target=_blank&gt;this article&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Green energy:&lt;br /&gt;
- Producing energy from warm air &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Convection&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Convection&quot; target=_blank&gt;convection&lt;/a&gt; or &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/pesn.com/2005/10/27/9600188_Atmospheric_Cold_Megawatts/&#039;);&quot;  href=&quot;http://pesn.com/2005/10/27/9600188_Atmospheric_Cold_Megawatts/&quot; target=_blank&gt;from Atmospheric Pressure Differences over Geographically-Spaced Sites&lt;/a&gt;. You can check this &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.youtube.com/watch?v=C-EvV90MeDY&amp;amp;feature=related&#039;);&quot;  href=&quot;http://www.youtube.com/watch?v=C-EvV90MeDY&amp;feature=related&quot; target=_blank&gt;youtube video&lt;/a&gt; for a cheap simple way to produce energy from hot air. That&#039;s what I want to build, it seems that it really works even in cloudy and rainy days. And &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.youtube.com/watch?v=Bl7DFwp1jUI&#039;);&quot;  href=&quot;http://www.youtube.com/watch?v=Bl7DFwp1jUI&quot; target=_blank&gt;another video&lt;/a&gt;.&lt;br /&gt;
- A better &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Photovoltaics&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Photovoltaics&quot; target=_blank&gt;Photovoltaics&lt;/a&gt; are now available called Focused Photovoltaics.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 15 Jun 2009 10:12:43 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/235-guid.html</guid>
    <category>english</category>
<category>linkedin</category>

</item>
<item>
    <title>.NET tools for the Semantic Web</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/232-.NET-tools-for-the-Semantic-Web.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/232-.NET-tools-for-the-Semantic-Web.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=232</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=232</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    I have found two projects:&lt;br /&gt;
&lt;br /&gt;
The first project is &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/razor.occams.info/code/semweb/&#039;);&quot;  href=&quot;http://razor.occams.info/code/semweb/&quot; target=_blank&gt;Semweb(Semantic Web/RDF Library) for C#/.NET&lt;/a&gt; developed by &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/razor.occams.info/&#039;);&quot;  href=&quot;http://razor.occams.info/&quot; target=_blank&gt;Joshua Tauberer&lt;/a&gt;. It can read and write RDFs, make queries. It is written in C# and full source is provided under a license. Also a persistent storage can be plugged like SqlLite, SqlServer, MySql. Sounds good, until you read that Joshua is taking some rest from the project and it won&#039;t be supporting Semweb that much, which is kind of discouraging and it does not make software companies feel comforatable to adopt this technology.&lt;br /&gt;
&lt;br /&gt;
The second project is &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/linqtordf/&#039;);&quot;  href=&quot;http://code.google.com/p/linqtordf/&quot; target=_blank&gt;LINQtoRDF&lt;/a&gt; which is a great idea. The idea is that an &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Ontology&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Ontology&quot; taget=_blank&gt;ontology&lt;/a&gt; is like an SQL schema. So a tool called RDFMetal is provided much like the SQLMetal so one can build an ontology in the form of a C# class. This is fantastic because it gives you the ability to write easily type checked semantic queries via Linq. Also it will be great to use &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Parallel_FX_Library&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Parallel_FX_Library&quot; target=_blank&gt;TPL(Task Parallel Library)&lt;/a&gt; to speed up queries. It could be called PLinqToRDF like the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/msdn.microsoft.com/en-us/library/dd460688(VS.100).aspx&#039;);&quot;  href=&quot;http://msdn.microsoft.com/en-us/library/dd460688(VS.100).aspx&quot; target=_blank&gt;PLINQ&lt;/a&gt; project.&lt;br /&gt;
Now let&#039;s talk about the bad stuff:&lt;br /&gt;
- I could not use RDFMetal against DBpedia endpoint http://DBpedia.org/sparql as it was supposed to work(so far).&lt;br /&gt;
- The Google mailing list seems dead and my posts are not being published (so far).&lt;br /&gt;
- LinqToRdf is using &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/razor.occams.info/code/semweb/&#039;);&quot;  href=&quot;http://razor.occams.info/code/semweb/&quot; target=_blank&gt;Semantic Web/RDF Library for C#/.NET&lt;/a&gt; , so its uncertain future affects LinqToRdf directly.&lt;br /&gt;
&lt;br /&gt;
So it seems like the Java world have a definite advantage here and .NET has a potential to create something even better than what is available in Java, but this needs more work and most of all it needs support. &lt;br /&gt;
&lt;br /&gt;
What an open source project needs most in order to be successfull: &lt;br /&gt;
- working code examples. Demos in html or pdf are often hard to reproduce. Examples should be part of the release process, so one can be sure they really work.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 04 Jun 2009 12:13:30 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/232-guid.html</guid>
    <category>dotnet</category>
<category>english</category>
<category>linkedin</category>
<category>semantic web</category>

</item>
<item>
    <title>Strict Rules vs Machine Learning - KIM part 6</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/231-Strict-Rules-vs-Machine-Learning-KIM-part-6.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/231-Strict-Rules-vs-Machine-Learning-KIM-part-6.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=231</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=231</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;strong&gt;Summary:&lt;/strong&gt;&lt;br /&gt;
There are generally two ways to recognize entities from text articles when using &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/kim/&#039;);&quot;  href=&quot;http://www.ontotext.com/kim/&quot; target=_blank&gt;Ontotext Kim&lt;/a&gt;. Example entities are: people, organizations, locations. &lt;br /&gt;
Both methods have their strengths and weaknesses. Things that can not detected by humans can not also be detected by computers.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Using strict rules&lt;/strong&gt;(better known as Knowledge Engineering)&lt;br /&gt;
These rules are implemented by some regular expression language. In this case it is Jape. &lt;br /&gt;
The more you customize the rules to detect what you need, the better results you get.&lt;br /&gt;
&lt;br /&gt;
Advantages:&lt;br /&gt;
- it you have some rules already available (e.x. for date, money ...) then it might be faster to create the new rules you need and get the job done fast&lt;br /&gt;
- a smaller sample corpus might be required in some cases than when using machine learning&lt;br /&gt;
- in general effectiveness is bound to the amount of efforts that are needed to produce better rules&lt;br /&gt;
&lt;br /&gt;
Weaknesses:&lt;br /&gt;
- in practice the rules might become quite complicated and hard to support. Imagine a 20KB file that describes only one entity. You end up not reading the previous rules and modifying one of them, but rather adding the specific case that was missing in the end of the file and thus increasing the total length of the file and the total complexity of the rules. This is especially true when different people are modifying these rules.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Machine learning&lt;/strong&gt;&lt;br /&gt;
In order to use machine learning you need a framework that implement several machine learning algorithms. You as an expert can define features which will be taken in consideration when the framework is processing the example data:&lt;br /&gt;
&lt;br /&gt;
- consider the length of the word&lt;br /&gt;
- consider the case-sensitivity&lt;br /&gt;
- consider the case-sensitivity of the previous word&lt;br /&gt;
- consider prefixes and suffixes&lt;br /&gt;
&lt;br /&gt;
The idea is not to set the exact rules, but rather make the framework build them itself from specific parts of the text you told the framework to pay attention to. Then you need to supply the machine-learning framework with enough test articles.&lt;br /&gt;
&lt;br /&gt;
Advantages:&lt;br /&gt;
- it can give better results than strict rules&lt;br /&gt;
&lt;br /&gt;
Often efforts needed to achieve 80% effectiveness are as much as from 80% to 85%.&lt;br /&gt;
&lt;br /&gt;
Weaknesses:&lt;br /&gt;
- needs parameter and algorithm testing (that&#039;s actually not such a problem, it just needs some work hours)&lt;br /&gt;
- needs more example articles by a factor of 10(assumption) than using strict rules&lt;br /&gt;
&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/mallet.cs.umass.edu/&#039;);&quot;  href=&quot;http://mallet.cs.umass.edu/&quot; target=_blank&gt;MALLET&lt;/a&gt; is a Java-based package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text. Features in the case of MALLET are either true or false. MALLET provides several algorithms and each of them has its own configuration parameters. MALLET is implemented as plug-in for KIM/GATE.&lt;br /&gt;
&lt;br /&gt;
There is also a second machine learning framework called &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/opennlp.sourceforge.net/&#039;);&quot;  href=&quot;http://opennlp.sourceforge.net/&quot; target=_blank&gt;openNLP&lt;/a&gt; that is also implemented as GATE plug-in in Ontotext KIM, and might soon be released as part of the standard KIM/GATE release.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Conclusions/final thoughts:&lt;/strong&gt;&lt;br /&gt;
Both rule-based and machine learning are supported by the custom &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/gate.ac.uk/&#039;);&quot;  href=&quot;http://gate.ac.uk/&quot; target=_blank&gt;GATE&lt;/a&gt; pipeline for semantic annotation developed by &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/&#039;);&quot;  href=&quot;http://ontotext.com/&quot; target=_blank&gt;Ontotext&lt;/a&gt; for &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/kim/&#039;);&quot;  href=&quot;http://www.ontotext.com/kim/&quot; target=_blank&gt;the KIM platform&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
In short term it is better to use strict regular expression rules(like Jape) as it gives you results almost momentarily, but in a long term (from both complexity and effectiveness point of view) is definitely better to use a machine learning system like MALLET. Of course a combination of the two should work best, where rules are used first(some of them negative) and then machine learning is applied.&lt;br /&gt;
&lt;br /&gt;
Another machine learning project is: &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/edlin.sourceforge.net&#039;);&quot;  href=&quot;http://edlin.sourceforge.net&quot; target=_blank&gt;edlin.sourceforge.net&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This a short introduction, contact &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/&#039;);&quot;  href=&quot;http://ontotext.com/&quot; target=_blank&gt;Ontotext&lt;/a&gt; for more detailed information. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quick links:&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/258-The-Semantic-Annotation-Workflow-KIM-part-10.html&quot; target=_blank&gt;The Semantic Annotation Workflow - KIM part 10&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/249-KIM-Multithreaded-Clustered-Client-Application-KIM-part-9.html&quot; target=_blank&gt;KIM Multi-threaded Clustered Client Application - KIM part 9&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/260-Gazetteers-KIMGATE-part-7.html&quot; target=_blank &gt;Gazetteers - KIM/GATE part 7&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/231-Strict-Rules-vs-Machine-Learning-KIM-part-6.html&quot; target=_blank &gt;Strict Rules vs Machine Learning - KIM part 6&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/242-KIM-Tips-and-Tricks-KIM-PART-5.html&quot; target=_blank&gt;Tips and Tricks - KIM part 5&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/230-Using-a-Gate-application-KIM-part-4.html&quot; target=_blank&gt;Using a Gate application - KIM part 4&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/228-GATE-tutorial-KIM-part-3.html&quot; target=_blank&gt;Gate tutorial - KIM part 3&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/216-KIM-.NET-Demo-Part-2.html&quot; target=_blank&gt;Using KIM from .NET - KIM part 2&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/256-KIMGATE-Getting-Started-part-1.html&quot; target=_blank&gt;Getting Started - KIM part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/214-Install-Ontotext-KIM-on-windows-Part-1.html&quot; target=_blank&gt;Installation - KIM part 0&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 31 May 2009 10:32:52 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/231-guid.html</guid>
    <category>eclipse</category>
<category>english</category>
<category>java</category>
<category>kim</category>
<category>linkedin</category>
<category>ontotext</category>
<category>semantic web</category>

</item>
<item>
    <title>Using a Gate application - KIM part 4</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/230-Using-a-Gate-application-KIM-part-4.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/230-Using-a-Gate-application-KIM-part-4.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=230</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=230</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;strong&gt;Summary:&lt;/strong&gt;&lt;br /&gt;
This short article shows you how to integrate a  &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/gate.ac.uk/&#039;);&quot;  href=&quot;http://gate.ac.uk/&quot; target=_blank&gt;GATE&lt;/a&gt; module(application) in &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/kim/index.html&#039;);&quot;  href=&quot;http://www.ontotext.com/kim/index.html&quot; target=_blank&gt;Ontotext KIM&lt;/a&gt; and consume it through you own Java product.&lt;br /&gt;
&lt;br /&gt;
1. Configuration:&lt;br /&gt;
KIM provides an API through &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Java_remote_method_invocation&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Java_remote_method_invocation&quot; target=_blank&gt;RMI&lt;/a&gt; on default port 1099. This &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/kim/doc/sys-doc/KIMJavaRMIAPI.html&#039;);&quot;  href=&quot;http://ontotext.com/kim/doc/sys-doc/KIMJavaRMIAPI.html&quot; target=_blank&gt;page&lt;/a&gt; provides everything you need to configure RMI and KIM.&lt;br /&gt;
&lt;br /&gt;
Eclipse-&gt;Build Path-&gt;Add external libraries:&lt;br /&gt;
kim-api.jar&lt;br /&gt;
sesame-1.2.7-ONTO.jar&lt;br /&gt;
&lt;br /&gt;
2. It is recommended that you use &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/gate.ac.uk/&#039;);&quot;  href=&quot;http://gate.ac.uk/&quot; target=_blank&gt;GATE&lt;/a&gt; provided by the KIM distribution. Use &quot;startKIMGate.bat&quot; in \kim-platform-2.4-SNAPSHOT\bin. &lt;br /&gt;
You need to create a &quot;Conditional Corpus Pipeline&quot; application in GATE, so  that KIM can utilize it successfully. ANNIE is not such a type of GATE application, so you will get a type mismatch if you use ANNIE or a modified version of it. The trick is to create a new &quot;Conditional Corpus Pipeline&quot; application and add all ANNIE&#039;s processing resources, plus your own to the newly created &quot;Conditional Corpus Pipeline&quot; application. Then you need to make sure these resources are in the same order as they were in the ANNIE application! This problem has been fixed for version 3.0 and above, so you ca now use ANNIE or a modified version of it from KIM.&lt;br /&gt;
&lt;br /&gt;
3.  Save your application to \kim-platform-2.4-SNAPSHOT\context\default\resources\mycondapp.gapp. To do that: right-click on a GATE application and select &quot;Save application state&quot;.&lt;br /&gt;
&lt;br /&gt;
4. Edit the file \kim-platform-2.4-SNAPSHOT\config\nerc.properties and modify the line:&lt;br /&gt;
com.ontotext.kim.KIMConstants.IE_APP=IE.gapp&lt;br /&gt;
&lt;br /&gt;
to &lt;br /&gt;
&lt;br /&gt;
com.ontotext.kim.KIMConstants.IE_APP=IE.gapp,mycondapp.gapp&lt;br /&gt;
&lt;br /&gt;
All applications are separated by comma.&lt;br /&gt;
&lt;br /&gt;
5. Executing our GATE application from KIM:&lt;br /&gt;
&lt;div class=&quot;java&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import com.ontotext.*;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import com.ontotext.kim.client.GetService;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import com.ontotext.kim.client.KIMService;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import com.ontotext.kim.client.semanticannotation.SemanticAnnotationAPI;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; KIM &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;final&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt;&amp;#160; &amp;#160;RMI_HOST = &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;localhost&quot;&lt;/span&gt;;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//not used&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;final&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; RMI_PORT = &lt;span style=&quot;color: #cc66cc;&quot;&gt;1099&lt;/span&gt;;&amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//not used&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; main&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; args&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;try&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;KIMService serviceKim = GetService.&lt;span style=&quot;color: #006600;&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;KIM Platform : &quot;&lt;/span&gt; + serviceKim.&lt;span style=&quot;color: #006600;&quot;&gt;getPlatformVersion&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;KIM Server : &quot;&lt;/span&gt; + serviceKim.&lt;span style=&quot;color: #006600;&quot;&gt;getServerVersion&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;KB Version : &quot;&lt;/span&gt; + serviceKim.&lt;span style=&quot;color: #006600;&quot;&gt;getKBVersion&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// obtain CorporaAPI and SemanticAnnotationAPI components&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;SemanticAnnotationAPI apiSemAnn1 = serviceKim.&lt;span style=&quot;color: #006600;&quot;&gt;getSemanticAnnotationAPI&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;mycondapp.gapp&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt; content =&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Blair and Bush ? are they doing the right thing for Iraq, America,&quot;&lt;/span&gt; +&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot; Europe, the Earth... for civilization... &quot;&lt;/span&gt; +&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;or just guided by their blinded eyes are in favor of the big coporations:&quot;&lt;/span&gt; +&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;enter here new unrecognized corporations with a clue suffix:&quot;&lt;/span&gt; +&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;MicroZoftRR Inc.&quot;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160;apiSemAnn1.&lt;span style=&quot;color: #006600;&quot;&gt;execute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;content&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=allinurl%3AException+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Exception&lt;/span&gt;&lt;/a&gt; ex&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;ex.&lt;span style=&quot;color: #006600;&quot;&gt;getMessage&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Done!&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
You can download this working sample from &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/kimnetdemos/source/browse/trunk/KIM-GATE-java/KIM.java&#039;);&quot;  href=&quot;http://code.google.com/p/kimnetdemos/source/browse/trunk/KIM-GATE-java/KIM.java&quot; target=_blank&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Software versions: KIM 2.4, GATE 4.0 (integrated with KIM), Eclipse 3.2 &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quick links:&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/258-The-Semantic-Annotation-Workflow-KIM-part-10.html&quot; target=_blank&gt;The Semantic Annotation Workflow - KIM part 10&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/249-KIM-Multithreaded-Clustered-Client-Application-KIM-part-9.html&quot; target=_blank&gt;KIM Multi-threaded Clustered Client Application - KIM part 9&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/231-Strict-Rules-vs-Machine-Learning-KIM-part-6.html&quot; target=_blank &gt;Strict Rules vs Machine Learning - KIM part 6&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/242-KIM-Tips-and-Tricks-KIM-PART-5.html&quot; target=_blank&gt;Tips and Tricks - KIM part 5&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/230-Using-a-Gate-application-KIM-part-4.html&quot; target=_blank&gt;Using a Gate application - KIM part 4&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/228-GATE-tutorial-KIM-part-3.html&quot; target=_blank&gt;Gate tutorial - KIM part 3&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/216-KIM-.NET-Demo-Part-2.html&quot; target=_blank&gt;Using KIM from .NET - KIM part 2&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/256-KIMGATE-Getting-Started-part-1.html&quot; target=_blank&gt;Getting Started - KIM part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/214-Install-Ontotext-KIM-on-windows-Part-1.html&quot; target=_blank&gt;Installation - KIM part 0&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 28 May 2009 21:46:01 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/230-guid.html</guid>
    <category>eclipse</category>
<category>english</category>
<category>gate</category>
<category>kim</category>
<category>linkedin</category>
<category>ontotext</category>
<category>semantic web</category>

</item>
<item>
    <title>Nexenta vs Debian GNU / kFreeBSD</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/229-Nexenta-vs-Debian-GNU-kFreeBSD.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/229-Nexenta-vs-Debian-GNU-kFreeBSD.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=229</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=229</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    What is an OS:&lt;br /&gt;
&lt;br /&gt;
- some kernel&lt;br /&gt;
- libc - a layer between the kernel and the user programs&lt;br /&gt;
- packages&lt;br /&gt;
&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.nexenta.org/os&#039;);&quot;  href=&quot;http://www.nexenta.org/os&quot; target=_blank&gt;Nexenta&lt;/a&gt; is using a Solaris kernel and Debian/Ubuntu packages. &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.debian.org/ports/kfreebsd-gnu/&#039;);&quot;  href=&quot;http://www.debian.org/ports/kfreebsd-gnu/&quot; target=_blank&gt;Debian GNU / kFreeBSD&lt;/a&gt; is using the FreeBSD kernel, but on the surface it should not be much different from a standard Debian edition. Nexenta is using Solaris libc, but Debian GNU / kFreeBSD is using a ported version of GNU libc (glibc) to the FreeBSD kernel. Linux is only a kernel, not a fully operational OS. If we look at the Debian policy we will see that using another kernel is not a problem, but the important is the usage of the GNU libc. Unfortunately there is no port of GNU libc to Solaris. Nevertheless Nexenta is doing fine, although porting packages to Nexenta is probably harder than porting packages Debian GNU / kFreeBSD because of the missing GNU libc on Solaris. Both operation system have already a considerable amount of packages.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Update&lt;/strong&gt;: In build 107 of Opensolaris  the Solaris libc has been released with some compatibility functions for Linux/BSD which will help porting debian packages in Nexenta. &lt;br /&gt;
&lt;br /&gt;
My opinion is that these hybrids are quite welcome as I have doubts about the quality of the Linux kernel.&lt;br /&gt;
Freebsd is a pure OS meaning that the Freebsd community produces its own kernel, libc and some of the programs that comes with the OS. This makes everything in the OS much more consistent.   &lt;br /&gt;
&lt;br /&gt;
As of 20.05.2009:&lt;br /&gt;
1. Debian GNU / kFreeBSD is an official Debian port, which means that all packages and translations should be available and tested in the next Debian release - squeeze, at least I think so.&lt;br /&gt;
2. Luca Favatella is working on port of the Debian installer to the Debian GNU / kFreeBSD. You could track his status &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/slackydeb.blogspot.com/&#039;);&quot;  href=&quot;http://slackydeb.blogspot.com/&quot; target=_blank&gt;here&lt;/a&gt;. &lt;br /&gt;
3. Gnome and xfce4 are available on both ... but do not expect things to work right out of the box.&lt;br /&gt;
4. &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.stormos.org/&#039;);&quot;  href=&quot;http://www.stormos.org/&quot; target=_blank&gt;StormOS&lt;/a&gt; is a distro based on Nexenta and provides a xfce4 desktop. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Install Sun JDK on Nexenta or StormOS:&lt;/strong&gt;&lt;br /&gt;
I am using Nexenta Core 2 RC3, Nexenta Core 2.0 has been released.&lt;br /&gt;
&lt;br /&gt;
Issue the following commands:&lt;br /&gt;
#apt-get update &lt;br /&gt;
#apt-get install sun-java6-jdk&lt;br /&gt;
#apt-get install sunwlibc&lt;br /&gt;
&lt;br /&gt;
Now you should have the jdk in /usr/lib/jvm&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Install Tomcat&lt;/strong&gt;&lt;br /&gt;
You need to download the Tomcat binaries from the Tomcat website. There is no deb package available at the time of writing this post. Tomcat is supposed to be pure Java, so it should work on Nexenta and Debian GNU / kFreeBSD assuming the Java JDK is installed correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Install &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/kim/&#039;);&quot;  href=&quot;http://www.ontotext.com/kim/&quot; target=_blank&gt;Ontotext KIM&lt;/a&gt; on Nexenta or StormOS&lt;/strong&gt;&lt;br /&gt;
#apt-get install unzip&lt;br /&gt;
#unzip kim-platform-2.x&lt;br /&gt;
&lt;br /&gt;
#cd kim-platform-2.x\bin&lt;br /&gt;
#nano config_machine.sh&lt;br /&gt;
&lt;br /&gt;
  set JAVA_HOME=&quot;/usr/lib/jvm/java-6-sun&quot;&lt;br /&gt;
  set _TOMCAT_HOME=&quot;your tomcat location&quot;&lt;br /&gt;
  &lt;br /&gt;
#chmod +x startKIM.sh&lt;br /&gt;
#./startKIM.sh&lt;br /&gt;
&lt;br /&gt;
In order to use KIM clients (Web services or the Demo website) you need Tomcat(see above). &lt;br /&gt;
Copy the wars from \kim-platform-2.x\KIM Clients\ to \Tomcat\webapps. You can check my &lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/214-Install-Ontotext-KIM-on-windows-Part-1.html&quot;&gt;Install Ontotext KIM post&lt;/a&gt; for more information on how see &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/kim/&#039;);&quot;  href=&quot;http://www.ontotext.com/kim/&quot; target=_blank&gt;KIM&lt;/a&gt; in action. 
    </content:encoded>

    <pubDate>Wed, 20 May 2009 02:13:10 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/229-guid.html</guid>
    <category>bsd</category>
<category>debian</category>
<category>english</category>
<category>java</category>
<category>kfreebsd</category>
<category>kim</category>
<category>nexenta</category>
<category>solaris</category>

</item>
<item>
    <title>GATE tutorial - KIM part 3</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/228-GATE-tutorial-KIM-part-3.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/228-GATE-tutorial-KIM-part-3.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=228</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=228</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;strong&gt;Summary:&lt;/strong&gt;&lt;br /&gt;
This a beginners &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/gate.ac.uk/&#039;);&quot;  href=&quot;http://gate.ac.uk/&quot; target=_blank&gt;GATE&lt;/a&gt; tutorial.&lt;br /&gt;
&lt;br /&gt;
GATE is a tool for &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Natural_language_processing&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Natural_language_processing&quot; target=_blank&gt;(NLP)Natural Language Processing&lt;/a&gt;. GATE helps you extract data from text articles, which you can turn into a computer knowledge. It provides you a development IDE that helps you create and test an application. Once you are done you can have your application executed from JAVA the same way you did from the IDE. GATE Applications ca be incorporated in &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/kim/&#039;);&quot;  href=&quot;http://www.ontotext.com/kim/&quot;  target=_blank&gt;Ontotext KIM&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First you should read the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/gate.ac.uk/sale/tao/tao.pdf&#039;);&quot;  href=&quot;http://gate.ac.uk/sale/tao/tao.pdf&quot; target=_blank&gt;user guide&lt;/a&gt;. Also I am using GATE-5.0-beta1 build 3048, Eclipse 3.4.2(used  in the Java sample)  on Windows XP SP3.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say we want to find the relation when company A acquires company B .&lt;br /&gt;
&lt;br /&gt;
Gather some example articles. Create corpus. &quot;Corpus&quot; is just a funny name for a group of articles. My articles are &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/kimnetdemos/source/browse/#svn/trunk/Documents&#039;);&quot;  href=&quot;http://code.google.com/p/kimnetdemos/source/browse/#svn/trunk/Documents&quot; target=_blank&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
We are going to focus on English articles. GATE gives you the ability to create you own text processing applications. Maybe there are already such GATE applications that are good and can be used for general purpose text processing. &quot;Application&quot; is GATE term, we are not talking about applications in general.  The point is that we could create an application from scratch, it is not that hard, but it is always better and most of all easier to improve upon something.&lt;br /&gt;
&lt;br /&gt;
We choose a GATE application which is called &quot;ANNIE&quot;. Indeed ANNIE is not some application, it is an integral part of GATE itself. You should try to process some articles with ANNIE, see the Annotation Sets and Annotation List and get used to them. Keep in mind ANNIE is primary English orientated.&lt;br /&gt;
&lt;br /&gt;
Next we need to add additional functionality to ANNIE. We could add a lot of different  stuff, but we add a &quot;Jape Transducer&quot; which points to a file where we describe what should be detected in our articles. That file is a &quot;Jape file&quot;. Don&#039;t think what is Jape right now. Next click on ANNIE. You will see some processing resources (on the right). The Jape transducer we&#039;ve just created is such a processing resource. We need to add it to the right. You need to know that these processing resources work at different levels and each can depend from the output of others. That&#039;s the meaning of &quot;pipe&quot; in GATE. So it will be best if we leave our new processing resources as last (the bottom) on the list.&lt;br /&gt;
&lt;br /&gt;
Yes, next is Jape. Jape is a language similar to regular expressions. We are going to use &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/kimnetdemos/source/browse/trunk/GATE-java/acquire.jape&#039;);&quot;  href=&quot;http://code.google.com/p/kimnetdemos/source/browse/trunk/GATE-java/acquire.jape&quot; target=_blank&gt;acquire.jape&lt;/a&gt;. It has two rules. Also I did put it in \GATE-5.0-beta1\plugins\ANNIE\resources\NE\grammar\acquire.jape.&lt;br /&gt;
&lt;br /&gt;
I have also modified ANNIE Gazetteer in \GATE-5.0-beta1\plugins\ANNIE\resources\gazetteer\company.lst by adding two lines:&lt;br /&gt;
MySQL&lt;br /&gt;
MySql&lt;br /&gt;
to make sure MySql is recognized as a company.&lt;br /&gt;
&lt;br /&gt;
The whole  idea is to make your enhanced ANNIE work by supplying a correct Jape grammar and test it. Then you save your application to a file. You do that by  right-clicking on a GATE application and select &quot;Save application state&quot;.&lt;br /&gt;
&lt;br /&gt;
1. You should save your application with &quot;gapp&quot; extension (no problem if you do not).&lt;br /&gt;
2. It is better if you remove the corpus in your application before saving, cause that corpus will become one more dependency to your application.&lt;br /&gt;
&lt;br /&gt;
Gapp files are simply XML  files which describe where is everything you use in your GATE application. This means you can change them. For what? You won&#039;t need to modify them as far as you continue to use the gapp file/application form the location where you saved it and you did not change the location of your GATE installation. If you change myapp.gapp from c:\gatetest to d:\work\gatetest you will see that things will probably go wrong. Modifying the paths is easy.&lt;br /&gt;
&lt;br /&gt;
Next we create a normal Java console application. We add all jars in gate/lib. We check to make sure we added ALL the jars! I was having problems because I&#039;ve ignored some.&lt;br /&gt;
&lt;br /&gt;
And then what?&lt;br /&gt;
&lt;br /&gt;
Thank you about this question. Then we use this java code:&lt;br /&gt;
&lt;div class=&quot;java&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.Annotation;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.Document;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.Corpus;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.CorpusController;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.FeatureMap;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.AnnotationSet;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.Gate;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.Factory;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.util.*;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import gate.util.persistence.PersistenceManager;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.util.Set;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.util.HashSet;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.util.List;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.util.ArrayList;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.util.Iterator;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.io.File;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.io.FileFilter;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.io.FileOutputStream;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.io.BufferedOutputStream;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.io.FilenameFilter;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.io.OutputStreamWriter;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; BatchProcessApp &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; main&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; args&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;throws&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AException+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Exception&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// initialise GATE - this must be done before calling any GATE APIs&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Gate.&lt;span style=&quot;color: #006600;&quot;&gt;init&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AFile+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;File&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; files = getFilesFromDir&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;F:/Temp/articles&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// File gappFile = new File(&amp;quot;g:/ModifiedAnnie.gapp&amp;quot;);&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AFile+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;File&lt;/span&gt;&lt;/a&gt; gappFile = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AFile+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;File&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;g:/annie_acquire_nocorpus.gapp&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// load the saved application&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; CorpusController application = &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;CorpusController&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; PersistenceManager&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; .&lt;span style=&quot;color: #006600;&quot;&gt;loadObjectFromFile&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;gappFile&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Create a Corpus to use. We recycle the same Corpus object for each&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// iteration. The string parameter to newCorpus() is simply the&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// GATE-internal name to use for the corpus. It has no particular&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// significance.&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Corpus corpus = Factory.&lt;span style=&quot;color: #006600;&quot;&gt;newCorpus&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;BatchProcessApp Corpus&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; application.&lt;span style=&quot;color: #006600;&quot;&gt;setCorpus&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;corpus&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// process the files one by one&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; i = &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;; i &amp;lt; files.&lt;span style=&quot;color: #006600;&quot;&gt;length&lt;/span&gt;; i++&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;!files&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;getName&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;endsWith&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;.txt&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; continue;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// load the document (using the specified encoding if one was given)&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AFile+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;File&lt;/span&gt;&lt;/a&gt; docFile = files&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// new File(args[i]);&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Processing document &quot;&lt;/span&gt; + docFile + &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3ADocument+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Document&lt;/span&gt;&lt;/a&gt; doc = Factory.&lt;span style=&quot;color: #006600;&quot;&gt;newDocument&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;docFile.&lt;span style=&quot;color: #006600;&quot;&gt;toURL&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, encoding&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// put the document in the corpus&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; corpus.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;doc&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// run the application&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; application.&lt;span style=&quot;color: #006600;&quot;&gt;execute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// remove the document from the corpus again&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; corpus.&lt;span style=&quot;color: #006600;&quot;&gt;clear&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// we only extract annotations from the default (unnamed)&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// AnnotationSet&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// in this example&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; AnnotationSet defaultAnnots = doc.&lt;span style=&quot;color: #006600;&quot;&gt;getAnnotations&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=allinurl%3AAnnotation+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Annotation&lt;/span&gt;&lt;/a&gt; ann : defaultAnnots&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; FeatureMap map = ann.&lt;span style=&quot;color: #006600;&quot;&gt;getFeatures&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;map.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;relationType&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; != &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;## &quot;&lt;/span&gt; + map.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;relationType&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; + &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot; #CompanyA=&quot;&lt;/span&gt; +&amp;#160; map.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;companyA&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; + &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot; #CompanyB=&quot;&lt;/span&gt; +&amp;#160; map.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;companyB&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Factory.&lt;span style=&quot;color: #006600;&quot;&gt;deleteResource&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;doc&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;done&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// for each file&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;All done&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt; encoding = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AFile+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;File&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; getFilesFromDir&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt; path&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AFile+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;File&lt;/span&gt;&lt;/a&gt; dir = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AFile+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;File&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;path&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.google.com/search?q=allinurl%3AFile+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;File&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; files = dir.&lt;span style=&quot;color: #006600;&quot;&gt;listFiles&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;return&lt;/span&gt; files;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
You can view/download the source from &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/kimnetdemos/source/browse/trunk/GATE-java/BatchProcessApp.java&#039;);&quot;  href=&quot;http://code.google.com/p/kimnetdemos/source/browse/trunk/GATE-java/BatchProcessApp.java&quot; target=_blank&gt;code.google.com&lt;/a&gt;&lt;br /&gt;
The Gate.init() should be called only once! To run this code you need to set the path to your gapp file and the location of your articles(no folder recursive scanning). Note that we could load all documents in one corpus, but instead the code loads only one document per corpus, this helps system resources to be utilized better. Also this code sample will display only annotations that have a feature=&quot;relationType&quot;. You should make it display everything. &lt;br /&gt;
&lt;br /&gt;
You can see that the code instantiates the GAPE application (a modified ANNIE) in the form of a &quot;CorpusController&quot; and it is named &quot;application&quot; &lt;img src=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;. It is something like Java/.NET remoting, but you point it to a gapp file, which has all the meta information to construct the object/the application.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;br /&gt;
Data extraction with GATE can be done, it just needs reading through documentation, post questions to the GATE mailing list.&lt;br /&gt;
Maybe it is a good idea to create a Linux(or FreeBSD, OpenSolaris, &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.nexenta.org/os&#039;);&quot;  href=&quot;http://www.nexenta.org/os&quot; target=_blank&gt;Nexenta&lt;/a&gt;) vmware image(or Xen, VirtualBox) which has GATE, Eclipse and GATE&#039;s samples installed and working properly.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Disclaimer:&lt;/strong&gt;&lt;br /&gt;
This Java sample is based on &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/gate.ac.uk/gate-examples/doc/java2html/sheffield/examples/BatchProcessApp.java.html&#039;);&quot;  href=&quot;http://gate.ac.uk/gate-examples/doc/java2html/sheffield/examples/BatchProcessApp.java.html&quot; target=_blank&gt;this sample&lt;/a&gt;.  &lt;br /&gt;
I am a GATE newbie, so do not expect for now that I would be able to answer your questions. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Credits:&lt;/strong&gt;&lt;br /&gt;
Special thanks goes to: everyone from the GATE mailing list, &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.linkedin.com/in/marinnozhchev&#039;);&quot;  href=&quot;http://www.linkedin.com/in/marinnozhchev&quot; target=_blank&gt;Marin Nozhchev&lt;/a&gt;(&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com&#039;);&quot;  href=&quot;http://ontotext.com&quot; target=_blank&gt;Ontotext&lt;/a&gt;), Stanislav Zlatinov.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Todo:&lt;/strong&gt;&lt;br /&gt;
Explain the Jape code.&lt;br /&gt;
Add my articles.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quick links:&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/258-The-Semantic-Annotation-Workflow-KIM-part-10.html&quot; target=_blank&gt;The Semantic Annotation Workflow - KIM part 10&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/249-KIM-Multithreaded-Clustered-Client-Application-KIM-part-9.html&quot; target=_blank&gt;KIM Multi-threaded Clustered Client Application - KIM part 9&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/260-Gazetteers-KIMGATE-part-7.html&quot; target=_blank &gt;Gazetteers - KIM/GATE part 7&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/231-Strict-Rules-vs-Machine-Learning-KIM-part-6.html&quot; target=_blank &gt;Strict Rules vs Machine Learning - KIM part 6&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/242-KIM-Tips-and-Tricks-KIM-PART-5.html&quot; target=_blank&gt;Tips and Tricks - KIM part 5&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/230-Using-a-Gate-application-KIM-part-4.html&quot; target=_blank&gt;Using a Gate application - KIM part 4&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/228-GATE-tutorial-KIM-part-3.html&quot; target=_blank&gt;Gate tutorial - KIM part 3&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/216-KIM-.NET-Demo-Part-2.html&quot; target=_blank&gt;Using KIM from .NET - KIM part 2&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/256-KIMGATE-Getting-Started-part-1.html&quot; target=_blank&gt;Getting Started - KIM part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/214-Install-Ontotext-KIM-on-windows-Part-1.html&quot; target=_blank&gt;Installation - KIM part 0&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 18 May 2009 13:02:45 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/228-guid.html</guid>
    <category>eclipse</category>
<category>english</category>
<category>gate</category>
<category>kim</category>
<category>linkedin</category>
<category>nlp</category>
<category>ontotext</category>
<category>semantic web</category>

</item>
<item>
    <title>Beagleboard/NOKIA Maemo</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/225-BeagleboardNOKIA-Maemo.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/225-BeagleboardNOKIA-Maemo.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=225</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=225</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    These days I got interested in &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/beagleboard.org/brief&#039;);&quot;  href=&quot;http://beagleboard.org/brief&quot; target=_blank&gt;beagleboard&lt;/a&gt;. In brief it is a microchip that features:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
  &lt;li&gt;A fast enough ARM processor (should I buy ARMH shares?)&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;A built-in VGA card with HD output for your wide-screen Plasma TV(it supports high resolutions as 1280x1024 DVI-D monitors)&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;Support for OpenGL 2.0 2D/3D&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;Support for card readers, usb devices which means that you can attach a usb ethernet device for the Internet or hard drive.&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;only 5V power supply like a USB&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/FuVwh_VrIxk&amp;hl=en&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/FuVwh_VrIxk&amp;hl=en&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
It&#039;s so small circuit, but it does so much! It costs 150$ if you order a single chip. It is a general purpose computer. You can install Angstrom Linux, Ubuntu for ARM and work is in progress on RISC OS and Windows CE. I have to admit I just started thinking that this device is really good. You could buy 1000 beagleboards for definitely less than 150$ per unit. Then I found that two products are in ... ok let&#039;s say &quot;preproduction&quot; and are based on beagleboard.   &lt;br /&gt;
&lt;br /&gt;
The first project is &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/openpandora.org/&#039;);&quot;  href=&quot;http://openpandora.org/&quot; target=_blank&gt;OpenPandora&lt;/a&gt; and it is a more of a gaming console than a general purpose computer.&lt;br /&gt;
The second is a &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/i.gizmodo.com/5162584/always-innovating-touch-book-is-part+netbook-part+tablet-open-source-frankenstein&#039;);&quot;  href=&quot;http://i.gizmodo.com/5162584/always-innovating-touch-book-is-part+netbook-part+tablet-open-source-frankenstein&quot; target=_blank&gt;touchscreen notebook/tablet&lt;/a&gt; form a new start-up called Always Innovating. Seems like in this notebook the keyboard is sold separately. This means that the beagleboard circuit is in the display.&lt;br /&gt;
&lt;br /&gt;
Damn ... I am a bit late to create my own device &lt;img src=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
As a matter of fact it looks to me that Nokia created a similar circuit for its internet tablets &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Nokia_N810&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Nokia_N810&quot; target=_blank&gt;Nokia N8xx series&lt;/a&gt;. Nokia uses &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/wiki.evolvis.org/jalimo/index.php/Main_Page&#039;);&quot;  href=&quot;&quot; target=_blank&gt;Maemo&lt;/a&gt; for its internet tablet. Maemo is a Debian based linux distro for mobile devices. Looks like Maemo is a success. Maemo does not come with Java,but thanks to project &lt;a href=&quot;https://wiki.evolvis.org/jalimo/index.php/Main_Page&quot; target=_blank&gt;Jalimo&lt;/a&gt; you can install a full featured Java, not the feature limited mobile edition. Also there is a &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/mono-project.com/Maemo&#039;);&quot;  href=&quot;http://mono-project.com/Maemo&quot; target=_blank&gt;Mono for Maemo&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Fri, 01 May 2009 10:29:20 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/225-guid.html</guid>
    <category>english</category>
<category>linkedin</category>

</item>
<item>
    <title>F# AsyncWorkflow demo that really compiles</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/223-F-AsyncWorkflow-demo-that-really-compiles.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/223-F-AsyncWorkflow-demo-that-really-compiles.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=223</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=223</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    You can browse/download the code from &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/fsharpdemos/source/browse/#svn/trunk&#039;);&quot;  href=&quot;http://code.google.com/p/fsharpdemos/source/browse/#svn/trunk&quot; target=_blank&gt;http://code.google.com/p/fsharpdemos/source/browse/#svn/trunk&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You need F# version 1.9.6.2 and reference to FSharp.PowerPack.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Sample 4&lt;/strong&gt;&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #008080;&quot;&gt;#light&lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Net&lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;IO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;type &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Net&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;WebRequest&lt;/span&gt; with&lt;br /&gt;&amp;#160; member x.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetResponseAsync&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&lt;br /&gt;&amp;#160; &amp;#160; Async.&lt;span style=&quot;color: #0000FF;&quot;&gt;BuildPrimitive&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;x.&lt;span style=&quot;color: #0000FF;&quot;&gt;BeginGetResponse&lt;/span&gt;, x.&lt;span style=&quot;color: #0000FF;&quot;&gt;EndGetResponse&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;let downloadPage&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url:&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; = &lt;br /&gt;&amp;#160; async &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; let request = WebRequest.&lt;span style=&quot;color: #0000FF;&quot;&gt;Create&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; use! response = request.&lt;span style=&quot;color: #0000FF;&quot;&gt;AsyncGetResponse&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; use stream = response.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetResponseStream&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; use reader = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; StreamReader&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;stream&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let! html = reader.&lt;span style=&quot;color: #0000FF;&quot;&gt;AsyncReadToEnd&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url, html&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;let download&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;arr : ResizeArray&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; let urls = List.&lt;span style=&quot;color: #0000FF;&quot;&gt;of_seq&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;arr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; let dotnetresult = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Collections&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Generic&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Dictionary&lt;/span&gt;&amp;lt;string,string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; let results = Async.&lt;span style=&quot;color: #0000FF;&quot;&gt;Run&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Async.&lt;span style=&quot;color: #0000FF;&quot;&gt;Parallel&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; site &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; urls -&amp;gt; downloadPage site&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;#160; &amp;#160; results |&amp;gt; Seq.&lt;span style=&quot;color: #0000FF;&quot;&gt;iter&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun x -&amp;gt; dotnetresult.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fst x&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; , &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;snd x&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; dotnetresult&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
And C# code that calls it:&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;Dictionary&amp;lt;string, string&amp;gt; bc = AsyncWorkflowDemo.&lt;span style=&quot;color: #0000FF;&quot;&gt;download&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;scores.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToList&lt;/span&gt;&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; key &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; bc.&lt;span style=&quot;color: #0000FF;&quot;&gt;Keys&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;bc&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;key&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt; 
    </content:encoded>

    <pubDate>Thu, 16 Apr 2009 21:00:51 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/223-guid.html</guid>
    <category>dotnet</category>
<category>english</category>
<category>f#</category>
<category>linkedin</category>

</item>
<item>
    <title>Consuming/Calling F# from C#</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/222-ConsumingCalling-F-from-C.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/222-ConsumingCalling-F-from-C.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=222</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=222</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/research.microsoft.com/en-us/um/cambridge/projects/fsharp/&#039;);&quot;  href=&quot;http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/&quot; target=_blank&gt;F#&lt;/a&gt; is a functional language being developed by Microsoft Research.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Summary&lt;/strong&gt;&lt;br /&gt;
In this article you will learn how to pass parameters and retrieve results from a F# library. Although F# can be used to program everything in my humble opinion it should be used in areas where it will make the code more robust, more easier to understand or support, but it should not be used for ordinary tasks where today imperative languages do their job just fine. In other words we should use both of them. F# and C# may both be .NET using the Common Type System, but communication between them might not be that straight forward, at least not in the beginning. In this demos we will be using the Task Parallel Library which is another cool library that optimizes you code running on multi-core machines. TPL is available for all .NET languages and in this demo we using the TPL CTP June 2008. The three demos do the same thing, they only differ in input and output parameters usage. The F# code resides in a separate project as a F# library. The purpose of the F# code is to download web pages.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Credits:&lt;/strong&gt;&lt;br /&gt;
Credit goes to this &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/msdn.microsoft.com/en-us/magazine/dd483224.aspx&#039;);&quot;  href=&quot;http://msdn.microsoft.com/en-us/magazine/dd483224.aspx&quot;  target=_blank&gt;polyglot article&lt;/a&gt;, the website &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/stackoverflow.com&#039;);&quot;  href=&quot;http://stackoverflow.com&quot;  target=_blank&gt;stackoverflow.com&lt;/a&gt; and what I&#039;ve learned thanks to the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/cs.hubfs.net/&#039;);&quot;  href=&quot;http://cs.hubfs.net/&quot; target=_blank&gt;F# community&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
You can browse/download the code from &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/fsharpdemos/source/browse/#svn/trunk&#039;);&quot;  href=&quot;http://code.google.com/p/fsharpdemos/source/browse/#svn/trunk&quot; target=_blank&gt;http://code.google.com/p/fsharpdemos/source/browse/#svn/trunk&lt;/a&gt;. The version of F# used is 1.9.6.2.&lt;br /&gt;
&lt;br /&gt;
The three F# demos start with:&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #008080;&quot;&gt;#light&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;IO&lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Net&lt;/span&gt;&lt;br /&gt;open Microsoft.&lt;span style=&quot;color: #0000FF;&quot;&gt;FSharp&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Control&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;CommonExtensions&lt;/span&gt; &lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Threading&lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Threading&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Tasks&lt;/span&gt;;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Threading&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Collections&lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Sample 1&lt;/strong&gt;&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;let download &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;urls:&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; list&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&lt;br /&gt;&amp;#160; seq &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; use results = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; BlockingCollection&amp;lt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; &amp;lt;strong&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; use pagesRemain = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; CountdownEvent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let &amp;lt;u&amp;gt; = Task.&lt;span style=&quot;color: #0000FF;&quot;&gt;Create&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun &amp;lt;/u&amp;gt; -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; urls |&amp;gt; List.&lt;span style=&quot;color: #0000FF;&quot;&gt;iter&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun url -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let wc = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; WebClient&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringCompleted&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun args -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Error&lt;/span&gt; = &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;args.&lt;span style=&quot;color: #0000FF;&quot;&gt;UserState&lt;/span&gt; :?&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Result&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Increment&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringAsync&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Uri&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; result &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetConsumingEnumerable&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;do&lt;/span&gt; yield result&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The problem here is that the input parameter is a F# list which quite different from the C# List. This means that:&lt;br /&gt;
- you need to include the FSharp.Core assembly in your C# application&lt;br /&gt;
- build that F# list and pass it&lt;br /&gt;
&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; scores = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://osnews.com&quot;&lt;/span&gt;, &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://cnn.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//We create an empty list and move backwards because we are adding values before what we&#039;ve just added and this way we keep the C# value order.&lt;/span&gt;&lt;br /&gt;var fs_scores = Microsoft.&lt;span style=&quot;color: #0000FF;&quot;&gt;FSharp&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Collections&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;List&lt;/span&gt;&amp;lt;string&amp;gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;get_uniq_Empty&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; i = scores.&lt;span style=&quot;color: #0000FF;&quot;&gt;Length&lt;/span&gt; - &lt;span style=&quot;color: #FF0000;&quot;&gt;1&lt;/span&gt;; i &amp;gt;= &lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;; i--&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// In functional programming lists are build from tuples as each tuple links to the next. &lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Cons(scores[i], fs_scores) means that we attach the next C# element to the previously created list&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// The first time the list had one tuple that has the last value of the C# array and links to empty list &lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// which acts as a sentinel.&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; fs_scores = Microsoft.&lt;span style=&quot;color: #0000FF;&quot;&gt;FSharp&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Collections&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;List&lt;/span&gt;&amp;lt;string&amp;gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Cons&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;scores&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;, fs_scores&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//The result also comes in the form of tuples:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Microsoft.&lt;span style=&quot;color: #0000FF;&quot;&gt;FSharp&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Core&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Tuple&lt;/span&gt;&amp;lt;string, string&amp;gt; pair &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; InteroperabilityDemo1.&lt;span style=&quot;color: #0000FF;&quot;&gt;download&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fs_scores&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;pair.&lt;span style=&quot;color: #0000FF;&quot;&gt;Item2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Sample 2&lt;/strong&gt;&lt;br /&gt;
Here we replace the input F# list with type easily recognized by C#&lt;br /&gt;
&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;let download &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;array : ResizeArray&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&lt;br /&gt;&amp;#160; seq &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; use results = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; BlockingCollection&amp;lt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; &amp;lt;/strong&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; use pagesRemain = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; CountdownEvent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let urls = List.&lt;span style=&quot;color: #0000FF;&quot;&gt;of_seq&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;array&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let &amp;lt;u&amp;gt; = Task.&lt;span style=&quot;color: #0000FF;&quot;&gt;Create&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun &amp;lt;/u&amp;gt; -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; urls |&amp;gt; List.&lt;span style=&quot;color: #0000FF;&quot;&gt;iter&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun url -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let wc = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; WebClient&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringCompleted&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun args -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Error&lt;/span&gt; = &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;args.&lt;span style=&quot;color: #0000FF;&quot;&gt;UserState&lt;/span&gt; :?&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Result&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Increment&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringAsync&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Uri&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; result &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetConsumingEnumerable&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;do&lt;/span&gt; yield result&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The calling code from C# is:&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; scores = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://osnews.com&quot;&lt;/span&gt;, &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://cnn.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Microsoft.&lt;span style=&quot;color: #0000FF;&quot;&gt;FSharp&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Core&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Tuple&lt;/span&gt;&amp;lt;string, string&amp;gt; pair &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; InteroperabilityDemo2.&lt;span style=&quot;color: #0000FF;&quot;&gt;download&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;scores.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToList&lt;/span&gt;&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;pair.&lt;span style=&quot;color: #0000FF;&quot;&gt;Item2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The code here definitely shorter, but unfortunately still use the FSharp.Core for the tuples in the output.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Sample 3&lt;/strong&gt; &lt;br /&gt;
Here we add an additional structure &quot;dotnetresult&quot; to make sure the result is recognized with no problems in C#.&lt;br /&gt;
&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;let download &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;arr : ResizeArray&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; use results = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; BlockingCollection&amp;lt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; * &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; use pagesRemain = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; CountdownEvent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let dotnetresult = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Collections&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Generic&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Dictionary&lt;/span&gt;&amp;lt;string,string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let urls = List.&lt;span style=&quot;color: #0000FF;&quot;&gt;of_seq&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;arr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let &amp;lt;u&amp;gt; = Task.&lt;span style=&quot;color: #0000FF;&quot;&gt;Create&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun &amp;lt;/u&amp;gt; -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; urls |&amp;gt; List.&lt;span style=&quot;color: #0000FF;&quot;&gt;iter&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun url -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let wc = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; WebClient&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringCompleted&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun args -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Error&lt;/span&gt; = &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;args.&lt;span style=&quot;color: #0000FF;&quot;&gt;UserState&lt;/span&gt; :?&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Result&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Increment&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringAsync&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Uri&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//(fst result) returns the url and (snd result) returns the html&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; result &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetConsumingEnumerable&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;do&lt;/span&gt; dotnetresult.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fst result&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;snd result&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; dotnetresult&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
An the calling C# code:&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; scores = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://osnews.com&quot;&lt;/span&gt;, &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://cnn.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;Dictionary&amp;lt;string, string&amp;gt; bc = InteroperabilityDemo3.&lt;span style=&quot;color: #0000FF;&quot;&gt;download&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;scores.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToList&lt;/span&gt;&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; key &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; bc.&lt;span style=&quot;color: #0000FF;&quot;&gt;Keys&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;bc&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;key&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Now we do not need FSharp.Core and no one should guess in what language our F# library has been written.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Update:&lt;/strong&gt;&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/tomasp.net/blog/fsharp-webcast-objects.aspx&#039;);&quot;  href=&quot;http://tomasp.net/blog/fsharp-webcast-objects.aspx&quot;&gt;Developing standard .NET libraries in F# webcast&lt;/a&gt; by Tomas Petricek&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 16 Apr 2009 09:47:10 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/222-guid.html</guid>
    <category>dotnet</category>
<category>english</category>
<category>f#</category>
<category>linkedin</category>

</item>
<item>
    <title>KIM .NET Demo - Part 2</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/216-KIM-.NET-Demo-Part-2.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/216-KIM-.NET-Demo-Part-2.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=216</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=216</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;strong&gt;Summary:&lt;/strong&gt;&lt;br /&gt;
KIM Web Service API can be used by any programming language that has support for Web Services. &lt;br /&gt;
&lt;br /&gt;
The idea of this demo is to show how to make queries and annotate documents using KIM through web-services. While doing semantic annotation, in terms of semantic terminology, we want to extract all the entities from the text and find out to which classes in the ontology hierarchy they belong to.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Software versions:&lt;/strong&gt;&lt;br /&gt;
KIM version: 2.4 , 3.0&lt;br /&gt;
Tomcat version: 6.05&lt;br /&gt;
Visual Studio: 2008&lt;br /&gt;
&lt;br /&gt;
You can browse a demo Visual Studio 2008 solution from here: &lt;br /&gt;
http://kimnetdemos.googlecode.com/svn/trunk/kim-dotnet-nosesame/&lt;br /&gt;
&lt;br /&gt;
You can use a free SVN client (http://tortoisesvn.tigris.org/) and download the solution:&lt;br /&gt;
http://kimnetdemos.googlecode.com/svn/trunk/kim-dotnet-nosesame/&lt;br /&gt;
&lt;br /&gt;
You need to have a KIM server running. You must also have the kim-ws-api.war (from “KIM clients”) directory installed in your Tomcat and the Tomcat server running. kim-ws-api.war is a client for KIM which provides the web-service functionality. Please refer to the KIM documentation for more instructions on how to start your KIM server and the Tomcat server.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;1. References: &lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Open http://localhost:8080/kim-ws-api/ to see all the KIM APIs. If you can’t please check your tomcat and then your KIM server instance.&lt;br /&gt;
&lt;br /&gt;
You need to add service references (Windows Communication Foundation) to 2 namespaces if they do not already exist in your project or they are incorrect. They could be incorrect because for example you are using a KIM server that is not on your localhost.&lt;br /&gt;
&lt;br /&gt;
1. SemanticAnnotation (http://localhost:8080/kim-ws-api/services/SemanticAnnotationAPI?wsdl)&lt;br /&gt;
&lt;br /&gt;
2. SemanticRepository (http://localhost:8080/kim-ws-api/services/SemanticRepositoryAPI?wsdl)&lt;br /&gt;
&lt;br /&gt;
Other references are needed to exploit the rest of the functionality provided by KIM.&lt;br /&gt;
&lt;br /&gt;
You can modify the references from the app.config to make sure they point to a working KIM instance. See installing KIM for more info about references. Also one may need to change the values of: maxBufferSize=&quot;200000&quot; maxReceivedMessageSize=&quot;200000&quot; in the app.config for WCF to prevent .NET from throwing “limit overflow” exception.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;2. Queries:&lt;/strong&gt;&lt;br /&gt;
In this document we use the SeRQL language. You can find a nice tutorial here:&lt;br /&gt;
http://www.openrdf.org/doc/sesame/users/ch06.html&lt;br /&gt;
SPARQL is supported in version 3.0 of KIM.  &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;3. The actual code and some comments:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
This code sample makes a query through web-services to KIM and gets a list of companies. The query is also limited to 20 results.&lt;br /&gt;
&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; QueryExample&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&quot;Prcessing Query Example ...&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; SemanticRepository.&lt;span style=&quot;color: #0000FF;&quot;&gt;SemanticRepositoryAPI&lt;/span&gt; s = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; SemanticRepository.&lt;span style=&quot;color: #0000FF;&quot;&gt;SemanticRepositoryAPIClient&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #FF0000;&quot;&gt;String&lt;/span&gt; serql1 = &lt;span style=&quot;color: #808080;&quot;&gt;&quot;&quot;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; serql1 += &lt;span style=&quot;color: #808080;&quot;&gt;&quot;select&amp;#160; company, name FROM &quot;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; serql1 += &lt;span style=&quot;color: #808080;&quot;&gt;&quot;{company}&amp;#160; &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&amp;gt; {&amp;lt;http://proton.semanticweb.org/2006/05/protonu#Company&amp;gt;},&quot;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; serql1 += &lt;span style=&quot;color: #808080;&quot;&gt;&quot;{company}&amp;#160; &amp;#160;&amp;lt;http://proton.semanticweb.org/2006/05/protons#hasMainAlias&amp;gt; {alias}, &quot;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; serql1 += &lt;span style=&quot;color: #808080;&quot;&gt;&quot;{alias}&amp;#160; &amp;#160;&amp;lt;http://www.w3.org/2000/01/rdf-schema#label&amp;gt;&amp;#160; {name}&quot;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; serql1 += &lt;span style=&quot;color: #808080;&quot;&gt;&quot; limit 20&quot;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; SemanticRepository.&lt;span style=&quot;color: #0000FF;&quot;&gt;SemanticQueryResult&lt;/span&gt; result = s.&lt;span style=&quot;color: #0000FF;&quot;&gt;evaluateSelectSeRQL&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;serql1&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;result.&lt;span style=&quot;color: #0000FF;&quot;&gt;Rows&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Count&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;SemanticRepository.&lt;span style=&quot;color: #0000FF;&quot;&gt;SemanticQueryResultRow&lt;/span&gt; row &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; result.&lt;span style=&quot;color: #0000FF;&quot;&gt;Rows&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; v &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; row.&lt;span style=&quot;color: #0000FF;&quot;&gt;Values&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;Write&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;v&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&quot;==================================&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
&lt;strong&gt;4. Running the demo:&lt;/strong&gt;&lt;br /&gt;
At best you should just need to click Ctrl+F5 in Visual Studio. You also need to supply a document to be annotated when using the Semantic Annotation API.  This demo loads the following document through an Internet connection: http://kimnetdemos.googlecode.com/svn/trunk/Documents/sun-ibm.txt&lt;br /&gt;
You modify this demo to process thousands of documents.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;5. Sesame for .NET&lt;/strong&gt;&lt;br /&gt;
It might be helpful to use a .NET port of Sesame called &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/sourceforge.net/projects/dotsesame&#039;);&quot;  href=&quot;https://sourceforge.net/projects/dotsesame&quot;  target=_blank&gt;dotsesame&lt;/a&gt;. I personally think that using the dotsesame helps making the code cleaner and easier to read. You should keep in mind two things: which version of .NET Sesame you need - dotsesame or dotsesame 2.x; you will need to use the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ikvm.net/&#039;);&quot;  href=&quot;http://www.ikvm.net/&quot; target=_blank&gt;IKVM&lt;/a&gt; dlls version 0.30, with newer version of IKVM you might be getting some weird exceptions.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Warning:&lt;/strong&gt;&lt;br /&gt;
Make sure this demo references a working KIM instance: Ontotext own demo servers or you own local copy of KIM.&lt;br /&gt;
&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/kim/index.html&#039;);&quot;  href=&quot;http://www.ontotext.com/kim/index.html&quot; target=_blank&gt;KIM&lt;/a&gt; is a &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Semantic_Web&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Semantic_Web&quot; target=_blank&gt;semantic web&lt;/a&gt; platform developed  by &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/&#039;);&quot;  href=&quot;http://www.ontotext.com/&quot; target=_blank&gt;Ontotext&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quick links:&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/258-The-Semantic-Annotation-Workflow-KIM-part-10.html&quot; target=_blank&gt;The Semantic Annotation Workflow - KIM part 10&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/249-KIM-Multithreaded-Clustered-Client-Application-KIM-part-9.html&quot; target=_blank&gt;KIM Multi-threaded Clustered Client Application - KIM part 9&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/260-Gazetteers-KIMGATE-part-7.html&quot; target=_blank &gt;Gazetteers - KIM/GATE part 7&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/231-Strict-Rules-vs-Machine-Learning-KIM-part-6.html&quot; target=_blank &gt;Strict Rules vs Machine Learning - KIM part 6&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/242-KIM-Tips-and-Tricks-KIM-PART-5.html&quot; target=_blank&gt;Tips and Tricks - KIM part 5&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/230-Using-a-Gate-application-KIM-part-4.html&quot; target=_blank&gt;Using a Gate application - KIM part 4&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/228-GATE-tutorial-KIM-part-3.html&quot; target=_blank&gt;Gate tutorial - KIM part 3&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/216-KIM-.NET-Demo-Part-2.html&quot; target=_blank&gt;Using KIM from .NET - KIM part 2&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/256-KIMGATE-Getting-Started-part-1.html&quot; target=_blank&gt;Getting Started - KIM part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/214-Install-Ontotext-KIM-on-windows-Part-1.html&quot; target=_blank&gt;Installation - KIM part 0&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 02 Apr 2009 22:54:34 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/216-guid.html</guid>
    <category>dotnet</category>
<category>english</category>
<category>kim</category>
<category>linkedin</category>
<category>ontotext</category>
<category>semantic web</category>

</item>
<item>
    <title>Windows Workflow Foundation</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/215-Windows-Workflow-Foundation.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/215-Windows-Workflow-Foundation.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=215</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=215</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    The idea is to have a Visio diagram and code in one.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Advantages:&lt;/strong&gt;&lt;br /&gt;
1. Architect can first create the workflow and leave gaps for code. Then an ordinary developer can fill the needed code.&lt;br /&gt;
2. Using  WWF a non-developer can debug the workflow by just passing through the blocks. He can notice that in one moment the workflow does not go through the intended path. The the non-developer can inform the developers where he suspects the problem is located. This can save time if the developers are very busy fixing other problems.  &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;What is important to know:&lt;/strong&gt;&lt;br /&gt;
1. Input and output parameters in Windows Workflow Foundation&lt;br /&gt;
Input parameters are supplied in a dictionary in the constructor of the workflow.&lt;br /&gt;
Output parameters are supplied in predefined dictionary called OutputParameters which is being access only when you hook for the WorkflowCompleted completed Event. The following examples fields and properties are defined in the wokrflow class itself and then they are being used from the code that instantiates the workflow. On order to use input and output parameters you need to &lt;b&gt;follow a specific convention&lt;/b&gt;! Both the input and output need a field and a associated property. You use the the private field and the workflow uses the property. For input parameters the property must be only &quot;set&quot; and for out an output parameter it must be only &quot;get&quot;. Yaa, it is not that wierd, but you need to make it this way in order to make it work.&lt;br /&gt;
&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; VehicleConcession vConcession;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; VehicleConcession VConcession&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; set&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; vConcession = value;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;decimal&lt;/span&gt; amount;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;decimal&lt;/span&gt; AmountResult&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; get&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; amount;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
2. AutoResetEvent handle and some demo code:&lt;br /&gt;
It is important to understand that the wokflow is executed in a new thread. If you don&#039;t use the AutoResetEvent you might get out of sync. You might have a situation where when in production the workflow does not work, but when you debug it works. This is because when in debug you give the workflow thread enough time to execute and return the calculated result. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #FF0000;&quot;&gt;decimal&lt;/span&gt; amount=&lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Dictionary&amp;lt;string, object&amp;gt; d = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Dictionary&amp;lt;string, object&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; d.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&quot;VConcession&quot;&lt;/span&gt;, vconcession&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;using&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;WorkflowRuntime workflowRuntime = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; WorkflowRuntime&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; AutoResetEvent waitHandle = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; AutoResetEvent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; workflowRuntime.&lt;span style=&quot;color: #0000FF;&quot;&gt;WorkflowCompleted&lt;/span&gt; += &lt;span style=&quot;color: #FF0000;&quot;&gt;delegate&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; sender, WorkflowCompletedEventArgs e&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; waitHandle.&lt;span style=&quot;color: #0000FF;&quot;&gt;Set&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; amount = Convert.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToDecimal&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;e.&lt;span style=&quot;color: #0000FF;&quot;&gt;OutputParameters&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&quot;AmountResult&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//{&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//&amp;#160; &amp;#160; //Log errror&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//&amp;#160; &amp;#160; Console.WriteLine(e.Exception.Message);&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//&amp;#160; &amp;#160; waitHandle.Set();&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//};&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; WorkflowInstance instance = workflowRuntime.&lt;span style=&quot;color: #0000FF;&quot;&gt;CreateWorkflow&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=typeof+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;typeof&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;VehicleConcessionWorkflow&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, d&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; instance.&lt;span style=&quot;color: #0000FF;&quot;&gt;Start&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//much like starting a thread&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; waitHandle.&lt;span style=&quot;color: #0000FF;&quot;&gt;WaitOne&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; amount;&lt;br /&gt;&amp;#160;&lt;/div&gt; 
    </content:encoded>

    <pubDate>Thu, 02 Apr 2009 22:48:59 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/215-guid.html</guid>
    <category>dotnet</category>
<category>english</category>
<category>linkedin</category>

</item>
<item>
    <title>Install Ontotext KIM on windows - Part 0</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/214-Install-Ontotext-KIM-on-windows-Part-0.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/214-Install-Ontotext-KIM-on-windows-Part-0.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=214</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=214</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/kim/index.html&#039;);&quot;  href=&quot;http://www.ontotext.com/kim/index.html&quot; target=_blank&gt;KIM&lt;/a&gt; is a &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Semantic_Web&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Semantic_Web&quot; target=_blank&gt;semantic web&lt;/a&gt; platform developed  by &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/&#039;);&quot;  href=&quot;http://www.ontotext.com/&quot; target=_blank&gt;Ontotext&lt;/a&gt;. &lt;br /&gt;
It provides semantic annotation, indexing, and retrieval of unstructured and semi-structured content.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;1. Install JAVA SDK&lt;/strong&gt;&lt;br /&gt;
- make sure you install the JAVA Development KIT, not the JRE (Java runtime)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;2. Have Java in you path&lt;/strong&gt;&lt;br /&gt;
If you find out that you have Java installed, but not accessible, you then need to add the folder containing &quot;java.exe&quot; to your path. &lt;br /&gt;
On Windows this is done by clicking: System Properties-&gt;Advanced-&gt;Environment variables(at the bottom right)-&gt;System Variables-&gt; Select &quot;Path&quot; from the list&lt;br /&gt;
and append something like that &quot;;C:\Program Files\Java\jdk1.6.0_16\bin&quot;. Folders are separated by &quot;;&quot;. Instead of &quot;C:\Program Files\Java\jdk1.6.0_16\bin&quot; you need to set your Java bin folder.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;3. Download KIM&lt;/strong&gt;&lt;br /&gt;
- request a download link from Ontotext for evaluation/research from &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ontotext.com/kim/KIM-registration-form.html&#039;);&quot;  href=&quot;http://ontotext.com/kim/KIM-registration-form.html&quot; target=_blank&gt;here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;4. Configure and run the KIM server&lt;/strong&gt;&lt;br /&gt;
- you need to set 2 variables in config_machine.bat:&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;- set _TOMCAT_HOME=C:\PROGRA~1\APACHE~1\tomcat~1.0\bin (replace with your TOMCAT directory)&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;- set _JAVA_HOME=C:\Program Files\Java\jdk1.5.0_18 (replace with your JDK directory)&lt;br /&gt;
- start the KIM server by going to: \kim\bin\ and  then type startKIM.bat which will automatically call config_machine.bat before proceeding further&lt;br /&gt;
- KIM server may complain about the Tomcat folder, but that is not such a problem for now&lt;br /&gt;
- KIM server takes a while to load plug-ins, knowledge for the world . . . , so be patient&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;- KIM has fully loaded after you see: &quot;KIM Server startup ended!&quot;&lt;br /&gt;
- you may need to restart KIM and/or Tomcat a few times in version 2.4&lt;br /&gt;
- if you encounter any problems starting KIM you should check &lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/242-KIM-Tips-and-Tricks-KIM-PART-5.html&quot;&gt;Tips and Tricks - KIM part 5&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In order to: use KIM web interface, write a program(Java, .NET, etc.) that accesses KIM through web services, have Sesame web query interface running then you need to have a Tomcat installation running with the KIM clients deployed! Without Tomcat you can: use KIM RMI to write Java programs, use the supplied KIM tools to annotate documents, add RDF.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;5. Install Apache Tomcat&lt;/strong&gt;&lt;br /&gt;
- usually starts with \apache-tomcat-6.0.20\bin\startup.bat&lt;br /&gt;
- it usually runs on port 8080, allow this port if needed&lt;br /&gt;
- you don&#039;t need to make Tomcat run under IIS or Apache web-server. Tomcat can be used as a standalone server.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;6. Use KIM clients through Tomcat&lt;/strong&gt;&lt;br /&gt;
List of provided clients: &lt;br /&gt;
- KIM.war - used to search and view documents you have annotated in your server&lt;br /&gt;
- sesame-web-ui.war - simply said it is used to access the semantic database &lt;br /&gt;
- kim-ws-api.war - required to use the KIM Web Service API&lt;br /&gt;
&lt;br /&gt;
Configuration:&lt;br /&gt;
- copy the wars from \kim-platform-x.x\KIM Clients\ to \Tomcat\webapps&lt;br /&gt;
- not \Tomcat\webapps\ROOT!&lt;br /&gt;
- for each of the wars a new folder will be created automatically by Tomcat, just wait for a while (if Tomcat is running or started after that)&lt;br /&gt;
- each of this newly created folders can be accessed like: http://localhost:8080/kim-ws-api/ for kim-ws-api.war for example&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;7. Join the mailing lists&lt;/strong&gt;&lt;br /&gt;
- &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.ontotext.com/kim/mailing-lists-info.html&#039;);&quot;  href=&quot;http://www.ontotext.com/kim/mailing-lists-info.html&quot; target=_blank&gt;http://www.ontotext.com/kim/mailing-lists-info.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Running KIM on Mac OS X&lt;/strong&gt;&lt;br /&gt;
tools.jar does not exist in Mac OS X. Classes usually located in it are instead included in classes.jar. Therefore scripts that rely on the existence of tools.jar need to be rewritten accordingly. Till then, you could edit the script config_machine.sh, which is located at KIM_HOME/bin directory and try to delete the following code on line 30: &amp;&amp;amp; [ -e &quot;$JAVA_HOME/lib/tools.jar&quot; ]&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Other platforms&lt;/strong&gt;&lt;br /&gt;
I myself have started a KIM 3.0 development version on Yellow Dog Linux 6.2 on my PS3 with IBM Java 1.6 VM for power pc(PPC). &lt;br /&gt;
&lt;br /&gt;
Next is: &lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/256-KIMGATE-Getting-Started-part-1.html&quot;&gt;Getting Started - KIM part 1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quick links:&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/258-The-Semantic-Annotation-Workflow-KIM-part-10.html&quot; target=_blank&gt;The Semantic Annotation Workflow - KIM part 10&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/249-KIM-Multithreaded-Clustered-Client-Application-KIM-part-9.html&quot; target=_blank&gt;KIM Multi-threaded Clustered Client Application - KIM part 9&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/260-Gazetteers-KIMGATE-part-7.html&quot; target=_blank &gt;Gazetteers - KIM/GATE part 7&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/231-Strict-Rules-vs-Machine-Learning-KIM-part-6.html&quot; target=_blank &gt;Strict Rules vs Machine Learning - KIM part 6&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/242-KIM-Tips-and-Tricks-KIM-PART-5.html&quot; target=_blank&gt;Tips and Tricks - KIM part 5&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/230-Using-a-Gate-application-KIM-part-4.html&quot; target=_blank&gt;Using a Gate application - KIM part 4&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/228-GATE-tutorial-KIM-part-3.html&quot; target=_blank&gt;Gate tutorial - KIM part 3&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/216-KIM-.NET-Demo-Part-2.html&quot; target=_blank&gt;Using KIM from .NET - KIM part 2&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/256-KIMGATE-Getting-Started-part-1.html&quot; target=_blank&gt;Getting Started - KIM part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/214-Install-Ontotext-KIM-on-windows-Part-1.html&quot; target=_blank&gt;Installation - KIM part 0&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 29 Mar 2009 16:31:27 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/214-guid.html</guid>
    <category>dotnet</category>
<category>english</category>
<category>kim</category>
<category>linkedin</category>
<category>ontotext</category>
<category>semantic web</category>

</item>
<item>
    <title>CVT - Continuously Variable Transmission</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/210-CVT-Continuously-Variable-Transmission.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/210-CVT-Continuously-Variable-Transmission.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=210</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=210</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    Това е скоростна кутия, която няма точно фиксирани скорости. Нормалното е 5, при някои  коли автоматици 4, а при спортни коли и 6. CVT дава възможност на двигателя да работи винаги при оптималният за него режим и е предпоставка за пестене на гориво. Освен това го няма лекото придърпване при смяна на скорост, което при автоматиците така или иначе се чувства много по-слабо от колите с ръчни скорости. Повече информация може да се прочете от &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Continuously_variable_transmission&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Continuously_variable_transmission&quot; target=_blank&gt;wikipedia&lt;/a&gt;. Такава кутия се използва в Toyota Prius. CVT се ползват често от колите с хибридни двигатели. 
    </content:encoded>

    <pubDate>Thu, 05 Mar 2009 23:06:13 +0200</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/210-guid.html</guid>
    <category>коли</category>
<category>linkedin</category>

</item>
<item>
    <title>Tuning </title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/208-Tuning.html</link>
            <category>Techno-talk</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/208-Tuning.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=208</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=208</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    Все пак си падам по техниката и бих искал да можех и аз нещо да си човъркам по колата и да я оптимизирам. Стигнах до извода, че нещото полезно за колата което мога да направя е да сложа допълнително охлаждане на скоростната кутия - Automatic Transmission Cooler. В ebay продават такива за 30$. Четох как точно работи автоматичната скоростна кутия, но за съжаление не разбрах всичко. Стана ми ясно, че един такъв охладител бил удължил живота на кутията и би предпазил от евентуално изпържване на частите в нея. При температура над 93 градуса маслото започва да губи свойствата си и даже може част от него да изгори. Това води до скапване на кутията и супер скъп ремонт след това ... До колкото разбирам охлаждането на автоматичната скоростна кутия става при радиатора на който се охлажда и двигателя. Ако това е така - може да се сложи допълнителен радиатор и маслото да минава вече през него като новият радиатор трябва да е зад стария за проветривост.&lt;br /&gt;
&lt;br /&gt;
За съжаление нямам канал ... нямам даже къде да паркирам пред блока, а подобна модификация може да съсипе цялата кола ... а може и да я спаси следващия път. 
    </content:encoded>

    <pubDate>Mon, 02 Mar 2009 21:13:34 +0200</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/208-guid.html</guid>
    <category>коли</category>

</item>

</channel>
</rss>