Language workbenches as representational level to ISO 15926

November 27, 2009

ISO 15926 is only a conceptual level standard. iRING is software architecture that deals with concepts transfer only, not representation transfer. It is the application that is in charge of representations. It is pure “ISO 15926 outside” when we have Domain Specific Language (DSL) or a dozen of DSLs in an application that will represent data in Interactive Development Environment (IDE) of particulary application. Then we can map the resulting ontology of the dozen of this DSL’s domains and connect this particular IDE with other IDEs (applications) with iRING.

Any CAD module is an IDE that supports several DSLs (like P&ID, 3D etc. – these all are languages, though diagrammatic, not text languages). iRING can be application common bus that connects all these CAD modules. If this modules use ISO 15926 as application database data model (schema) then we have “ISO 15926 inside”. Thus we should include representation level information (i.e. notation, not only vocabulary like in SBVR) in IDE database. As I understand, Bentley does this with OpenPlant.

I think that we can have “universal application” as well as “universal façade” if we adopt idea of supporting ontology-based universal data model for concepts, notations and processes. Universal application is a universal (notation or language independent) IDE that can be supported with ontology and representation of it (notation, DSL == domain specific language) for particular domain. So although ISO 15926 is good for universal ontology, we still should find good representation/language ontology to build such an “universal application”. OMG has several incentives in this direction (at least SBVR for terminology level, but there is more in notational level: diagram exchange metamodel that is not released yet).

There is a movement in contemporary software engineering that tried to build such “universal applications”. This is Language Workbenches (http://martinfowler.com/articles/languageWorkbench.html).
In language workbenches you should define
1. schema (ontology of particular domain),
2. language syntax (representation) and then you get interactive screen editor for this particular DSL.
Moreover, you can combine different DSLs in one application. Language workbench approach provides architecture to the “universal CAD module”.

Presentation of one of the firms that work with this approach (Intentional Software led by former R&D vice-president of Microsoft Charles Simonyi) is here: http://download.microsoft.com/download/E/7/7/E77A8FCE-0362-4930-BD5E-8A21EC77E38D/12_Magnus_Christerson_Intentional_DSL_DevCon_2009-04-15.pdf (video of this full presentation is here — http://msdn.microsoft.com/en-us/data/dd727740.aspx, it is very impressive). They call such DSL-to-schema approach a «Domain Workbench».

Usually language workbenches have «projectional editing» that uses conceptual representation for editing instead of “source code”: http://martinfowler.com/bliki/ProjectionalEditing.html

It is important that current IDEs for DSL tend to work with “spreadsheet languages” that add to interactivity needed by contemporary CAD – see http://dynamicaspects.org/papers/PADL2010Final.pdf

There are no less then 6-8 firms that develop languages workbenches now (one of them is Russian and situated in Saint Petersburg: JetBrains Software, also authors of IDEAJ that is the best Java IDE in the world).

I think that we should somehow append one of such “language projector” environments providing visual-representation-to-schema conversion as standard module of ISO 15926 infrastructure (e.g. call it Projector Editor) to strengthen not only mapping aspects of ISO 15926 ontology but also application developmental ones.

Advertisement

Leave a Reply

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

WordPress.com Logo

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

Facebook photo

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

Connecting to %s

%d bloggers like this: