# Zweibach - Text

# PTR

<div id="bkmrk-%23%C2%A0ptr%C2%A0for%C2%A0dummies-or"><div><span style="color: #569cd6; font-weight: bold;">\# PTR for Dummies</span></div><div><span style="color: #d4d4d4;">or</span></div><div><span style="color: #569cd6; font-weight: bold;">\## Myths and facts about the Public Tag Repository</span></div>  
<div><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">What is the PTR?</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">\#what-is-the-ptr</span><span style="color: #d4d4d4;">)</span></div><div><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">Connecting to the PTR</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">\#connecting-to-the-ptr</span><span style="color: #d4d4d4;">)</span></div><div><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">How does it work?</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">\#how-does-it-work</span><span style="color: #d4d4d4;">)</span></div><div><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">Janitors</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">\#janitors</span><span style="color: #d4d4d4;">)</span></div><div><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">Tag Guidelines</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">\#tag-guidelines</span><span style="color: #d4d4d4;">)</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">Siblings and parents</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">\#siblings-and-parents</span><span style="color: #d4d4d4;">)</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">Namespaces</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">\#namespaces</span><span style="color: #d4d4d4;">)</span></div>  
<div><span style="color: #569cd6; font-weight: bold;">\### What is the PTR? </span></div><div><span style="color: #d4d4d4;">Short for </span><span style="color: #569cd6; font-weight: bold;">\*\*P\*\*</span><span style="color: #d4d4d4;">ublic </span><span style="color: #569cd6; font-weight: bold;">\*\*T\*\*</span><span style="color: #d4d4d4;">ag </span><span style="color: #569cd6; font-weight: bold;">\*\*R\*\*</span><span style="color: #d4d4d4;">epository, a now community managed repository of tags. Locally it acts as a tag service, just like </span><span style="color: #ce9178;">`my tags`</span><span style="color: #d4d4d4;">. At the time of writing 54 million files have tags on it. The PTR only store the sha256 hash and tag mappings of a file, not the files themselves or any non-tag meta data. In other words: If you don not see it in the tag list then it is not stored.</span></div>  
<div><span style="color: #d4d4d4;">Most of the things in this document also applies to </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">self-hosted servers</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">https://hydrusnetwork.github.io/hydrus/help/server.html</span><span style="color: #d4d4d4;">), except for tag guidelines.</span></div>  
<div><span style="color: #569cd6; font-weight: bold;">\### Connecting to the PTR</span></div><div><span style="color: #d4d4d4;">The easiest method is to use the built in function, found under </span><span style="color: #ce9178;">`help -&gt; add the public tag repository`</span><span style="color: #d4d4d4;">. For adding it manually, if you so desire, read the Hydrus help document on </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">access keys</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">https://hydrusnetwork.github.io/hydrus/help/access\_keys.html</span><span style="color: #d4d4d4;">). </span></div><div><span style="color: #d4d4d4;">If you are starting out completely fresh you can also download a fully synced client </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">here</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">https://koto.reisen/quicksync/</span><span style="color: #d4d4d4;">). Though possibly a bit (couple of days or so usually) out of date it will none the less save time. Some settings may differ from the defaults of an official installation. </span></div><div><span style="color: #d4d4d4;">Once you are connected Hydrus will proceed to download and then process the update files. The progress of this can be seen under </span><span style="color: #ce9178;">`services -&gt; review services -&gt; remote -&gt; tag repositories -&gt; public tag repository`</span><span style="color: #d4d4d4;">. Here you can view its status, your account (the default account is a shared public account. Currently only janitors and the administrator have personal accounts), tag status, and how synced you are. Being behind on the sync by a certain amount makes you unable to push tags and petitions until you are caught up again.</span></div>  
<div><span style="color: #569cd6; font-weight: bold;">\### How does it work?</span></div><div><span style="color: #d4d4d4;">For something to end up on the PTR it has to be pushed there. Tags can either be entered into the tag service manually by the user through the </span><span style="color: #ce9178;">`manage tags`</span><span style="color: #d4d4d4;"> window, or be routed there by a parser when downloading files. See </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">parsing tags</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">https://hydrusnetwork.github.io/hydrus/help/getting\_started\_downloading.html</span><span style="color: #d4d4d4;">). Once tags have been entered into the PTR tag service they are pending until pushed. This is indicated by the </span><span style="color: #ce9178;">`pending ()`</span><span style="color: #d4d4d4;"> that will appear between </span><span style="color: #ce9178;">`tags`</span><span style="color: #d4d4d4;"> and </span><span style="color: #ce9178;">`help`</span><span style="color: #d4d4d4;"> in the menu bar. Here you can chose to either push your changes to the PTR or discard them.</span></div>  
<div><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> Adding tags pass automatically.</span></div><div><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> Deleting (petitioning) tags requires janitor action.</span></div><div><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> If a tag has been deleted from a file it will not be added again.</span></div><div><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> Currently there is no way for a normal user to re-add a deleted tag. If it gets deleted then it is gone. A janitor can undelete tags manually.</span></div><div><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> Adding and petitioning siblings and parents all require janitor action.</span></div><div><span style="color: #6796e6;">-</span><span style="color: #d4d4d4;"> The client always assumes the server approves any petition. If your petition gets rejected you wont know.</span></div>  
<div><span style="color: #d4d4d4;">When making petitions it is important to remember that janitors are only human. We do not necessarily know everything about every niche. We do not necessarily have the files you are making changes for and we will only see a blank thumbnail if we do not have the file. Explain why you are making a petition. Try and keep the number of files manageable. If a janitor at any point is unsure if the petition is correct they are likely to deny the entire petition rather than risk losing good tags. Some users have pushed changes regarding hundreds of tags over thousands of files at once, but due to disregarding PTR tagging practices or being lazy with justification the petition has been denied entirely. Or they have just been plain wrong, trying to impose frankly stupid tagging methods.</span></div>  
<div><span style="color: #d4d4d4;">Furthermore, if you are two weeks out of sync with PTR you are unable to push additions or deletions until you're back within the threshold.</span></div>  
<div><span style="color: #d4d4d4;">---</span></div>  
<div><span style="color: #ce9178;">`Q. Does this automagically tag my files?`</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #ce9178;">`A. No. Until we get machine learning based auto-tagging nothing is truly automatic. All tags on the PTR were uploaded by another user, so if nobody uploaded tags associated with the hash of your file it won't have any tags in the PTR.`</span></div>  
<div><span style="color: #ce9178;">`Q. How good is the PTR at tagging \[insert file format or thing from site here\]?`</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #ce9178;">`A. That depends largely on if there's a scrapable database of tags for whatever you're asking about. Anything that comes from a booru or site that supports tags is fairly likely to have something on the PTR. Original content on some obscure chan-style imageboard is less so.`</span></div>  
<div><span style="color: #ce9178;">`Q. Help! My files don't have any tags! What do!?`</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #ce9178;">`A. As stated above, some things are just very likely to not have any tags. It is also possible that the files have been altered by whichever service you downloaded from. Imgur, Reddit, Discord, and many other sites and services recompress images to save space which might give it a different hash even if it looks indistinguishable from the original file. Use one of the IQDB lookup programs linked in`</span><span style="color: #d4d4d4;"> </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">Cuddle's wiki</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">https://github.com/CuddleBear92/Hydrus-Presets-and-Scripts/wiki/0-Hydrus-Apps-and-Scripts</span><span style="color: #d4d4d4;">).</span></div>  
<div><span style="color: #ce9178;">`Q. Why is my database so big!? This can't be right.`</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #ce9178;">`A. It is working as intended. The size is because you are literally downloading and processing the entire tag database and history of the PTR. It is done this way to ensure redundancy and privacy. Redundancy because anybody with an up-to-date PTR sync can just start their own. Privacy because nobody can tell what files you have since you are downloading the tags for everything the PTR has.`</span></div>  
<div><span style="color: #ce9178;">`Q. Does that mean I can't do anything about the size?`</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #ce9178;">`A. Correct. There are some plans to crunch the size through a few methods but there are a lot of other far more requested features being, well, requested. Speaking crassly if you are bothered by the size requirement of the PTR you probably don't have a big enough library to really benefit and would be better of just using the IQDB script.`</span></div>  
<div><span style="color: #d4d4d4;">---</span></div>  
<div><span style="color: #569cd6; font-weight: bold;">\### Janitors</span></div><div><span style="color: #d4d4d4;">Janitors are the people that review petitions. You can meet us at the community </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">Discord</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">https://discord.gg/3H8UTpb</span><span style="color: #d4d4d4;">) to ask questions or see us bitch about some of the silly stuff boorus and users cause to end up in the PTR.</span></div>  
<div><span style="color: #569cd6; font-weight: bold;">\### Tag Guidelines</span></div>  
<div><span style="color: #d4d4d4;">These are a mix of standard practice used by various boorus and changes made by Hydrus Developer and PTR users, ratified by the janitors that actually have to manage all of this. The "full" document is viewable at </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">Cuddle's git repo</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">https://raw.githubusercontent.com/CuddleBear92/Hydrus-Presets-and-Scripts/master/tag%20guidelines</span><span style="color: #d4d4d4;">). See Hydrus Developer's </span><span style="color: #d4d4d4;">\[</span><span style="color: #ce9178;">thoughts on a public tagging schema</span><span style="color: #d4d4d4;">\]</span><span style="color: #d4d4d4;">(</span><span style="color: #d4d4d4; text-decoration: underline;">https://hydrusnetwork.github.io/hydrus/help/tagging\_schema.html</span><span style="color: #d4d4d4;">).</span></div>  
<div><span style="color: #d4d4d4;">If you are looking to help out by tagging low tag-count files, remember to keep the tags objective, start simple by for example adding the characters/persons and big obvious things in the image or what else. Tagging every little thing and detail is a sure path to burnout. </span></div><div><span style="color: #d4d4d4;">If you are looking to petition removal of tags then it is preferable to sibling common misspellings, underscores, and defunct tags rather than deleting them outright. The exception is for ambiguous tags where it is better to delete and replace with a less ambiguous tag. When deleting tags that don't belong in the image it can be helpful if you include a short description as to why. </span></div><div><span style="color: #d4d4d4;">It's also helpful if you sanitise downloaded tags from sites with tagged galleries before pushing them to the PTR. For example Pixiv, where you can have a gallery of multiple images, each containing one character, and all of the characters being tagged. Consequently all images in that gallery will have all of the character tags despite no image having more than one character.</span></div>  
<div><span style="color: #569cd6; font-weight: bold;">\#### Siblings and parents</span></div><div><span style="color: #d4d4d4;">When making siblings, go for the closest less-bad tag. Example: </span><span style="color: #ce9178;">`bad\_tag`</span><span style="color: #d4d4d4;"> -&gt; </span><span style="color: #ce9178;">`bad tag`</span><span style="color: #d4d4d4;">, rather than going for what the top level sibling might be. This creates less potential future work in case standards change and makes it so your request is less likely to be denied by a janitor not being entirely certain that what you're asking is right. Be careful about creating siblings for potentially ambiguous tags. Is </span><span style="color: #ce9178;">`james bond`</span><span style="color: #d4d4d4;"> supposed to be </span><span style="color: #ce9178;">`character:james bond`</span><span style="color: #d4d4d4;"> or is it </span><span style="color: #ce9178;">`series:james bond`</span><span style="color: #d4d4d4;">? This is a bit of a bad example due to having the case of the character always belonging to the series, so you can safely sibling it to </span><span style="color: #ce9178;">`series:james bond`</span><span style="color: #d4d4d4;"> since all instances of the character will also have the series, but not all instances of the series will have the character. So let us look at another example: how about </span><span style="color: #ce9178;">`wool`</span><span style="color: #d4d4d4;">? Is it the material harvested from sheep, or is it the Malaysian artist that likes to draw Touhou? In doubtful cases it's better to leave it as is, petition the tag for deletion if it's incorrect and add the correct tag.</span></div>  
<div><span style="color: #d4d4d4;">When making parents, make sure it's an always factually correct relationship. </span><span style="color: #ce9178;">`character:james bond`</span><span style="color: #d4d4d4;"> always belongs to </span><span style="color: #ce9178;">`series:james bond`</span><span style="color: #d4d4d4;">. But </span><span style="color: #ce9178;">`character:james bond`</span><span style="color: #d4d4d4;"> is not always </span><span style="color: #ce9178;">`person:pierce brosnan`</span><span style="color: #d4d4d4;">. Common examples of not-always true relationships: gender (genderbending), species (furrynisation/humanisation/anthropomorphism), hair colour, eye colour, and other mutable traits.</span></div>  
<div><span style="color: #569cd6; font-weight: bold;">\#### Namespaces</span></div><div><span style="color: #ce9178;">`creator:`</span><span style="color: #d4d4d4;"> Used for the creator of the tagged piece of media. Hydrus being primarily used for images it will often be the artist that drew the image. Other potential examples are the author of a book or musician for a song. </span></div><div><span style="color: #ce9178;">`character:`</span><span style="color: #d4d4d4;"> Refers to characters. James Bond is a character. </span></div><div><span style="color: #ce9178;">`person:`</span><span style="color: #d4d4d4;"> Refers to real persons. Pierce Brosnan is a person. </span></div><div><span style="color: #ce9178;">`series:`</span><span style="color: #d4d4d4;"> Used for series. </span><span style="color: #d4d4d4; font-style: italic;">\*James Bond\*</span><span style="color: #d4d4d4;"> is a series tag and so is </span><span style="color: #d4d4d4; font-style: italic;">\*GoldenEye\*</span><span style="color: #d4d4d4;">. Due to usage being different on some boorus chance is that you will also see things like Absolut Vodka and other brands in it. </span></div><div><span style="color: #ce9178;">`photoset:`</span><span style="color: #d4d4d4;"> Used for photosets. Primarily seen for content from idols, cosplayers, and gravure idols. </span></div><div><span style="color: #ce9178;">`studio:`</span><span style="color: #d4d4d4;"> Is used for the entity that facilitated the production of the file or what's in it. Eon Productions for the </span><span style="color: #d4d4d4; font-style: italic;">\*James Bond\*</span><span style="color: #d4d4d4;"> movies. </span></div><div><span style="color: #ce9178;">`species:`</span><span style="color: #d4d4d4;"> Species of the depicted characters/people/animals. Somewhat controversial for being needlessly detailed, some janitors not liking the namespace at all. Primarily used for furry content. </span></div><div><span style="color: #ce9178;">`title:`</span><span style="color: #d4d4d4;"> The title of the file. One of the tags Hydrus uses for various purposes such as sorting and collecting. Somewhat tainted by rampant Reddit parsers. </span></div><div><span style="color: #ce9178;">`medium:`</span><span style="color: #d4d4d4;"> Used for tags about the image and how it's made. Photography, water painting, napkin sketch as a few examples. White background, simple background, checkered background as a few others. </span><span style="color: #569cd6; font-weight: bold;">\*\*What you see about the image.\*\*</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #ce9178;">`meta:`</span><span style="color: #d4d4d4;"> This namespace is used for information that isn't visible in the image itself or where you might need to go to the source. Some examples include: third-party edit, paid reward (patreon/enty/gumroad/fantia/fanbox), translated, commentary, and such. </span><span style="color: #569cd6; font-weight: bold;">\*\*What you know about the image.\*\*</span></div>  
<div><span style="color: #d4d4d4;">Namespaces not listed above are not "supported" by the janitors and are liable to get siblinged out, removed, and/or mocked if judged being bad and annoying enough to justify the work. Do not take this to mean that all un-listed namespaces are bad, some are created and used by parsers to indicate where an image came from which can be helpful if somebody else wants to fetch the original or check source tags against the PTR tags. But do exercise some care in what you put on the PTR if you use custom namespaces. Recently </span><span style="color: #ce9178;">`clothing:`</span><span style="color: #d4d4d4;"> was removed due to being disliked, no booru using it, and the person(s) pushing for it seeming to have disappeared, leaving a less-than-finished mess behind. It was also rife with lossy siblings and things that just plain don't belong with clothing, such as </span><span style="color: #ce9178;">`clothing:brown hair`</span><span style="color: #d4d4d4;">.</span></div></div>