Skip to content

Instantly share code, notes, and snippets.

@kenwebb
Last active January 9, 2020 16:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kenwebb/abbe57f7a78b62cec7d56681244a4526 to your computer and use it in GitHub Desktop.
Save kenwebb/abbe57f7a78b62cec7d56681244a4526 to your computer and use it in GitHub Desktop.
Coin Collection
<?xml version="1.0" encoding="UTF-8"?>
<!--Xholon Workbook http://www.primordion.com/Xholon/gwt/ MIT License, Copyright (C) Ken Webb, Thu Jan 09 2020 11:35:16 GMT-0500 (Eastern Standard Time)-->
<XholonWorkbook>
<Notes><![CDATA[
Xholon
------
Title: Coin Collection
Description:
Url: http://www.primordion.com/Xholon/gwt/
InternalName: abbe57f7a78b62cec7d56681244a4526
Keywords:
My Notes
--------
January 7, 2020
Coin collection model, with bplex-like structures.
I have a list (set) of n coins that are part of my U.S. type collection.
Each coin has a set of features, each of which can be modeled as a bplex.
Each coin fills a slot in a larger collection of coin types. My set only fills a few of these slots.
Some slots have been filled and some not. Think of the set of slots as a coin album.
The coin jar in my kitchen is also a collection of coins.
The actual number of coins in a type set is not fixed, and there are various lists available [refs 2, 3].
If I assume that there are exactly 137 slots in a collection, then I might specify this as a Math set: {1,...,137} or {0,...,136} or 137underline 1͟3͟7͟ 1̲3̲7̲ n͟ n̲
To fill in more details in my album, which is a collection of slots, I have scraped data from ref 3.
I've written a script (scrapeCoinTable.js), that produces the following type of data:
```json
[
["Item", "Date", "Denom", "Grade"],
["Liberty Cap Left Half Cent (1793)", "1793", "1/2C", "MS65BN"],
["Liberty Cap Rt Half Cent Lg Hd (1794)", "1794", "1/2C", "MS67RB"],
["Liberty Cap Rt Half Cent Sm Hd (1795-1797)", "1796", "1/2C", "MS67RB"],
["Draped Bust Half Cent (1800-1808)", "1804", "1/2C", "MS64+ RD"],
["Classic Head Half Cent (1809-1836)", "1811", "1/2C", "MS66RB"],
["Braided Hair Half Cent (1840-1857)", "1855", "1/2C", "MS65RD"],
...
["Three Cent Silver, Type 1 (1851-1853)", "1851", "3CS", "MS67+"],
["Three Cent Silver, Type 2 (1854-1858)", "1854", "3CS", "MS66+"],
["Three Cent Silver, Type 3 (1859-1873)", "1862/1", "3CS", "MS67"],
...
["St. Gaudens $20, No Motto (1907-1908)", "1908", "$20", "MS68"],
["St. Gaudens $20, Motto (1908-1933)", "1928", "$20", "MS67"]
]
```
There are 137 records, plus the header row with colomn labels.
I can use the values in the "Item" column as the roleName of each slot.
"Date" and "Denom" can provide some bplex cycles.
For example, something like this would be possible:
<Album>
<Slot roleName="Liberty Cap Left Half Cent (1793)">
<port name="Denom1/2C" connector="../Slot[2]"/>
</Slot>
</Album>
Use XholonXhmath.html rather than Xholon.html, to ensure that the xhmath JavaScript module is loaded:
http://127.0.0.1:8888/XholonXhmath.html?app=Coin+Collection&src=lstr&gui=clsc
Ideas:
-----
semantics
- types vs features
hypergraphs, hyperedges
- bplexes are hyperedges?
- a bplex is one way of representing a hyperedge
underline (Dev Tools)
---------
var str = temp0.text();
str;
"137underline 1͟3͟7͟ 1̲3̲7̲ n͟ n̲"
str.length;
35
for (var i = 0; i < str.length; i++) {console.log(str.charAt(i));}
for (var i = 0; i < str.length; i++) {console.log(str.charCodeAt(i));}
for (var i = 0; i < str.length; i++) {console.log(str.charAt(i) + "\t" + str.charCodeAt(i));}
for (var i = 0; i < str.length; i++) {console.log(str.charAt(i) + "\t" + str.charCodeAt(i).toString(16));}
var result = "";
for (var i = 0; i < str.length; i++) {
result += str.charAt(i) + "\t" + str.charCodeAt(i).toString(16) + "\n";
//console.log(str.charAt(i) + "\t" + str.charCodeAt(i).toString(16));
}
console.log(result);
1 31
3 33
7 37
u 75
n 6e
d 64
e 65
r 72
l 6c
i 69
n 6e
e 65
20
1 31
͟ 35f
3 33
͟ 35f
7 37
͟ 35f
20
20
1 31
̲ 332
3 33
̲ 332
7 37
̲ 332
20
20
n 6e
͟ 35f
20
20
n 6e
̲ 332
References
----------
(1) https://coinweek.com/coins/coin-collecting-strategies-2/what-are-the-ideal-coins-to-put-into-a-us-type-set/
What are the Ideal Coins To Put Into a US Type Set? - By Heritage Auction - October 2, 2018
US Type Set Strategies By Stewart Huckaby
(2) https://coinweek.com/us-type-coins/
lists each type
(3) https://www.pcgs.com/SetRegistry/type-sets/complete-type-sets/complete-u-s-type-set-1792-1964/alltimeset/142775
Complete U.S. Type Set (1792-1964)
describes each type, with a photo
137 coins
(4) http://127.0.0.1:8888/wb/editwb.html?app=Universe+of+Fish&src=lstr
my "Universe of Fish" model uses Math set notation
(5) http://127.0.0.1:8888/wb/editwb.html?app=Saunders+Mac+Lane+-+Mathematics+Form+and+Function&src=lstr
uses XML processing instruction to process sets into Xholon subtrees
ex: <?xhmath.pSetPointed01 ({Planet,Mercury,Venus,Earth,Mars}, Planet)?>
(6) https://yaytext.com/underline/
137underline 1͟3͟7͟ 1̲3̲7̲ n͟ n̲
]]></Notes>
<_-.XholonClass>
<PhysicalSystem/>
<Album/>
<Slot/>
<Coin/>
<Feature/>
<!-- use this type to do experiments with n underline 137underline 1͟3͟7͟ 1̲3̲7̲ n͟ n̲ -->
<Underline superClass="Attribute_String"/>
</_-.XholonClass>
<xholonClassDetails>
<Slot><Color>lightgreen</Color></Slot>
<Coin><Color>orange</Color></Coin>
</xholonClassDetails>
<PhysicalSystem>
<Album>
<!-- the first six slots define a bplex cycle called "Denom1/2C" which contains all the half-cent slots in the album -->
<Slot roleName="Liberty Cap Left Half Cent (1793)">
<port name="Denom1/2C" connector="../Slot[2]"/>
</Slot>
<Slot roleName="Liberty Cap Rt Half Cent Lg Hd (1794)">
<port name="Denom1/2C" connector="../Slot[3]"/>
</Slot>
<Slot roleName="Liberty Cap Rt Half Cent Sm Hd (1795-1797)">
<port name="Denom1/2C" connector="../Slot[4]"/>
</Slot>
<Slot roleName="Draped Bust Half Cent (1800-1808)">
<port name="Denom1/2C" connector="../Slot[5]"/>
<Coin>
<port name="Date1806" connector="../../Slot[4]/Coin"/>
</Coin>
</Slot>
<Slot roleName="Classic Head Half Cent (1809-1836)">
<port name="Denom1/2C" connector="../Slot[6]"/>
<Coin>
<port name="Date1832" connector="../../Slot[5]/Coin"/>
</Coin>
</Slot>
<Slot roleName="Braided Hair Half Cent (1840-1857)">
<port name="Denom1/2C" connector="../Slot[1]"/>
<Coin>
<port name="Date1851" connector="../../Slot[6]/Coin"/>
</Coin>
</Slot>
<!-- another bplex: "Denom3CS" -->
<Slot roleName="Three Cent Silver, Type 1 (1851-1853)">
<port name="Denom3CS" connector="../Slot[8]"/>
</Slot>
<Slot roleName="Three Cent Silver, Type 2 (1854-1858)">
<port name="Denom3CS" connector="../Slot[9]"/>
</Slot>
<Slot roleName="Three Cent Silver, Type 3 (1859-1873)">
<port name="Denom3CS" connector="../Slot[7]"/>
</Slot>
</Album>
<Album>
<?xhmath.pSetPointed02 ({0,...,136}, Slot)?>
</Album>
<Underline roleName="137underline 1͟3͟7͟ 1̲3̲7̲ n͟ n̲ OR simply 137_">137underline 1͟3͟7͟ 1̲3̲7̲ n͟ n̲ OR simply 137_</Underline>
<Underline roleName="un1"><?xhmath.pSetPointed02 ({1,2,3,4,5,6,7,8,9,10,11,12,13}, Slot)?></Underline>
<Underline roleName="un2"><?xhmath.pSetPointed02 ({1,...,13}, Slot)?></Underline>
<Underline roleName="un3"><?xhmath.pSetPointed02 (13_, Slot)?></Underline>
<Underline roleName="un4"><?xhmath.pSetPointed02 (1͟3͟, Slot)?></Underline>
<Underline roleName="un5"><?xhmath.pSetPointed02 (1̲3̲, Slot)?></Underline>
</PhysicalSystem>
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml,
<svg width="1198pt" height="519pt"
viewBox="0.00 0.00 1198.00 518.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="Album[2]" class="graph" transform="scale(1 1) rotate(0) translate(4 514.8)">
<title>190</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-514.8 1194,-514.8 1194,4 -4,4"/>
<text text-anchor="middle" x="595" y="-8.2" font-family="Courier New" font-size="14.00">Album</text>
<!-- 191 -->
<g id="Album[2]/Slot[@roleName=&#39;Liberty Cap Left Half Cent (1793)&#39;]" class="node"><title>191</title>
<ellipse fill="lightgreen" stroke="black" cx="395" cy="-492.8" rx="202.318" ry="18"/>
<text text-anchor="middle" x="395" y="-488.6" font-family="Courier New" font-size="14.00">Liberty Cap Left Half Cent (1793)</text>
</g>
<!-- 193 -->
<g id="Album[2]/Slot[@roleName=&#39;Liberty Cap Rt Half Cent Lg Hd (1794)&#39;]" class="node"><title>193</title>
<ellipse fill="lightgreen" stroke="black" cx="275" cy="-402.8" rx="225.078" ry="18"/>
<text text-anchor="middle" x="275" y="-398.6" font-family="Courier New" font-size="14.00">Liberty Cap Rt Half Cent Lg Hd (1794)</text>
</g>
<!-- 191&#45;&gt;193 -->
<g id="Album[2]_edge1" class="edge"><title>191&#45;&gt;193</title>
<path fill="none" stroke="black" d="M371.863,-474.833C353.187,-461.137 326.731,-441.736 306.186,-426.67"/>
<polygon fill="black" stroke="black" points="298.066,-420.715 308.791,-423 302.098,-423.672 306.13,-426.629 306.13,-426.629 306.13,-426.629 302.098,-423.672 303.469,-430.258 298.066,-420.715 298.066,-420.715"/>
<text text-anchor="middle" x="380.22" y="-443.6" font-family="Times,serif" font-size="14.00">Denom1/2C</text>
</g>
<!-- 195 -->
<g id="Album[2]/Slot[@roleName=&#39;Liberty Cap Rt Half Cent Sm Hd (1795&#45;1797)&#39;]" class="node"><title>195</title>
<ellipse fill="lightgreen" stroke="black" cx="254" cy="-312.8" rx="254.027" ry="18"/>
<text text-anchor="middle" x="254" y="-308.6" font-family="Courier New" font-size="14.00">Liberty Cap Rt Half Cent Sm Hd (1795&#45;1797)</text>
</g>
<!-- 193&#45;&gt;195 -->
<g id="Album[2]_edge2" class="edge"><title>193&#45;&gt;195</title>
<path fill="none" stroke="black" d="M270.851,-384.414C267.869,-371.919 263.793,-354.837 260.397,-340.604"/>
<polygon fill="black" stroke="black" points="258.069,-330.85 264.767,-339.533 259.229,-335.714 260.39,-340.577 260.39,-340.577 260.39,-340.577 259.229,-335.714 256.013,-341.622 258.069,-330.85 258.069,-330.85"/>
<text text-anchor="middle" x="301.22" y="-353.6" font-family="Times,serif" font-size="14.00">Denom1/2C</text>
</g>
<!-- 197 -->
<g id="Album[2]/Slot[@roleName=&#39;Draped Bust Half Cent (1800&#45;1808)&#39;]" class="node"><title>197</title>
<ellipse fill="lightgreen" stroke="black" cx="280" cy="-222.8" rx="202.318" ry="18"/>
<text text-anchor="middle" x="280" y="-218.6" font-family="Courier New" font-size="14.00">Draped Bust Half Cent (1800&#45;1808)</text>
</g>
<!-- 195&#45;&gt;197 -->
<g id="Album[2]_edge3" class="edge"><title>195&#45;&gt;197</title>
<path fill="none" stroke="black" d="M259.137,-294.414C262.828,-281.919 267.875,-264.837 272.081,-250.604"/>
<polygon fill="black" stroke="black" points="274.962,-240.85 276.444,-251.716 273.546,-245.646 272.129,-250.441 272.129,-250.441 272.129,-250.441 273.546,-245.646 267.813,-249.166 274.962,-240.85 274.962,-240.85"/>
<text text-anchor="middle" x="304.22" y="-263.6" font-family="Times,serif" font-size="14.00">Denom1/2C</text>
</g>
<!-- 201 -->
<g id="Album[2]/Slot[@roleName=&#39;Classic Head Half Cent (1809&#45;1836)&#39;]" class="node"><title>201</title>
<ellipse fill="lightgreen" stroke="black" cx="297" cy="-132.8" rx="208.008" ry="18"/>
<text text-anchor="middle" x="297" y="-128.6" font-family="Courier New" font-size="14.00">Classic Head Half Cent (1809&#45;1836)</text>
</g>
<!-- 197&#45;&gt;201 -->
<g id="Album[2]_edge4" class="edge"><title>197&#45;&gt;201</title>
<path fill="none" stroke="black" d="M283.359,-204.414C285.749,-192.04 289.008,-175.169 291.742,-161.02"/>
<polygon fill="black" stroke="black" points="293.706,-150.85 296.228,-161.522 292.758,-155.76 291.809,-160.669 291.809,-160.669 291.809,-160.669 292.758,-155.76 287.391,-159.815 293.706,-150.85 293.706,-150.85"/>
<text text-anchor="middle" x="325.22" y="-173.6" font-family="Times,serif" font-size="14.00">Denom1/2C</text>
</g>
<!-- 205 -->
<g id="Album[2]/Slot[@roleName=&#39;Braided Hair Half Cent (1840&#45;1857)&#39;]" class="node"><title>205</title>
<ellipse fill="lightgreen" stroke="black" cx="455" cy="-42.8" rx="208.008" ry="18"/>
<text text-anchor="middle" x="455" y="-38.6" font-family="Courier New" font-size="14.00">Braided Hair Half Cent (1840&#45;1857)</text>
</g>
<!-- 201&#45;&gt;205 -->
<g id="Album[2]_edge5" class="edge"><title>201&#45;&gt;205</title>
<path fill="none" stroke="black" d="M327.464,-114.833C352.601,-100.833 388.441,-80.8708 415.73,-65.6716"/>
<polygon fill="black" stroke="black" points="424.63,-60.7152 418.083,-69.5124 420.261,-63.1481 415.893,-65.5811 415.893,-65.5811 415.893,-65.5811 420.261,-63.1481 413.704,-61.6497 424.63,-60.7152 424.63,-60.7152"/>
<text text-anchor="middle" x="425.22" y="-83.6" font-family="Times,serif" font-size="14.00">Denom1/2C</text>
</g>
<!-- 205&#45;&gt;191 -->
<g id="Album[2]_edge6" class="edge"><title>205&#45;&gt;191</title>
<path fill="none" stroke="black" d="M485.623,-60.854C508.56,-76.1259 536,-100.861 536,-131.8 536,-403.8 536,-403.8 536,-403.8 536,-437.679 506.341,-458.993 474.229,-472.14"/>
<polygon fill="black" stroke="black" points="464.674,-475.799 472.403,-468.02 469.343,-474.011 474.013,-472.223 474.013,-472.223 474.013,-472.223 469.343,-474.011 475.622,-476.425 464.674,-475.799 464.674,-475.799"/>
<text text-anchor="middle" x="570.219" y="-263.6" font-family="Times,serif" font-size="14.00">Denom1/2C</text>
</g>
<!-- 209 -->
<g id="Album[2]/Slot[@roleName=&#39;Three Cent Silver, Type 1 (1851&#45;1853)&#39;]" class="node"><title>209</title>
<ellipse fill="lightgreen" stroke="black" cx="965" cy="-492.8" rx="225.078" ry="18"/>
<text text-anchor="middle" x="965" y="-488.6" font-family="Courier New" font-size="14.00">Three Cent Silver, Type 1 (1851&#45;1853)</text>
</g>
<!-- 211 -->
<g id="Album[2]/Slot[@roleName=&#39;Three Cent Silver, Type 2 (1854&#45;1858)&#39;]" class="node"><title>211</title>
<ellipse fill="lightgreen" stroke="black" cx="789" cy="-402.8" rx="225.078" ry="18"/>
<text text-anchor="middle" x="789" y="-398.6" font-family="Courier New" font-size="14.00">Three Cent Silver, Type 2 (1854&#45;1858)</text>
</g>
<!-- 209&#45;&gt;211 -->
<g id="Album[2]_edge7" class="edge"><title>209&#45;&gt;211</title>
<path fill="none" stroke="black" d="M931.065,-474.833C902.822,-460.711 862.446,-440.523 831.952,-425.276"/>
<polygon fill="black" stroke="black" points="822.83,-420.715 833.787,-421.162 827.303,-422.951 831.775,-425.187 831.775,-425.187 831.775,-425.187 827.303,-422.951 829.762,-429.212 822.83,-420.715 822.83,-420.715"/>
<text text-anchor="middle" x="925.666" y="-443.6" font-family="Times,serif" font-size="14.00">Denom3CS</text>
</g>
<!-- 213 -->
<g id="Album[2]/Slot[@roleName=&#39;Three Cent Silver, Type 3 (1859&#45;1873)&#39;]" class="node"><title>213</title>
<ellipse fill="lightgreen" stroke="black" cx="919" cy="-312.8" rx="225.078" ry="18"/>
<text text-anchor="middle" x="919" y="-308.6" font-family="Courier New" font-size="14.00">Three Cent Silver, Type 3 (1859&#45;1873)</text>
</g>
<!-- 211&#45;&gt;213 -->
<g id="Album[2]_edge8" class="edge"><title>211&#45;&gt;213</title>
<path fill="none" stroke="black" d="M814.065,-384.833C834.388,-371.076 863.213,-351.563 885.512,-336.469"/>
<polygon fill="black" stroke="black" points="894.012,-330.715 888.253,-340.047 889.871,-333.518 885.731,-336.321 885.731,-336.321 885.731,-336.321 889.871,-333.518 883.208,-332.594 894.012,-330.715 894.012,-330.715"/>
<text text-anchor="middle" x="898.666" y="-353.6" font-family="Times,serif" font-size="14.00">Denom3CS</text>
</g>
<!-- 213&#45;&gt;209 -->
<g id="Album[2]_edge9" class="edge"><title>213&#45;&gt;209</title>
<path fill="none" stroke="black" d="M960.933,-330.606C983.729,-342.167 1009.88,-359.959 1023,-384.8 1038.09,-413.381 1014.44,-446.008 992.959,-467.643"/>
<polygon fill="black" stroke="black" points="985.517,-474.812 989.597,-464.633 989.118,-471.343 992.719,-467.874 992.719,-467.874 992.719,-467.874 989.118,-471.343 995.841,-471.115 985.517,-474.812 985.517,-474.812"/>
<text text-anchor="middle" x="1060.67" y="-398.6" font-family="Times,serif" font-size="14.00">Denom3CS</text>
</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