Re: [stack] a concatenative language for the Semantic Web
"Joe Bowbeer" <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
Thanks for the explanation. This comment about syntax tripped me up at first: "The presence of bound variables and other abstractions (i.e. beyond concatenation and quotation) would complicate its syntax." because it didn't apply to Lisp's simple s-expression syntax, but then I realized this statement was only addressing my concatenative question. Good point about the stack. Do your code fragments stand alone, or do they communicate via the stack(s)? (If they stand alone, then an enclosing "let" expression could be used in Lisp to define temporary variables.) --Joe On 5/21/07, Joshua Shinavier wrote: > > On 5/20/07, Joe Bowbeer wrote: > > Hi Joe, > > Thanks for the feedback! > > > > I'm interested. A couple questions: > > > > I don't understand how the concatenative aspect works to your > advantage. > > Can you elaborate? > > Ripple programs are meant to be embedded in an RDF graph, and it was a > design goal to make their RDF representation as simple as possible. > Ripple uses very few symbols, above and beyond the RDF and RDFS > vocabularies, which are relevant to its evaluator, and Ripple > expressions are meant to be easy to read even in a generic RDF > representation language like Notation3. The presence of bound > variables and other abstractions (i.e. beyond concatenation and > quotation) would complicate its syntax. In this sense, I'm exploring > the idea that extreme simplicity, in the form of "point free" > programs, will pay off. Most importantly, a stack language lends > itself very well to path expressions, and Ripple's query model is > path-based. > > > > As a veteran of Lisp and Scheme, I think I would naturally turn to them > when > > presented with this kind of problem. > > Others have, e.g. Wilbur [1] or SWCLOS [2]. However, it is not my > understanding that these toolkits actually express program code in > RDF. > > > If you have reasons why Ripple is more > > suitable than Lisp or Scheme, it might help me better understand what > you're > > doing. > > See above. While it's possible to express arbitrarily complex data > structures in RDF, simplicity is preferred. Ripple is closer to the > typical, simple data representation languages of the Semantic Web than > the rather complex grammars of typical programming languages. I've > just been made aware of a fascinating object-oriented language called > Neno [3] which is also represented in RDF, and its programs are rather > more complex than Ripple's, so the path paradigm is certainly not the > only option. I chose it because it makes for particularly simple, > modular, path-like programs which lend themselves very well to a > "networked programs" model. Also, I think Ripple's evaluator is > rather efficient at converting raw RDF data to executable code, which > in the networked environment is often more critical than actual > efficiency of computation. If I had chosen to integrate Scheme with > RDF instead, I doubt I'd have had my proof of concept up and running > in twice the time it has taken me to implement Ripple, and I don't > think I would prefer the end result. > > > > --Joe > > Best, > > Josh > > > [1] http://wilbur-rdf.sourceforge.net/ > [2] http://iswc2004.semanticweb.org/demos/32/ > [3] http://neno.lanl.gov/Home.html > > [Non-text portions of this message have been removed]