hechengjin 发表于 2016-3-13 20:41:25

mork数据库




https://developer.mozilla.org/en-US/search?q=mork
firemail中邮件存储相关的msf文件和通讯录存储用的都是mork数据库
https://wiki.mozilla.org/Mork

https://wiki.mozilla.org/Examples_of_various_Address_Book_formats
ModelThe basic Mork content model is a table (or synonymously, a sparse matrix) composed of rows containing cells,where each cell is a member of exactly one column (col). Each cell is one attribute in a row. The name of the attribute is a literal designating the column, and the content of the attribute is the value. The content value of a cell is either a literal (lit) or a reference (ref). Each ref points to a lit or row or table, so a a cell can "contain" another shared object by reference.
稀疏矩阵(sparse matrix):
矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律,则称该矩阵为稀疏矩阵(sparse matrix);与之相区别的是,如果非零元素的分布存在规律(如上三角矩阵、下三角矩阵、对称矩阵),则称该矩阵为特殊矩阵。



[*]< - open angle - begins a dict (inside a dict, begins metainfo row)
[*]> - close angle - ends a dict
[*][ - open bracket - begins a row (inside a row, begins metainfo row)
[*]] - close bracket - ends a row
[*]{ - open brace - begins a table (inside a table, begins metainfo row)
[*]} - close brace - ends a table
[*]( - open paren - begins a cell
[*]) - close paren - ends a cell
[*]^ - up arrow - dereference following id for literal value
[*]r - lower r - dereference following oid for row (by ref) value
[*]t - lower t - dereference following oid for table (by ref) value
[*]: - colon - next value is scope namespace for preceding id
[*]= - equals - begin a literal value inside a cell
[*]+ - plus - add update: insert content
[*]- - minus - cut update: remove content
[*]! - bang - put update: clear and set content



A Mork implementation should have more than one map -- one for each scope is needed. But version 1.4 of Mork only uses two scopes: a for atom literals and c for column literals. The former, a, is the default scope for idss in a dict, unless explicitly changed to the latter by a metadict containing a (atomScope=c) cell.

all cols default to scope c and all slots default to scope a.

oid ( object identity)   composed of two parts: id and scope
octet sequence字节序列

panacea.dat    https://wiki.mozilla.org/User:Em ... ssageincomingserver



页: [1]
查看完整版本: mork数据库