reference. 术语表:文档、文学编程与数学[glossary]
本页汇总Flora各主题共用的术语。条目按主题分组,给出简短定义;需要展开时链接到相应页面。术语名以代码格式写出,中文释名放在括号中。主题入口是Grove文档、数学语言与文学编程。
Grove与文档模型[glossary-grove]
tree(树):可独立寻址的一段内容,有地址、标题和可选元数据。root page(页面):一个.plant文件对应的顶层tree;文件名就是页面地址。subtree:在文档中声明一棵嵌套tree的命令;需要长期引用时用#:id给稳定地址。address(地址):具名tree的#:id或页面的文件名;未命名tree获得unstable-NNNN形式的临时地址。transclude(嵌入):按ID查询森林,把目标tree的正文放在当前位置,并保留来源;不导入程序binding。link(链接):指向tree ID的阅读引用,不建立Scheme依赖。taxon:tree的种类;写小写英文名,大小写不敏感,显示时首字母大写并加句点。tag:主题标签,和taxon一样是可查询的内容节点。frontmatter(元数据):title、summary、published、updated等,属于各自的tree。content tree(内容树):命令与文本解析后的结构化结果,是分析和渲染的输入。forest(森林):全站页面与tree组成的内容集合;跨文章查询在分析阶段基于它。- 读取(reading):解析
.plant并对其中Scheme求值;示例核验也在此进行。 - 分析(analyzing):建立forest与关系,例如
content-node relation。 - 渲染(rendering):把内容树生成HTML或其他artifact。
checked:读取时通过核验;不表示浏览器实时运行,也不等于形式化证明。backlinks/related/context:森林中的阅读关系,可折叠查看;不等于程序requires。
写作命令与内容[glossary-writing]
at-exp:以at符号开头的Scribble语法;命令产生内容节点,Scheme表达式在读取时求值。content command(内容命令):如title、paragraph、link、subtree,产生内容节点而非直接输出HTML。paragraph:显式声明段落;普通文本按空行自动分段。verbatim:原样保留空白与换行的代码或文本块。code-block:带语言高亮的代码块;构建时高亮,不执行其中代码。#:style:为内容指定命名样式或HTML属性;class与渲染器的结构性class合并。flow:段落与行内内容的排布处理;文本块据此解码为段落。inline-subtree:正文中可独立寻址的小节;它有自己的页面,查询时可与文章页面区分。
构建、准备与缓存[glossary-build]
renderer(渲染器):把内容树生成HTML或其他artifact;routes决定页面路径。artifact(产物):构建输出,如HTML页面、CSS、字体和build/programs/下的源码。prepare(准备阶段):读页之前准备命令模块与模块文章。session(会话):保存模块文章的文档与依赖,供读页复用,不为展示重复执行。depend-on!:把额外数据文件登记为依赖;文件变化后相关文章与输出一起失效。disable-cache!:让文章在每次构建中重新求值,用于时间、随机数或副作用。grove check/grove build:前者始终重新求值并完整核验,后者可复用输入未变的结果。
阶段分工、缓存复用与失效的完整说明见构建阶段与缓存。
文学编程[glossary-lp]
fragment(片段):保存完整Scheme define的语法、原文与来源;声明时不执行。code-fragment:插入Scheme定义并建立片段的宏;make-fragment从datum建立片段。program(计划):声明片段的装配顺序与导出,只声明不执行。详见片段、计划与实例。instance(实例):按计划在新命名空间执行定义后得到的、有运行状态的集合;instantiate-program创建它。instance-binding:从实例取得已声明的入口,不重新执行定义。requires/initial-requires:作者声明的运行依赖/初始化前依赖;不是自动自由变量分析。Program./Module./Project./Example./Code.:LP案例中的taxon标签,表示内容种类而非运行按钮。define-module(模块文章):在.plant中声明真实Scheme模块与公共接口。详见模块导入。project(工程):多个计划组成的模块工程;make-project与instantiate-project组织并实例化。详见多文件工程。code-chunk(文本片段):命名源码字符串,只做文本组合与输出,不提供作用域。详见文本片段组合。program-output:声明.scm构建产物并生成Download链接;下载或展示不触发实例化。checked-example/checked-property/checked-error:分别核验值、有限样本性质和异常key。
数学语言[glossary-math]
Formula(φ:):从数学文本读出Semantic值的入口。Semantic(◆:):可计算的数学对象,核心计算API的输入。Notation(◇:):描述排版结构的构造器,生成MathML。term:Semantic值的内部结构,供关系与规则处理;来源和显示偏好保存在旁侧metadata中。pass:计算的单个阶段;报告记录各pass的名称与规则路径。report(报告):多阶段计算的结果、完成状态与derivation。derivation(推导):可逐步重放的规则步骤;math-verify-derivation独立验证它。- 核心API:
math-calculate、math-simplify、math-differentiate等接收Semantic值并返回可读取的报告;assumptions声明事实,coordinate声明坐标。
关系查询[glossary-relations]
query/run*:声明要返回的逻辑变量并收集解。fresh/conde:引入存在量词变量/表示析取。==/=/=:统一两个项/约束两项不相等。fail/succeed:失败与成功的空目标。ruleo:数学规则目录事实(名称、类别、模式、docstring)。pageo/nodeo/node-propertyo:页面与内容节点的关系。content-node relation:分析阶段为每篇文章IR生成的节点关系。source-locationo:返回节点对应的源文件、行与列。query-link:查询结果专用链接节点,不会被记为文章创建的入向引用。
DSL与可用谓词的速查见关系查询参考。