Re: [stack] a concatenative language for the Semantic Web

"Joshua Shinavier" <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
On 5/20/07, Joe Bowbeer <[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.