This repository has been merged with the https://github.com/quangis/cct repository. They are now collectively known as https://github.com/quangis/quangis-workflow. This repository can be removed after some time.
The reason is that the CCT algebra does not make much sense outside the context of workflows, and files were getting randomly put in one place or the other.
quangis-workflows
This program is part of the QuAnGIS project.
- It can synthesize GIS workflows from a specification of GIS tools, using the Automated Pipeline Explorer.
- It can also extract specifications of GIS tools from manually constructed workflows, provided they are properly annotated.
Extraction
Assuming that RDF files containing manually annotated workflows are in
the ttl/
directory, the tool repository is built using:
quangis-tool-repo ttl/*.ttl
Generation
There are two steps to the process: assembling a pipeline of tools, and annotating the conceptual steps they perform.
For the first step, datatypes and implementations are relevant. Therefore, the inputs and outputs of each tool in the specification are annotated with core concept datatypes according to the CCD ontology. This is translated to a format that APE understands. APE is then instructed to generate workflows for different possible input/output data configurations. To perform this step, run:
quangis-wf-gen
The second step involves abstracting away from implementation details.
For this, the tools are also annotated with a description of their
functionality by means of a CCT expression. This information is
weaved into a graph of conceptual transformations via the
transforge
library. To perform this step, run the following on
the generated workflows:
transforge graph -L cct -T build/tools.ttl \
--skip-error build/solution-*.ttl
Finally, to query tasks like those here:
transforge query -L cct tasks/*.ttl
Dependencies
Java 1.8+ and Python 3.9+ must be installed, along with the dependencies
in requirements.txt
. The correct version of APE
and other required data files will automatically be downloaded. To run
(rather limited) tests, install and run nose2
.