Domain Specific Languages for GIS?

When I first heard about domain specific languages (DSLs) a couple of years ago, I figured there would soon be folks really digging into this for GIS.  The discussion here about GIS scripting is interesting, but would be more helpful to have a DSL discussion.  I guess ESRI’s modelbuilder is a DSL IDE, looks similar to the one discussed here.  I always liked the way unix allows you to chain commands together into one long single command, piping the output of one command as the input of another.  No IDE needed – its all command line.  Seems like unix-friendly DSLs would be a natural step for the opensource folks. OGC mentions DSLs here as “GML Application Languages”, but I can’t really follow this to anything concrete.



2 comments so far

  1. Sean Gillies on

    The MapServer map file and GDAL/OGR virtual formats ( are the most widely used DSLs in open source GIS. Both originated before the DSL buzz hit, and the authors don’t even call them DSLs.

  2. Administrator on

    Hi Sean,

    Thanks for the feedback, starting to make sense, the OGC standard didn’t really die, it looks like it morphed into OGR. Seems like someone could take GDAL/ORG and Microsoft DSL tools to develop an open source ModelBuilder.

    Some other reading I’ve done is Martin Fowler’s discussion of “Language Workbenches”.

    I like Fowler’s discussion of “tiny” languanges. He mentions several unix tiny languages, but not my favorite – the “find” command. I’ve always thought it would be cool to take the good ole unix “find” command and make it work with ESRI’s geometric network. “find” is really a tree traversal mechanism. For example, add up all customers served by tthis substation whose peak kw exceeds 200. Or, for a river network, find all river reaches upstream from this dam with fishcount > X.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: