firemail

标题: mork数据库 [打印本页]

作者: hechengjin    时间: 2016-3-13 20:41
标题: 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
Model
The 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







欢迎光临 firemail (http://firemail.wang:8088/) Powered by Discuz! X3