Another of Sproull's designs (1970, with Dan Swinehart and subsequently others) is the programming language SAIL, the Stanford Artificial Intelligence Language. SAIL is based on Algol-60 along with features supporting symbolic AI programming:
- Records (named product types, i.e. "structs")
- Garbage collection
- Associative memory of triples
- Backtracking (search)
- Processes and coroutines
An associative memory of triples is essentially a "knowledge graph" of logical relationships similar to RDF's triples. SAIL's combination of associative memory, records, and backtracking could be found in Lisp systems of the day as well as Prolog which was emerging at that time. These evolved into various knowledge representation systems which had their heyday in the 1980s and the "semantic web".
Knuth wrote an early implementation of TeX using SAIL. Larry Tesler wrote PUB, a scriptable markup language using SAIL.
SAIL was machine-dependent and not portable. MAINSAIL (Machine Independent Stanford AI Language) descended from SAIL. MAINSAIL dropped the associative memory and backtracking but retained records, garbage collection, and coroutines. MAINSAIL was commercialized in 1980 and made a pretty good mark in the Computer Aided Design industry.
Garbage collected languages were still rare across all industries until Java came along 15 years later. Associative memory made a valiant comeback with JavaSpaces but Sun's myopic battle with Microsoft focused on J2EE and missed the jewel they had in JavaSpaces. Knowledge graphs are becoming much more commonplace and are beginning to be seen as valuable again at the personal and team level.
More about SAIL:
No comments:
Post a Comment