The only easy to scale well and have good information discovery to me seems to be a hierarchy(wikipedia mostly doesn't, but confluence e.g. does). But there is more than one dimension to sort things by. A recipe by my aunt could go under family > aunt > recipes or under lifestyle > food > recipe or under 2018 > march > 12th.
It would be possible to create all these hierarchies, but that's not worth the effort.
Similarly everything in the world has a relationship with everything else, but it's not feasible to cross-link all the wiki articles. Only the strongest links usually make it, many are missing, the type of the relationship is also usually lost.
With both AI could help. Pump in all the metadata you can get, do similarity calculations, find mentions of the same concepts and link them ect.
A similar problem is the scaling. Why can't every street-light have a wikipedia page? If we had a hierarchy and they'd neatly nest away in that (e.g. by just being some sub-page of my street in one dimension, just a machine readable data-point in the cloud of all street lamps shining orange).
You could also get away with really good search, but it would need a similar structure of information underneath. E.g. "tell me the color of the 3rd street light on street XY"
Yet another related problem: Why the heck is everything split in to documents? It's such an arbitrary choice where to split things in to different files and where not to.
2. Make concurrent functional languages with type inference (like F# or OCaml) taught more and popular.
3. Make a framework with static typing more popular than Rails. Spring fails because of JPQL and Hibernate/entity-manager. This doesn't have to be for the JVM or any VM, but it must have fast compile and run times.
Machine Learning does not solve these problems, though it may solve a small subset of problems these tools are used to solve.
Edit: In general, make things popular on deeper merit rather than initial convenience. Even in this internet age, there's still strong local popularity and not-invented-here syndrome.
In other words want a comprehensive level of automated QA that runs fast enough to run on every CI build.
ML / AI? Maybe this could guess which tests need to be run based on past code changes and failures