{"id":1202,"date":"2018-11-12T20:56:15","date_gmt":"2018-11-12T15:26:15","guid":{"rendered":"https:\/\/www.rangakrish.com\/?p=1202"},"modified":"2018-11-13T07:11:50","modified_gmt":"2018-11-13T01:41:50","slug":"simulating-possible-worlds-in-flora-2","status":"publish","type":"post","link":"https:\/\/www.rangakrish.com\/index.php\/2018\/11\/12\/simulating-possible-worlds-in-flora-2\/","title":{"rendered":"Simulating Possible Worlds in Flora-2"},"content":{"rendered":"<p>The idea of encountering <em><strong>different worlds<\/strong><\/em> with varying <em><strong>truths<\/strong><\/em> is an interesting one. It has deep connections to philosophy and logic. For a nice discussion, see this <a href=\"https:\/\/plato.stanford.edu\/entries\/possible-worlds\/\" target=\"_blank\" rel=\"noopener\"><em><strong>article<\/strong><\/em><\/a>.<\/p>\n<p>Today, we are going to take advantage of <em><strong><a href=\"http:\/\/flora.sourceforge.net\" target=\"_blank\" rel=\"noopener\">Flora-2<\/a><\/strong><\/em>&#8216;s module system to simulate <em><strong>possible worlds<\/strong><\/em>. <em><strong>Flora-2<\/strong><\/em> allows us to dynamically associate any knowledge base (KB) with any module; when loading a KB, we can specify the module name to be associated with that KB (this approach is different from most conventional programming languages such as <em><strong>C++<\/strong><\/em> and <em><strong>Java<\/strong><\/em>, where the <em><strong>namespace<\/strong><\/em> or <em><strong>package<\/strong><\/em> name is statically associated with the file). If module name is not specified, it is assumed to be the <em><strong>main<\/strong><\/em> module.<\/p>\n<p>We can thus partition a huge knowledge base into manageable chunks and work with them as needed. This can facilitate efficient reasoning as well.<\/p>\n<p>For our discussion, we are going to consider two <em><strong>possible worlds<\/strong><\/em>:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">1) A <em><strong>child&#8217;s world<\/strong><\/em>, where all living beings are friendly with one another<\/span><br \/>\n<span style=\"color: #0000ff;\">2) An <em><strong>adult&#8217;s world<\/strong><\/em>, where discrimination exists<\/span><\/p>\n<p>We also have some <em><strong>common knowledge<\/strong><\/em> that is <em><strong>shared<\/strong><\/em> by adults and children.<\/p>\n<p>[text]<br \/>\n\/\/ Rangarajan Krishnamoorthy &#8211; 12\/11\/2018<\/p>\n<p>\/\/ This KB contains world knowledge (common knowledge)<br \/>\n\/\/ [&#8216;G:\/Flora-2\/Examples\/ModuleExample\/Common-knowledge.flr&#8217;].<\/p>\n<p>{Man, Woman} :: Human :: LivingBeing.<br \/>\n{Bird, Animal} :: LivingBeing.<\/p>\n<p>{Lion, Tiger, Cat, Dog} :: Animal.<br \/>\n{Parrot, Pigeon} :: Bird.<\/p>\n<p>\/\/ Instances of Birds<br \/>\nParrot1 : Parrot.<br \/>\nPigeon1 : Pigeon.<\/p>\n<p>\/\/ Instances of Animals<br \/>\nLion1 : Lion.<br \/>\nTiger1 : Tiger.<br \/>\nCat1 : Cat.<br \/>\nDog1 : Dog.<\/p>\n<p>\/\/ Men and Women<br \/>\n{Peter, Joe, Phyllis} : Man.<br \/>\n{Sylvia, Mary, Teresa} : Woman.<\/p>\n<p>\/\/ Predicate must be true in all the worlds<br \/>\nNecessarily(?p) :- ?p@child, ?p@adult.<\/p>\n<p>\/\/ Enough if the predicate is true is any one world<br \/>\nPossibly(?p) :- ?p@child; ?p@adult.<\/p>\n<p>[\/text]<\/p>\n<p>In the above, we define a hierarchy and various instances of classes that belong to the hierarchy. For instance,<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">Joe is a Man.<\/span><br \/>\n<span style=\"color: #0000ff;\">Mary is a Woman.<\/span><br \/>\n<span style=\"color: #0000ff;\">Dog1 is a specific Dog.<\/span><\/p>\n<p>Let us now peek into the <em><strong>child<\/strong><\/em> world:<\/p>\n<p>[text]<br \/>\n\/\/ Rangarajan Krishnamoorthy &#8211; 12\/11\/2018<\/p>\n<p>\/\/ This should be loaded into a module called &quot;child&quot;<br \/>\n\/\/ [&#8216;G:\/Flora-2\/Examples\/ModuleExample\/World-of-Child.flr&#8217; &gt;&gt; child].<\/p>\n<p>\/\/ World knowledge is assumed to be available in &quot;main&quot; module<\/p>\n<p>\/\/ All living beings are friendly with one another<br \/>\nfriendly(?x, ?y) :- {?x, ?y}:LivingBeing@main.<\/p>\n<p>[\/text]<\/p>\n<p>We see that according to the child, everyone is friendly with everyone else. No discrimination at all. What an ideal situation!<\/p>\n<p>Notice how I have referenced the class <em><strong>LivingBeing<\/strong><\/em> defined in <em><strong>main<\/strong><\/em> module while defining the <em><strong>friendly<\/strong><\/em> predicate.<\/p>\n<p>Now let us look at the <em><strong>adult<\/strong><\/em> world:<\/p>\n<p>[text]<br \/>\n\/\/ Rangarajan Krishnamoorthy &#8211; 12\/11\/2018<\/p>\n<p>\/\/ This should be loaded into a module called &quot;adult&quot;<br \/>\n\/\/ [&#8216;G:\/Flora-2\/Examples\/ModuleExample\/World-of-Adult.flr&#8217; &gt;&gt; adult].<\/p>\n<p>\/\/ World knowledge is assumed to be available in &quot;main&quot; module<\/p>\n<p>friendly(?x, ?y) :- ?x \\in [Peter]@main, ?y \\in [Joe, Mary, Teresa]@main.<br \/>\nfriendly(?x, ?y) :- {?x, ?y}:Bird@main.<\/p>\n<p>\/\/ &quot;Friendship&quot; is a bi-directional relationship.<br \/>\nfriendly(?x, ?y) :- friendly(?y, ?x).<\/p>\n<p>[\/text]<\/p>\n<p>In this world, all <em><strong>Birds<\/strong><\/em> are friendly with one another. Among <em><strong>Humans<\/strong><\/em>, the only set of friends are Peter, Joe, Mary, and Teresa. There are <em><strong>no other friends<\/strong><\/em>.<\/p>\n<p>Let us check these possible worlds in <em><strong>Flora-2<\/strong><\/em>. First we have to load the different KBs into their respective modules:<\/p>\n<figure id=\"attachment_1210\" aria-describedby=\"caption-attachment-1210\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Loading-modules.png?ssl=1\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" data-attachment-id=\"1210\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2018\/11\/12\/simulating-possible-worlds-in-flora-2\/loading-modules\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Loading-modules.png\" data-orig-size=\"679,512\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Loading Modules\" data-image-description=\"&lt;p&gt;Loading Modules&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Loading Modules&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Loading-modules.png\" class=\"wp-image-1210\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Loading-modules.png?resize=650%2C490&#038;ssl=1\" alt=\"Loading Modules\" width=\"650\" height=\"490\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Loading-modules.png?w=679&amp;ssl=1 679w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Loading-modules.png?resize=300%2C226&amp;ssl=1 300w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><\/a><figcaption id=\"caption-attachment-1210\" class=\"wp-caption-text\"><strong>Loading Modules<\/strong><\/figcaption><\/figure>\n<p>If a module name is not specified while loading a KB, it is assumed to be <em><strong>main<\/strong><\/em>, the default module.<\/p>\n<p>Let us pose a few queries based on these <em><strong>possible worlds<\/strong><\/em>. Look at the <em><strong>Child&#8217;s<\/strong><\/em> world first:<\/p>\n<figure id=\"attachment_1211\" aria-describedby=\"caption-attachment-1211\" style=\"width: 529px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Childs-World.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"1211\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2018\/11\/12\/simulating-possible-worlds-in-flora-2\/querying-childs-world\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Childs-World.png\" data-orig-size=\"529,469\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Querying Child&amp;#8217;s World\" data-image-description=\"&lt;p&gt;Querying Child&amp;#8217;s World&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Querying Child&amp;#8217;s World&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Childs-World.png\" class=\"size-full wp-image-1211\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Childs-World.png?resize=529%2C469&#038;ssl=1\" alt=\"Querying Child's World\" width=\"529\" height=\"469\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Childs-World.png?w=529&amp;ssl=1 529w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Childs-World.png?resize=300%2C266&amp;ssl=1 300w\" sizes=\"(max-width: 529px) 100vw, 529px\" \/><\/a><figcaption id=\"caption-attachment-1211\" class=\"wp-caption-text\"><strong>Querying Child&#8217;s World<\/strong><\/figcaption><\/figure>\n<p>Here is the adult&#8217;s world:<\/p>\n<figure id=\"attachment_1212\" aria-describedby=\"caption-attachment-1212\" style=\"width: 529px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Adult-World.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"1212\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2018\/11\/12\/simulating-possible-worlds-in-flora-2\/querying-adult-world\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Adult-World.png\" data-orig-size=\"529,469\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Querying Adult World\" data-image-description=\"&lt;p&gt;Querying Adult World&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Querying Adult World&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Adult-World.png\" class=\"size-full wp-image-1212\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Adult-World.png?resize=529%2C469&#038;ssl=1\" alt=\"Querying Adult World\" width=\"529\" height=\"469\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Adult-World.png?w=529&amp;ssl=1 529w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Querying-Adult-World.png?resize=300%2C266&amp;ssl=1 300w\" sizes=\"(max-width: 529px) 100vw, 529px\" \/><\/a><figcaption id=\"caption-attachment-1212\" class=\"wp-caption-text\"><strong>Querying Adult&#8217;s World<\/strong><\/figcaption><\/figure>\n<p>What this clearly demonstrates is that different truth conditions can prevail in different worlds. For example, <em><strong>Dog1<\/strong><\/em> and <em><strong>Cat1<\/strong><\/em> are friends in the world of the child, but not in the world of the adult!<\/p>\n<h2>Modal Operators<\/h2>\n<p>Modal logic includes two additional operators namely,\u00a0<em><strong>Necessarily<\/strong><\/em> and <em><strong>Possibly<\/strong><\/em>. Something is <em><strong>necessarily<\/strong><\/em> true if and only if it is true in <em><strong>all possible worlds<\/strong><\/em>, and something is <em><strong>possibly<\/strong><\/em> true if and only if it is true in <em><strong>some possible world<\/strong><\/em>.<\/p>\n<p>I have tried to model these operators thus:<\/p>\n<p>[text]<br \/>\n\/\/ Predicate must be true in all the worlds<br \/>\nNecessarily(?p) :- ?p@child, ?p@adult.<\/p>\n<p>\/\/ Enough if the predicate is true is any one world<br \/>\nPossibly(?p) :- ?p@child; ?p@adult.<\/p>\n<p>[\/text]<\/p>\n<p>These operators are defined as part of <em><strong>common knowledge<\/strong><\/em>.<\/p>\n<p>Let us check these operators:<\/p>\n<figure id=\"attachment_1213\" aria-describedby=\"caption-attachment-1213\" style=\"width: 529px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Modal-Operators.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1213\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2018\/11\/12\/simulating-possible-worlds-in-flora-2\/modal-operators\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Modal-Operators.png\" data-orig-size=\"529,469\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Modal Operators\" data-image-description=\"&lt;p&gt;Modal Operators&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Modal Operators&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Modal-Operators.png\" class=\"size-full wp-image-1213\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Modal-Operators.png?resize=529%2C469&#038;ssl=1\" alt=\"Modal Operators\" width=\"529\" height=\"469\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Modal-Operators.png?w=529&amp;ssl=1 529w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Modal-Operators.png?resize=300%2C266&amp;ssl=1 300w\" sizes=\"(max-width: 529px) 100vw, 529px\" \/><\/a><figcaption id=\"caption-attachment-1213\" class=\"wp-caption-text\"><em><strong>Modal Operators<\/strong><\/em><\/figcaption><\/figure>\n<p>The operators seem to work as expected!<\/p>\n<p>The module system of <em><strong>Flora-2<\/strong><\/em>\u00a0thus allows us to elegantly partition knowledge bases and use that idea to simulate varying truth conditions across different <em><strong>possible worlds<\/strong><\/em>. I think this is a very useful feature.<\/p>\n<p>You can download the KB files here:\u00a0<a href=\"http:\/\/www.rangakrish.com\/downloads\/Common-Knowledge.flr\" target=\"_blank\" rel=\"noopener\">Common-Knowledge.flr<\/a>,\u00a0<a href=\"http:\/\/www.rangakrish.com\/downloads\/World-of-Adult.flr\" target=\"_blank\" rel=\"noopener\">World-of-Adult.flr<\/a>,\u00a0<a href=\"http:\/\/www.rangakrish.com\/downloads\/World-of-Child.flr\" target=\"_blank\" rel=\"noopener\">World-of-Child.flr<\/a>.<\/p>\n<p>That is it for today. Have a wonderful week ahead!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The idea of encountering different worlds with varying truths is an interesting one. It has deep connections to philosophy and logic. For a nice discussion, see this article. Today, we are going to take advantage of Flora-2&#8216;s module system to simulate possible worlds. Flora-2 allows us to dynamically associate any knowledge base (KB) with any [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[169,162,17],"tags":[164,163,168],"class_list":["post-1202","post","type-post","status-publish","format-standard","hentry","category-flora-2","category-knowledge-representation","category-programming","tag-flora-2","tag-knowledge-representation","tag-possible-worlds"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9OLnF-jo","jetpack-related-posts":[{"id":1109,"url":"https:\/\/www.rangakrish.com\/index.php\/2018\/10\/28\/flora-2-an-expressive-knowledge-representation-system\/","url_meta":{"origin":1202,"position":0},"title":"Flora-2: An Expressive Knowledge Representation System","author":"admin","date":"October 28, 2018","format":false,"excerpt":"I am always on the lookout for a good Knowledge Representation (KR) system that facilitates modeling and reasoning about real-world knowledge. I have experience with\u00a0KnowledgeWorks\u00a0available in LispWorks\u00a0since I have used it in a few projects. I have also taken a cursory look at PowerLoom\u00a0and Racer. Last week, I came across\u2026","rel":"","context":"In &quot;Flora-2&quot;","block_context":{"text":"Flora-2","link":"https:\/\/www.rangakrish.com\/index.php\/category\/flora-2\/"},"img":{"alt_text":"Quitting Flora-2 Session","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/10\/quitting.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/10\/quitting.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/10\/quitting.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1146,"url":"https:\/\/www.rangakrish.com\/index.php\/2018\/11\/04\/modeling-homeopathic-remedy-keynotes-in-flora-2\/","url_meta":{"origin":1202,"position":1},"title":"Modeling Homeopathic Remedy Keynotes in Flora-2","author":"admin","date":"November 4, 2018","format":false,"excerpt":"In my last post, I got started with Flora-2 and showed how we can model homeopathic remedies from a therapeutics perspective. Although such a limited view of remedies can be helpful in treating acute ailments, for treating chronic diseases, a comprehensive understanding of the various remedies from the perspective of\u2026","rel":"","context":"In &quot;Flora-2&quot;","block_context":{"text":"Flora-2","link":"https:\/\/www.rangakrish.com\/index.php\/category\/flora-2\/"},"img":{"alt_text":"Multiple Frames for Same Remedy","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Multiple-defn.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Multiple-defn.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Multiple-defn.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1229,"url":"https:\/\/www.rangakrish.com\/index.php\/2018\/11\/21\/flora-2-and-acupuncture\/","url_meta":{"origin":1202,"position":2},"title":"Flora-2 and Acupuncture","author":"admin","date":"November 21, 2018","format":false,"excerpt":"In my previous post\u00a0I gave examples of modeling homeopathy remedies using Flora-2. Today I want to show an example from a completely different domain namely,\u00a0Acupuncture.Acupuncture is an ancient system of Chinese medicine and is practised in many countries. It is based on the principle that our body has several meridians,\u2026","rel":"","context":"In &quot;Acupuncture&quot;","block_context":{"text":"Acupuncture","link":"https:\/\/www.rangakrish.com\/index.php\/category\/acupuncture\/"},"img":{"alt_text":"Sanzhen Therapy","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2018\/11\/Fig6.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":38,"url":"https:\/\/www.rangakrish.com\/index.php\/2015\/10\/08\/experimenting-with-wearable-devices\/","url_meta":{"origin":1202,"position":3},"title":"Experimenting with Wearable Devices!","author":"admin","date":"October 8, 2015","format":false,"excerpt":"Adafruit\u00a0develops nice wearable devices. Flora is one of their popular Arduino wearable modules. I stitched together the Flora module, Accelerometer\/Compass and NeoPixel on a small handkerchief using the special conductive thread. Then I connected the Flora module via USB to my iMac. Using the Arduino IDE, I uploaded a small\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/www.rangakrish.com\/index.php\/category\/electronics\/"},"img":{"alt_text":"Flora Experiment","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2015\/10\/IMG_1583-300x225.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2960,"url":"https:\/\/www.rangakrish.com\/index.php\/2022\/12\/08\/are-rule-based-systems-still-relevant-today\/","url_meta":{"origin":1202,"position":4},"title":"Are Rule-Based Systems Still Relevant Today?","author":"admin","date":"December 8, 2022","format":false,"excerpt":"Before Machine Learning came into the mainstream, Rule-based systems were being used actively to solve complex decision making problems. In fact, Rule engines were considered to be an exotic component of Artificial Intelligence and the systems built using these rule engines were called Expert Systems. I still remember learning to\u2026","rel":"","context":"In &quot;Knowledge Representation&quot;","block_context":{"text":"Knowledge Representation","link":"https:\/\/www.rangakrish.com\/index.php\/category\/knowledge-representation\/"},"img":{"alt_text":"Gathering Symptom Information","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2022\/12\/Screen1-300x187.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":2986,"url":"https:\/\/www.rangakrish.com\/index.php\/2023\/01\/11\/book-review-adventures-in-rule-based-programming-a-clips-tutorial\/","url_meta":{"origin":1202,"position":5},"title":"Book Review: Adventures in Rule-Based Programming &#8211; A CLIPS Tutorial","author":"admin","date":"January 11, 2023","format":false,"excerpt":"Title: Adventures in Rule-Based Programming - A CLIPS Tutorial Author: Gary Riley Publisher: Secret Society Software, LLC Year: 2022 In an earlier article, I had talked about the relevance of Rule-based systems today. In that article I had also listed a few Rule engines that are popular and widely used.\u2026","rel":"","context":"In &quot;Knowledge Representation&quot;","block_context":{"text":"Knowledge Representation","link":"https:\/\/www.rangakrish.com\/index.php\/category\/knowledge-representation\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2023\/01\/Cover-188x300.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts\/1202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/comments?post=1202"}],"version-history":[{"count":0,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts\/1202\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/media?parent=1202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/categories?post=1202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/tags?post=1202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}