Most user interfaces let you say what is true, and...
# thinking-together
j
Most user interfaces let you say what is true, and then what you didn't say is presumed false. The entire relational database world is based on that idea. The statements are about a single, closed world with boolean truth values. But that's not how humans actually know things. The user can't say "Definitely X, maybe Y, not Z" even if that's exactly what they know. I just now realized that the language I'm using knows how to deal with multiple worlds, and five different truth values are possible in each, but no one has ever built a user interface for collecting structured data that way! Here I am trying to mimic the capabilities of less sophisticated tools, when I should have been building the thing that collects knowledge those systems can't even represent.
t
One part of what I'm working on is to capture the implementation of "Definitely X, maybe Y, not Z" That is, the code which implements a user application from those facts and constraints. While we focus on enabling the mapping from user inputs to the code needed for implementation, I've often pondered other ways users might "encode" those facts and constraints. Today, our users write CUE, with plans for web/ui based interfaces. Maybe your language could act as a frontend to our tool: https://docs.hofstadter.io What do you think? If your language tools can output a structured format like JSON, I think it could work
g
I wonder if the field of “fuzzy logic” is somehow related to these concepts. Googling “GUI fuzzy logic” results in hits.
g
Another concept that fuzzy logic can capture is multimodal probabilities. For example 53% Laurel, 0% maybe, 47% Yanny.
The reason it's not common is because it's slow so only problems that really need it build from scratch.
Another example is Kalman filters where values (like position) are Gaussian distributions and through the combination of different sensors can you constrain the possibilities
j
It's funny you should mention fuzzy logic. The guys who invented s(CASP) point specifically to systems that used probabilistic logic, and say that if you reduce the options to 25%, 50%, 75%, and 100%, encodings in those systems loose none of their predictive power. They note that if you reduce the options to yes, no, and maybe, that's analogous to 0%, 50%, and 100%, and they predict it will also lose no predictive power, because it is how people think, and it will simplify generating rules and facts. Obviously, doesn't apply to things that are inherently probabilistic, but they were talking about expert systems for recommending antibiotics, e.g.
@guitarvydas I will look that up, thanks.
@Tony Worm The interface is entirely for the purpose of generating JSON. I'll share it here, and if it's useful to you, streal it. But be warned you will probably want to tweak the design, and completely replace the code. 😉
j
You can also look into topos theory for a different view at multiple truth values ;)
t
a
What are some examples of X, Y, Z here? I'm intrigued by the idea of more humanistic thinking being represented in computational interfaces -- but can't quite wrap my head around why this is a gap in current user interfaces. Is it, for example, a pesto recipe --
definitely
basil and garlic,
maybe
pinenuts,
maybe
walnuts,
maybe
parmesan,
not
ginger? Is every other option that's not
definitely
and not
definitely-not
a possible
maybe
? Or is
maybe
in fact a
suggested-maybe
and not an
unknown-maybe
? i.e. parmesan is a valuable
maybe
in pesto and worth calling out, while anchovies are not... but they're not a
definitely-not
!
j
A good example is "Who will witness your will? My neighbour, maybe my kid, not my wife." If the rule is that the witness cannot be a beneficiary, "not my wife" might be all you need to know to determine the validity of a will, depending on who the beneficiaries are.
d
OWL and RDF support the Open World Assumption, there are many tools for it; also Wikidata is built in a way that has a bit support for these epistemological steps in between simple true and false