E621-Tag-Categories

You might want to go to the app to use this tool.

This is a strange project by me in an attempt to revolutionize how implications on e621 are written. Will this go anywhere? Unlikely. It uses simple set operations as an attempt to build the complex web of implications. The ultimate goal is to have this web be able to auto-generate tagging checklists so no image will go under-tagged.

Overview of grammar

This program makes use of lagodiuk’s early parser. For those not in the know, that is a parsing algorithm for context free grammars.

A brief overview of the file structure without delving into the grammar specifics. It was made to be intuitive.

# Imports optional
import <set> from file
import <set> from file
...

# Set literals
<words> = { tag gat gta four }
<numbers> = { 1 2 3 four }

# Set operations
# https://en.wikipedia.org/wiki/Set_(mathematics)#Basic_operations
<set1> = <words> UNION <numbers> # { tag gat gta 1 2 3 four }
<set2> = <words> INTERSECTION <numbers> # { four }
<set3> = <words> MINUS <numbers> # { tag gat gta }

# https://en.wikipedia.org/wiki/Cartesian_product
<set4> = <words> CROSS <numbers>
# {
#     tag1  tag2  tag3  tagfour
#     gat1  gat2  gat3  gatfour
#     gta1  gta2  gta3  gtafour
#    four1 four2 four3 fourfour
# }

# Any time you have a named-set you can use a set literal instead
# <numbers> MINUS { 3 four five } == { 1 2 }

# Exports mandatory - Why would you make a file if you exported nothing?
# Regular exports are only visible to whatever file includes them 
export <set>
export <set>
...

# Global exports are visible to the final output
global export <set>
global export <set>
...

# Regular and global exports can be mixed and matched in any way

License

As usual, this is licensed under the Unlicense.