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与可用谓词的速查见关系查询参考。