Subsonic offers rich functionality, but only a simple Unix-like console interface with custom commands for (among others) clone detection, model size computation, and meta-class frequency distribution computation. It operates on models serialized as XMI files. Subsonic is our preferred vehicle for very quick and cheap deployment, and is implemented entirely in SWI-PROLOG.
Hypersonic, our second version of MACH is a web service with a matching browser interface. At this point, it only offers model clone detection as a service. However, this will be easy to extend since the back-end is identical to clone-detection component of Subsonic. The Web-service is implemented in Prolog, as the back end, and the front-end is created using standard web-technologies (HTML, CSS, JS), in particular Bootstrap and jQuery; the data exchange between client and server is done using JSON.
MACH is an acronym for "Model Analyser/Checker", but also the name of eminent Austrian scientist Ernst Mach. His main contribution is in the philosophy of science, but he is probably best known today for the "MACH-number" indicating the speed of sound.
1. Install the latest release of SWI-Prolog (version 6.6.2 at the time of writing this). Use a 32 bit version!
2. Copy the MACH binary file compiled for your operating system (see the Download section below) to the \bin directory of the SWI-Prolog installation. For instance, if SWI-Prolog is installed at C:\Program Files\swipl, copy the MACH binary to C:\Program Files\swipl\bin
3. Start MACH by executing the binary file.
You will have to register with SHARE, log in, request a session, and use session id/link you receive after starting the remote VM to open a remote desktop (e.g., on Windows using mstsc.exe). Then you can play around with MACH without installing. However, the performance is not as good as a real installation, and you cannot upload your data as the VMs on SHARE have no web-access.
|MACH manual page||Usage instructions||A little report explaining the installation, usage, and main features of MACH.|
|MACH sample session||Console session||A sample console session in MACH, highlighting some common operations|