Skip to content

Instantly share code, notes, and snippets.

@kenwebb
Last active January 24, 2026 14:31
Show Gist options
  • Select an option

  • Save kenwebb/ece4ec706beb8c58d24b3793a063cd11 to your computer and use it in GitHub Desktop.

Select an option

Save kenwebb/ece4ec706beb8c58d24b3793a063cd11 to your computer and use it in GitHub Desktop.
Symbolic Logic, Math, and Xholon
<?xml version="1.0" encoding="UTF-8"?>
<!--Xholon Workbook http://www.primordion.com/Xholon/gwt/ MIT License, Copyright (C) Ken Webb, Sat Jan 24 2026 09:30:41 GMT-0500 (Eastern Standard Time)-->
<XholonWorkbook>
<Notes><![CDATA[
Xholon
------
Title: Symbolic Logic, Math, and Xholon
Description:
Url: http://www.primordion.com/Xholon/gwt/
InternalName: ece4ec706beb8c58d24b3793a063cd11
Keywords:
My Notes
--------
2025 Jan 19
Jan 24
- additional thoughts
() Robert Hall, Introduction to Mathematical Linguistics, 1972
2 Symbolic Logic: The Propositional Calculus
p.12
All men are mortal.
Socrates is a man.
------------------
Therefore, Socrates is mortal.
() George Lakoff and Rafael E. Nunez, Where Mathematics Comes From
ch 6 - Boole's Metaphor: Classes and Symbolic Logic
]]></Notes>
<_-.XholonClass>
<!-- domain objects -->
<PhysicalSystem/>
<Block/>
<Brick/>
<!-- quantities -->
<Height superClass="Quantity"/>
<!-- how to express "All men are mortal. use a IH attribute?"
see XholonClass.java navInfo "A"
https://github.com/kenwebb/Xholon/blob/master/Xholon/src/org/primordion/xholon/base/XholonClass.java
OR use a XholonSet container node
BUT I want to see attributes like "mortal" as just attributes and not node types
Jan 24
- use a bplex to connect things with same attributes
- this is analogous to having multiple sets (JavaScript Set or Array)
- there would be a Set called "mortal"
- each thing that is mortal would be a member of that set
-->
<Man mortal="true"/>
</_-.XholonClass>
<xholonClassDetails>
<Block>
<port name="height" connector="Height"/>
</Block>
<Man>
<!--<attr>mortal=true</attr>--> <!-- ??? TODO search all models for "navInfo" -->
<!--<attribute name="mortal" value="true"/>--> <!-- error -->
</Man>
</xholonClassDetails>
<PhysicalSystem>
<Block>
<Height>0.1 m</Height>
</Block>
<Brick multiplicity="2"/>
<!-- Socrates is a man. -->
<Man roleName="Socrates"/>
</PhysicalSystem>
<Blockbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
var a = 123;
var b = 456;
var c = a * b;
if (console) {
console.log(c);
}
//# sourceURL=Blockbehavior.js
]]></Blockbehavior>
<Heightbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
var myHeight, testing;
var beh = {
postConfigure: function() {
testing = Math.floor(Math.random() * 10);
myHeight = this.cnode.parent();
},
act: function() {
myHeight.println(this.toString());
},
toString: function() {
return "testing:" + testing;
}
}
//# sourceURL=Heightbehavior.js
]]></Heightbehavior>
<Brickbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
$wnd.xh.Brickbehavior = function Brickbehavior() {}
$wnd.xh.Brickbehavior.prototype.postConfigure = function() {
this.brick = this.cnode.parent();
this.iam = " red brick";
};
$wnd.xh.Brickbehavior.prototype.act = function() {
this.brick.println("I am a" + this.iam);
};
//# sourceURL=Brickbehavior.js
]]></Brickbehavior>
<Brickbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
console.log("I'm another brick behavior");
]]></Brickbehavior>
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml,
<svg width="100" height="50" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Block</title>
<rect id="PhysicalSystem/Block" fill="#98FB98" height="50" width="50" x="25" y="0"/>
<g>
<title>Height</title>
<rect id="PhysicalSystem/Block/Height" fill="#6AB06A" height="50" width="10" x="80" y="0"/>
</g>
</g>
</svg>
]]></Attribute_String><Attribute_String roleName="setup">${MODELNAME_DEFAULT},${SVGURI_DEFAULT}</Attribute_String></SvgClient>
</XholonWorkbook>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment