Skip to content
cpopell edited this page May 1, 2014 · 2 revisions

Functional Specification

Overview

Furnace is a Python module that takes in an unstructured scientific unit and structures it. This specification is not complete, and represents only an early idea of what Furnace will represent when complete. Any UI or phrasing is merely to illustrate, and precise UI may change. Later editions may switch from CLI to standalone GUI or web, though it's more likely a different system will call Furnace.

Technical specifications are discussed in the tech spec, below.

Scenarios

Scenario 1: Standalone

Alice has a great number of battery specs scraped she wants to compare, but they're all in different formats-not just units, but in capitalization, phrasing, spacing, and more. This makes simply passing them through traditional unit converters difficult.

Alice sets up a short script to call Furnace on each of these battery specs. Furnace will present her with a numeric value with the unit she asked for, standardized, as well as warn her in cases where it was unable to standardize specifications. If she wants to, she can easily have it presented in a variety of different formats, or simply choose to only output units provided in a specific format. Alice can choose the prefix on each unit in her output, such as Kilowatt Hour (3.6 Mega Joules) or Watt-second (1 Joule).

Scenario 2: Interlinked

Bob, similar to Alice, also has a great number of units he wants to compare. However, he also wants this passed as the result to another module (Forge? TBD). He calls Furnace from his other code on all of the units that he prepared in his previous scraping or database preparation, and spits it out in a determined numerical and unit format. He can return as many different formats as he wants, or just one. He can also keep the units in their input format, but parsed.

Non-Goals

This version will not contain

  • Any sort of GUI
  • 'pretty' parsing
  • Any complicated output formatting. Most complicated will be csv.

Flowchart

User Interface Specification

Technical Specification