EGU General Assembly 2013: The new g.infer add-on for GRASS GIS
g.infer: A GRASS GIS Module for rule-based data-drivenClassification and Workflow ControlPeter Löwe GISIX.com, Potsdam, GermanyContact: email@example.comAbstractg.infer is a new add-on module for GRASS GIS (V6.4.x /V.7.0) to composeflexible rule-driven GIS workflows based on GRASS modules. The moduleenables rule-based analysis and workflow management using data-driveninference processes based on the C Language Integrated Production System(CLIPS). G.infer supports raster, volume and point vector GIS-layers. GRASSGIS environment variables can also be queried and manipulated. Built-in rule-base templates allow the quick set-up of expert systems and workflows in GISenvironments. An interactive mode enables direct interaction with the rule-base environment on the fly.Application scenarios range from rule-based classification tasks, event-drivenworkflow-control to complex simulations for tasks such as Soil ErosionMonitoring and Disaster Early WarningExpert Systems for GIS ApplicationsKnowledge-based systems, also known as Expert Systems, facilitate the encoding ofhuman knowledge for automated reasoning or inference, i.e., the processing of datato infer conclusions, which can be mapped out in a GIS. The overall process ofmaking human expertise available through an Expert System is called KnowledgeEngineering. A rule-based software toolkit (Production Rule System toolkit) for theimplementation of Expert System instances for specific knowledge-domains is thecore of g.infer: The C Language Integrated Production System (CLIPS) projectwas started by NASA (Johnson Space Center) in 1985. It is currently hosted atSourceforge (clipsrules.sourceforge.net/). CLIPS is integrated in g.infer via thePyCLIPS Python module (pyclips.sourceforge.net/).Rule-based GIS workflowsIn GIS, the development of such „map-making“ workflows is usually handled bystepwise execution of the consecutive processing steps by a human operator, tocreate and document the unfolding workflow, by interacting with the actual spatialdata. Once a mapping workflow has been laid out, the next step is automatization,turning it into software. This can involve scripting, i.e. the definition of an execution-chain of available GIS modules, or programming, which includes the development ofnew GIS modules. Free and Open Source GIS like GRASS GIS allow rapiddevelopment of both solutions as the overall codebase can be exploited. However, ifa mapping workflow can be formulated by the human GIS operator, but can not beimplemented as script or GIS module, there’s a problem.Challenging GIS workflows:•Classification tasks which may not appear demanding, but no robust way for buildinga solution can be defined in acceptable time and effort.•Simple workflows, where the processing rules keep changing depending on theavailable input and other parameters.•Problems which have not fully understood or are very complex to solve.Benefits of rule-based programming:•Rule-based modeling allows to focus on “What to Do” instead of “How to do It”.•Rules allow to express solutions to complex problems and to verify themconsequently by logging and retracing the decision steps leading to a particularsolution.•Separation of logic (“know-how”) and data allows to keep the know-how to bestored in centralized rule-bases, providing a central point of access for further editingand improvement.•Human-readable rules serve as their own documentation and can be reviewed bydomain experts.Figure 1: Interaction of the g.infer module with related GRASS GIS components and the CLIPSProduction Rule System. Human experts (shown as figurines) can interact with this workenvironment independently on multiple levels.Figure 2: Overview of the interactions between the GRASS GIS environment (green), the CLIPS-based inference environment (blue) and external data sources (grey), highlighting (red) thepotential for workflow control to be excerted by the inference process.Figure 3: Graphical User Interfaces of g.infer for the import of GIS data(top), settings of the CLIPS inference engine (center) and output options(bottom).