Was exported from Trello --> .json --> .md --> gDocs (here) 2025-05-14
[ ] 🤪 What? k-web.ismandatory.com
# This board is…
mainly about \~\~[http://k-web.ismandatory.com](http://k-web.ismandatory.com "smartCard-inline")\~\~ The Knowledge Web prototype. Contact karl@passionismandstory.com to access the new prototype.
Join us on [https://www.facebook.com/profile.php?id=100057209809238](https://www.facebook.com/profile.php?id=100057209809238 "") to get involved.
[ ] 📬 Inbox - A dumping ground...
Anything goes!
[ ] 💡 Lists - Ideas by category
Break out cards from here ...before starting work on them.
[ ] 🍎 To-do - Ready for work!
[ ] 🛠️ In progress - ...
[ ] ✅ Done - See Definition of Done
Some cards will have a \_“Definition of Done / Success“\_.
[ ] 🚩 Milestones - A sense of direction
[ ] ****
Text written in brackets are rough drafts…
[ ] 🛠️🎚️ The 3 tools interact... ✅
Click / hover in one will affect the others.
PS. The three tools are:
1\. Graph
2\. Map
3\. Timeline
4\. Biography
[ ] 🕰️ Time travel feeling (time & space)...
The idea is that you generally ~visit a year (as indicated by timeline marker)… and possibly also a place (or part of the world).
Further more, not only does the 3 tools interact…
- The timespan shown in the timeline (change it by zoom) will reflect other components; perhaps dim nodes of people not yet born / dead.
- Images, photos, newspaper clippings etc should help you get a feel for the times (and place).
[ ] 🧠 Brain Transplant: Share kweb-links instead of TheBrain links...
[ ] 🛩️ Journey Mode?
See also *"When it works: Preload a journey (only)"* in https://trello.com/c/LBa8qH2j
[ ] Journey: on hover action!
> (a) mousing over the chosen node causes the node's 'oneliner' (describing the node, e.g. “Albert Einstein, physicist”) temporarily to appear by that node and in The Journey space
-- blueprint 04
[ ] 📽️ Video / audio journeys
# There is a video Proof Of Concept
A video playing (inside its component), the position in the video affect which nodes are selected & hovered.
# 💡 Air gap / Shazam style follow-along
While watching ex an episode of connections, open kweb (on another device) & allow it to use your microphone... It figures out which video you are watching, where you are in it & starts following along (like the POC above).
PS. Tried to make a demo of this but appears a bit tricky.
# On working with copyrighted material
(Without the "Shazam" style feature).
If somehow the Kweb could get to know:
1\. Which audiobook/podcast/documentary you listen to (perhaps even which file, like an md5?)
2\. Your position in it... Continuously...
3\. **Scrobble to the K-Web**‽ This is it!?
[ ] Miniweb: mouse over filament action!
Link text should probably be invisible or close to unless hovered... (or the node is hovered).
[ ] Sphere alternative? Just show all nodes?
And have the timeline decide which are visible?
...load all and just hide.
# Experiment: Network of all links from ex 14th Century...
I’ll be easier; one might be able to grasp it (and see all the nodes in one screen).
See also: https://nightingaledvs.com/how-to-visualize-a-graph-with-a-million-nodes/ ?
[ ] Miniweb: one more level (maybe hide unless hover)
[ ] Stories: ex "Discovery of Jupiter & its rings"
Probably a lot like a journey, but all other nodes & connections are barely visible (or even hidden).
Time is probably more important here...
# Could just be a (barely) special node text‽ 🤯
- The nodes (+connections) mentioned in the note is shown prominently (nothing else).
- The text describes (perhaps after an intro/summary) a chronological story... As you read the timeline moves.
- People not yet born (imagine moving the slider) should probably not be in the graph (or they should be dimmed), dead people should stay but be dimmed.
- Ideally connections should also be hidden until they happen...
## Wikipedia articles & other
(Whatever can be mapped to WikiData (or Wikipedia), ex with an LLM).
Could also be used... But Wikipedia articles probably are not great; too much information and hard to discern what is core. Podcasts are probably better.
[ ] 🌐 Consider having the Cesium module cover the whole screen; the "skyBox" that is
I.e use the stars from Cesium; they move around nicely when globe is rotated… puts the globe in the center, even if:
…it’s still, usually, small and in the top left corner.
Extra:
Consider having it tick one hour per second or something… to see the stars move :O
[ ] Reduce information overload...
# Try
**Bio only visible** if node **"double focused"**; selected & then selected again... (double click in the old blueprint; both methods can work).
# Consider
**Hide / dim most nodes most of the time** to not cause information overload?
[ ] Bio: hover location in text activates map / globe!
> When user mouses-over any location reference in the text, the map (see above) shows relevant-sized view with relevant location highlighted.
-- blueprint 04
[ ] 🤯 A grand perspective
# The globe and the stars in the background isn't just props‽
…they are to scale, the moon & solar system is there too!
...would be great if you move the slider back in time you can see the moon landings etc... You see it modeled 🤯 It's like a Google earth + solar system where you can move the time slider and the earth, solar system & what goes on on the earth changes also... 🤯🤯🤯
## Zoom out in space & time
Travel to the big bang or zoom out to see the whole universe – Think that old 10^10 video (can be found on YouTube); zooms both outward to the full universe & then inward to electrons (or smaller probably).
Off topic: And of course, in the timeline you can see when connections was aired (initially) etc. Exactly!
[ ] Add onto the K-Web, your private (but shareable) nodes & connections...
[ ] 🌌 Extended exploration from timeline & map (explore, filter)
Explore from timeline, map & a combination: “What else was going on there at that time?” ...not only from the graph.
Or simply put: \_“Using the "tools" as filters to explore...“\_
# Globe / map zoom levels (world > continent > country > place)
Could work as a filter, very much like the timeline (just toggle it on / off?)
# If all, even the Shipworm had dates
This would allow time travel; show nodes only up untill ex year 1150 CE.
Also, one can ask: Who else was around at that time? (+ in that part of the world).
...this (& similar) is how people can find their own connections!!
[ ] ✒️ Recent edits - basic one at first
## Idea: Just a list
..of nodes recently edited.
## More detailed?
…diffs etc.
[ ] 🗃️ The Burkive?
Make public? (To what end?)
[https://burkives.notion.site/0a694604f7e346c5b95006683bd416ee?v=5b997ff19a154551af354ce3d0914e14](https://burkives.notion.site/0a694604f7e346c5b95006683bd416ee?v=5b997ff19a154551af354ce3d0914e14 "smartCard-inline")
[ ] 🤖 Curator AI features (> The Brain)
After note editing possible.
Just add all trom here: https://youtu.be/6PUSIlL9rPQ?si=1YUOJUTZ-txFC6AP
...but also make it possible to ask anything & add your own shortcuts (the items in the menu should be the same, just shortcuts).
[ ] 📚 type from WikiData? Person / Event / Invention / Thing(?)
# 🛠️ Extract from WikiData: type
- Person
- Event
- Invention
- Thing?
- _…what makes sense here?_
----
# ✅ Done
- Extract link names (i.e. relationships). See also: [https://chat.openai.com/share/dbcbc38b-f904-43a9-b5d4-0f474a029918](https://chat.openai.com/share/dbcbc38b-f904-43a9-b5d4-0f474a029918 "")
- Probably cache all `claims` locally… and then any data can be extracted easier, later…
[ ] Add a mentioned in: a separera component probably... But can be merged with bio
Consider (if this works well enough): store matches like: { some-node: { work-book-name1: [167, 6277, 9747], ...}} Where the numbers are offsets in the .txt... These can later be used to deduce if links are lilly mentiond there in 🧐😌
[ ] **K-Web – Science & Engineering etc... **
...an extension / extra module (or an independent standalone project).
Focuses on things & innovations over people & relationships.
Helps you understand, ex electricity or how the atom bomb works...
The perfect scenes are probably historic;
Go back to the Galvanis or Los Alamos /
The Trinity experiment or travel to the sun...
--> zoom in, watch interact etc
"Infinite canvas" could be one way...
...or 3D and VR.
[ ] 📉 Stats (we could collect)
- women vs. men: Total & over the centuries!?
- dead brain:// links
- "Original KWEB content" vs. ...not
[ ] ⏳ Get detailed timelines FROM biographies
# Idea
Extract events and their dates (and locations if possible) from the bio texts. Use this to render more interesting timelines (only the focused node would have this level of detail, connections could remain as simply lifespans).
Chat-GPT seems to do this with ease, but perhaps there are simpler tools that would suffice, such as:
- https://github.com/winkjs/showcase-timeline
[ ] 🗞️ Relaunch K-web news?
Pick it up again!?
- Make it a \~monthly thing.
- Post on facebook (but perhaps link to GitHub pages blog or something).
The old one: [https://knowledgeweb.blogspot.com/2003/12/](https://knowledgeweb.blogspot.com/2003/12/ "smartCard-inline")
[ ] Integrate with Pantheon...
1. Download all the nodes & connections
1. Use as a source for connections.
2. Show / hide in UI
2. More things!? With the API etc?
3. …
[https://pantheon.world/data/api](https://pantheon.world/data/api "smartCard-inline") Even more connections (& easy metadata): [https://brill.com/view/journals/rdj/5/1/article-p50\_50.xml?language=en](https://brill.com/view/journals/rdj/5/1/article-p50\_50.xml?language=en "smartCard-inline") files(csv): [https://osf.io/qtu2j/](https://osf.io/qtu2j/ "smartCard-inline")How to find relationships between people (& things)?
[ ] Dump of things / links
- https://benfry.com/valence/ - Inspiration for the concentric spheres? (in the early 2000s). Mentioned on the old k-web blog.
- Liking this: "an expedition in time, space, and technology to map the interior landscape of human thought and experience." - http://knowledgeweb.blogspot.com/2011/07/?m=1#8987564517344475385
## On organizing Open Source projects + docs
Inspiration: [https://github.com/Significant-Gravitas/Nexus/wiki](https://github.com/Significant-Gravitas/Nexus/wiki "smartCard-inline")
[ ] Personalize The K-web experience...
Focus, or start from things you know (and / or like) – important.
...the Kickstarter app had this?
**Not liking this a lot but...**
One way to implement it:💡 Classic role-play character creation mode with questions...
# Mentioned in
- Talks & interviews with James...
- Also in YouTube videos?
[ ] 💡 Etymology view...
[ ] 🎼 Button "Hide same-typed" (ex. Musician)
Or a mode (instead of just a button).
(Or when lots of nodes, default to this).
[ ] 💡 Who was where when?
Figure a way to document someone's whereabouts; detailed...
This might reveal new "probably crossed paths with" information!
Start with Tesla?
1\. 📍Perhaps mark all / most relevant places (by default).
2\. Scroll timeline to see "current" location.
3\. \~\~👆 Middle of timeline = selected time.\~\~ ← :white\_check\_mark: Done
[ ] Bio: remove hover preview? Too chaotic?
Consider maybe instead an image on hover (to accompany the oneliner).
[ ] 🖼️ Portraits component...
# Shows a portrait
…of the selected person or thing.
Move the time slider (travel in time) and the portrait changes.
## Tech details
Search wikicommons for ex “Charles Darwin portrait“ (wikidata depiction of style queries does not seem to return enough).
This is absolutely doable and not too hard!
But it’ll probably need these features (beyond finding obvious the images part):
- cache: metadata \~ date + filenames
- cache: images
- auto resize too large images…
- nice: if curators can exclude irrelevant / bad images…
[ ] 🛩️ Journey ideas
[ ] 🕸️ Graph / miniweb ideas
# "The Jump problem"
What: Rendering a 2D/3D force directed graph, it doesn't seem to make sense to add all nodes and linkes to the equation (and hide all but the relevant); just doesn't look good. Hence (in the current model) you're not traveling through a static constellation of nodes but rather an ever changing landscape; click s node and everything changes. Could we have something in between?
## When it works: Preload a journey (only)
Loading a journey & all neighboring nodes (100 or perhaps 300 nodes in total), then just make part of the constellation visible... Looks great!
See experiment `3d-graph-present`.
## Tween from one view to the next
Load new model in background, tween from current to preloaded. Ex, Tesla in middle user clicks Mark Twain: Twain moves to the middle, Tesla out of the center, some nodes remain (but moves around a bit), some nodes are added.
(...models could even be loaded (positions) on server, cached etc...)
[ ] 📱 General Interface ideas
# Tap = hover?
Tap once on a touch screen = hover on desktop?
Tap will "semi-select", tap again to select/move.
Could be a good idea...
# Grid layout, resizing etc...
Have thought quite a bit about this… and experimented… to be continued…
# More… slightly off topic
On medium sized displays (especially), the graph can feel too small (crammed in between the rest) & the other "tools" can feel distracting; dim them until focused / hovered?
[ ] 🔍 Search & Jumps ideas
# Post search: travel fast to node
- Find shortest path.
- Load path (+ target neighbors).
- Travel in ~1sec.
- Remove trail(?)
# Search (also) note contents
## ...and (for admins / curators) the Burkive!
# Search + Path finder
Show for the top results(?) how many jumps to that node!? ...and you can either just click the result to go straight there (maybe still traversing the journey in in like 1 second)... or click ex "a 4 jump journey" to load it in as a knowledge trail...
## Turn it into a game!
> it could be a game, pick 2 nodes, specify # of hops (or a range) then human tries to find path manually without looking at solution (could reveal iteratively, that is hints, JB AI avatar could give hints?)
[ ] 📜 Biography / Text ideas
[ ] 🗺️ Map & globe ideas
# Easy location detail + zoom
`Earth > Europe > France > Paris [> Address ]`
Hover / tap any to zoom to that level.
PS. See similar description in Blueprint.
# Quickly grasp a person's travels / movements
Each location is represented by a filled circle, the radius represents time / years.
Color could also go from green (birth) to red (death) or similar.
# Very old maps, millions of years
https://portal.gplates.org/cesium/?view=rift\_v
[ ] 📜 Timeline ideas
# Context & highlights
Beyond what is seen in the graph, show **other things from the time**. 13th century: \~**inventions** The button & the chimney, other **big events** & **people alive**… [this example could be better].
**NOTE** Can also be limited to a geographic area.
## Personalized references
> \_🖍️ This is a draft, please improve it.\_
Personalize timeline (\~background) for reference.
Example: I know all about American presidents, including them for reference will help me understand other things.
Default: Include a few events & periods (and maybe a few people), strive to make these with mild biases (not too eurocentric etc). Ways to do this:
1\. Personal views, ex James Burke's general ..."base"line or Sapiens (unofficial) base timeline. Or make your own‽
# Timeline modes (suggestions)
- Last visited nodes (Journey)
- Selected & linked
- Selected & geospatially close nodes
- mystery tour's nodes.
# Show age of people at the time (indicated by arrow)
Indicate the age of people (in the graph) at the time (great people were babys & kids too; good reminder?)
(Cool, perhaps, to combine the age of people with pictures of people in different ages).
# Timeline-all-the-things (special mode)
Everything show: A point for every node, (midlife) for people. Not sure exactly how & how to switch on...
# Timelines we could use + inspiration
- [https://observablehq.com/@liuyao12/timeline](https://observablehq.com/@liuyao12/timeline "smartCard-inline")
- [https://codepen.io/shacheeswadia/pen/WNRajYo](https://codepen.io/shacheeswadia/pen/WNRajYo "smartCard-inline")
**Misc…**
- [https://github.com/jacoyutorius/d3-history-timeline](https://github.com/jacoyutorius/d3-history-timeline "smartCard-inline")
- [https://codepen.io/mostopalove/pen/xxWrgQj](https://codepen.io/mostopalove/pen/xxWrgQj "smartCard-inline")
- [https://github.com/prabhuignoto/react-chrono](https://github.com/prabhuignoto/react-chrono "smartCard-inline") 🤮
- [https://github.com/marmelab/EventDrops](https://github.com/marmelab/EventDrops "smartCard-inline") ...but only points in time, see: [https://github.com/marmelab/EventDrops/issues/138](https://github.com/marmelab/EventDrops/issues/138 "smartCard-inline")
[ ] 🔮 Spheres (concentric) ideas
[ ] 🕶️ VR / XR ideas
VR field trips can be added (as links pins) to the geo spatial construct...
[x] 🐲 Auxulary ideas
# Wikipedia mode & companion
**Same UI** as **K-web** but **all data** comes from **Wikipedia**.
This could just be settings, data source checkboxes: `[x]K-web`, `[x]Wikipedia`, `[x]WikiData`, …
## Companion
A tool (browser extension?) shows a K-web graph side-by-side when browsing Wikipedia.
[ ] 🔮 Spheres (concentric) working model
# What is this‽
See design-2023 on GitHub for details.
> the only proposed use for this K-web entry-option is when a user decides to start The Journey with a random choice of node, or to "look around."
- blueprint 04
Want to **play with this?** ...have a shot at a POC? (proof of concept)
Perhaps start with the attached `.json` 😃
***Spheres-what?*** - See "*Spheres*" here: https://burkives.notion.site/K-Web-User-Interface-Minimal-Product-dc76722ef10b465c8d987e8f16bedc95
NOTE: We use `3d-force-graph` for the other graph(s), if it could be used for this also, we could perhaps transition smoothly between graphs (or it could be the same, just with different forces & config).
See also "our issue": https://github.com/vasturiano/3d-force-graph/issues/555
And these:
- https://observablehq.com/@vasturiano/3d-radial-force
- https://github.com/vasturiano/d3-force-limit/issues/6
Maybe:
- https://epfl-lts2.github.io/gspbox-html/doc/graphs/gsp\_sphere.html
- https://stackoverflow.com/questions/14662618/is-there-a-3d-version-of-graphviz
# Variations
😃 Not explored at all!
Instead of thin layer-spheres for each century try a "cohesive blob" each node just has a fixed distance from the center (radius representing their midpoint in life perhaps). Probably avoid putting nodes in the very center, leave perhaps 50%?
# Mentioned in
- demo from early 2000s (YouTube)
- kweb2k (YouTube)
- old blueprint (not online)
[ ] 🤖 Avatar assistant: AI James
> _HELP AVATAR (CAN BE TURNED OFF)_
>
> _Needs to be able to answer queries in voice and/or writing. Unprompted, it should be able to remind, praise, teach, suggest, auto-explain; etc. [Design of avatar in keeping with overall design, perhaps something like a semi-translucent hologram head and shoulders of Burke]_
From a (2004?) design document.
# Mentioned in
- kweb2k (YouTube)
- blueprint 04 (not online)
[ ] 🧭 Historical Maps...
How did (some, the rich & best in the know) people see the world in the past?
Consider: https://github.com/aourednik/historical-basemaps
# Questions
Can such maps be plotted onto the Cesium globe?
# Mentioned in
- kweb2k: https://youtu.be/Ei8aATwB5Q4
- old blueprint (no link currently)
[ ] < Cultural (/Social) Context & Historic Context (two different things?) >
Thinking that one shows stats ex: How many % of world (or continent / area) population is farmers vs other. And stuff like that, total population etc... (Showing in the past "An empty world"). (Emotional) Statistics?
**The other shows pictures, photos, newspaper** clippings etc...
More to get a sense of the period (& culture); what was going on & how was it to be alive then (and there).
# Example of one
**World population 1807:** 31% of today
**World 1807:** Foragers: 7%, Farmers: 92%, … **World 2023:** …
**Germany 1807:** Foragers: 1%, Farmers: 79%, … **Germany 2023:** … \_← if currently “in” Germany.\_
[ ] 📝 Possible to edit Biographies from K-Web UI
# Version 1.0
Make it just possible, use SimpleMDE or similar.
1. Try current test without web component.
2. When looking okay: API request latest version (diff for fun --> console).
3. Save button --> API save
4. And special ~localStorage cache = { id: { date, markdown } } -- clean up on each page load, TTL 10 min(?) ...when loading from this show notice in bio.
# Beyond (separate card(s))
- See diff possible (before save?)
- Multiplayer
- etc...
[ ] "Each text begins with a top-center still pic..."
[ ] Easily flag / correct Wikipedia links
1. Click "replace" (or "no Wikipedia link [exists]")
2. Search box appears; helps you find the right one <-- insert-wikilink component.
3. The previous one is replaced (or new one added at the bottom of the Note.
4. Pushed to The Brain!
Off topic:
When hovering Wikipedia links a preview (like the one on Wikipedia itself?) Would be neat...
[ ] Curator tools: Slider to view older versions
[ ] 〰️ Journey visible in Graph & misc journey TODOs
Start working from the miniweb (expect trail nodes).
Next the timeline, expect the same nodes & the tour flag...
Probably requires making the journey concept a core kweb-api feature.
## Design sketching…
`kwebAPI.selectJourney()` (or trigger the Custom Event).
kwebAPI triggers event `journeySelected` w. ordered list of nodes (ids), optional journey-node(id).
## :thought\_balloon: How to solve…
- There is always a \_trail\_...
- you have a position in it, usually `0`...
- on a journey you start \@ `-x` --> `0`...
- miniweb: if pos < 0: golden filament to next...
- trail always passedin nodeSelected event(?)
- there is also a `onTour` flag, may ex dim all other nodes in miniweb.
- `onTour` also turns timeline's `{ neighbors: false, trail: true }`
### Older thoughts
Which nodes in the tour has been visited?
…these shall remain in the miniweb; creating a tail… and the journey list can color them differently… and they should be included in the timeline… and probably more things. So a shared state.
Perhaps an event `journeyUpdated`…on the other hand nodes can just listen to `nodeSelected` event? …same effect? But seems dirty, the state should be in one place? …just a shared object perhaps?? No events or functions etc???
[ ] Preselected journeys...
Probably make it work like this:
> Entry by preselected journey
Click on screen-edge "Preselected Journeys" icon and it is replaced by dropdown list of 50+ available pre-selected journey choices (e.g. Copernicus to Chewing gum).
Scroll and click to choose.
The first miniweb screen shows the first node +first-level next node highlighted (the relevant oneliner and linking descriptor phrase appear in The Journey space).
Each time the user clicks on the next node, it becomes central, when relevant next node is highlighted, and The Journey text is updated (see below).
On arrival at the final node of the pre-selected Journey, no further highlighting occurs.
-- blueprint 04
PS. Same for generated: \~"Search" + "journey to (6 steps)"
[ ] Connection names & direction, currently makes them incorrect almost 50% of the time :/
There is a direction in The Brain (source → target), perhaps check that, when going the other way consult a lookup table with opposites, like:
```
["Inspired by", "Inspired"],
["Daughter", "Parent"],
["Worked with"] // Same in both directions
```
## Version 1.0
Manually just create a static pair list for the top 25 most common link names. (When a lookup yields no result, show ex “ ← Rival“ or mirror the text?)
## Version 1.5
Make sure all (or 95% of) connections are covered by this strategy.
## Version 2.0
Recognize that this is not enough, some relationships are asymmetric, can be Friend ↔︎ Rival for example.
[ ] Knowledge Trail (Journey) - Users can save & share
[ ] 〰️ See (glance) 2nd neighbors (on hover)
[ ] Bio: scroll to top (on visit new)
[ ] 📽️ Video follow along 2.0: Shazam style... [investigate viability]
The idea is: You open kweb in browser & allow it to use your microphone ...all the while you are watching connections (4, on the same or another device).
Behind the scenes Shazam magic happens... And the kweb prototype starts "playing along" with the video.
...can we do this?!
Find attached untested stuff developed by Chatty G.
[ ] Curator can verify Wikilinks
#🧐 Thoughts on curation
In general, if not a perfect match: set wikilink to false (and if appropriate add link as a "none mapping" link, see below).
Wikipedia links named "Wikipedia" or name of the node are assumed to be "mapping", so are Wikipedia links appearing on the first line.
[ TODO: example screenshots ]
#📱Tool UI
**Wikipedia view** (generic).
**Main thing** (left, below globe): List of node links, hover preview (click to visit) just like in bios.
Critical ones first (exclude meta & journey):
1\. Broken / missing.
2\. Those with a "#".
3\. Connections 4\.
4\. All mystery tours nodes? (Needs linking first)
5\. The rest.
Order alphabetical?
Good, bad, none-exist <-- start with this
Next to each item (in the table) are the wikilink (click to edit) + buttons:
✅ - Good / save (change or not).
❎ - "None exist (/ found)" - setting to `false`.
🔍 - Open Wikipedia search (new tab).
📝 - Set as empty to say "one could exists but I can't find it (now) - let the machines try later"
[ ] Curators can fix broken links (tool?)
(Optional: If you set the curator flag (currently a key string to auth, later anyone can make suggestions with same means without special access though a nick / email may be encouraged)).
Clicking a broken link brings up a list of connected nodes (names) sorted in order of similarity to the current link name; click one to replace... or type anything in an input box to search all nodes.
Second part: Mini module listing broken links + a button "next broken link" which opens the node and scrolls to the link (and even clicks it?)
[ ] 🐛 A few small bugs
[ ] 🧹 The epic cleanup project
🧠 - to be done in or to The Brain (i.e. backwards compatible)
🚀 - for prototype only; augmentation.
## On auto fixing links, consider
Make a alias map, of incoming link names (what other nodes call this one)...
[ ] Miniweb: rotate camera around the focused node(?)
[ ] 🪶 Start filling in connection / link articles - try it out
Wikipedia has all the biographical content anybody would ever want, there is no point in making a lesser version of that? (…unless it adds something or has a different focus, it could focus on how people connect to others (& it could, perhaps be easier to digest)).
Anyways, beyond that, Wikipedia might not (often) have easily available info on peoples' connections.
- Photos of the two people together (ex Twain & Tesla).
- Mail corresponds, ex. letter from Einstein to Tesla.
Put this into The Brain; select links (conn 4 especially)?
[ ] Components has to be pinned to stay put & dark bio
Reduce information overload.
The dark was from the old blueprint & looks good!
See attached a partial demo gif.
[ ] Timeline: Add events for one person as a test, take Darwin for instance... and dd books published etc... try to link with bio also if possible
[ ] Dim "extra connections" (setting?)
Connections not mentioned in the main bio are considered _extra_
The idea is to avoid information overload.
Currently most links are missing (I think), but we can still add this as a setting (might be useful for us working with content & code).
[ ] 📜 Bios tabs: Wiki + WikiData, old.xml etc
# Retro-web component
...it is so easy to make! 🤯
WikiData mapping already done, just load old.json, listen for events etc...
# Make a **Wiki*** component
...that looks like to old format (and then a `tabbed-notes` combining the main one with this):
Alternative: This and/or web components showing these (one for each)... good when curating! (On large screen).
PS. Consider showing "* 2" nodes like this... after having merged them (in the brain or "offline").
Get Wikipedia summary:
[https://en.wikipedia.org/w/api.php?origin=*\&action=query\&prop=extracts\&format=json\&exintro=\&titles=Nikola\_Tesla](https://en.wikipedia.org/w/api.php?origin=*\&action=query\&prop=extracts\&format=json\&exintro=\&titles=Nikola\_Tesla "")
[ ] 🔁 K-Web data 2.0
[ ] 🗺️ Map 2.0: Globe (option)
[ ] 📱 Vertical / mobile mode (~full screen graph, bio below)
[ ] 🧽 Cleanup UI; make welcoming for new devs! ❤️
Make the whole thing into a toolkit of sorts; The Knowledge Web Toolkit.
Small things that does one thing well...
(There will still, most likely, be one official K-Web UI).
# Technical details
- `API` - Delivers all the data, simply, quickly and sensible (simple HTTP API).
- `kweb-api.js` - Makes it easy to work with the API (frontend dev); just listen `nodesChanged(nodes)` & trigger `focusNode(id)` events.
- *Web Components*, that does one thing; map, timeline, biography display, graphs etc...
A developer may choose to use it all & tweak or build new Components, or use only the API & build something different.
## Even more details
**index.html** ( < 50 lines ): includes map, timeline, bio (Web Components) & kweb-api.js which does requests to API + listens to & emits events (for Components to subscribe to).
Components can be replaced with ease & new ones created likewise.
kweb-api.js just turns stuff into events.
## Chat-GPT et al <-- Friendly
The (2) important kweb-api events should be documented in \~2 lines in index.html.
This way the content of index.html can be sent /pasted to Chat-GPT (WebDev) & it can build components for you. I rebuilt the google-map thus, with 1-2 prompts...
# Small TODOs
**Add ...some data to (new) GitHub repo**
So that just starting it will work!
Ideally just opening the index.html in a browser (double clicking on it).
[ ] 🔁 K-Web data 3.0
[ ] 🌐 k-web.org: Updates...
# Suggestion/ Idea
New landing page? ...link to "archived old page"?
[ ] 🔍 WikiData → web (experiment)
As you type you see ex:
Tesla motors (26)
Nikola Tesla (76)
...
nr connections / claims in parenthesis.
[ ] Demo: Function calling bot (show you whatever it wants using the "tools")
[ ] Blog: Relaunch the "work log blog"...
[ ] Tech: Cleanup old server / recreate (currently costing me > $130 every month :P)
[ ] Architecture: 💡 Tools are separate / stand-alone...
Well, I've said similar things before... But I mean it even more now. None is mandatory... None has to be perfect...
There can be a cesium globe, a historic Google street maps view... Google maps & you can just flip between then or see all at once.
They all just (pretty much listen for a location or location data of different kinds).
Likewise; the timeline.
...and others like news(papers) from a time & space. This can be a "module"... (or is it more of a data source & a suggestion?)
...more similar: demographic data from there & then.
You'll probably always have a focus on a time + location at any time (middle of the timeline & the map / globe unless a focal point pinned). TODO: Put a marker in globe / maps also‽
The network graph... is it also "just a tool"; an empty she'll to be populated with anything??
[ ] A Wikipedia reader?
A good (parallel?) track? Should ease “eat-ones-own-dog-food”; achieve everyday usage.
PS. I used [wikiwand](https://www.wikiwand.com/en/Vladimir\_Lenin "") (instead of Wikipedia) for a while for a more pleasant reading experience…
[ ] Initial feedback from @BeyersM
> love the timeline. really like the map, but it should have some context rather than just the red dot - borders, roads, etc. When you go to a new node, it should automatically scroll to the top (I was at the bottom of Art Nuveau and went to Mies van de Rohe and was at the bottom of his entry). I think the readable area should be expandable and collapsable so that when you want to view the graph, you can, but when you want to read, you can read. This is really quite impressive! How much linkage could we do though with just wikipedia as a source instead of recreating the wheel? You could realize the graph idea, and outsource all/most of the articles to Wikipedia. if it doesn't have the point you want, you could add that - either to wikipedia itself, or as an extra in the brain.
[ ] Mystery tours can be chosen (from the journey section)? - no, but from the journey nodes
Perhaps also add next / prev. buttons?
[ ] Articles: handling merged content...
Iterate over all files & split on "---\n"… etc.
Did pretty much, it all here:
[https://chat.openai.com/share/1d3cb1b6-a643-4d3e-93f2-324db1ec4355](https://chat.openai.com/share/1d3cb1b6-a643-4d3e-93f2-324db1ec4355 "")
[ ] bio #section links & improve URLs: ?id=(instead of #id=...)
Then normal position links can work? Like:
`id=#beagle-journey` ...and it would scroll to the section / header in the bio & highlight it on the timeline.
[https://chat.openai.com/share/1e57a8f0-94df-45de-9674-1f1dff9facd6](https://chat.openai.com/share/1e57a8f0-94df-45de-9674-1f1dff9facd6 "smartCard-inline")
```
function updateQueryParam (key, value) {
const currentURL = new URL(window.location.href)
const params = new URLSearchParams(currentURL.search)
params.set(key, value)
currentURL.search = params.toString()
window.history.pushState({}, '', currentURL.toString())
}
// Usage
updateQueryParam('location', 'London') // This will update only the 'location' parameter
```
[ ] Locate a few exemplary nodes... for examples for people & LLMs
LLM prompt example:
Here are two good articles (abridged): ...
Based on these, can you suggest changes for the following article, only list your suggestions, don't execute (just yet).
[ ] Bio: Remember scroll position (of selected node) when hovering another (temporarily replacing the selected's bio)
[ ] Bio: Mouse over K-web connectee name in bio-text, and see pop-up text of that subject's relevant oneliner
[ ] Works on mobile: search & bio section (most important)
[ ] Current year indicator in the middle
Example like:
```
1895
🔽
[ timeline ]
```
When panning etc it changes (the year only).
[ ] Ability to resize / minimize timeline
also minimize?
...and disable components completely?
[ ] Timeline: show birth death years
Easier to see start and end (birth & death) of items / people in the list... (on hover (title) or something else, check out examples?)
[ ] Smooth operation...
Potential solution at bottom here:
https://chat.openai.com/share/6d2e2c04-da41-4fea-a481-dc7e6b1261af
[ ] Ensure all nodes in The Brain is markdown (not html)
HTML is the old way they stored notes, now deprecated. Having to account for both is a bit of an annoyance in the code.
[ ] Sync: Brain --> K-Web more reliable!
[ ] ⏳ Timeline: Show selected node prominently at the top
[ ] ⌛ Timeline improvements
[ ] Instructions always visible, move to top of screen
[ ] Small TODOs
[ ] 🐞 The map (or locations in all.json) broke!? ...now never any pins!
[ ] 🔁 Sync The Brain --> K-Web UI (+WikiData etc) 1.0
[ ] 🔗 Link to / map old 🧠 Brains?
We have https://webbrain.com/brainpage/brain/C6015FA0-82BF-F1FA-9D05-0EA9FD7F845E and the “sandbox” https://webbrain.com/brainpage/brain/6950F840-FB80-FCB0-D505-8AB1FA685F08
…should we try and auto-link to these from the UI?
[ ] 🏆 Sketch up clear goals - No 🤣
…for the user interface.
[ ] 🧠 To replace The Brain (Vulcan) for visitors we need: ...
# Description
The Brain Desktop or Vulcan may still be used by curators / developers to edit.
TODO: Why do this (at all)?
# Definition of Done (& Success)
When Patrick wants to share something on the [Facebook group](https://www.facebook.com/profile.php?id=100057209809238 ""), and reaches for out UI instead of The Brain’s. Then we are done! :laughing:
# [Technical] Details / Thought...
< Obscure technical details etc welcome here… >
[ ] How to keep brain in git (or similar)
## Newer repo size: ~2GB
Size rundown (should probably ignore `modificationlogs.json`):
```
5GB db/modificationlogs.json
2GB db/links.json
408MB db/attachments.json
328MB db/thoughts.json
194MB db/tombstones.json
189MB db/searchtokens.json
52MB db/syncpoints.json
23MB B02/Brain.db-journal
19MB B02
5MB B02/d0a49e8f-438b-407a-9648-b4b2c95e701f/.data/md-images/104d6655-18e6-46ef-aa10-c48ad480932d.webp
```
---
## Old notes ran this in a very old repo
I’ve had a script auto add and commit to a Git(Hub) repo, not the raw .db (sqlite database file) but .sql or .json files… but it still goes crazy large after like a month (and currently there are not a lot of edits).
```
sudo du -h --max-depth=1 .
125M ./db
428M ./B02
4.9G ./.git
5.5G .
```
So (I) deviced a nifty script to figure out what takes all the space:
```
# Generate a list of all objects along with their corresponding filenames
git rev-list --objects --all | sort -k 2 > allfileshas.txt
# Get the sizes of these objects
git cat-file --batch-check="%(objectname) %(objecttype) %(objectsize) %(rest)" < allfileshas.txt > objectsizes.txt
# Sum the sizes by filename and show the top 10
awk '{arr[$4] += $3} END {for (i in arr) print arr[i], i}' objectsizes.txt | sort -rnk1 | head -n 10 | awk '{ split("B KB MB GB TB", v); s=1; while( $1>=1024 ){ $1/=1024; s++ } print int($1) v[s] "\t" $2}'
```
Results:
```
18GB Brain.sql
17GB B02/Brain.db
11GB db/modificationlogs.json
10GB db/links.json
1GB db/attachments.json
1GB db/thoughts.json
1GB db/searchtokens.json
213MB db/syncpoints.json
164MB db/tombstones.json
130MB B02
```
Removing files historically (for testing):
```
du -sh .
git-filter-repo --path path/to/largefile.txt --invert-paths
git reflog expire --expire=now --all
git gc --prune=now
du -sh .
```
[ ] 🗺️ Map 1.0
# Description
A basic map, shows position of the focused node.
# Definition of Done (& Success)
# [Technical] Details / Thought...
Probably use Google Maps for starters, easy fast (later a fancy Cesium globe probably).
[ ] 🔗 brain:// <-- possible
Replace brain:// links with /node/ ...or #id=
[ ] 📜 Timeline 1.0
Start with simple, like one of these:
[https://ca2.converter.app/sandbox/787de702f5d2481e821e093e99e92d1f/index.html](https://ca2.converter.app/sandbox/787de702f5d2481e821e093e99e92d1f/index.html "")
[https://kweb.ismandatory.com/sandbox/graphviz1/](https://kweb.ismandatory.com/sandbox/graphviz1/ "")
[ ] 🏷️ Get link names from "old XML system"
[ ] API Dev: fetch / cache scripts --> package.json
Scripts for:
- fetching missing Wikipedia links
- Wikipedia link --> wikidata I'd
- fetch & cache WikiData data.
They are ...hacks but at least make it so that others can use them.
[ ] 📚 WikiData integration 1.0
# Definition of Done
- \~\~Icon / tag shows presence of Wiki[Data] link\~\~
- **\~\~Lifespan\~\~**\~\~ shows up in timeline …data **from WikiData**.\~\~
- `birth.place` \~\~etc also returned by API.\~\~
## **Could** be extracted
- `type: person` – easy – style person-nodes (different)
- `type: event` – harder
- connection descriptions (between people) – see card from old board…
# Technical details
Implement / copy-paste & test: [https://chat.openai.com/share/301da588-efbc-4042-a1e2-f8fadbe80819](https://chat.openai.com/share/301da588-efbc-4042-a1e2-f8fadbe80819 "")
**WikiData IDs** are derived from **Wikipedia links**.
## Function for that:
```
const axios = require('axios');
async function getWikiDataID(wikipediaURL) {
const wikipediaTitle = wikipediaURL.split('/').pop();
const apiUrl = `https://en.wikipedia.org/w/api.php?action=query\&prop=pageprops\&format=json\&titles=${wikipediaTitle}`;
try {
const response = await axios.get(apiUrl);
const pages = response.data.query.pages;
const pageID = Object.keys(pages)[0];
const wikiDataID = pages[pageID].pageprops.wikibase\_item;
return wikiDataID;
} catch (error) {
console.error('Error:', error);
return null;
}
}
// Example usage
(async () => {
const wikipediaURL = 'https://en.wikipedia.org/wiki/Apple\_Inc.';
const wikiDataID = await getWikiDataID(wikipediaURL);
console.log(`WikiData ID for ${wikipediaURL} is ${wikiDataID}`);
})();
```
[ ] 📄 Move UI Introduction to Github
This Guide:
[https://burkives.notion.site/K-Web-User-Interface-Minimal-Product-dc76722ef10b465c8d987e8f16bedc95](https://burkives.notion.site/K-Web-User-Interface-Minimal-Product-dc76722ef10b465c8d987e8f16bedc95 "smartCard-inline")
So that we are not dependent on Notion :)
How to do Collapsible headers: https://gist.github.com/pierrejoubert73/902cc94d79424356a8d20be2b382e1ab (not working from export).