FileWeaver: Flexible File Management with
Automatic Dependency Tracking.
We are interested in how knowledge workers,
such as scientists, track, maintain
and re-find complex information.
We interviewed 23 scientists from various
disciplines, including mathematics, biology
and computer science
and identified 6 themes:
They use different supports for their information
and transfer information across these supports
They hoard information, 
''just in case'' they need it again,
and develop personalized strategies 
to re-find this information
They go through a repetitive 
produce-communicate-reproduce cycle,
and have limited ways of expressing 
dependencies across files.
Based on these findings, we introduce FileWeaver,
which automatically detects dependencies among files,
records their history, and
visualizes dependencies and history 
in interactive graphs.
FileWeaver helps users:
keep files consistent with their dependencies;
re-find related content; and
easily share files and their dependencies.
We present four use cases that illustrate
different features of FileWeaver:
Maintaining dependencies across files;
Abstracting file formats via polymorphic files;
Navigating histories and managing file versions; and
Sharing files
Use case 1: Maintaining dependencies across files
Jane adds the LaTeX file main.tex to FileWeaver
and then adds the files linked to it.
The file and its linked files appear in the
Graph view with an animation.
She then adds a Python script.
FileWeaver runs the script and adds the generated
PDF file.
Jane manually connects a ReadMe file to the
main LaTeX file.
She edits the LaTeX file to add a figure
and is prompted for a commit message.
FileWeaver automatically updates all dependent files,
and opens the resulting PDF file.
The new figure has been added.
Jane opens the original folder of the Python
script and edits it to change the color to green
After saving it, FileWeaver runs the scripts,
updates the linked files, and opens the updated PDF.
Jane tags the ReadMe file with a new name
in the Graph view to facilitate finding it later
Use case 2: Abstracting file formats 
via polymorphic files
Jane opens the folder of an image file 
and sees four variants of the same figure.
She merges them into a polymorphic file, or morph.
The Graph view connects the variants with blue lines.
Jane collapses the morph to simplify the graph 
and reduce clutter.
When she calls the morph from the Beamer file,
FileWeaver automatically calls the preferred extension
Jane expands the morph to check 
which variant was used.
Use case 3: Navigating histories 
and managing file versions
Jane opens the history of the main TeX file.
She first opens a previous version.
and then selects two recent versions 
and displays their differences.
Jane creates a copy of the file with its linked files.
In the Graph view, a green arrow links the
original to the copy.
She updates the files linked to the copy.
She first edits the copy and sees the result.
She then edits the original and checks the result.
When she opens the History view, she can see
the branch with the original and the copy.
Use case 4: Sharing files
Jane wants to share all files related to the main TeX file with Alex.
She selects ‘Flat Archive’, which gathers
all relevant files into a single folder.
In order for Alex to run the project, Jane
must create a runnable archive that also copies
the hierarchy of folders.
This lets Alex directly edit and compile these files.
In summary, FileWeaver connects inter-related files, 
file histories and existing tools
to help knowledge workers manage the lifecycle
of their documents.
Thank you.
