Automated semantic annotations #23
Replies: 3 comments 7 replies
|
We had a discussion regarding how to best introduce semantics at the workflow engine software level. In AiiDA, we've considered introducing semantics at the ORM layer, which has recently been enhanced with pydantic schemas. The idea is to upgrade our pydantic models with semantic support (done here already in the context of PREMISE, but also here as part of OO-LD). @samwaseda presented the approach of semantikon to introducing semantics at the task and workflow levels. Semantikon moves validation and discovery from the software layer to the semantic layer (or rather opens these doors). This allows validation of workflow step consistency by means of semantic reasoning on input/output connections, as well as discovery by means of SPARCL queries on the connected knowledge graph. The latter enables queries outside of one's own ecosystem, and perhaps even extended beyond one's domain, depending on the level of connectivity made upstream (which is for ontology/domain experts to develop). @superstar54 and @edan-bainglass poked sufficiently at semantikon. Currently, it appears sound and of sufficient interest to consider in AiiDA. Further testing required! Potential deliverables
|
|
After some discussion with @samwaseda, a somewhat obvious path for Semantikon integration in AiiDA was quickly identified, with a few caveats highlighted by @samwaseda ( To clear up
@samwaseda maybe you can already provide your comments on the above? |
|
First, the idea of automated semantic annotations is great, and the Semantikon package looks interesting. As a workflow manager developer, my main concern is whether Semantikon can handle the dynamic nature of realistic workflows, particularly within AiiDA. Semantikon seems to require a complete, static "recipe" (kind of a DAG) of the workflow before runtime to generate its knowledge graph. However, many workflow managers like AiiDA are inherently dynamic, meaning the full graph is only known during runtime.
Thus, Semantikon can not fetch a (complete) knowledge graph from them. In @samwaseda mentioned that one can avoid certain control flows (e.g., by avoiding if statements). While it could be theoretically possible, I am not convinced this is a practical solution. Requiring users to write more complex code to satisfy a tool's constraints undermines usability, which we want to avoid in a workflow system. In short, there appears to be a gap between the need for a static, pre-runtime workflow "recipe" and the dynamic, runtime-defined nature of many essential AiiDA workflows. How would we propose to bridge this gap? I am happy to discuss. |
Uh oh!
There was an error while loading. Please reload this page.
Working group notes building on #18
All reactions