<https://refuses.github.io/preprints/hypermedia.pd...
# linking-together
s
https://refuses.github.io/preprints/hypermedia.pdf Title: What Can Software Learn From Hypermedia? I really like the premise of this paper and the first few sections of this paper, framing hypermedia as an underlying medium in software.
Hypermedia was introduced not as a subgenre of software, but as a different conceptualization of what software is.
I'm not too excited by their implemented solution though (Webstrates). Still, the premise can be taken in many other directions I imagine.
j
Perhaps @Clemens would like to comment?
k
What are the problems you see with the Webstrates implementation, other than those listed in section 7 of the paper?
s
I assume you mean section 5. The discussion of limitations is excellent. I say I'm not too excited because I feel building this on top of the current web model makes it very hard to solve these key issues, which need newer fundamental abstractions. Once we're trying to make things more granular and secure at a less chunky level, we'll have to forego the web url and use some other identifier scheme for each of these hypermedia objects. One aspect that I think hypermedia in general does not explore well but is touched on by this paper is representation of dynamic computation within the same medium. Specifically, since dynamic objects evolve locally with user interaction, can the evolved versions of these objects, and the intermediate execution traces, also be represented and shared in the same medium? This seems critical in a system where hypermedia is the underlying medium for software. Handling this needs a lot of design work around what the fundamental abstractions of this medium should be. For instance, determining what kinds of links may exist between hypermedia objects, how composition of objects works (is transclusion enough?), what's the relation between the dynamically produced and static objects, and so on. I hope this paper inspires more work at the design level.
k
Yes, the eternal problem of having to use existing technology in order to get anything done and then being limited by those technologies. My current view is that we have to accept these dynamics and thus accept that all progress in complex technology is incremental. That doesn’t make it less frustrating, but at least I can stop thinking about it.
j
In case you’re not familiar, Tchernavskij’s follow-up work in his thesis (https://theses.hal.science/tel-02612943) goes beyond Webstrates.
c
Thanks for sharing the paper @shalabh! I completely agree about the limitations of building on top of the current Web model. I've never seen Webstrates as a solution, it's our vehicle to explore ideas that's difficult to explore with conventional software.
Niels Olof Bouvin and I also did a shortpaper for hypertext where we experimented with some old hypermedia principles on top of Webstrates: https://klokmose.net/clemens/files/classical-hypermedia.pdf
I've for a long time wanted to explore how to make a 'proper' hypermedia system with qualities like the ones you point out @shalabh. A good place to start for inspiration is the Dexter Reference Model for Open Hypermedia (https://dl.acm.org/doi/abs/10.1145/175235.175237), but as far as I remember, it doesn't address the type of dynamism you talk about.
We've multiple times talked about how we can have a more general transclusion model in Webstrates, e.g., supporting partial transclusion but it turns out to be quite a fundamentally challenging problem on many levels.
s
Thanks for the great links @Clemens. Will take me some time to go through them. I feel originally hypermedia has mostly been about sharing immutable content. I’ve been thinking a lot about hypermedia as the underlying medium for software and find it very compelling. Mainly I’m thinking about how to represent the dynamic aspects of computing and programming itself via hypermedia: active hypermedia. The idea would be to represent program source, derived structures, executions as well as the output in the same interlinked hypermedium. I don’t have a lot worked out but partial transclusion isn’t that useful in this context. Most references, transclused or not, are to objects with predetermined levels of granularity.
c
How I think about it, its probably more like high granularity transclusion than partial tranclusion so that aligns with what you are saying.
k
One way of integrating computation into Webstrate's DOM-based approach is term rewriting. All code and data is just tree structures, which fit nicely into the DOM. That's probably not a good basis for embedding a video codec, but it could be fine for high-level manipulations that vernacular programmers would want to do.
s
Term rewriting is an interesting idea. Cant speak for webstrates but in the model I’m thinking about, one of the goals is that the medium should be able to accommodate various programming paradigms.
r
What is meant by partial transclusion in this context?
c
Say if you have a document that's a slideshow and you transclude one or more slides from that slideshow in another one
r
As opposed to copying the whole slide show? That would make sense.
c
Yes, exactly