Affiliate Disclosure

Some of the links on this page may be affiliate links, and I will make a small amount of money when you click on them, or buy the product. I have not been paid to review any products, nor have I been given any products for free in exchange for a review, and any affiliate links that may be present will not change the price you pay for an item.

Sunday, May 20, 2018

Brief Scrivener 3 post: Project Metadata in Scrivener 3

I know I promised an updated set of Scrivener posts for version 3 of Scrivener, and I will definitely do that sometime RealSoonNow™. I have been working pretty hard trying to get Universo Responsoriis ready for Beta readers, as well as working my actual job (transcriptions), and haven't has as much time to get to the updates as I had hoped.
I would like to take a few moments to praise the new metadata system in Scrivener 3.

For readers unfamiliar with metadata, in Scrivener at least, here's a basic rundown.

First, the concept is the same as it is for any other use of "metadata," in the sense that it's the data about the data. For example, the "Last Modified Date" of a file is metadata that tracks what date a file was last modified. It is not data inside the file per se, and updates automatically every time the file is modified, usually by the computer's operating system. For a non-computer use, the title and author of a book (say, Cryptonomicon by Neal Stephenson) are basically metadata. They are not part of the story; rather, they identify the work and the person who authored it. Additional metadata, in that case, might be the publisher, the date of copyright, the printing number (for a paper or hardback book), stuff like that.

In Scrivener, a project has quite a lot of metadata, some which are not directly editable (for example, the last modified date and/or time is updated automatically when a file is modified), and some which can be edited. In Scrivener version 1, a writer could add tags for labels, keywords, and status to documents inside a Scrivener project. Among other things, a writer could use the status tags to identify which documents in a project were still to-do, or were 1st draft ready, and so on. Labels could be used to mark whether a document was a scene, a chapter, an idea, and more. Keywords could tag a document's characters, plot arc, point-of-view character or voice, and a bunch more. All three of these features were customizable, and a writer could add labels, keywords, or status entries as they wished.

In version 2 of Scrivener, Literature and Latte added custom metadata to the mix. Custom metadata—which is defined on a per-project basis—serves a similar function to the keyword, status, and label, but in a different way. Although it is possible to include a document's status or label in the compiled document (using the placeholders), only one label or status can be assigned to a document at a time (one of each). A document can have essentially any arbitrary number of keywords, but the keyword placeholder will insert all of the document's keywords. So, while all three of these tools are useful for the writer (and others working on the project, like editors and such), the custom metadata added a whole new dimension of utility.

Say you're writing an historical fiction novel which parallels Caesar's Commentaries on the Gallic War, written from the perspective of his subordinate Titus Labienus. You want each scene in your novel to start with the date(s) that the scene covers. You could create a bunch of keyword tags, and then apply to each document the tag that corresponds with the scene's date(s). Then you could use the placeholder tag for keywords, and then remember to strip out all of the other keywords from each document just before compiling it: huge headache. Worse, you then lose the data about what other keywords were on the scenes, and have to spend time recreating that if you edit. Not ideal. You could use a Status or Label, and that would work, but then you can't use the Status or Label for other information that really are better suited to that (such as: 1st draft, 2nd draft, to-do, in progress, completed, etc. for the status, and Scene/Chapter/Note/Character/etc. information for labels). Instead, with custom metadata, you create a custom metadata field (let's name it "Scene_Calendar_Dates") and then give that field a specific value. Each document can have its own value for that field, as a text string. When compiling, you can insert placeholders where you want the value for that field to be inserted, then compile the document and hand it to your editor.

This is not just useful for compiling documents, either. Custom metadata fields can be added to the outline view for a project, and the outline can be sorted on the values in those fields (or, just printed/compiled as an outline for review, or included as supplemental material for an editor). Keywords, labels, and statuses can also be added to the outline (which is very handy, too), but each metadata field is treated as a distinct element.

In Scrivener version 3, custom metadata is no longer restricted to being simple text strings. In a blog post (written as Scrivener 3 was being finalized for release), Literature and Latte explains that custom metadata can also hold date fields, checkboxes, or lists, in addition to text strings. A date field (such as that in our historical novel example above) could be populated with the dates that correspond to each scene in the Labienus story, and then placeholder tags put into the document (or in the compile window) for output into the compiled document. In Universo Responsoriis, for example, I have set up certain custom metadata fields as lists (which show up as pop-up menus like the label or status) for things like time of day, or ephemeris settings (since some of the novel involves astronomical information). This makes it easy for me to check which scenes are associated with certain star positions—like, say, would Mars actually be visible in the night sky in this scene?—so I can make sure I have the right information.

What I have found the most useful (so far!) about these new metadata types is that the list types can have their settings changed in multiple files simultaneously, just like the label or status. One way to do that is to shift-click several items in the cork board, then right-click on them. Under the context menu that appears (once you have list-type custom metadata fields created), there will be an "Other Metadata" entry, and each field defined as a list will appear there.

As you might imagine, the possibilities here are quite wide. For example, instead of using keywords for POV or narrative voice, you could create a custom metadata list. When defining the field, set it up as a list type, and then populate the list with each character who has a POV. When you write the scene, select that scene's POV character from the popup list. Easy-peasy! Another option might be to create a list of locations—culled perhaps from the Locations folder under Research?—and select each scene's location from a different metadata popup list.

So, to sum up: Scrivener 1 metadata fine; Scrivener 2 custom metadata finer; Scrivener 3 custom metadata even finer!

I will, at some point, post a step-by-step tutorial on some ways that metadata (of all kinds!) can be tremendously helpful for organizing projects, but I was struck today with just how useful I have found the new custom metadata, and I couldn't wait to share that!

If you've used the new Scrivener 3 metadata features, what have you found the most useful (and least, as well)? What ways are you using these tools, or if you're not using them, what are some things that you find difficult about them?