Xanadu, Predicate Dispatch, and Schol-R-LEA's latest psychotic break



  • @masonwheeler said in Xanadu, Predicate Dispatch, and Schol-R-LEA's latest psychotic break:

    This. I've asked before in this thread and gotten no answer, so once again, what is the actual problem to which Xanadu is a solution? And why has it not been generally noticed and accepted, at any point in the last half-century plus, that this is a real problem in need of a solution?

    I think the use for Xanadu is to let Nelson arrange his computer data in the same way his head is arranged: with the ADHD and his "butterfly mind", that's going to be "with associations every-which-a-way." The history of Rome is connected to graph theory – because roads are a graph of cities with various constraints based on geology and politics – politics is connected to popularity and military power – military power is connected to the ability to punch people in the face – faces have noses... etc., etc., etc., like a wiki walk.

    Now make those associations not merely hyperlinks, but transclusive, to copy various extracts hither and yon as the current "document" demands. So the document that Nelson is currently building is made up of all of these other bits, with as much of the original detail as necessary for each particular linkage - and in some cases, zero actual text, just add the link because it's vaguely relevant. It's the ultimate plagiarism machine, if you're feeling mean. (Personally, I think one of the devil-in-the-details bits here is in the potentially-wildly-differing voice, tense, and grammar of each of the original documents, but that's a quibble. Perhaps you'd do a transclusion-with-rewrite.)

    Even without referencing Nelson, though, Xanadu sounds like it's trying to create the ultimate research machine: you never lose access to an original reference, because the paper (or whatever) you're creating is inherently linked to the document. Need more of the original text? Just expand your transclusion a bit. Need more data? Start delving through the references of that other paper, through as many layers as you'd like, and transclude the best parts of your search.

    When extending this to source code, though, I think that the devilish details threaten to topple the entire structure. Transcluding code is going to look a lot like a call to a library – in the sense that you'll want to execute some code that doesn't know about you, so you're going to have to pass in some kind of pointers to the input variables (whether you use variable-name-in-local-scope or pointer-to-memory is irrelevant, I suppose). Since the interface looks like a library anyway, you (mostly) might as well use libraries. I can see the value of "Version 1.1 broke my frobs, but I need the new feature it adds!", but that's going to turn library-updating into a nightmare.


  • Impossible Mission - B

    @potatoengineer said in Xanadu, Predicate Dispatch, and Schol-R-LEA's latest psychotic break:

    transclusive

    You use this word, or variants on it, several different times. What does it mean? I've never heard of it before.



  • @masonwheeler said in Xanadu, Predicate Dispatch, and Schol-R-LEA's latest psychotic break:

    @potatoengineer said in Xanadu, Predicate Dispatch, and Schol-R-LEA's latest psychotic break:

    transclusive

    You use this word, or variants on it, several different times. What does it mean? I've never heard of it before.

    In short, "I have a pointer to content. Add that content (or some subset) to my document, right here." It's as if hyperlinks didn't just give you a connection to another website, but instead copied part of that website over to the current document you're reading. This would be even more invasive than iframes - instead of "here's a window to that website", three sentences transcluded from another site would flow perfectly inside the current paragraph. (With, possibly, a little bit of markup to indicate the source site.)

    In source code, it would be equivalent to inlining-from-a-remote-source.

    I mostly know this word from dealing with Angular code, where you can write code like this:

    <MyThing>
    <div>Here's some content I want inserted into whatever it is that MyThing generates.</div>
    </MyThing>

    And then in MyThing's implementation, it generates a pile of HTML, and it stuffs your content into the place where you put the <ng-transclude/> element.



  • @potatoengineer In one of the Rendezvous with Rama books, Arthur C Clarke (or his co-author whatsisname) spends a couple paragraphs describing how the alien computer that runs Rama actually "thinks", and it sounds a hell of a lot like this description.

    Since I don't have a digital copy of the book to quote from, I know that's a useless thing to point out in this discussion, but there it is.


  • Discourse touched me in a no-no place

    @potatoengineer said in Xanadu, Predicate Dispatch, and Schol-R-LEA's latest psychotic break:

    When extending this to source code, though, I think that the devilish details threaten to topple the entire structure. Transcluding code is going to look a lot like a call to a library – in the sense that you'll want to execute some code that doesn't know about you, so you're going to have to pass in some kind of pointers to the input variables (whether you use variable-name-in-local-scope or pointer-to-memory is irrelevant, I suppose). Since the interface looks like a library anyway, you (mostly) might as well use libraries. I can see the value of "Version 1.1 broke my frobs, but I need the new feature it adds!", but that's going to turn library-updating into a nightmare.

    It's worse than that because you are linking to the thing itself, not the name of the thing. That means that anything you link to, you are linking to the specific version that you happened to pick and there is no possibility for fixing bugs except at the very outermost nodes of the knowledge graph. Wrong structural knowledge (or libraries) cannot be sanely removed; your mistakes are FOREVER and you are stuffed in eternity if you ever make one.

    There are ways to escape this trap, but they involve revoking other key concepts. In particular, you need to introduce more indirection (i.e., linking to a rebindable entity rather than to the base concept) and you need to have a mechanism for deliberately forgetting facts. These appear to be very much what Xanadu seeks to reject, but without them it will not survive reality where bindings are not eternal and information is not all of equal moral value.



  • @dkf Heh, you could create a little industry of surfing this mega-database finding passwords or stuff like AWS secret keys accidentally uploaded at some point and stealing the money/resources from them.


  • Discourse touched me in a no-no place

    @blakeyrat It'd be just like what some people are already doing with github. Except at the whole OS level and with even more dumb ways of leaking information all over the place.

    Heck, being able to hack things to get metadata out about arbitrary base facts (e.g., “who has the credit card with number AAAA-BBBB-CCCC-DDD?”) from all the interlinking would be such an awesomely broken and dangerous thing, and I really would not be sure that the metadata wouldn't leak through weird side channels. After all, it's fairly well known that the likes of the NSA are really mostly interested in the interlinking metadata, rather than the (often pretty predictable) data itself.

    It's not that a distributed graph database couldn't work (even though that might actually be true) but rather that the level of ass-hat-ness it would enable is terrifying.


Log in to reply