If you'd like to use the site and help me test it, you can join here.

Tuesday, November 17, 2015

Sleeveless et al. on Threadle - Talking About the Absence of Something in a Searchable, Semantic Database

There are some things for which we find it relevant to mention their absence in certain contexts. One such example is when we say "sleeveless dress". What we mean is that, even though a dress commonly has sleeves, this particular one has none.

Building a fine-grained search, we face the challenge that data, at a given point in time, may be incomplete. Given the pattern entry of a dress that is missing information on its sleeves, does that mean it is sleeveless? Clearly not. It could just be that who entered the data did not think of adding information on the sleeves.

"absence of evidence is not evidence of absence"?

When you search for a "sleeveless" dress, you don't want to be bombarded with entries that have no information on sleeves recorded. There should be evidence that the dress does not have sleeves.

When there is no evidence regarding the absence of sleeves on a pattern entry, the search function should simply not list the pattern as a result when you search for something "sleeveless".

There are different ways we can provide this evidence to a system that handles object descriptions.

A Formal Language to Describe Sewn Objects

First, let's look at how the new object description system is going to work: We'll write object descriptions in a style that is quite close to the object descriptions found on pattern envelopes.

Example: A, C: loose-fitting pullover top has cross-grain collar with tie ends, extra-long draped pleated sleeves, back neck slit. B: semi-fitted trousers have wide legs, wide front pockets, back welt pockets, fly zipper closure.

The cool part is that these descriptions will be searchable in a fine-grained way. E.g., you could search for "something with wide legs" and that would find you any pattern that mentions in its description that is has wide legs. You'd see culottes, trousers, etc. You could even search for some more crazy things like "trousers with wide legs with front welt pocket" (I don't think you'd find anything for this one), or "something with top-stitched princess seams and sweetheart neckline" (this seems more likely to exist), or "cocktail dress with natural-waist-height waistline with large side front pleat".

The catch is that we must use a very strict vocabulary that Threadle understands. We define the vocabulary in terms of three different parts: item types that say what kind of item we're describing (e.g. cocktail dress, dress, trousers, top, and many more), parts that are used to talk about particular aspects/parts of the item (like bodice, slit, legs, collar, pleat, sweetheart neckline, waistline), and adjectives that provide detail-information on an item type or object part (like loose-fitting, cross-grain, draped, extra-long, side, front, etc.)

How will the absence of things fit in?

For anything where it is noteworthy to mention absence, we create an adjective. E.g. we have adjectives "sleeveless" (used with anything that usually has sleeves), "legless" (usable with pants).

When you search for "sleeveless dress", the system searches for something where the item type is "dress" and that has the adjective "sleeveless".

When you search for "dress with elbow-length sleeves", the system finds you all patterns that are described as item type "dress" and that have a part "sleeves" which in turn comes with the adjective "elbow-length".

If you're curious about all this, you can have a look at the tentative interactive tutorial for writing item descriptions. It's not finished or anything, but I think now would be a good time to get feedback on whether you think this could work or not (and why).