tblLVST_GrammarContent

Table Description:

Contains the actual grammars used during recognition. The MD5 hash is used to uniquely identify grammars; when trying to determine if a grammar is already in the database, first, compute the MD5 hash on the suspect grammar (LumenVox uses crpytopp), and examine each the 16 bytes in groups of four, treating them as 4 long integers (C++ type). You can do rapid searching by examining each of the integers to determine if a suspect grammar matches something in the database. Consult the encoding to determine if you need to process the actual content, and the format to determine how to handle the resulting content.

Table structure:

Column Name Data Type Data Length Default Value See Also
GContentID INTEGER N/A N/A N/A
GContentMD5_1 INTEGER N/A N/A sqlite_encode_binary
sqlite_decode_binary
GContentMD5_2 INTEGER N/A N/A sqlite_encode_binary
sqlite_decode_binary
GContentMD5_3 INTEGER N/A N/A sqlite_encode_binary
sqlite_decode_binary
GContentMD5_4 INTEGER N/A N/A sqlite_encode_binary
sqlite_decode_binary
cGContentFormat INTEGER N/A N/A tblLVST_GrammarContent_cGContentFormat
sqlite_encode_binary
sqlite_decode_binary
cGContentEncoding INTEGER N/A N/A tblLVST_GrammarContent
tblLVST_GrammarContent_cGContentEncoding
sqlite_encode_binary
sqlite_decode_binary
GContent TEXT N/A N/A sqlite_encode_binary
sqlite_decode_binary

Primary Keys:

GContentID

Foreign Key Reference Table Reference Key
GContentFormat tblLVST_DBConstants ContentValue
GContentEncoding tblLVST_DBConstants ContentValue

Column Descriptions and Constraints:

Column Description Constraint Name Constraint Description
GContentID Autoincrementing primary key. N/A N/A
GContentMD5_1 The first group of 4 bytes of the 128 bit (16 byte) MD5 hash on original grammar. The hash itself is stored by first computing the MD5 on the grammar, and then treating the hash as four 4-byte integers. The grammar is placed into the database along with the 4 groups of the hash, to quickly search for grammars, and to uniquely identify grammars. The four MD5 fields are only useful as a group. N/A N/A
GContentMD5_2 The second group of 4 bytes of 128 bit (16 byte) MD5 hash on original grammar. The hash itself is stored by first computing the MD5 on the grammar, and then treating the hash as four 4-byte integers. The grammar is placed into the database along with the 4 groups of the hash, to quickly search for grammars, and to uniquely identify grammars. The four MD5 fields are only useful as a group. N/A N/A
GContentMD5_3 The third group 4 bytes of 128 bit (16 byte) MD5 hash on original grammar. The hash itself is stored by first computing the MD5 on the grammar, and then treating the hash as four 4-byte integers. The grammar is placed into the database along with the 4 groups of the hash, to quickly search for grammars, and to uniquely identify grammars. The four MD5 fields are only useful as a group. N/A N/A
GContentMD5_4 The fourth group 4 bytes of 128 bit (16 byte) MD5 hash on original grammar. The hash itself is stored by first computing the MD5 on the grammar, and then treating the hash as four 4-byte integers. The grammar is placed into the database along with the 4 groups of the hash, to quickly search for grammars, and to uniquely identify grammars. The four MD5 fields are only useful as a group. N/A N/A
cGContentFormat Details the grammar format of the grammar content. See tblLVST_GrammarContent_cGContentFormat. MustExist The value in cGContentFormat must exist in tblLVST_GrammarContent _cGContentFormat.
cGContentEncoding Track the encoding of the grammar. Currently, it must be one of "TEXT" or "BINARY" in tblLVST_GrammarContent_GContentEncoding MustExist The value in cGContentEncoding must exsit in tblLVST_GrammarContent _cGContenEncoding.
GContent The actual grammar being stored. For TEXT-encoded grammars, the grammar can be used directly; for BINARY-encoded grammars, you *must* use sqlite_decode_binary to retrieve the original binary grammar object. N/A N/A

Table Constraints:

Constraint Name Constraint Description Columns Related
notduplicateMD5 no duplicate MD5 value is allowed GContentMD5_1, GContentMD5_2, GContentMD5_3, GContentMD5_4
© 2012 LumenVox LLC. All rights reserved.