Regarding 'spec before software' and Tim Berners-Lee's Web and Semantic Web endeavors, the idea (and goal) was simply to name anything of interest using a hyperlink (HTTP URI).
As history shows, that worked brilliantly for documents, as demonstrated by the global adoption of what we now know as the World Wide Web.
The issue with the Semantic Web follow-on — i.e., using hyperlinks to name anything of interest — is that it became caught up in a Web of problems:
1. What is the range of an HTTP URI when functioning as a name? — the HttpRange-14 matter. 2. Formats for representing entity relationships — the old RDF/XML matter. 3. Notation and language preferences for expressing the logic underlying relationship semantics — the OWL-or-not-to-OWL wars.
In addition to 1–3, there was another huge hurdle that superficially looked like a 'spec before software' problem: the absence of an appropriate UI/UX stack capable of masking items 1–3 — the RDF esoterica.
That UI/UX simply didn't exist until the emergence of LLMs.