Note: this is a work in progress.
Mega-Tags
The Mega-Tags system (Short form: M-T) is a content-tagging system I designed in order to be able to tag content (images, articles, media, etc.) in a complex, semantic and contextually rich way.
The objectives of Mega-Tags are:
- Being able to tag something quickly, just by typing the tags:
- One of the drawbacks of categories is how static and time consuming are, since we have to first create the category, then assign it, etc. Mega-Tags, instead, allow us to just write the tag in the content itself.
- Give these tags semantic and contextual meaning to the tags:
- For example: tags specific for authorship/ownership tagging, tags specific for location/time tagging, etc.
Note: reading the instruction may be a bit overwhelming, but once you reach the Examples section you’ll see how everything ties together.
Hierarchy
One of the biggest weaknesses of tags when compared to Categories is that tags lack hierarchy (father, child and sibling relationships between themselves). Mega-Tags solve that by allowing the user to define a hierarchy if needed. The hierarchy can be defined with:
- :#tag1;/:#tag2; — in this example :#tag1; will be :#tag2;’s parent.
- :#tag1;/:#tag3; — in this example :#tag1; will be :#tag3;’s parent. And both :#tag2 and :#tag3 will be sibling tags.
Note: you only should do this once. Once you registered “tag2” as a child of “tag1”, every time you type “:#tag2;” the system should auto-complete the rest.
Note2: we used the type :# for the examples ,but you can use any type.
Tag syntax
A Mega-Tags is made of three parts: An Identifier, the Tag Word, the Closer: (Identifier)(Tag word)(Closer)
- The identifier is a combination of semantic and contextual symbols (See next section).
- The Tag Word is the text of the tag (for example if it’s something from rome the tag word would be “rome” or “roman”)
- The closer is the symbol ; which tells the system the tag has ended.
For example:
in the Mega-Tag :$rome;
- :$ — is the Identifier
- rome — is the Tag Word.
- ; — is the closer.
Tag identifier
The identifier is a symbol that goes before the Tag Word, and it defines the type of tag. Mega-Tags construct this identifier symbol from multiple symbols, which, in their combination, give the tag a semantic and contextual meaning.
- Mega-Tags syntax constructs this identifier as: (tag start)[modifier][modifier](tag type)
- Legend: (required) [optional]
Tag start
The identifier symbols identify the type of tag: first it tell something is a tag, then it tell how important that tag is for the item we’re tagging and lastly, the modify the context of the tag.
- Tag identifier: : — (required) — The colon symbol tells the system the following is a tag.
Modifiers
The modifiers modify the context of the tag itself.
- Weight symbol: 1-5 — [optional] — the weight symbol is a number, 1 to 5, which as the name implies gives a weight to the tag. It’s used to solve conflicts.
- Default weight: if no weight is specified, the tag is assumed to have a default weight of 5.
- Example: we’re tagging a book with one main author a co-author and several collaborators with different degrees of importance. In that case we main author will have a max weight (:~author’s; or optionally :5~author’s name;). The co-author will have a weight of 4 (:4~co-author’;s name; )main collaborator will , and the collaborators will be weighted according to their importance (:3~first collaborator’s name; :2~second collaborator’s name; etc…)
- Basically they point out the level of importance of a given tag for an item.
- Modifier symbols: / \ – = [ ) ( ] — [optional] — We can only use one of these, and they modify the tag itself. Important: these modifiers are highly optional, and we only use them when we feel the extra context will help with the tagging process.
- / — Refers/Is about modifier — the current item being tagged “refers to” or “is about” something.
- For example, in a modern day novel that takes place in Ancient Greece. We’ll tag Greece with the / modifier since the novel “is about” Greece.
- \ — Inspired/based modifier — the current item being tagged “is based on” or “was inspired by” another work/item/place.
- For example, a drawing that tries to copy the style of a famous painter. The name of the famous painter will have the \ modifier since the drawing we’re tagging was inspired by that painter.
- – — Mod/Remix modifier — [Highly optional modifier] — if the item we’re tagging is a mod or remix of something else.
- This modifier is also highly optional. It’s differed from / (inspired/base modifier). this tag is for direct modifications/fanfics/etc.
- Remember that the original work that being modded is the one with the + modifier. For example, for the Fallout 4’s Sim Settlements 2 mode, it would be: :+~fallout 4, :~sim settlements 2
- = — Origin/Source modifier — [Highly optional modifier] — for when we want to make sure were specifying the origin or source of something.
- E.g. the origin geographical area of a plant/animal species.
- [ — Source modifier — for when we want to specify something is a source.
- E.g. to tag a source material in a scientific/historic work we’re tagging.
- ) — Changed modifier — [Highly optional modifier] — For specifying changes/moves/renovations
- E.g. If a monument was moved from its original location to a new one in 1951. we can tag the year it was moved with: :)$1951;
- ( — Captured modifier — [Highly optional modifier] — for specifying/separating creation/documentation information.
- E.g. the year a photo of an old monument was taken.
- ] — Created modifier — [Highly optional modifier] — used only when we want to make extra clear we’re stating creation stag data.
- When we want to make absolutely clear the item/work/etc. itself was created in a year or place.
- We usually use this modifier when there are a lot of other tags and think there could be conflicts if we don’t mark the tag with a modifier.
- * — Wildcard — the wildcard is using during searches and includes all modifiers.
Tag type
The tag type symbols establish which type of tag we’re defining, we can only use one of these (since the tag must be of a type)
Cataloging tags
These tags serve for cataloguing/taxonomy purposes. Basically help define the item we’re tagging.
- TYPE (TP-MT) tag: + — the type of content we’re tagging and the name/title of what we’re tagging.
- A book would be :+books;, a movie would be :+movies;, etc.
- FIELD / AREA (FA-MT) tag: % — we use this type of tag to define the field or area of what we’re defining.
- E.g. for example, a Roman history book will fall under: :%humanities;/:%history;
- Notice we didn’t create a tag for “:%roman history;” that’s because the LT-TAG ($) defines things such as time periods and places. So, if we want to search for a Roman history item, we’ll join the tags: “:%history; and :$roman era;”
- NAME / TITLE (NT-MT) tag: > — the name or title of what we’re tagging (for example, the name of a book).
- AUTHOR / OWNER (AO-MT) tag: ~ — the name or the person or company that authored/created the item we’re tagging.
- LOCATION / TIME (LT-MT) tag: $ — will be used to tag something within space and time (for example: the year and location something was made, etc.
- Quick example: If we were looking for all Roman Republic history books published in the 19th century in our collection, well input the tags: :+books; :%history; :/$roman republic;:$19th century;
- That will tell the system that: 1- we’re looking an object of the (+) Type “books”, 2- The (%) Field is “history”, 3- the ($) period is :$roman republic; (since we’re using the / “is about” modifier), and lastly 4- $19th century, means created during that period of time.
Content tags
These tags serve to point out different things or perform general tagging in the item were tagging.
- KTOP-TAG (MAIN TOPICS): & — the key/main topics we can see in the item we’re tagging.
- FREE-TAG (SECONDARY TOPICS): # — any secondary, non-important topics present in the item we’re tagging.
Naming identifiers
Note: this is highly-optional, and should be used only if there are conflicts.
Mega-Tags can have names that give a major level of specificity. For example, we can name a tag’s identifier to make it sure we’re tagging one of the authors. The name of the identifier can be defined as: :author:~…;
- As we can see we have the tag identifier symbol :, we name it and close it with another tag identifier symbol :name:
Example
The following example shows the same tag, except the second one was named:
- Normal M-T: :~name lastname;
- ✧A normal M-T for an author.
- Named M-T: :author:~pepe pipon;
- ✧A named M-T for an author.
Example 1
- We’re tagging the scans of a book (imaginary). The book is a history book about the Roman Empire called “The March of Rome” with the subtitle “When Rome Marched to War” written by Marcus Silas, with Pietro Polo as a collaborator and Published by Great Books Co. The book was published in Canada in the year 1931, and the second edition, the one we’re scanning, was published in 1941. We’re scanning the book in 2025. The book itself was based on/inspired by a previous book called “The March of Greece” published in 1929.
- This book is about the Roman army during the imperial times, and their tactics.
First we start with the Cataloguing tags:
We start with the Type tags: +
- It’s a book, so: :+books;
We continue with the Field / Area tag tags: %
- The book is a book of history, so humanities. We’ll use a hierarchical notation: :%humanities;/:%history;
- Note: you only should do this once. Once you registered “history” as a child of “humanities” the system every time you type :%roman history; will auto complete the rest.
- We also don’t specify “roman history” since the period is specified by the LT-MT. In this case: :$roman empire;
So we end up with: :%history; (and of course it automatically adds :%humanities;/:%history;)
We start with the Name / Title tags: >
- Next we tag the title of the book: :>the march of rome;
- We name the subtitle next: :4>when rome marched to war;
- It’s a subtitle so we used a smaller weight.
- Since we’re scanning the 2nd edition of the book, we include it :>the march of rome;/:>2nd edition;
- Next we tag the previous work that inspired this book :\>the march of greece;
- :>+the march of rome;/:>2nd edition; :4>when rome marched to war; :\>the march of greece;
We follow with the Author / Owner tags: ~
- The author: :~marcus silas;
- We use the type ~ which is an Authorship/titling tag.
- Or optionally, we could have given him a weight of 5 :5~marcus silas;
- Or also optionally, we could have named the tag: :author:~marcus silas;
- The collaborator: :4~pietro polo;
- As you can see, we used a lessed weight, 4, to indicate that name has a lesser importance in the tagging. In this case Pietro Polo is a collaborator, and not a main author.
- Otherwise, if you wanted to make absolutely clear you were tagging a you could have used a named M-T: :collaborator:~pietro polo;
- The publisher was Grea Books Co., so: :~great books co;
So, we end up with::~marcus silas; :4~pietro polo; :~great books co;
We continue with the Location / Time tags: $
- The book was written in 1931, so we use :$1931;
- Which automatically makes it a child of :$20th century; and :$1930s;, since :$1931; is a child tag of these two.
- We can always create the hierarchy if it doesn’t exist: E.g. :$1930s;/:$1931;
- We could also have entered the highly-optional Created modifier: :]$1931; to specify and make it clear we’re inputting the creation (publishing in this case) date. But since there are no conflicts it isn’t entirely necessary.
- The book is about the Roman Empire period, so we use the is about modifier: :/$roman empire;
- The book was written and published in Canada, so we use the tag :$canada;
- :$canada; is a child of: :$americas;/:$north america;/:$canada;
- Remember that we always can create the hierarchy if it doesn’t exist using the previous notation.
- The book is about the Roman Empire, so we can locate what the book is about in space with: :/$rome;
- Again, if the registration already exists, Rome will be a child of Italy, which in turn will be a child of Southern Europe.
- Otherwise we can create that hierarchy with: :$europe;/:$southern europe;/:$italy;/:$rome;
- Furthermore, since the book is based on a previous book written in 1929, we can also add: :\$1929;
- Which is the year the original book the book we’re currently tagging is based in was published. We used the \ modifier (Inspired/based modifier).
- If we new the country of origin of that book, we could also tag it with the \ modifier.
- Since the scans we’re tagging were scanned in the year 2015, we add a tag with the “captured modifier”: :($2025;
So we end up with: :$1931; :/$roman empire; :$canada; :/$rome; :\$1929; :($2025;
Content tags
Once we finish with the Cataloguing tags, we can add Content tags to tag to topics or things the book is about.
We start with the Key Topics Tags: &
- :&army; :&military tactics; :&armies; :&military marches;
- We don’t need to specify “Roman” in the topic tags, since if we were looking for Roman military topics or about Roman military topics we could combine: :$rome; :/$rome; and :&military;
- In natural language that means: military topics from the Roman period or about the Roman period.
- We can also use the * wildcard modifier to search for all modifiers: :*$rome, :&military
And we finish with the Free Tags: #
- These are secondary topics that are non-important in relation to the item we’re tagging or not very relevant.
- For example, if at some point the book mentioned the food the soldiers ate during their marches, we can add the Free Tag: :#food;
- The book isn’t about Roman food, but since it mentions Roman Food in one of its pages, we add the tag.