Nick Smith
07/23/2020, 7:28 AMA points to B
whether B
can be deleted or modified in some way, and how this affects the points to
connection. The model will also have a notion of stewardship of information, i.e. it should be easy to observe the source of a piece of information, and to know whether it is mutable or just a snapshot. (Yes, I believe the ideal model for information should have a vocabulary to describe distribution and trust).
Has anyone here thought hard about this? I've been churning on it for a month or two recently, and for many months over the last few years; I can't proceed with my own PL project until I get fundamentals like this right, since the model that I develop will fundamentally determine what a "program" even is. I think a key reason why discovering "the future of programming" is so hard is that we think too much about code and not enough about information. Code exists purely to transform information, and if you don't make strides on models for information then I don't think you can make strides on programming languages.
I have some ideas about a model, but I have no insights from others to validate it against. My conception is a very specific hybrid of mutable graphs and immutable Nick Smith
07/23/2020, 7:29 AMIan Rumac
07/23/2020, 7:56 AMNick Smith
07/23/2020, 8:16 AMS.M Mukarram Nainar
07/23/2020, 9:33 AMJack Rusher
07/23/2020, 9:34 AMDuncan Cragg
07/23/2020, 10:09 AMDuncan Cragg
07/23/2020, 10:12 AMDuncan Cragg
07/23/2020, 10:13 AMDuncan Cragg
07/23/2020, 10:15 AMDuncan Cragg
07/23/2020, 10:16 AMChris Knott
07/23/2020, 10:18 AMChris Knott
07/23/2020, 10:20 AMNick Smith
07/23/2020, 10:27 AMNick Smith
07/23/2020, 10:43 AMNick Smith
07/23/2020, 10:44 AMJack Rusher
07/23/2020, 11:08 AMNick Smith
07/23/2020, 11:09 AMwhere I am right now in my journey, that is basically: identity of things, properties of things, relations between things.How do you distinguish between properties and relations? Is the fact that I'm "holding my tea cup" a property of myself, or am I just in a relationship with my tea cup?
At a more abstract level, you have symbols of value, order of those symbols and their aggregations, bags/sets of symbols.What is a "symbol of value"? I don't quite understand that term. And you seem to recognise both sets and bags? I've always found those to be in contention with one another, and so I've (for the meantime) concluded that if a user is in a scenario where they want a bag (which should be rare), they can simulate it with a set quite easily. The converse is not possible, though.
So, as you can probably deduce, I've settled on something that looks like objects that have unique identity, which are bags of propertiesI've currently settled on two notions that together can act like a conventional object. The first is something I'm tentatively calling a picture, which is a set with an exterior label (I call it the topic) that contains symbols and/or further pictures (these are called subtopics). These can be used to form the "descriptions" I was hinting at earlier; they are immutable value types. If you want a picture to be mutable (and thus behave like an object), you can stick it in a workspace, which is the unit of mutability. Workspaces are identified (and thus referenced, and queried) by the aforementioned symbols. A workspace's state evolves by a rulebook (a set of rules), which updates a workspace's picture in response to events. I plan to base the semantics of rules on logic programming. The end result will be something like "nested Datalog", though there is no literature that matches the model I described above. Picture topics replace the need to have a special notion of a statically-specified "attribute", because the topic can itself be any value. This should hopefully make meta-programming possible, but at the very least, I hope it leads to a very minimalist (and intuitive) semantics. All of the above is subject to change, of course! Given my current track record, I wouldn't be surprised if I find some major flaw in this kind of architecture.
Jack Rusher
07/23/2020, 11:21 AMNick Smith
07/23/2020, 11:25 AMIan Rumac
07/23/2020, 11:28 AMNick Smith
07/23/2020, 11:36 AMOne issue that really bugs me is that I can't extract a single representation of order!If you make any breakthroughs on this, let me know. I'm still trying to figure out how to represent sequences (lists, priority queues) and trees (e.g. family trees, or any other domain-relevant tree structure) in a non-hierarchical manner, such that users can perform arbitrary traversals (in any direction) and queries. My big constraint here is that I want to ensure traversals will always terminate, so I need there to be some measure of progress associated with the traversal rules. Another challenge is multi-dimensional ordered structures, for example, a spreadsheet! How can one describe a traversal across a spreadsheet? Every cell in a spreadsheet is ordered in two dimensions! My current line of investigation is to determine whether all kinds of ordering can be exposed as numberings, and sequence manipulation is manipulation of those numberings, i.e. a list might look like
{(c,1), (a,2), (t,3)}
and a priority queue might look like {(c, -12), (a, 7), (t, 34)}
. I'm thinking of going deep and figuring out if lists and trees can be treated as spatial data sets and manipulated geometrically.Duncan Cragg
07/23/2020, 11:43 AMHow do you distinguish between properties and relations? Is the fact that I'm "holding my tea cup" a property of myself, or am I just in a relationship with my tea cup?it's a property of you, the link to the cup, and a property of the cup, back-linking to you, since both of you care about the holding! Other links may be one-way: the puddle has a link to the sun that's warming it and evaporating it, but the sun couldn't care less about the puddle
Nick Smith
07/23/2020, 11:45 AMDuncan Cragg
07/23/2020, 11:46 AMWhat is a "symbol of value"? I don't quite understand that term. And you seem to recognise bothĀ setsĀ andĀ bags? I've always found those to be in contention with one another, and so I've (for the meantime) concluded that if a user is in a scenario where they want a bag (which should be rare), they can simulate it with a set quite easily. The converse is not possible, though."3.2" "up" "red". set/bag: just recognition that ordered lists sometimes don't need order, but have to be laid out somehow in space, which means the order is incidental. I don't think this is a problem though.
Duncan Cragg
07/23/2020, 11:46 AMDuncan Cragg
07/23/2020, 11:48 AMDuncan Cragg
07/23/2020, 11:49 AMDuncan Cragg
07/23/2020, 11:51 AMDuncan Cragg
07/23/2020, 11:52 AMDuncan Cragg
07/23/2020, 11:52 AMJack Rusher
07/23/2020, 12:18 PMDuncan Cragg
07/23/2020, 12:34 PMDuncan Cragg
07/23/2020, 12:36 PMDuncan Cragg
07/23/2020, 12:39 PMDuncan Cragg
07/23/2020, 12:43 PMIf you make any breakthroughs on this, let me know. I'm still trying to figure out how to represent sequences (lists, priority queues) and trees (e.g. family trees, or any otherĀ domain-relevantĀ tree structure) in aĀ non-hierarchicalĀ manner, such that users can perform arbitrary traversals (in any direction) and queries. My big constraint here is thatĀ I want to ensure traversals will always terminate, so I need there to be some measure of progress associated with the traversal rules.why non-hierarchical? how does that help with traversal termination?
Duncan Cragg
07/23/2020, 12:45 PMI've currently settled on two notions that together can act like a conventional object. The first is something I'm tentatively calling aĀ picture, which is aĀ setĀ with an exterior label (I call it theĀ topic) that containsĀ symbolsĀ and/or further pictures (these are calledĀ subtopics). These can be used to form the "descriptions" I was hinting at earlier; they are immutable value types. If you want a picture to be mutable (and thus behave like an object), you can stick it in aĀ workspace, which is the unit of mutability. Workspaces are identified (and thus referenced, and queried) by the aforementioned symbols. A workspace's state evolves by aĀ rulebookĀ (a set ofĀ rules), which updates a workspace's picture in response toĀ events. I plan to base the semantics of rules on logic programming. The end result will be something like "nested Datalog", though there is no literature that matches the model I described above.
Picture topics replace the need to have a special notion of a statically-specified "attribute", because the topic can itself be any value. This should hopefully make meta-programming possible, but at the very least, I hope it leads to a very minimalist (and intuitive) semantics.This is what prompted my question above: who are your target audience? Is this going to be intuitive to everyone, if it's non-techies you're after?
Duncan Cragg
07/23/2020, 12:46 PMwtaysom
07/23/2020, 1:05 PMwtaysom
07/23/2020, 1:08 PMwtaysom
07/23/2020, 1:09 PMNick Smith
07/23/2020, 1:12 PMWhat are your measures of success? To be programmable by techies or normals?Definitely "normal people". Unusual folks like us can focus on developing the infrastructure that implements humane programming systems. Of course there's still going to be concepts that need to be learned and practiced for a person to develop competence.
Is this going to be intuitive to everyone, if it's non-techies you're after?Once learned from effective teaching materials, and with the aid of effective visualisations, yes, I hope it will be intuitive. I actually think I can map it to everyday representations like nested dot points and tables. But first I have to figure out the semantics I want.
Nick Smith
07/23/2020, 1:17 PMfunny, can't think of an example of f(x,y) as a tableThe data that people store in a spreadsheet is usually tabular, but the spreadsheet itself, as a graphical artifact, is most certainly a function f(x,y) from row/column number to datum. Navigating a spreadsheet using a keyboard requires locating successor/predecessor cells within each axis. So a spreadsheet is perhaps better termed a grid, which one could argue is the generalization of a sequence to 2D.
Nick Smith
07/23/2020, 1:20 PMwhy non-hierarchical? how does that help with traversal termination?Those are orthogonal, but the reason for eschewing hierarchy is to avoid a situation where a user specifies a data structure, and later realises that they can't express the query they want because the data is "ordered" in the wrong way. Then they change the structure or add a new one. Hierarchical data structuring always leads to this pain.
Orion Reed
07/23/2020, 1:39 PMDuncan Cragg
07/23/2020, 1:50 PMOrion Reed
07/23/2020, 2:10 PMOrion Reed
07/23/2020, 2:14 PMNick Smith
07/23/2020, 3:52 PMibdknox
07/23/2020, 4:24 PMOrion Reed
07/23/2020, 4:26 PMOrion Reed
07/23/2020, 4:29 PMibdknox
07/23/2020, 4:45 PMAndrew F
07/23/2020, 4:46 PMAndrew F
07/23/2020, 4:51 PMOrion Reed
07/23/2020, 4:53 PMAndrew F
07/23/2020, 5:10 PMOrion Reed
07/23/2020, 6:39 PMAndrew F
07/23/2020, 6:52 PMIan Rumac
07/23/2020, 7:25 PMDuncan Cragg
07/23/2020, 7:35 PMDuncan Cragg
07/23/2020, 7:35 PMOrion Reed
07/23/2020, 7:56 PMibdknox
07/23/2020, 7:58 PMshalabh
07/24/2020, 12:38 AMPezo - Zoltan Peto
07/24/2020, 12:58 AMGarth Goldwater
07/24/2020, 12:58 AMwtaysom
07/24/2020, 1:29 AMibdknox
07/24/2020, 1:42 AMNick Smith
07/24/2020, 1:48 AMibdknox
07/24/2020, 1:52 AMNick Smith
07/24/2020, 1:54 AMibdknox
07/24/2020, 1:56 AMNick Smith
07/24/2020, 1:57 AMibdknox
07/24/2020, 1:58 AMNick Smith
07/24/2020, 2:00 AMNick Smith
07/24/2020, 2:06 AMit became very confusing to figure out where things were and should beI don't quite understand how this could be a serious problem. I'm no fan of hierarchical organisation in file systems, but a little bit of hierarchy is good for modularity, which you really need in any distributed system.
ibdknox
07/24/2020, 2:06 AMibdknox
07/24/2020, 2:08 AMNick Smith
07/24/2020, 2:46 AMDuncan Cragg
07/24/2020, 11:10 AMDuncan Cragg
07/24/2020, 11:16 AMPezo - Zoltan Peto
07/24/2020, 11:46 AM(N1)--[E]--(N2)
might become (N1)--(E)--(N2)
, then you have a bipartite graph to work with.Nick Smith
07/24/2020, 12:10 PMOrion Reed
07/24/2020, 12:51 PMOrion Reed
07/24/2020, 12:59 PMGarth Goldwater
07/24/2020, 3:13 PMwtaysom
07/25/2020, 7:30 AMGarth Goldwater
07/26/2020, 12:37 AMDuncan Cragg
07/31/2020, 7:30 PMNick Smith
08/01/2020, 6:03 AM