Netlab Values (e.g.,
Netlab Values File Format) - A text format used to specify and/or transport values between
neural networks. Usually,
NLV files hold values representing
axon levels. These values are used, for example, as stimuli input to running networks.
. . . . . . .
Uses in Netlab
NLV is specially designed to be fairly easy for humans to read. Besides being an input file format for the runtime, it is also the syntax used for specifying static data directly in Noodle™ code. The command-line versions of Netlab include the ability to specify NLV as output, though the web-based systems are limited to
CSV formatted output. In essence, you are able to specify NLV output in your Noodle™ code (for compatibility with the future), but for now it will be compiled as though you had specified
CSV output.
. . . . . . .
Example NLV Record
NLV files may contain one to many NLV records. As mentioned, NLV records can be formatted by humans, or machines, to be relatively easy to interpret by humans, for example:
0 0 0 100 100 0 0 0
0 0 100 0 0 100 0 0
0 100 0 0 0 0 100 0
0 100 0 0 0 0 100 0
0 100 100 100 100 100 100 0
0 100 0 0 0 0 100 0
0 100 0 0 0 0 100 0
0 100 0 0 0 0 100 0
100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
50 27 0 100 100 0 100 100 &
Here, a single ROW contains:
- an 8x8 glyph-representation of a letter (in this example, the
letter 'A'), along with other information, including:
- a concept-representation of the same letter (a simple array of
26 values where a corresponding array element is activated
based on the letter's position in the western alphabet, whether
upper OR lower case), followed by 16 values to represent numerical
value-place if the glyph is used in a numerical context (base-2 to 16).
- a concept representation consisting of an array of 52 elements
(26 lowercase, followed by 26-uppercase slots to represent all
the glyphs upper AND lower, followed by values to represent the
10 digit characters/glyphs. and
- some other (presumably application dependent) information, and
finally
- An ampersand ('&'), which tells the reading application that it
has reached the end of one NLV record.
. . . . . . .
Important Use Notes/Conventions
tbd.
. . . . . . .
More Details Than You Probably Wanted
The values are standard NnDL "Noodle™" values, just like you would represent them in Noodle source-code. They default to percentage, also just as they do in Noodle source-code.
Block comments (C-styled, as in Noodle™) are also allowed. Just as in C, comments may not be nested.
Values can be composed of digits, the plus or minus sign, and the period [0-9\.\,\-\+\/\*]. Values may not be grouped (hundreds, thousands, etc.). Note that the comma (,) is also an NLV reserved value-character for use in countries where commas are used as decimal-points. It MUST NOT be used for grouping as no grouping is allowed. For now, only axon values are kept so the minus sign is superfluous.
- If an application needs more values than are in a given ROW
the application will pad the row by filling the extra fields
with an application-specified pad value.
- If an application needs less values than are in a given ROW,
the application will discard the extra values, and begin
reading in the NEXT row at the START of the next ROW in the
NLV file. That is, the application will look for its next
row of data right after the ampersand that ends the current row.
. . . . . . .
Compatibility: Conversion to CSV or spread-sheet
NLV data is also easy to convert to CSV (this is ONLY for cultures where a point ('.') is used for a decimal-point**:
- Strip all comment-fields, replacing them with a single space, then
- Convert each separator character (i.e., any character that is not an NLV-reserved value character [^0-9\.\,\-\+]) to a single space, then
- Convert each continuous group of white-space characters (e.g., spc,tab,cr,lf) to a single comma (','), then
- Convert each ampersand ('&') to a new-line (CR, LF, LFCR, or CRLF).
** In countries where comma is used as a decimal separator, the single comma in step-C may be replaced with a single space. This should allow the file to be read into your spread-sheet or database as a space-delimited file
. . . . . . .
Compatibility: Converting spread-sheet data to NLV:
It is also easy to convert values stored as CSV into NLV:
- If dot is decimal-point (e.g., U.S.):
- Add an ampersand ('&') to the end of each row.
- If comma is decimal-point:
- Add an ampersand ('&') to the end of each row, and
- Save it as a SPACE delimited file from your spreadsheet
From within a spread-sheet application: you can either include an ampersand on the end by including it at the end of the last field, or by including an extra field on the end of your data, which contains only an ampersand. The latter solution will have the effect of including an extra blank field on the end of your NLV data, but this should not be too much of a problem, since, in NLV, extra un-needed fields in rows are simply ignored. In other words reading of the next record will begin at the next ampersand delimited row.