I have a UX problem involving an interaction that teaches the system how to parse a particular file name. (Note this is not the exact interaction and it does not deal with file names, but it does deal with parsing sets of data).

The idea is that the user will have a very very large set of file names (10,000) and each portion of the file name corresponds to something meaningful. The example I have in the wireframes is a filename for a photo.

Examples of file names are:

07_12_2012_YosemiteValley_HalfDome_01 07_12_2012_YosemiteValley_HalfDome_02 07_12_2012_YosemiteValley_HalfDome_03 07_12_2012_YosemiteValley_VernalFalls_01

So for each file name, I want the system to place them in a specific hierarchy. Date > Location > Secondary Location > Sequence. (This is a made up example, the hierarchy isn't important, but there is a hierarchy). So the system will generate folders for the hierarchy.

There may be different naming conventions as well. For example some may use 07_12_2012__YosemiteValley_001

But it is important to specify the hierarchy.

In my wireframes, the current way of doing it is to either, input an example and the system will parse out the different segments using delimiters and detects changes between text and numbers.

enter image description here

Once the user has clicked on preview, on the LEFT, they can see a breakdown of their file name and they can specify whether each segment is a date, delimiter, location name, hike location or photo number. On the right they can see their query being built and what the hierarchy will be for the sample file name.

Below is a preview of example files that match the parsing rules.

Once they've confirmed that they like the set up, they can click on next to view the full list of files that may be parse.

My question is, am I making this overly complex? Or is there a simpler way of doing this? My challenge is that file names will follow different formats, and sometimes there may be parts of file names that we want to ignore, so it becomes difficult to teach the system how to parse this data. The hierarchy types, such as date, location, hike location, are of course made up for this example, but the real scenario will include a fixed hierarchy.

What is everyone's thoughts about this? Is this too complex and how can I simply this?

  • 1
    One improvement idea: Also include a preview of nearest non-matches. Preview of matches allows some control for false positives, preview of non-matches would allow some control for false negatives as well. "Nearest" would probably be the matches that happen when ignoring the least amount of the match criteria. Jul 12, 2013 at 9:27
  • One project to take a look at is: Métamorphose ("a batch renamer, a program to rename large sets of files and folders quickly and easily") Jul 12, 2013 at 9:30
  • awesome, I love inspiration. I'll take a look at metamorphose. I will try out the nearest non matches idea too! Good to receive other interactions to do something similar and see how they solve the problem.
    – Gary Yuen
    Jul 12, 2013 at 17:19

1 Answer 1


Your task is to make some kind of String Parse Template Editor. I think that most appropriate way to do this task is to write some kind of formatted string. E.g. if you are using c# it'll be format for StringBuilder. This is just an illustration of the principle. Table editing of string is not so comfortable as editing it in line. As a minimum - make pivot of your table and start improving from this point. I think it will result in single text input but using your custom autocomplete functionality - suggesting user a choice from available options from the set which you implement.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.