-
Notifications
You must be signed in to change notification settings - Fork 202
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tagging Properties and Filtering #998
Comments
The examples here may not be the best examples to show the importance of this feature. Tags for tasks sound more important for general tool-independent benchmark sets (like SV-Benchmarks), but the presented examples don't really match that. What would such use cases be? And how complex would it be to implement these use cases without tags? So how about first trying out a concrete use case for example with If we go forward, one question I would have about the design of this is "Why attach tags to properties? Why not to the tasks?".
This is something I don't understand. What are the tool and model levels? So in general, I guess something like this would be possible, but it would have relatively low priority for me unless there is an actual use case where the existing mechanisms don't work well. |
Yes, I didn't want to go domain specific. A more useful example would be to add the type of the model and property (e.g. The appeal of tags or similar would simply be conciseness. Suppose I have three tools. I want to evaluate all of these tools on Now, suppose I want to add a new property / model of that type. Then, I need to remember to also update at least one .set file instead of attaching this information directly where it "belongs". In a sense, tags are not different from filenames: I can add every tag to the filename and write (complicated) wildcards to filter, however it seems natural to me to be able to add metadata beyond the filename. In the same why, one can argue why even bother with task definition at all, you could just write down the list explicitly. It just is another way of concisely expressing what you want, and it is about striking a balance between conciseness and usability. I personally find it simpler to just staple (for what its worth, in my concrete case it is even quite useful to derive this metadata programmatically from a script, but that is indeed specialized.)
In the end, this is what I was hinting at. With "tool" and "model" level I meant that a tool and model could also define tags. Or even the task. This together would give a set of tags for each run, on which one then could filter. I guess for now one can leave this open. I can solve this by generating set and task-definition files from a domain-specific description. Maybe in the future more people have requests in this direction. |
Based on discussion:
I propose to allow to attach arbitrary tags to properties in task-definitions:
(
tags
can be replaced with a similar name, e.g.,labels
, but I thinktag
is appropriate)The type is
Optional[set[str]]
The tags can be "selected" by
--require-tags [list of strings]
(require all given tags to be present)--exclude-tags [list of strings]
(require no given tag to be present) or in similar format inside<tasks>
.Related: Tags could also be defined on the tool and model level, the tags that are then considered for filtering in the end are then the union of all given tags.
A more powerful version would be an expression structure like
so just defining a propositional formula with atomic propositions that can be derived from model and properties. This proposal "only" adds
tag
filtering but it shouldn't be hard to add more (FWIW a tool info could provide such information...)The second part definitely is more of a "far fetched" idea and rather advanced. But would allow for a lot of control for advanced users.
The text was updated successfully, but these errors were encountered: