Scheduler
We define a scheduler based on two possible types, a priority-based scheduler (where tasks can be easily ordered as a max-heap), and a cron-based scheduler (where repeated tasks will get picked up at increments aligned to the schedule).
RDF Schema
:Task a rdfs:Class;
rdfs:label "a simple task".
:TaskData a rdfs:Property;
rdfs:domain :File;
rdfs:range :Task.
:TaskPriority a rdfs:Property;
rdfs:label "a one-time execution parameter that indicates the 0-255 priority, in order of priority";
rdfs:domain rdfs:Literal;
rdfs:range :Task.
:TaskSchedule a rdfs:Property;
rdfs:label "A cron string that describes the frequency to evaluate the task";
rdfs:domain rdfs:Literal;
rdfs:range :Task.
:TaskResult a rdfs:Property;
rdfs:domain rdfs:File;
rdfs:range :Task.