Skip to content

Documenting abstract resources

Documenting abstract resources

Resources that do not exist are called abstract resources. A typical example of an abstract resource is a procedure that has not been performed (yet), like a general description of a task in a workflow.

It is highly desirable to document such a resource as a class (i.e. in the TBox). It is consistent with the physicalistic/nominalistic approach taken by major ontological frameworks for applied sciences and makes it easy to document actual executions of such a workflow task as an individual of this class.

{
    "@id": "ex:MySimulation",
    "@type": "owl:Class",
    "subClassOf": "PhysicsBasedSimulation",
    "prefLabel": "MySimulation",
    "elucidation": "A simulation using my physics-based materials models.",
    "isParticipatedBy": {
        "@id": "ex:MyModel",
        "@type": "owl:Class"  # restrictionType defaults to some
    },
    "command": "mymodel infile.txt -o outfile.txt",  # Command to execute the model
    "workdir": ".",  # Relative path to working directory
    "environment": {"VAR1": "val1", "VAR2": "val2"},  # Environment variables (JSON-encoded)
    "install_command": "pip install git+ssh://git@github.com:MyProj/myrepo.git@master",
    "hasInput": [
        {
            "@id": "ex:MyInputDataset",
            "@type": "owl:Class",
            "subClassOf": ["dcat:Dataset", "emmo:Dataset"],
            "restrictionType": "exactly 1",  # defaults to "some"
            "prefLabel": "MyInputDataset.",
            "elucidation": "My input dataset.",
            "distribution": {
                "accessURL": "file:./infile.txt",
                "accessService": {
                    "conformsTo": "https://github.com/SINTEF/dlite/",
                    "generator": "ex:inputplugin"  # for generating input
                }
            }
        }
    ],
    "hasOutput": [
        {
            "@id": "ex:MyOutputDataset",
            "@type": "owl:Class",
            "subClassOf": ["dcat:Dataset", "emmo:Dataset"],
            "restrictionType": "exactly 1",  # defaults to "some"
            "prefLabel": "MyOutputDataset.",
            "elucidation": "My output dataset.",
            "distribution": {
                "accessURL": "file:./outfile.txt",
                "accessService": {
                    "conformsTo": "https://github.com/SINTEF/dlite/",
                    "parser": "ex:outputplugin",  # for parsing output
                    "generator": "ex:outputplugin"  # for storing output to external storage
                }
            }
        }
    ]
}