chaffjs 0.29.0 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (681) hide show
  1. package/dist/announced-count.d.ts +2 -0
  2. package/dist/announced-count.d.ts.map +1 -1
  3. package/dist/announced-count.js +4 -3
  4. package/dist/announced-count.js.map +1 -1
  5. package/dist/contacts/addresses.d.ts +21 -0
  6. package/dist/contacts/addresses.d.ts.map +1 -0
  7. package/dist/contacts/addresses.js +144 -0
  8. package/dist/contacts/addresses.js.map +1 -0
  9. package/dist/contacts/emails.d.ts +11 -0
  10. package/dist/contacts/emails.d.ts.map +1 -0
  11. package/dist/contacts/emails.js +51 -0
  12. package/dist/contacts/emails.js.map +1 -0
  13. package/dist/contacts/variants.d.ts +14 -0
  14. package/dist/contacts/variants.d.ts.map +1 -0
  15. package/dist/contacts/variants.js +25 -0
  16. package/dist/contacts/variants.js.map +1 -0
  17. package/dist/derived/battery-runtime.d.ts +85 -0
  18. package/dist/derived/battery-runtime.d.ts.map +1 -0
  19. package/dist/derived/battery-runtime.js +217 -0
  20. package/dist/derived/battery-runtime.js.map +1 -0
  21. package/dist/derived/period-counts.d.ts +48 -0
  22. package/dist/derived/period-counts.d.ts.map +1 -0
  23. package/dist/derived/period-counts.js +128 -0
  24. package/dist/derived/period-counts.js.map +1 -0
  25. package/dist/derived/session-hours.d.ts +26 -0
  26. package/dist/derived/session-hours.d.ts.map +1 -0
  27. package/dist/derived/session-hours.js +29 -0
  28. package/dist/derived/session-hours.js.map +1 -0
  29. package/dist/derived/time-lengths.d.ts +37 -0
  30. package/dist/derived/time-lengths.d.ts.map +1 -0
  31. package/dist/derived/time-lengths.js +171 -0
  32. package/dist/derived/time-lengths.js.map +1 -0
  33. package/dist/derived/unit-counts.d.ts +7 -0
  34. package/dist/derived/unit-counts.d.ts.map +1 -0
  35. package/dist/derived/unit-counts.js +13 -0
  36. package/dist/derived/unit-counts.js.map +1 -0
  37. package/dist/derived/use-interval.d.ts +33 -0
  38. package/dist/derived/use-interval.d.ts.map +1 -0
  39. package/dist/derived/use-interval.js +93 -0
  40. package/dist/derived/use-interval.js.map +1 -0
  41. package/dist/derived/working-hours.d.ts +36 -0
  42. package/dist/derived/working-hours.d.ts.map +1 -0
  43. package/dist/derived/working-hours.js +55 -0
  44. package/dist/derived/working-hours.js.map +1 -0
  45. package/dist/detectors/acronym-expansion.d.ts +1 -1
  46. package/dist/detectors/acronym-expansion.d.ts.map +1 -1
  47. package/dist/detectors/acronym-expansion.js +46 -2
  48. package/dist/detectors/acronym-expansion.js.map +1 -1
  49. package/dist/detectors/announced-count.d.ts.map +1 -1
  50. package/dist/detectors/announced-count.js +1 -0
  51. package/dist/detectors/announced-count.js.map +1 -1
  52. package/dist/detectors/capacity-runtime.d.ts +7 -0
  53. package/dist/detectors/capacity-runtime.d.ts.map +1 -0
  54. package/dist/detectors/capacity-runtime.js +98 -0
  55. package/dist/detectors/capacity-runtime.js.map +1 -0
  56. package/dist/detectors/capitalised-term.d.ts +44 -0
  57. package/dist/detectors/capitalised-term.d.ts.map +1 -0
  58. package/dist/detectors/capitalised-term.js +101 -0
  59. package/dist/detectors/capitalised-term.js.map +1 -0
  60. package/dist/detectors/contact-variant.d.ts +3 -0
  61. package/dist/detectors/contact-variant.d.ts.map +1 -0
  62. package/dist/detectors/contact-variant.js +21 -0
  63. package/dist/detectors/contact-variant.js.map +1 -0
  64. package/dist/detectors/count-over-capacity.d.ts +4 -0
  65. package/dist/detectors/count-over-capacity.d.ts.map +1 -0
  66. package/dist/detectors/count-over-capacity.js +26 -0
  67. package/dist/detectors/count-over-capacity.js.map +1 -0
  68. package/dist/detectors/date-outside-period.d.ts.map +1 -1
  69. package/dist/detectors/date-outside-period.js +5 -1
  70. package/dist/detectors/date-outside-period.js.map +1 -1
  71. package/dist/detectors/date-stamp-order.d.ts +3 -0
  72. package/dist/detectors/date-stamp-order.d.ts.map +1 -0
  73. package/dist/detectors/date-stamp-order.js +24 -0
  74. package/dist/detectors/date-stamp-order.js.map +1 -0
  75. package/dist/detectors/defined-term-form.d.ts.map +1 -1
  76. package/dist/detectors/defined-term-form.js +57 -7
  77. package/dist/detectors/defined-term-form.js.map +1 -1
  78. package/dist/detectors/definition-use.d.ts +1 -1
  79. package/dist/detectors/definition-use.d.ts.map +1 -1
  80. package/dist/detectors/definition-use.js +4 -2
  81. package/dist/detectors/definition-use.js.map +1 -1
  82. package/dist/detectors/derived-numbers.d.ts +11 -1
  83. package/dist/detectors/derived-numbers.d.ts.map +1 -1
  84. package/dist/detectors/derived-numbers.js +74 -20
  85. package/dist/detectors/derived-numbers.js.map +1 -1
  86. package/dist/detectors/due-date.d.ts.map +1 -1
  87. package/dist/detectors/due-date.js +6 -0
  88. package/dist/detectors/due-date.js.map +1 -1
  89. package/dist/detectors/en-shape.d.ts.map +1 -1
  90. package/dist/detectors/en-shape.js +7 -4
  91. package/dist/detectors/en-shape.js.map +1 -1
  92. package/dist/detectors/event-deadline.d.ts +3 -0
  93. package/dist/detectors/event-deadline.d.ts.map +1 -0
  94. package/dist/detectors/event-deadline.js +24 -0
  95. package/dist/detectors/event-deadline.js.map +1 -0
  96. package/dist/detectors/fact-consistency.d.ts +1 -1
  97. package/dist/detectors/fact-consistency.d.ts.map +1 -1
  98. package/dist/detectors/fact-consistency.js +52 -3
  99. package/dist/detectors/fact-consistency.js.map +1 -1
  100. package/dist/detectors/heading-case.d.ts +5 -2
  101. package/dist/detectors/heading-case.d.ts.map +1 -1
  102. package/dist/detectors/heading-case.js +12 -4
  103. package/dist/detectors/heading-case.js.map +1 -1
  104. package/dist/detectors/heading-echo.d.ts +5 -0
  105. package/dist/detectors/heading-echo.d.ts.map +1 -1
  106. package/dist/detectors/heading-echo.js +14 -1
  107. package/dist/detectors/heading-echo.js.map +1 -1
  108. package/dist/detectors/layout-code.d.ts +5 -0
  109. package/dist/detectors/layout-code.d.ts.map +1 -0
  110. package/dist/detectors/layout-code.js +124 -0
  111. package/dist/detectors/layout-code.js.map +1 -0
  112. package/dist/detectors/measured-facts.d.ts +8 -0
  113. package/dist/detectors/measured-facts.d.ts.map +1 -0
  114. package/dist/detectors/measured-facts.js +18 -0
  115. package/dist/detectors/measured-facts.js.map +1 -0
  116. package/dist/detectors/name-variant-model-codes.d.ts +11 -0
  117. package/dist/detectors/name-variant-model-codes.d.ts.map +1 -0
  118. package/dist/detectors/name-variant-model-codes.js +21 -0
  119. package/dist/detectors/name-variant-model-codes.js.map +1 -0
  120. package/dist/detectors/name-variant.d.ts.map +1 -1
  121. package/dist/detectors/name-variant.js +78 -10
  122. package/dist/detectors/name-variant.js.map +1 -1
  123. package/dist/detectors/orthographic-variant.d.ts.map +1 -1
  124. package/dist/detectors/orthographic-variant.js +62 -7
  125. package/dist/detectors/orthographic-variant.js.map +1 -1
  126. package/dist/detectors/orthography.d.ts.map +1 -1
  127. package/dist/detectors/orthography.js +12 -6
  128. package/dist/detectors/orthography.js.map +1 -1
  129. package/dist/detectors/party-order.d.ts +3 -0
  130. package/dist/detectors/party-order.d.ts.map +1 -0
  131. package/dist/detectors/party-order.js +46 -0
  132. package/dist/detectors/party-order.js.map +1 -0
  133. package/dist/detectors/quantity-range.d.ts +3 -0
  134. package/dist/detectors/quantity-range.d.ts.map +1 -0
  135. package/dist/detectors/quantity-range.js +35 -0
  136. package/dist/detectors/quantity-range.js.map +1 -0
  137. package/dist/detectors/range-band.d.ts +5 -0
  138. package/dist/detectors/range-band.d.ts.map +1 -0
  139. package/dist/detectors/range-band.js +80 -0
  140. package/dist/detectors/range-band.js.map +1 -0
  141. package/dist/detectors/registry/capacity-runtime-mismatch.d.ts +3 -0
  142. package/dist/detectors/registry/capacity-runtime-mismatch.d.ts.map +1 -0
  143. package/dist/detectors/registry/capacity-runtime-mismatch.js +3 -0
  144. package/dist/detectors/registry/capacity-runtime-mismatch.js.map +1 -0
  145. package/dist/detectors/registry/connection-time-short.d.ts +3 -0
  146. package/dist/detectors/registry/connection-time-short.d.ts.map +1 -0
  147. package/dist/detectors/registry/connection-time-short.js +3 -0
  148. package/dist/detectors/registry/connection-time-short.js.map +1 -0
  149. package/dist/detectors/registry/contact-variant.d.ts +3 -0
  150. package/dist/detectors/registry/contact-variant.d.ts.map +1 -0
  151. package/dist/detectors/registry/contact-variant.js +3 -0
  152. package/dist/detectors/registry/contact-variant.js.map +1 -0
  153. package/dist/detectors/registry/count-over-capacity.d.ts +3 -0
  154. package/dist/detectors/registry/count-over-capacity.d.ts.map +1 -0
  155. package/dist/detectors/registry/count-over-capacity.js +3 -0
  156. package/dist/detectors/registry/count-over-capacity.js.map +1 -0
  157. package/dist/detectors/registry/date-stamp-order.d.ts +3 -0
  158. package/dist/detectors/registry/date-stamp-order.d.ts.map +1 -0
  159. package/dist/detectors/registry/date-stamp-order.js +3 -0
  160. package/dist/detectors/registry/date-stamp-order.js.map +1 -0
  161. package/dist/detectors/registry/duration-product-mismatch.d.ts +3 -0
  162. package/dist/detectors/registry/duration-product-mismatch.d.ts.map +1 -0
  163. package/dist/detectors/registry/duration-product-mismatch.js +3 -0
  164. package/dist/detectors/registry/duration-product-mismatch.js.map +1 -0
  165. package/dist/detectors/registry/event-deadline.d.ts +3 -0
  166. package/dist/detectors/registry/event-deadline.d.ts.map +1 -0
  167. package/dist/detectors/registry/event-deadline.js +3 -0
  168. package/dist/detectors/registry/event-deadline.js.map +1 -0
  169. package/dist/detectors/registry/interval-count-mismatch.d.ts +3 -0
  170. package/dist/detectors/registry/interval-count-mismatch.d.ts.map +1 -0
  171. package/dist/detectors/registry/interval-count-mismatch.js +3 -0
  172. package/dist/detectors/registry/interval-count-mismatch.js.map +1 -0
  173. package/dist/detectors/registry/layout-code-mismatch.d.ts +3 -0
  174. package/dist/detectors/registry/layout-code-mismatch.d.ts.map +1 -0
  175. package/dist/detectors/registry/layout-code-mismatch.js +3 -0
  176. package/dist/detectors/registry/layout-code-mismatch.js.map +1 -0
  177. package/dist/detectors/registry/party-order.d.ts +3 -0
  178. package/dist/detectors/registry/party-order.d.ts.map +1 -0
  179. package/dist/detectors/registry/party-order.js +3 -0
  180. package/dist/detectors/registry/party-order.js.map +1 -0
  181. package/dist/detectors/registry/quantity-range.d.ts +3 -0
  182. package/dist/detectors/registry/quantity-range.d.ts.map +1 -0
  183. package/dist/detectors/registry/quantity-range.js +3 -0
  184. package/dist/detectors/registry/quantity-range.js.map +1 -0
  185. package/dist/detectors/registry/range-band-mismatch.d.ts +3 -0
  186. package/dist/detectors/registry/range-band-mismatch.d.ts.map +1 -0
  187. package/dist/detectors/registry/range-band-mismatch.js +3 -0
  188. package/dist/detectors/registry/range-band-mismatch.js.map +1 -0
  189. package/dist/detectors/registry/rent-multiple-mismatch.d.ts +3 -0
  190. package/dist/detectors/registry/rent-multiple-mismatch.d.ts.map +1 -0
  191. package/dist/detectors/registry/rent-multiple-mismatch.js +3 -0
  192. package/dist/detectors/registry/rent-multiple-mismatch.js.map +1 -0
  193. package/dist/detectors/registry/requirement-lists.d.ts +3 -0
  194. package/dist/detectors/registry/requirement-lists.d.ts.map +1 -0
  195. package/dist/detectors/registry/requirement-lists.js +3 -0
  196. package/dist/detectors/registry/requirement-lists.js.map +1 -0
  197. package/dist/detectors/registry/return-type.d.ts +3 -0
  198. package/dist/detectors/registry/return-type.d.ts.map +1 -0
  199. package/dist/detectors/registry/return-type.js +3 -0
  200. package/dist/detectors/registry/return-type.js.map +1 -0
  201. package/dist/detectors/registry/scaled-quantity-mismatch.d.ts +3 -0
  202. package/dist/detectors/registry/scaled-quantity-mismatch.d.ts.map +1 -0
  203. package/dist/detectors/registry/scaled-quantity-mismatch.js +3 -0
  204. package/dist/detectors/registry/scaled-quantity-mismatch.js.map +1 -0
  205. package/dist/detectors/registry/step-time-sum-mismatch.d.ts +3 -0
  206. package/dist/detectors/registry/step-time-sum-mismatch.d.ts.map +1 -0
  207. package/dist/detectors/registry/step-time-sum-mismatch.js +3 -0
  208. package/dist/detectors/registry/step-time-sum-mismatch.js.map +1 -0
  209. package/dist/detectors/registry/time-range-reversed.d.ts +3 -0
  210. package/dist/detectors/registry/time-range-reversed.d.ts.map +1 -0
  211. package/dist/detectors/registry/time-range-reversed.js +3 -0
  212. package/dist/detectors/registry/time-range-reversed.js.map +1 -0
  213. package/dist/detectors/registry/unlisted-item-used.d.ts +3 -0
  214. package/dist/detectors/registry/unlisted-item-used.d.ts.map +1 -0
  215. package/dist/detectors/registry/unlisted-item-used.js +3 -0
  216. package/dist/detectors/registry/unlisted-item-used.js.map +1 -0
  217. package/dist/detectors/registry/walk-time-distance-mismatch.d.ts +3 -0
  218. package/dist/detectors/registry/walk-time-distance-mismatch.d.ts.map +1 -0
  219. package/dist/detectors/registry/walk-time-distance-mismatch.js +3 -0
  220. package/dist/detectors/registry/walk-time-distance-mismatch.js.map +1 -0
  221. package/dist/detectors/rent-multiple-mismatch.d.ts +3 -0
  222. package/dist/detectors/rent-multiple-mismatch.d.ts.map +1 -0
  223. package/dist/detectors/rent-multiple-mismatch.js +39 -0
  224. package/dist/detectors/rent-multiple-mismatch.js.map +1 -0
  225. package/dist/detectors/requirement-lists.d.ts +3 -0
  226. package/dist/detectors/requirement-lists.d.ts.map +1 -0
  227. package/dist/detectors/requirement-lists.js +46 -0
  228. package/dist/detectors/requirement-lists.js.map +1 -0
  229. package/dist/detectors/return-type.d.ts +3 -0
  230. package/dist/detectors/return-type.d.ts.map +1 -0
  231. package/dist/detectors/return-type.js +24 -0
  232. package/dist/detectors/return-type.js.map +1 -0
  233. package/dist/detectors/scaled-quantity.d.ts +3 -0
  234. package/dist/detectors/scaled-quantity.d.ts.map +1 -0
  235. package/dist/detectors/scaled-quantity.js +37 -0
  236. package/dist/detectors/scaled-quantity.js.map +1 -0
  237. package/dist/detectors/signals.d.ts.map +1 -1
  238. package/dist/detectors/signals.js +3 -1
  239. package/dist/detectors/signals.js.map +1 -1
  240. package/dist/detectors/step-time-sum.d.ts +3 -0
  241. package/dist/detectors/step-time-sum.d.ts.map +1 -0
  242. package/dist/detectors/step-time-sum.js +46 -0
  243. package/dist/detectors/step-time-sum.js.map +1 -0
  244. package/dist/detectors/structure-tree.d.ts +2 -0
  245. package/dist/detectors/structure-tree.d.ts.map +1 -1
  246. package/dist/detectors/structure-tree.js +31 -6
  247. package/dist/detectors/structure-tree.js.map +1 -1
  248. package/dist/detectors/structure.js +1 -1
  249. package/dist/detectors/structure.js.map +1 -1
  250. package/dist/detectors/technical-docs.d.ts +5 -0
  251. package/dist/detectors/technical-docs.d.ts.map +1 -1
  252. package/dist/detectors/technical-docs.js +12 -0
  253. package/dist/detectors/technical-docs.js.map +1 -1
  254. package/dist/detectors/time-order.d.ts +2 -0
  255. package/dist/detectors/time-order.d.ts.map +1 -1
  256. package/dist/detectors/time-order.js +33 -5
  257. package/dist/detectors/time-order.js.map +1 -1
  258. package/dist/detectors/undefined-term.d.ts.map +1 -1
  259. package/dist/detectors/undefined-term.js +19 -3
  260. package/dist/detectors/undefined-term.js.map +1 -1
  261. package/dist/detectors/unit-consistency.d.ts +1 -1
  262. package/dist/detectors/unit-consistency.d.ts.map +1 -1
  263. package/dist/detectors/unit-consistency.js +46 -38
  264. package/dist/detectors/unit-consistency.js.map +1 -1
  265. package/dist/detectors/unlisted-items.d.ts +3 -0
  266. package/dist/detectors/unlisted-items.d.ts.map +1 -0
  267. package/dist/detectors/unlisted-items.js +57 -0
  268. package/dist/detectors/unlisted-items.js.map +1 -0
  269. package/dist/detectors/use-count-words.d.ts +8 -0
  270. package/dist/detectors/use-count-words.d.ts.map +1 -0
  271. package/dist/detectors/use-count-words.js +20 -0
  272. package/dist/detectors/use-count-words.js.map +1 -0
  273. package/dist/detectors/use-interval.d.ts +3 -0
  274. package/dist/detectors/use-interval.d.ts.map +1 -0
  275. package/dist/detectors/use-interval.js +39 -0
  276. package/dist/detectors/use-interval.js.map +1 -0
  277. package/dist/detectors/walk-time-distance-mismatch.d.ts +4 -0
  278. package/dist/detectors/walk-time-distance-mismatch.d.ts.map +1 -0
  279. package/dist/detectors/walk-time-distance-mismatch.js +38 -0
  280. package/dist/detectors/walk-time-distance-mismatch.js.map +1 -0
  281. package/dist/document.d.ts.map +1 -1
  282. package/dist/document.js +4 -1
  283. package/dist/document.js.map +1 -1
  284. package/dist/facts/approximate-tolerance.d.ts +7 -0
  285. package/dist/facts/approximate-tolerance.d.ts.map +1 -0
  286. package/dist/facts/approximate-tolerance.js +16 -0
  287. package/dist/facts/approximate-tolerance.js.map +1 -0
  288. package/dist/facts/item-amounts.d.ts +18 -0
  289. package/dist/facts/item-amounts.d.ts.map +1 -0
  290. package/dist/facts/item-amounts.js +67 -0
  291. package/dist/facts/item-amounts.js.map +1 -0
  292. package/dist/facts/labelled-facts.d.ts +4 -0
  293. package/dist/facts/labelled-facts.d.ts.map +1 -1
  294. package/dist/facts/labelled-facts.js +21 -6
  295. package/dist/facts/labelled-facts.js.map +1 -1
  296. package/dist/facts/measure-units.d.ts +5 -0
  297. package/dist/facts/measure-units.d.ts.map +1 -0
  298. package/dist/facts/measure-units.js +28 -0
  299. package/dist/facts/measure-units.js.map +1 -0
  300. package/dist/facts/measures.d.ts +23 -4
  301. package/dist/facts/measures.d.ts.map +1 -1
  302. package/dist/facts/measures.js +68 -19
  303. package/dist/facts/measures.js.map +1 -1
  304. package/dist/facts/retention-periods.d.ts +51 -0
  305. package/dist/facts/retention-periods.d.ts.map +1 -0
  306. package/dist/facts/retention-periods.js +148 -0
  307. package/dist/facts/retention-periods.js.map +1 -0
  308. package/dist/facts/table-facts.d.ts +2 -0
  309. package/dist/facts/table-facts.d.ts.map +1 -1
  310. package/dist/facts/table-facts.js +2 -0
  311. package/dist/facts/table-facts.js.map +1 -1
  312. package/dist/facts/unit-conflicts.d.ts +3 -2
  313. package/dist/facts/unit-conflicts.d.ts.map +1 -1
  314. package/dist/facts/unit-conflicts.js +15 -7
  315. package/dist/facts/unit-conflicts.js.map +1 -1
  316. package/dist/facts/unit-equivalents.d.ts +13 -0
  317. package/dist/facts/unit-equivalents.d.ts.map +1 -0
  318. package/dist/facts/unit-equivalents.js +56 -0
  319. package/dist/facts/unit-equivalents.js.map +1 -0
  320. package/dist/facts/unit-tolerance.d.ts +4 -0
  321. package/dist/facts/unit-tolerance.d.ts.map +1 -0
  322. package/dist/facts/unit-tolerance.js +13 -0
  323. package/dist/facts/unit-tolerance.js.map +1 -0
  324. package/dist/facts/unit-word.d.ts +8 -0
  325. package/dist/facts/unit-word.d.ts.map +1 -0
  326. package/dist/facts/unit-word.js +34 -0
  327. package/dist/facts/unit-word.js.map +1 -0
  328. package/dist/facts/written-precision.d.ts +10 -0
  329. package/dist/facts/written-precision.d.ts.map +1 -0
  330. package/dist/facts/written-precision.js +20 -0
  331. package/dist/facts/written-precision.js.map +1 -0
  332. package/dist/kana-spelling.d.ts +12 -0
  333. package/dist/kana-spelling.d.ts.map +1 -1
  334. package/dist/kana-spelling.js +23 -0
  335. package/dist/kana-spelling.js.map +1 -1
  336. package/dist/model-codes.d.ts +23 -0
  337. package/dist/model-codes.d.ts.map +1 -0
  338. package/dist/model-codes.js +81 -0
  339. package/dist/model-codes.js.map +1 -0
  340. package/dist/name-spelling-chars.d.ts +16 -0
  341. package/dist/name-spelling-chars.d.ts.map +1 -0
  342. package/dist/name-spelling-chars.js +14 -0
  343. package/dist/name-spelling-chars.js.map +1 -0
  344. package/dist/name-variants.d.ts +8 -2
  345. package/dist/name-variants.d.ts.map +1 -1
  346. package/dist/name-variants.js +72 -7
  347. package/dist/name-variants.js.map +1 -1
  348. package/dist/name-word-order.d.ts +49 -0
  349. package/dist/name-word-order.d.ts.map +1 -0
  350. package/dist/name-word-order.js +114 -0
  351. package/dist/name-word-order.js.map +1 -0
  352. package/dist/phone-numbers.d.ts.map +1 -1
  353. package/dist/phone-numbers.js +22 -5
  354. package/dist/phone-numbers.js.map +1 -1
  355. package/dist/place-names.d.ts +12 -5
  356. package/dist/place-names.d.ts.map +1 -1
  357. package/dist/place-names.js +34 -14
  358. package/dist/place-names.js.map +1 -1
  359. package/dist/plugin.d.ts +12 -0
  360. package/dist/plugin.d.ts.map +1 -1
  361. package/dist/preamble-paragraphs.d.ts +2 -1
  362. package/dist/preamble-paragraphs.d.ts.map +1 -1
  363. package/dist/preamble-paragraphs.js +16 -1
  364. package/dist/preamble-paragraphs.js.map +1 -1
  365. package/dist/profile/parse.d.ts.map +1 -1
  366. package/dist/profile/parse.js +11 -0
  367. package/dist/profile/parse.js.map +1 -1
  368. package/dist/return-type.d.ts +33 -0
  369. package/dist/return-type.d.ts.map +1 -0
  370. package/dist/return-type.js +302 -0
  371. package/dist/return-type.js.map +1 -0
  372. package/dist/spacing-code.d.ts +6 -0
  373. package/dist/spacing-code.d.ts.map +1 -0
  374. package/dist/spacing-code.js +16 -0
  375. package/dist/spacing-code.js.map +1 -0
  376. package/dist/structure/amount-range.d.ts +2 -2
  377. package/dist/structure/amount-range.d.ts.map +1 -1
  378. package/dist/structure/amount-range.js +12 -5
  379. package/dist/structure/amount-range.js.map +1 -1
  380. package/dist/structure/capacity-count.d.ts +59 -0
  381. package/dist/structure/capacity-count.d.ts.map +1 -0
  382. package/dist/structure/capacity-count.js +118 -0
  383. package/dist/structure/capacity-count.js.map +1 -0
  384. package/dist/structure/connection-times.d.ts +56 -0
  385. package/dist/structure/connection-times.d.ts.map +1 -0
  386. package/dist/structure/connection-times.js +165 -0
  387. package/dist/structure/connection-times.js.map +1 -0
  388. package/dist/structure/counted-amounts.d.ts +6 -0
  389. package/dist/structure/counted-amounts.d.ts.map +1 -1
  390. package/dist/structure/counted-amounts.js +4 -4
  391. package/dist/structure/counted-amounts.js.map +1 -1
  392. package/dist/structure/date-order-tie.d.ts +13 -0
  393. package/dist/structure/date-order-tie.d.ts.map +1 -0
  394. package/dist/structure/date-order-tie.js +61 -0
  395. package/dist/structure/date-order-tie.js.map +1 -0
  396. package/dist/structure/date-order.d.ts +2 -2
  397. package/dist/structure/date-order.d.ts.map +1 -1
  398. package/dist/structure/date-order.js +26 -9
  399. package/dist/structure/date-order.js.map +1 -1
  400. package/dist/structure/date-outside-period.d.ts +8 -0
  401. package/dist/structure/date-outside-period.d.ts.map +1 -1
  402. package/dist/structure/date-outside-period.js +52 -3
  403. package/dist/structure/date-outside-period.js.map +1 -1
  404. package/dist/structure/date-range.d.ts +6 -2
  405. package/dist/structure/date-range.d.ts.map +1 -1
  406. package/dist/structure/date-range.js +37 -9
  407. package/dist/structure/date-range.js.map +1 -1
  408. package/dist/structure/deadline-after-event.d.ts +23 -0
  409. package/dist/structure/deadline-after-event.d.ts.map +1 -0
  410. package/dist/structure/deadline-after-event.js +42 -0
  411. package/dist/structure/deadline-after-event.js.map +1 -0
  412. package/dist/structure/definition-use.d.ts +1 -1
  413. package/dist/structure/definition-use.d.ts.map +1 -1
  414. package/dist/structure/definition-use.js +55 -2
  415. package/dist/structure/definition-use.js.map +1 -1
  416. package/dist/structure/due-date.d.ts.map +1 -1
  417. package/dist/structure/due-date.js +5 -27
  418. package/dist/structure/due-date.js.map +1 -1
  419. package/dist/structure/labelled-date-order.d.ts +38 -0
  420. package/dist/structure/labelled-date-order.d.ts.map +1 -0
  421. package/dist/structure/labelled-date-order.js +41 -0
  422. package/dist/structure/labelled-date-order.js.map +1 -0
  423. package/dist/structure/layout-codes.d.ts +68 -0
  424. package/dist/structure/layout-codes.d.ts.map +1 -0
  425. package/dist/structure/layout-codes.js +161 -0
  426. package/dist/structure/layout-codes.js.map +1 -0
  427. package/dist/structure/leg-times.d.ts +2 -0
  428. package/dist/structure/leg-times.d.ts.map +1 -1
  429. package/dist/structure/leg-times.js +13 -0
  430. package/dist/structure/leg-times.js.map +1 -1
  431. package/dist/structure/measured-amounts.d.ts +17 -0
  432. package/dist/structure/measured-amounts.d.ts.map +1 -0
  433. package/dist/structure/measured-amounts.js +110 -0
  434. package/dist/structure/measured-amounts.js.map +1 -0
  435. package/dist/structure/party-order.d.ts +33 -0
  436. package/dist/structure/party-order.d.ts.map +1 -0
  437. package/dist/structure/party-order.js +79 -0
  438. package/dist/structure/party-order.js.map +1 -0
  439. package/dist/structure/quantity-range.d.ts +8 -0
  440. package/dist/structure/quantity-range.d.ts.map +1 -0
  441. package/dist/structure/quantity-range.js +36 -0
  442. package/dist/structure/quantity-range.js.map +1 -0
  443. package/dist/structure/range-bands.d.ts +75 -0
  444. package/dist/structure/range-bands.d.ts.map +1 -0
  445. package/dist/structure/range-bands.js +244 -0
  446. package/dist/structure/range-bands.js.map +1 -0
  447. package/dist/structure/rent-multiple.d.ts +76 -0
  448. package/dist/structure/rent-multiple.d.ts.map +1 -0
  449. package/dist/structure/rent-multiple.js +186 -0
  450. package/dist/structure/rent-multiple.js.map +1 -0
  451. package/dist/structure/requirement-lists.d.ts +37 -0
  452. package/dist/structure/requirement-lists.d.ts.map +1 -0
  453. package/dist/structure/requirement-lists.js +89 -0
  454. package/dist/structure/requirement-lists.js.map +1 -0
  455. package/dist/structure/scaled-quantities.d.ts +50 -0
  456. package/dist/structure/scaled-quantities.d.ts.map +1 -0
  457. package/dist/structure/scaled-quantities.js +153 -0
  458. package/dist/structure/scaled-quantities.js.map +1 -0
  459. package/dist/structure/stamp-order.d.ts +16 -0
  460. package/dist/structure/stamp-order.d.ts.map +1 -0
  461. package/dist/structure/stamp-order.js +78 -0
  462. package/dist/structure/stamp-order.js.map +1 -0
  463. package/dist/structure/step-times.d.ts +49 -0
  464. package/dist/structure/step-times.d.ts.map +1 -0
  465. package/dist/structure/step-times.js +128 -0
  466. package/dist/structure/step-times.js.map +1 -0
  467. package/dist/structure/term-deadline.d.ts +19 -0
  468. package/dist/structure/term-deadline.d.ts.map +1 -0
  469. package/dist/structure/term-deadline.js +28 -0
  470. package/dist/structure/term-deadline.js.map +1 -0
  471. package/dist/structure/time-order.d.ts +21 -0
  472. package/dist/structure/time-order.d.ts.map +1 -1
  473. package/dist/structure/time-order.js +5 -6
  474. package/dist/structure/time-order.js.map +1 -1
  475. package/dist/structure/time-range.d.ts +16 -0
  476. package/dist/structure/time-range.d.ts.map +1 -0
  477. package/dist/structure/time-range.js +57 -0
  478. package/dist/structure/time-range.js.map +1 -0
  479. package/dist/structure/total-line.d.ts +16 -0
  480. package/dist/structure/total-line.d.ts.map +1 -0
  481. package/dist/structure/total-line.js +44 -0
  482. package/dist/structure/total-line.js.map +1 -0
  483. package/dist/structure/total.d.ts +7 -1
  484. package/dist/structure/total.d.ts.map +1 -1
  485. package/dist/structure/total.js +28 -5
  486. package/dist/structure/total.js.map +1 -1
  487. package/dist/structure/unlisted-items.d.ts +70 -0
  488. package/dist/structure/unlisted-items.d.ts.map +1 -0
  489. package/dist/structure/unlisted-items.js +152 -0
  490. package/dist/structure/unlisted-items.js.map +1 -0
  491. package/dist/structure/version-order.d.ts +2 -0
  492. package/dist/structure/version-order.d.ts.map +1 -1
  493. package/dist/structure/version-order.js +10 -0
  494. package/dist/structure/version-order.js.map +1 -1
  495. package/dist/structure/walk-time.d.ts +87 -0
  496. package/dist/structure/walk-time.d.ts.map +1 -0
  497. package/dist/structure/walk-time.js +195 -0
  498. package/dist/structure/walk-time.js.map +1 -0
  499. package/dist/surname-near.d.ts +6 -0
  500. package/dist/surname-near.d.ts.map +1 -0
  501. package/dist/surname-near.js +31 -0
  502. package/dist/surname-near.js.map +1 -0
  503. package/dist/table-cells.d.ts +13 -0
  504. package/dist/table-cells.d.ts.map +1 -0
  505. package/dist/table-cells.js +36 -0
  506. package/dist/table-cells.js.map +1 -0
  507. package/dist/table-names.d.ts +42 -0
  508. package/dist/table-names.d.ts.map +1 -0
  509. package/dist/table-names.js +94 -0
  510. package/dist/table-names.js.map +1 -0
  511. package/package.json +3 -3
  512. package/profiles/listing.yaml +20 -0
  513. package/rules/announced-count-mismatch.yaml +2 -2
  514. package/rules/capacity-runtime-mismatch.yaml +66 -0
  515. package/rules/connection-time-short.yaml +52 -0
  516. package/rules/contact-variant.yaml +76 -0
  517. package/rules/count-over-capacity.yaml +55 -0
  518. package/rules/date-outside-period.yaml +4 -4
  519. package/rules/date-stamp-order.yaml +82 -0
  520. package/rules/deadline-after-event.yaml +67 -0
  521. package/rules/defined-name-repeated.yaml +2 -2
  522. package/rules/due-before-issue.yaml +11 -7
  523. package/rules/duration-mismatch.yaml +7 -4
  524. package/rules/duration-product-mismatch.yaml +73 -0
  525. package/rules/fact-conflict.yaml +9 -4
  526. package/rules/heading-echo.yaml +2 -2
  527. package/rules/interval-count-mismatch.yaml +54 -0
  528. package/rules/latin-spacing.yaml +2 -2
  529. package/rules/layout-code-mismatch.yaml +68 -0
  530. package/rules/name-variant.yaml +14 -2
  531. package/rules/no-em-dash.yaml +2 -2
  532. package/rules/party-order.yaml +84 -0
  533. package/rules/preamble-length.yaml +2 -2
  534. package/rules/quantity-range-reversed.yaml +53 -0
  535. package/rules/range-band-mismatch.yaml +70 -0
  536. package/rules/rent-multiple-mismatch.yaml +61 -0
  537. package/rules/required-listed-as-preferred.yaml +102 -0
  538. package/rules/return-type-mismatch.yaml +79 -0
  539. package/rules/scaled-quantity-mismatch.yaml +69 -0
  540. package/rules/step-time-sum-mismatch.yaml +65 -0
  541. package/rules/time-range-reversed.yaml +48 -0
  542. package/rules/title-case-consistency.yaml +2 -2
  543. package/rules/total-mismatch.yaml +2 -2
  544. package/rules/undefined-term.yaml +21 -7
  545. package/rules/unit-mismatch.yaml +12 -4
  546. package/rules/unlisted-item-used.yaml +90 -0
  547. package/rules/unused-definition.yaml +2 -2
  548. package/rules/use-before-definition.yaml +2 -2
  549. package/rules/walk-time-distance-mismatch.yaml +55 -0
  550. package/src/announced-count.ts +6 -3
  551. package/src/contacts/addresses.ts +179 -0
  552. package/src/contacts/emails.ts +63 -0
  553. package/src/contacts/variants.ts +33 -0
  554. package/src/derived/battery-runtime.ts +284 -0
  555. package/src/derived/period-counts.ts +178 -0
  556. package/src/derived/session-hours.ts +62 -0
  557. package/src/derived/time-lengths.ts +229 -0
  558. package/src/derived/unit-counts.ts +18 -0
  559. package/src/derived/use-interval.ts +151 -0
  560. package/src/derived/working-hours.ts +97 -0
  561. package/src/detectors/acronym-expansion.ts +57 -2
  562. package/src/detectors/announced-count.ts +1 -0
  563. package/src/detectors/capacity-runtime.ts +128 -0
  564. package/src/detectors/capitalised-term.ts +147 -0
  565. package/src/detectors/contact-variant.ts +24 -0
  566. package/src/detectors/count-over-capacity.ts +37 -0
  567. package/src/detectors/date-outside-period.ts +5 -1
  568. package/src/detectors/date-stamp-order.ts +28 -0
  569. package/src/detectors/defined-term-form.ts +63 -7
  570. package/src/detectors/definition-use.ts +6 -2
  571. package/src/detectors/derived-numbers.ts +97 -24
  572. package/src/detectors/due-date.ts +10 -2
  573. package/src/detectors/en-shape.ts +11 -4
  574. package/src/detectors/event-deadline.ts +29 -0
  575. package/src/detectors/fact-consistency.ts +64 -3
  576. package/src/detectors/heading-case.ts +13 -4
  577. package/src/detectors/heading-echo.ts +17 -1
  578. package/src/detectors/layout-code.ts +174 -0
  579. package/src/detectors/measured-facts.ts +20 -0
  580. package/src/detectors/name-variant-model-codes.ts +27 -0
  581. package/src/detectors/name-variant.ts +99 -15
  582. package/src/detectors/orthographic-variant.ts +78 -9
  583. package/src/detectors/orthography.ts +16 -6
  584. package/src/detectors/party-order.ts +50 -0
  585. package/src/detectors/quantity-range.ts +47 -0
  586. package/src/detectors/range-band.ts +125 -0
  587. package/src/detectors/registry/capacity-runtime-mismatch.ts +4 -0
  588. package/src/detectors/registry/connection-time-short.ts +4 -0
  589. package/src/detectors/registry/contact-variant.ts +4 -0
  590. package/src/detectors/registry/count-over-capacity.ts +4 -0
  591. package/src/detectors/registry/date-stamp-order.ts +4 -0
  592. package/src/detectors/registry/duration-product-mismatch.ts +4 -0
  593. package/src/detectors/registry/event-deadline.ts +4 -0
  594. package/src/detectors/registry/interval-count-mismatch.ts +4 -0
  595. package/src/detectors/registry/layout-code-mismatch.ts +4 -0
  596. package/src/detectors/registry/party-order.ts +4 -0
  597. package/src/detectors/registry/quantity-range.ts +4 -0
  598. package/src/detectors/registry/range-band-mismatch.ts +4 -0
  599. package/src/detectors/registry/rent-multiple-mismatch.ts +4 -0
  600. package/src/detectors/registry/requirement-lists.ts +4 -0
  601. package/src/detectors/registry/return-type.ts +4 -0
  602. package/src/detectors/registry/scaled-quantity-mismatch.ts +4 -0
  603. package/src/detectors/registry/step-time-sum-mismatch.ts +4 -0
  604. package/src/detectors/registry/time-range-reversed.ts +4 -0
  605. package/src/detectors/registry/unlisted-item-used.ts +4 -0
  606. package/src/detectors/registry/walk-time-distance-mismatch.ts +4 -0
  607. package/src/detectors/rent-multiple-mismatch.ts +56 -0
  608. package/src/detectors/requirement-lists.ts +65 -0
  609. package/src/detectors/return-type.ts +30 -0
  610. package/src/detectors/scaled-quantity.ts +49 -0
  611. package/src/detectors/signals.ts +3 -1
  612. package/src/detectors/step-time-sum.ts +55 -0
  613. package/src/detectors/structure-tree.ts +42 -6
  614. package/src/detectors/structure.ts +1 -1
  615. package/src/detectors/technical-docs.ts +12 -0
  616. package/src/detectors/time-order.ts +45 -6
  617. package/src/detectors/undefined-term.ts +20 -3
  618. package/src/detectors/unit-consistency.ts +50 -38
  619. package/src/detectors/unlisted-items.ts +72 -0
  620. package/src/detectors/use-count-words.ts +32 -0
  621. package/src/detectors/use-interval.ts +51 -0
  622. package/src/detectors/walk-time-distance-mismatch.ts +45 -0
  623. package/src/document.ts +4 -1
  624. package/src/facts/approximate-tolerance.ts +19 -0
  625. package/src/facts/item-amounts.ts +94 -0
  626. package/src/facts/labelled-facts.ts +29 -7
  627. package/src/facts/measure-units.ts +31 -0
  628. package/src/facts/measures.ts +113 -25
  629. package/src/facts/retention-periods.ts +216 -0
  630. package/src/facts/table-facts.ts +3 -0
  631. package/src/facts/unit-conflicts.ts +22 -9
  632. package/src/facts/unit-equivalents.ts +70 -0
  633. package/src/facts/unit-tolerance.ts +17 -0
  634. package/src/facts/unit-word.ts +35 -0
  635. package/src/facts/written-precision.ts +23 -0
  636. package/src/kana-spelling.ts +25 -0
  637. package/src/model-codes.ts +104 -0
  638. package/src/name-spelling-chars.ts +34 -0
  639. package/src/name-variants.ts +83 -7
  640. package/src/name-word-order.ts +149 -0
  641. package/src/phone-numbers.ts +26 -6
  642. package/src/place-names.ts +53 -14
  643. package/src/plugin.ts +7 -0
  644. package/src/preamble-paragraphs.ts +21 -2
  645. package/src/profile/parse.ts +10 -0
  646. package/src/return-type.ts +361 -0
  647. package/src/spacing-code.ts +26 -0
  648. package/src/structure/amount-range.ts +16 -7
  649. package/src/structure/capacity-count.ts +196 -0
  650. package/src/structure/connection-times.ts +226 -0
  651. package/src/structure/counted-amounts.ts +5 -4
  652. package/src/structure/date-order-tie.ts +86 -0
  653. package/src/structure/date-order.ts +41 -14
  654. package/src/structure/date-outside-period.ts +77 -7
  655. package/src/structure/date-range.ts +45 -9
  656. package/src/structure/deadline-after-event.ts +67 -0
  657. package/src/structure/definition-use.ts +59 -2
  658. package/src/structure/due-date.ts +8 -32
  659. package/src/structure/labelled-date-order.ts +84 -0
  660. package/src/structure/layout-codes.ts +210 -0
  661. package/src/structure/leg-times.ts +15 -0
  662. package/src/structure/measured-amounts.ts +138 -0
  663. package/src/structure/party-order.ts +115 -0
  664. package/src/structure/quantity-range.ts +54 -0
  665. package/src/structure/range-bands.ts +316 -0
  666. package/src/structure/rent-multiple.ts +277 -0
  667. package/src/structure/requirement-lists.ts +145 -0
  668. package/src/structure/scaled-quantities.ts +225 -0
  669. package/src/structure/stamp-order.ts +100 -0
  670. package/src/structure/step-times.ts +169 -0
  671. package/src/structure/term-deadline.ts +35 -0
  672. package/src/structure/time-order.ts +8 -7
  673. package/src/structure/time-range.ts +64 -0
  674. package/src/structure/total-line.ts +63 -0
  675. package/src/structure/total.ts +41 -6
  676. package/src/structure/unlisted-items.ts +207 -0
  677. package/src/structure/version-order.ts +10 -0
  678. package/src/structure/walk-time.ts +285 -0
  679. package/src/surname-near.ts +31 -0
  680. package/src/table-cells.ts +41 -0
  681. package/src/table-names.ts +113 -0
@@ -0,0 +1,69 @@
1
+ id: scaled-quantity-mismatch
2
+ layer: L3
3
+ status: stable
4
+ how_to_find: scaled-quantity-mismatch
5
+ word_list: servings-column
6
+ extra_word_lists: [unscaled-amount, scaled-unit-form]
7
+ severity: warning
8
+
9
+ name:
10
+ ja: 人数の列で、一行だけ量が比のとおりに増えていない
11
+ en: One row of a servings table that does not scale with the others
12
+
13
+ why:
14
+ ja: 「4人分|8人分」のように人数ごとの列を並べた材料の表で、ほかの行は2倍になっているのに一行だけ同じ量(ケチャップ 大さじ4|大さじ4)だと、その列で作る人は量を間違えます。列を足したときに一行だけ直し忘れると起きます。見出しが人数や倍数(4人分、8人前、×2、Serves 4、8 servings)だけの列を二つ以上持つ表で、行ごとに最初の列の量と比べ、少なくとも3行がちょうど列の比のとおりに増え、比のとおりでない行がちょうど一行のときに、その升を指します。量は数と単位で読み、単位が同じ升どうし(g と kg は換算して)だけを比べます。列が三つ以上あり、同じ行がどの列とも合わず、ほかの列どうしは比のとおりのときは、最初の列の升を指します。
15
+ en: In an ingredients table with one column per number of servings ("Serves 4 | Serves 8"), when every other row doubles and one stays the same (Ketchup 4 tablespoons | 4 tablespoons), whoever cooks from that column gets the amount wrong. It happens when a column is added and one row is not updated. A table is read when two or more of its column headings are only a number of servings or a multiple (Serves 4, 8 servings, ×2, 4人分). Each row is compared with the first such column, and a cell is reported when at least three rows scale exactly by the columns' ratio and exactly one does not. Amounts are read with their units, and only cells in the same unit are compared (g and kg are converted). With three or more columns, a row that is off against every other column, while those columns scale with each other, is reported once, at its first column.
16
+
17
+ message:
18
+ ja: 「{item}」の{column}「{written}」が、ほかの{scaledRows}行と同じ比で増えていません({otherColumn}「{other}」から比のとおりなら {expected})
19
+ en: '"{item}" {column} "{written}" does not scale like the other {scaledRows} rows (from {otherColumn} "{other}", the ratio gives {expected})'
20
+
21
+ how_to_fix:
22
+ ja: その行の量を、列の人数の比に合わせて直してください。わざと増やさない量(塩少々のような量)なら「少々」「適量」と書くと指しません。
23
+ en: Correct the amount to the columns' ratio. If the amount is meant to stay the same, write it as an amount left to the cook ("to taste", "as needed") and it is not reported.
24
+
25
+ levels: { strict: error, normal: warning, relaxed: info }
26
+
27
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
28
+ off_for:
29
+ literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
30
+
31
+ group: facts
32
+ summary:
33
+ ja: 人数ごとの列を持つ材料の表で、一行だけ比のとおりに増えていない量
34
+ en: An ingredients table with a column per number of servings where one row does not scale
35
+ example:
36
+ ja:
37
+ before: |
38
+ | 材料 | 4人分 | 8人分 |
39
+ | --- | --- | --- |
40
+ | 合いびき肉 | 500g | 1000g |
41
+ | 玉ねぎ | 1個 | 2個 |
42
+ | 牛乳 | 60ml | 120ml |
43
+ | ケチャップ | 大さじ4 | 大さじ4 |
44
+ after: |
45
+ | 材料 | 4人分 | 8人分 |
46
+ | --- | --- | --- |
47
+ | 合いびき肉 | 500g | 1000g |
48
+ | 玉ねぎ | 1個 | 2個 |
49
+ | 牛乳 | 60ml | 120ml |
50
+ | ケチャップ | 大さじ4 | 大さじ8 |
51
+ en:
52
+ before: |
53
+ | Ingredient | Serves 4 | Serves 8 |
54
+ | --- | --- | --- |
55
+ | Ground beef | 500 g | 1 kg |
56
+ | Onion | 1 | 2 |
57
+ | Milk | 60 ml | 120 ml |
58
+ | Ketchup | 4 tablespoons | 4 tablespoons |
59
+ after: |
60
+ | Ingredient | Serves 4 | Serves 8 |
61
+ | --- | --- | --- |
62
+ | Ground beef | 500 g | 1 kg |
63
+ | Onion | 1 | 2 |
64
+ | Milk | 60 ml | 120 ml |
65
+ | Ketchup | 4 tablespoons | 8 tablespoons |
66
+
67
+ not_flagged:
68
+ ja: 作る人に任せた量(少々、適量、お好みで)の行、数が一つでない升(大さじ1と1/2、2個(約300g))、単位の違う升(1個と200g)、比のとおりに増える行が3行より少ない表、比のとおりでない行が二行以上ある表(人数で量を変えない作り方かもしれません)、列が三つ以上あってどの列も同じ量の行は言いません。見出しが人数だけでない列(分量、メモ)は読みません。
69
+ en: 'Rows left to the cook ("to taste", "as needed", "optional"), cells with no number or more than one ("1 1/2" is one number; "2 (about 300 g)" is two), cells in different units (1 and 200 g), tables where fewer than three rows scale exactly, tables where two or more rows do not scale (the recipe may not scale by design), and, with three or more columns, a row with the same amount in every column are not reported. Columns whose heading is not only a number of servings (Amount, Notes) are not read.'
@@ -0,0 +1,65 @@
1
+ id: step-time-sum-mismatch
2
+ layer: L3
3
+ status: stable
4
+ how_to_find: step-time-sum-mismatch
5
+ word_list: step-time-total
6
+ extra_word_lists: [step-time-not-own, approximate-marker, unit-time]
7
+ severity: warning
8
+
9
+ name:
10
+ ja: 所要時間が、手順に書いた時間の和と合わない
11
+ en: A total time that is not the sum of the steps' times
12
+
13
+ why:
14
+ ja: 「所要時間:60分」と書いたレシピや手順書で、番号を付けた手順の時間((10分)、40分焼く)を足すと80分になると、読み手は時間の見積もりを誤ります。手順を足したり時間を書き換えたりしたときに、所要時間だけ直し忘れると起きます。手順の外に所要時間の見出し(所要時間、合計時間、合計)のすぐ後ろに書いた時間が一つだけあり、番号付きの手順の並びが一つで、どの手順もその手順にかかる時間をちょうど一つ書いているときに、その和と比べます。所要時間か手順の時間に目安の印(約、程度)があるときは、所要時間の1割(少なくとも5分)までの差を合うとみなします。
15
+ en: 'When a recipe or a guide says "Total time: 60 minutes" and the times written in its numbered steps ("(10 minutes)", "bake for 40 minutes") add up to 80, the reader plans with the wrong figure. It happens when a step is added or a time is changed and the total is not. The rule runs when the document states one total outside its steps (a length right after Total time, Total, Time required) and it has one numbered list whose every step states exactly one time of its own, and compares the two. When the total or a step time is rough ("about 1 hour", "20 minutes or so"), a difference up to a tenth of the total, and at least 5 minutes, agrees.'
16
+
17
+ message:
18
+ ja: 「{written}」が、手順{steps}つに書いた時間の和({sum}分)と合いません
19
+ en: '"{written}" is not the sum of the times in the {steps} steps ({sum} minutes)'
20
+
21
+ how_to_fix:
22
+ ja: 所要時間と手順の時間のどちらが正しいかを確かめて、片方を直してください。手順を同時に進める(煮ている間にソースを作る)なら、そう書き添えてください。
23
+ en: Check which is right, the total or the steps' times, and correct the other. If steps run at the same time (the sauce is made while the meat rests), say so.
24
+
25
+ levels: { strict: error, normal: warning, relaxed: info }
26
+
27
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
28
+ off_for:
29
+ literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
30
+
31
+ group: facts
32
+ summary:
33
+ ja: レシピや手順書で、所要時間が手順の時間の和と合わない所
34
+ en: A recipe or guide whose total time is not the sum of its steps' times
35
+ example:
36
+ ja:
37
+ before: |
38
+ 所要時間:30分
39
+
40
+ 1. 玉ねぎを薄切りにします(5分)。
41
+ 2. 弱火で炒めます(20分)。
42
+ 3. 水を加えて煮ます(15分)。
43
+ after: |
44
+ 所要時間:40分
45
+
46
+ 1. 玉ねぎを薄切りにします(5分)。
47
+ 2. 弱火で炒めます(20分)。
48
+ 3. 水を加えて煮ます(15分)。
49
+ en:
50
+ before: |
51
+ Total time: 30 minutes
52
+
53
+ 1. Slice the onions (5 minutes).
54
+ 2. Fry them over a low heat (20 minutes).
55
+ 3. Add the water and simmer (15 minutes).
56
+ after: |
57
+ Total time: 40 minutes
58
+
59
+ 1. Slice the onions (5 minutes).
60
+ 2. Fry them over a low heat (20 minutes).
61
+ 3. Add the water and simmer (15 minutes).
62
+
63
+ not_flagged:
64
+ ja: 時間を書いていない手順や、時間を二つ以上書いた手順が一つでもあるとき、範囲で書いた時間(10〜15分)、その手順にかかる時間でないもの(10分後、5分ごと、残り5分)、温度(180℃に予熱)は、和を取らず言いません。所要時間が二つの違う値で書いてあるとき、範囲で書いてあるとき、番号付きの手順の並びが二つ以上ある(別の作業の手順かもしれない)ときも言いません。手順を同時に進める作り方は読み分けられないので、そのときは指すことがあります。
65
+ en: 'A step with no time or with two, a range ("10 to 15 minutes"), a time that is not how long the step takes ("after 10 minutes", "every 5 minutes", "10 minutes later") and a temperature ("preheat to 180°C") make the rule stop rather than add up. Two different totals, a total given as a range, and a document with two or more numbered lists (they may be separate procedures) are not compared either. Steps that run at the same time cannot be told apart, and may be reported.'
@@ -0,0 +1,48 @@
1
+ id: time-range-reversed
2
+ layer: L3
3
+ status: stable
4
+ how_to_find: time-range-reversed
5
+ requires: [dates]
6
+ severity: warning
7
+
8
+ name:
9
+ ja: 時刻の範囲の終わりが始まりより前
10
+ en: A time range that ends before it starts
11
+
12
+ why:
13
+ ja: 「15:15〜14:15」のように、時刻の範囲の終わりが始まりより前だと、読み手はいつ終わるのかを問い合わせることになり、次の予定の時刻も信じられなくなります。時刻を一つだけ直したときや、前の行から書き写したときに起きます。二つの時刻の間が範囲の記号(〜、–)だけのとき、「から」でつなぎ「まで」で閉じるとき、「from … to」のときを範囲として比べます。片方にだけ午前・午後を書いた範囲は、もう片方も同じと読みます。
14
+ en: 'When a time range such as "15:15–14:15" ends before it starts, the reader has to ask when it really ends, and the times after it are in doubt too. It happens when only one of the two times is changed, or when a line is copied from the one before. Two times are read as a range when only a range mark (–, —) or a word such as "until" stands between them, or when they are written "from … to …". When only one side carries a.m. or p.m., the other is read the same way ("2:00–1:30 pm" is 2 pm to 1:30 pm).'
15
+
16
+ message:
17
+ ja: 時刻の範囲「{range}」の終わりが始まりより前です
18
+ en: 'The time range "{range}" ends before it starts'
19
+
20
+ how_to_fix:
21
+ ja: 始まりと終わりの時刻を確かめて、書き間違えたほうを直してください。夜をまたぐ範囲なら、終わりに「翌」を付けてください。
22
+ en: Check both times and correct the wrong one. If the range runs past midnight, mark the end as the next day.
23
+
24
+ levels: { strict: error, normal: warning, relaxed: info }
25
+
26
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
27
+ off_for:
28
+ literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
29
+
30
+ group: facts
31
+ summary:
32
+ ja: 「15:15〜14:15」のように、時刻の範囲の終わりが始まりより前の所
33
+ en: A time range whose end comes before its start
34
+ example:
35
+ ja:
36
+ before: |
37
+ | 15:15〜14:15 | 事例紹介 |
38
+ after: |
39
+ | 15:15〜16:15 | 事例紹介 |
40
+ en:
41
+ before: |
42
+ The workshop runs from 2:00 to 1:30 pm.
43
+ after: |
44
+ The workshop runs from 2:00 to 3:30 pm.
45
+
46
+ not_flagged:
47
+ ja: 終わりに翌日の印のある範囲(22:00〜翌6:00)、三時間以上戻る範囲(夜をまたぐ 22:00〜6:00、十二時間制の 9:00〜5:00)、「から」だけで「まで」の無いもの(14時から13時に変更)、時刻の印の無い数(2〜1、1時間〜30分)は比べません。片方だけに午前・午後を書いた範囲は、正午をまたぐ書き方(8:00〜午後6:00)があるので、一時間未満の戻りだけを言います。
48
+ en: 'A range whose end is marked as the next day ("22:00–6:00 +1"), a range that goes back three hours or more (overnight, as 22:00–6:00, or a 12-hour clock, as 9:00–5:00), "from … to …" in a sentence that changes a time ("moved from 3:00 to 2:00"), and numbers without a time mark are not compared. Where only one side carries a.m. or p.m., a range may cross noon ("8:00–6:00 pm"), so only a step back of less than an hour is reported.'
@@ -10,8 +10,8 @@ name:
10
10
  en: Heading capitalisation is inconsistent
11
11
 
12
12
  why:
13
- ja: Title Case と sentence case のどちらが正しいかは決めません。1 つの文書で混ざっていると、見出しの階層が変わったように見えます。文書の題名(先頭にある深さ 1 の見出しが 1 つだけのとき)は名前なので比べません。節の見出しが同数に割れたときだけ、題名の流儀に合わせます。
14
- en: Neither Title Case nor sentence case is wrong. Mixed within one document, the headings look like they change level. The document's title (a single top-level heading that opens it) is a name and is not compared; when the section headings split evenly, the title's style decides.
13
+ ja: Title Case と sentence case のどちらが正しいかは決めません。1 つの文書で混ざっていると、見出しの階層が変わったように見えます。文書の題名(先頭にある深さ 1 の見出しが 1 つだけのとき)は名前なので比べません。節の見出しが同数に割れたときだけ、題名の流儀に合わせます。頭の番号の札(Section 3. / Day 1:)と、曜日・月の名(どちらの流儀でも大文字)は、どちらの流儀の証拠にも数えません。
14
+ en: Neither Title Case nor sentence case is wrong. Mixed within one document, the headings look like they change level. The document's title (a single top-level heading that opens it) is a name and is not compared; when the section headings split evenly, the title's style decides. A leading label (Section 3., Day 1:) and the names of weekdays and months, capitalised in either style, count as evidence for neither.
15
15
 
16
16
  message:
17
17
  ja: この見出しだけ他と大文字化の流儀が違います(文書の中で {count} 個)
@@ -61,5 +61,5 @@ example:
61
61
  | Total | $8,000 |
62
62
 
63
63
  not_flagged:
64
- ja: 単位や列の違う金額は足しません。足し方が何通りもあるとき(小計と税のあとの総計など)は、どれとも合わないときだけ指します。文の中では、合計の語(合計・総額)のすぐ後ろの金額か内訳の語(内訳は)のすぐ前の金額だけを合計と読み、内訳の金額が二つ以上あるときだけ比べます。並びの一部(単価や上限など、合計の語から離れた金額を除いた並び)の和か、一つを引いた額(値引き)と合えば指しません。
65
- en: Amounts in another unit or column are not added. Where there is more than one way to add them up, it is reported only when none matches. In a sentence, only the amount right after a total phrase (a total of) or right before a breakdown phrase (made up of) is read as a total, and only when two or more items in its unit are listed. It is not reported when the items nearest the phrase add up to it, or when it matches with one item taken away (a discount).
64
+ ja: 単位や列の違う金額は足しません。重さ・容量・長さ(mg、g、mL、L、cm、km)は、列のどの行も同じ種類の量なら換算して足します(500mg と 0.5g は 1g)。何あたりかを書いた量(300mg/錠)、目安の量(約300mg)、範囲(300〜400mg)がある列は足しません。足し方が何通りもあるとき(小計と税のあとの総計など)は、どれとも合わないときだけ指します。文の中では、合計の語(合計・総額)のすぐ後ろの金額か内訳の語(内訳は)のすぐ前の金額だけを合計と読み、内訳の金額が二つ以上あるときだけ比べます。並びの一部(単価や上限など、合計の語から離れた金額を除いた並び)の和か、一つを引いた額(値引き)と合えば指しません。
65
+ en: Amounts in another unit or column are not added. Mass, volume and length (mg, g, mL, L, cm, km) are converted and added when every row of the column is the same kind of measure (500 mg and 0.5 g make 1 g); a column with an amount per something (300 mg/tablet), a rough amount (about 300 mg) or a range (300-400 mg) is not added. Where there is more than one way to add them up, it is reported only when none matches. In a sentence, only the amount right after a total phrase (a total of) or right before a breakdown phrase (made up of) is read as a total, and only when two or more items in its unit are listed. It is not reported when the items nearest the phrase add up to it, or when it matches with one item taken away (a discount).
@@ -3,7 +3,7 @@ layer: L3
3
3
  status: stable
4
4
  how_to_find: undefined-term
5
5
  requires: [structure, pos]
6
- languages: [ja]
6
+ languages: [ja, en]
7
7
  severity: info
8
8
 
9
9
  name:
@@ -11,8 +11,8 @@ name:
11
11
  en: A term written like a defined term but defined nowhere
12
12
 
13
13
  why:
14
- ja: 契約や規約は、「本業務」「本サービス」のように、頭に「本」を付けた語を定義して使います。同じ形の「本成果物」を定義せずに書くと、読み手は、どこかで定義した語なのか、何を指すのかが分かりません。定義が抜けたのか、別の定義した語(本業務)を書き違えたのかのどちらかです。文書が「本」を付けた語を一つ以上定義しているときだけ、その形で書いたのに定義も言い換えの形(本件業務)も無い語を、最初の一か所だけ指します。
15
- en: "A Japanese contract defines its terms with the prefix 本 (本業務, 本サービス). A term in the same form that is never defined (本成果物) leaves the reader asking whether it was defined somewhere and what it means: either a definition is missing, or another defined term was miswritten. Only a document that defines at least one term with that prefix is read, and only the first use of each such term with no definition and no other-prefix form (本件業務) is reported."
14
+ ja: 契約や規約は、「本業務」「本サービス」のように、頭に「本」を付けた語を定義して使います。同じ形の「本成果物」を定義せずに書くと、読み手は、どこかで定義した語なのか、何を指すのかが分かりません。定義が抜けたのか、別の定義した語(本業務)を書き違えたのかのどちらかです。文書が「本」を付けた語を一つ以上定義しているときだけ、その形で書いたのに定義も言い換えの形(本件業務)も無い語を、最初の一か所だけ指します。英語の契約は、定義した語を大文字で始めて書きます(the Services)。"X" means や (the "X") の形の定義が二つ以上ある文書で、文の途中に大文字で始めて書いたのに、どこにも定義が無い語(its Affiliates)も同じく指します。
15
+ en: "A Japanese contract defines its terms with the prefix 本 (本業務, 本サービス). A term in the same form that is never defined (本成果物) leaves the reader asking whether it was defined somewhere and what it means: either a definition is missing, or another defined term was miswritten. Only a document that defines at least one term with that prefix is read, and only the first use of each such term with no definition and no other-prefix form (本件業務) is reported. An English contract capitalises its defined terms (the Services); in a document with at least two definitions written with a defining word (“X” means, (the “X”)), a capitalised term inside a sentence that is defined nowhere (its Affiliates) is reported the same way."
16
16
 
17
17
  message:
18
18
  ja: 「{term}」は定義した語の形ですが、この文書のどこにも定義がありません
@@ -36,8 +36,8 @@ off_for:
36
36
 
37
37
  group: consistency
38
38
  summary:
39
- ja: 「本業務」のように定義した語と同じ形の「本成果物」を、定義しないまま使っている所
40
- en: A Japanese term in the defined form (本成果物) that the document never defines
39
+ ja: 「本業務」のように定義した語と同じ形の「本成果物」や、英語の契約で大文字で始めた語(its Affiliates)を、定義しないまま使っている所
40
+ en: A term in the defined form (本成果物, its Affiliates) that the document never defines
41
41
  example:
42
42
  ja:
43
43
  config: { genre: legal/contract }
@@ -53,10 +53,24 @@ example:
53
53
  第1条 甲は、ウェブサイトの保守の業務(以下「本業務」という。)を乙に委託する。
54
54
 
55
55
  第2条 乙は、本業務の報告書を甲に提出する。
56
+ en:
57
+ config: { genre: legal/contract }
58
+ before: |
59
+ # Services Agreement
60
+
61
+ This Services Agreement (this "Agreement") is made between Harbour Works Ltd (the "Supplier") and Northwind Retail Inc. (the "Customer").
62
+
63
+ 1. The Supplier shall provide the hosting services (the "Services") to the Customer and its Affiliates.
64
+ after: |
65
+ # Services Agreement
66
+
67
+ This Services Agreement (this "Agreement") is made between Harbour Works Ltd (the "Supplier") and Northwind Retail Inc. (the "Customer").
68
+
69
+ 1. The Supplier shall provide the hosting services (the "Services") to the Customer.
56
70
 
57
71
  not_flagged:
58
- ja: 文書が「本」を付けた語を一つも定義していなければ見ません。定義した語とその言い換え(本件業務、defined-term-form が見ます)、定義した語で始まる語(本サービス上)、この文書やその一部を指す語(本条、本項、本書、本契約、本利用規約、本サイト)、どこかでかぎ括弧に入れた語(定義の書き方を chaff が読めなかったもの)、一語の言葉(本人、本日、本社)は見ません。同じ語は最初の一か所だけ指します。英語の文書は見ません(下の理由)。法令・判決・特許は見ません。契約書・規約のジャンルで見ます。
59
- en: "A document that defines no term with the prefix is not read. Defined terms and their other-prefix forms (本件業務, which defined-term-form reads), terms that start with a defined term (本サービス上), the document's names for itself and its parts (本条, 本項, 本書, 本契約, 本利用規約, 本サイト), terms set in quotes anywhere (a definition chaff could not read), and single words (本人, 本日, 本社) are not reported. Each term is reported once, at its first use. English is not read: a capitalised word there cannot be told from the name of a law, an organisation or a policy (the Federal Trade Commission Act, Acceptable Use Policies) without its meaning. Statutes, court decisions and patents are not read; the contract genre runs this rule."
72
+ ja: 文書が「本」を付けた語を一つも定義していなければ見ません。定義した語とその言い換え(本件業務、defined-term-form が見ます)、定義した語で始まる語(本サービス上)、この文書やその一部を指す語(本条、本項、本書、本契約、本利用規約、本サイト)、どこかでかぎ括弧に入れた語(定義の書き方を chaff が読めなかったもの)、一語の言葉(本人、本日、本社)は見ません。同じ語は最初の一か所だけ指します。英語は、大文字は法令・組織・方針の名前(the Federal Trade Commission Act、Acceptable Use Policies)にも使うので、狭く読みます。"X" means や (the "X") の形の定義が二つ未満の文書は見ません。文の頭や記号の後ろの語、小文字の名詞の前に付けた語(the Premium plan)、名前の一覧(proper-name-word、地名、曜日と月、会社の形、当事者の役割)の語を含むもの、条の参照(Section 4、Schedule A)、見出し・リンク・太字・HTML の要素・表・箇条書きの見出しの中、どこかで引用符か太字に入れた語、定義した語を含むもの(大文字小文字を問いません)、文書のどこかで小文字でも書いた語(your Account と your account。普通の語か画面の名前)は見ません。法令・判決・特許は見ません。契約書・規約のジャンルで見ます。
73
+ en: "A document that defines no term with the prefix is not read. Defined terms and their other-prefix forms (本件業務, which defined-term-form reads), terms that start with a defined term (本サービス上), the document's names for itself and its parts (本条, 本項, 本書, 本契約, 本利用規約, 本サイト), terms set in quotes anywhere (a definition chaff could not read), and single words (本人, 本日, 本社) are not reported. Each term is reported once, at its first use. English is read narrowly, since capitals also name laws, organisations and policies (the Federal Trade Commission Act, Acceptable Use Policies): a document with fewer than two definitions written with a defining word (“X” means, (the “X”)) is not read; and a word at the start of a sentence or after a mark, a modifier of a lower-case noun (the Premium plan), a run holding a word of the name lists (proper-name-word, places, weekdays and months, company forms, party roles), a reference to a part (Section 4, Schedule A), anything inside a heading, a link, bold, an HTML element, a table or a list item's label, a word set in quotes or bold anywhere, a run holding a defined term in any case, and a word the document also writes in lower case (your Account and your account: an ordinary word or a screen's name) are not reported. Statutes, court decisions and patents are not read; the contract genre runs this rule."
60
74
  rewrite:
61
75
  depth: light
62
76
  ja:
@@ -11,13 +11,21 @@ name:
11
11
  en: One item given in two units that do not convert
12
12
 
13
13
  why:
14
- ja: 「距離:5 km」と「距離:3000 m」のように、同じ項目の量を違う単位で書くと、読み手は換算してどちらが正しいかを確かめることになります。片方の単位を書き換えたときに、数を直し忘れると起きます。「項目:量」「項目は量です」と書いた所と表の升を読み、同じ節の同じ項目で単位の違う量(長さ、重さ、時間、体積、データの量)を換算して比べます。丸めた書き方(1 mile と 1.6 km)は、2% までの差なら合っているとみなします。
15
- en: 'When one item is given as "Distance: 5 km" and later "Distance: 3000 m", the reader has to convert to find out which is right. It happens when the unit of one is rewritten and its number is not. Values written as "Item: value" or "The item is value", and table cells, are read; within one section, the same item in two different units (of length, mass, time, volume or data) is converted and compared. A rounded figure (1 mile and 1.6 km) agrees when the difference is within 2%.'
14
+ ja: 「距離:5 km」と「距離:3000 m」のように、同じ項目の量を違う単位で書くと、読み手は換算してどちらが正しいかを確かめることになります。片方の単位を書き換えたときに、数を直し忘れると起きます。三つの所を読みます。①「項目:量」「項目は量です」と書いた所と表の升で、同じ節の同じ項目の量。②一つの量を括弧で二つの単位に並べた所(180℃(350°F)、300kPa(約44psi))。③材料の表に書いた品物を、手順で違う単位で書いた所(表の「しょうゆ|大さじ1」と手順の「しょうゆ30ml」)。表の量は行の最初の量(人数ごとの列があれば最初の列)で、節が違っても比べます。手順の量が表の量より多いときだけ言います(少ない量は、その一部を使う所かもしれません)。量の種類は長さ、重さ、時間、体積(大さじ 15 mL、小さじ 5 mL、カップ 200 mL)、データの量、温度、圧力、面積です。面積の坪は 400/121 ㎡(約 3.306 ㎡)で数えます。畳(帖)は、大きさが地方や建物で違い、広告の決まりも 1.62 ㎡ 以上という下限しか決めていないので、面積の単位として読みません。丸めた書き方(1 mile と 1.6 km)は、2% までの差なら合っているとみなします。小数で書いた量は書いた最後の桁で丸めたものとみなし、その桁の半分までの差も合うとみなします(1.2 kg は 1.15〜1.25 kg なので、1,250 g と合います)。整数は末尾の 0 が丸めかどうか分からないので、2% だけで比べます。括弧で並べた二つの量は、どちらもそれぞれの桁で同じ値を丸めたものでありうるなら合うとみなします(44 psi は 1 の位、100 miles は 10 の位)。温度は割合では比べられないので、オーブンの目盛り(25 °F 刻み)より小さい 15 °F(約 8 ℃)までの差を合うとみなします(換算表は 170 ℃ を 325 °F と書きます)。32 °F より小さい °F の量は温度の差(0.5 ℃ の上昇は 0.9 °F)としても比べます。「度」は、同じ行に「オーブン」「温度」のような語があるときだけ温度として読みます。
15
+ en: 'When one item is given as "Distance: 5 km" and later "Distance: 3000 m", the reader has to convert to find out which is right. It happens when the unit of one is rewritten and its number is not. Three places are read: values written as "Item: value" or "The item is value", and table cells, for the same item within one section; one value given in two units with the second in brackets ("180°C (350°F)", "300 kPa (about 44 psi)"); and an item of an ingredients table given in another unit in a step ("Soy sauce | 1 tablespoon" in the table, "30 ml of soy sauce" in a step), wherever in the document, against the first amount in the row (the first column when there is one per number of servings); only an amount larger than the one in the table is reported, since a smaller one may be a part of it. The kinds of quantity are length, mass, time, volume, data, temperature, pressure and area. A tsubo is 400/121 m² (about 3.306 m²). A tatami mat (畳) is not read as a unit of area: its size differs by region and building, and the advertising rules only set a minimum of 1.62 m². A tablespoon is 14.8 mL (US) or 15 mL (metric), a teaspoon 4.9 or 5 mL, a cup 240 mL (the US legal cup) or 250 mL, and either agrees. A rounded figure (1 mile and 1.6 km) agrees when the difference is within 2%, and a decimal also agrees within half of its last written digit (1.2 kg is 1.15 to 1.25 kg, so it agrees with 1,250 g; a whole number keeps the 2%, since its trailing zeros may or may not be rounding); two values side by side also agree when both could be roundings of one value at their last digits (44 psi to the unit, 100 miles to the ten). A temperature cannot be compared by a share, so it agrees within 15 °F (about 8 °C), less than one 25 °F step of an oven dial (conversion tables give 170 °C as 325 °F). A Fahrenheit figure below 32 °F is also compared as a difference (a rise of 0.5 °C is 0.9 °F). "degrees" alone is read as a temperature only when a word such as "oven" or "temperature" is on the same line.'
16
16
 
17
17
  message:
18
18
  ja: "「{label}」が {value} と書かれていますが、同じ節の前の所では {other} で、換算すると合いません"
19
19
  en: '"{label}" is {value} here, but {other} earlier in the same section, and they do not convert'
20
20
 
21
+ messages:
22
+ bracket:
23
+ ja: "{value} を {other} と並べていますが、換算すると合いません"
24
+ en: "{value} is given next to {other}, and they do not convert"
25
+ item:
26
+ ja: "「{label}」が {value} と書かれていますが、表では {other} で、換算すると合いません"
27
+ en: '"{label}" is {value} here, but {other} in the table, and they do not convert'
28
+
21
29
  how_to_fix:
22
30
  ja: どちらの量が正しいかを確かめて、もう一方を換算して直してください。一つの文書では、同じ項目の単位を揃えると読み手が比べやすくなります。
23
31
  en: Check which value is right and convert the other to match. Using one unit for an item throughout a document makes it easier to compare.
@@ -55,8 +63,8 @@ example:
55
63
  - Distance: 5000 m
56
64
 
57
65
  not_flagged:
58
- ja: 単位が同じ量(食い違いは fact-conflict が見ます)、種類の違う量(長さと重さ)、違う見出しや違う親の項目の下の量、2% までの差は見ません。GB や MB は 1000 倍でも 1024 倍でも合えば合うとみなします。
59
- en: Values in the same unit (fact-conflict looks at those), of different kinds (a length and a mass), under different headings or parent items, and differences within 2% are left alone. GB and MB agree when they match at either 1000 or 1024.
66
+ ja: 単位が同じ量(食い違いは fact-conflict が見ます)、種類の違う量(長さと重さ)、違う見出しや違う親の項目の下の量、2% までの差は見ません。GB や MB は 1000 倍でも 1024 倍でも合えば合うとみなします。単位が一つだけの温度(180℃に予熱)、表に無い名前の品物、量の前に分数が続く量(大さじ1と1/2)、表より少ない手順の量、表の中の量どうしは、括弧や品物の比べ方では見ません。スラッシュで並べた量(1 GB / 500 MB)は、別の選択肢のことがあるので比べません。
67
+ en: Values in the same unit (fact-conflict looks at those), of different kinds (a length and a mass), under different headings or parent items, and differences within 2% are left alone. GB and MB agree when they match at either 1000 or 1024. A temperature given in one unit only, an ingredient under another name, an amount with a fraction (1 1/2 cups), a step amount smaller than the table's, and amounts inside the table itself are left out of the bracket and ingredient comparisons. Values separated by a slash (1 GB / 500 MB) are not compared, since they may be alternatives.
60
68
  rewrite:
61
69
  depth: light
62
70
  ja:
@@ -0,0 +1,90 @@
1
+ id: unlisted-item-used
2
+ layer: L3
3
+ status: stable
4
+ how_to_find: unlisted-item-used
5
+ # The list headings are item-list-heading's; the use frames item-use's; item-amount is taken off a thing's name and
6
+ # item-at-hand is never reported; enumeration-joiner joins the things of one step.
7
+ requires: [pos]
8
+ languages: [ja, en]
9
+ severity: warning
10
+
11
+ name:
12
+ ja: 一覧に無い材料や道具を手順で使っている
13
+ en: A step uses something the list of what you need leaves out
14
+
15
+ why:
16
+ ja: 「材料」「用意するもの」の一覧を見て揃えた読み手は、手順の途中で一覧に無い物(こしょう、バケツ)が出てくると、そこで手が止まります。一覧に足し忘れたか、手順のほうを書き間違えています。番号を振った手順のうち、物を使う形の名詞だけを読みます。「〜を入れる」「〜を加える」「add」「put」の物と、道具も入る一覧(用意するもの、What you need)がある文書では「〜で磨く」「〜に沈める」「with the …」「in a …」の物です。その物を、文書が手順より前に(一覧、題、前の手順で)書いていれば言いません。名前の最後の語だけ書いてあっても同じです。水・湯・手・空気のように、いつも手元にあって一覧に書かない物も言いません。
17
+ en: 'A reader who gathered everything on the "Ingredients" or "What you need" list stops halfway when a step calls for something the list does not have (pepper, a bucket). Either the list left it out or the step is wrong. Only a noun a numbered step uses is read: the object of a use verb ("add", "put", "stir in"), and, in a document whose list includes tools ("What you need", "Tools"), the thing after "with the" or "in a". It is not reported when the document has written it before the step (in the list, the title or an earlier step), whole or by its last word, nor when it is always at hand and never listed (water, hands, air).'
18
+
19
+ message:
20
+ ja: 「{item}」は、{list}に書いてありません
21
+ en: '"{item}" is not in {list}'
22
+
23
+ how_to_fix:
24
+ ja: 一覧に足すか、手順を一覧にある物で書き直してください。
25
+ en: Add it to the list, or rewrite the step with what the list has.
26
+
27
+ # chaff explain と規則の一覧には指摘が無いので、{item} と {list} をこう読ませる。
28
+ placeholders:
29
+ item:
30
+ ja: 〇〇
31
+ en: the item
32
+ list:
33
+ ja: 材料の一覧
34
+ en: the list
35
+
36
+ levels: { strict: error, normal: warning, relaxed: info }
37
+
38
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
39
+ off_for:
40
+ literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
41
+
42
+ group: structure
43
+ summary:
44
+ ja: 手順で使う材料や道具が、材料・用意するものの一覧に無い所
45
+ en: A step that uses an ingredient or a tool missing from the document's own list
46
+ example:
47
+ ja:
48
+ before: |
49
+ ## 材料
50
+
51
+ - 卵 2個
52
+ - 塩 少々
53
+
54
+ ## 作り方
55
+
56
+ 1. 卵を割りほぐし、塩、こしょうを加えます。
57
+ after: |
58
+ ## 材料
59
+
60
+ - 卵 2個
61
+ - 塩 少々
62
+ - こしょう 少々
63
+
64
+ ## 作り方
65
+
66
+ 1. 卵を割りほぐし、塩、こしょうを加えます。
67
+ en:
68
+ before: |
69
+ ## Ingredients
70
+
71
+ - 2 eggs
72
+ - A pinch of salt
73
+
74
+ ## Method
75
+
76
+ 1. Beat the eggs and add the salt and pepper.
77
+ after: |
78
+ ## Ingredients
79
+
80
+ - 2 eggs
81
+ - A pinch of salt
82
+ - A pinch of pepper
83
+
84
+ ## Method
85
+
86
+ 1. Beat the eggs and add the salt and pepper.
87
+
88
+ not_flagged:
89
+ ja: 一覧の見出しが無い文書、番号の無い手順、物を使う形でない名詞(オーブンで焼く、は道具も入る一覧がある文書だけ)、手順より前に書いた物、いつも手元にある物(水、湯、手、空気、皿)、「使わずに」と打ち消した物は言いません。
90
+ en: 'A document with no list heading, steps without numbers, a noun not in a use frame ("with the", "in a" only in a document that lists tools), anything written before the step, what is always at hand (water, hands, air, plates), and a use that is denied ("do not add") are not reported.'
@@ -48,8 +48,8 @@ example:
48
48
  "Service" means the booking website we run. Users may use the Service free of charge.
49
49
 
50
50
  not_flagged:
51
- ja: 定義の書き方(「X」とは、以下「X」という)で書いた語だけを見ます。複数形と所有の形(Services、Seller's)は使用に数えます。同じ語の二つ目の定義は duplicate-definition が言います。
52
- en: Only terms defined in a recognised form ("X" means, (the "X")) are checked. Plurals and possessives (Services, Seller's) count as uses. A second definition of the same term is duplicate-definition's to report.
51
+ ja: 定義の書き方(「X」とは、以下「X」という、規約やポリシーの以下「X」といいます)で書いた語だけを見ます。複数形と所有の形(Services、Seller's)と、見出しの中の語も使用に数えます。同じ語の二つ目の定義は duplicate-definition が言います。
52
+ en: Only terms defined in a recognised form ("X" means, (the "X")) are checked. Plurals and possessives (Services, Seller's) count as uses, and so does the term in a heading. A second definition of the same term is duplicate-definition's to report.
53
53
  rewrite:
54
54
  depth: light
55
55
  ja:
@@ -50,8 +50,8 @@ example:
50
50
  This agreement is between Harbour Ltd (the "Seller") and Hill Ltd (the "Buyer"). The Seller ships within five days.
51
51
 
52
52
  not_flagged:
53
- ja: 定義の条(「X」とは…をいう)で定義した語は、前で使っても言いません。定義の条は文書の頭にも終わりにも置く書き方があるためです。見出しの行(章・節の行、条の前の「(買主の義務)」のような見出し)の語と、漢字で終わる語にさらに漢字が続く長い語(「監査委員会」の「監査委員」)は、使った所に数えません。最初の一か所だけを指します。
54
- en: Terms defined in a definitions clause ("X" means ...) are not checked, since a definitions clause may come first or last. A heading line (a chapter or section line, or the caption above an article) does not count as a use, nor does a longer word that runs on in kanji past a term ending in kanji. Only the first early use is pointed at.
53
+ ja: 定義の条(「X」とは…をいう)で定義した語は、前で使っても言いません。定義の条は文書の頭にも終わりにも置く書き方があるためです。規約やポリシーの丁寧な形(以下「X」といいます)も、法令の形と同じに読みます。見出しの行(章・節の行、条の前の「(買主の義務)」のような見出し)の語と、漢字で終わる語にさらに漢字が続く長い語(「監査委員会」の「監査委員」)と、定義の括弧の前の長い名前をそのまま書いた所(「…作成の手引き(以下「手引き」という。)」より前の「…作成の手引き」)は、使った所に数えません。最初の一か所だけを指します。
54
+ en: Terms defined in a definitions clause ("X" means ...) are not checked, since a definitions clause may come first or last. A heading line (a chapter or section line, or the caption above an article) does not count as a use, nor does a longer word that runs on in kanji past a term ending in kanji, nor an earlier copy of the long name written just before the definition's bracket. The polite Japanese form (以下「X」といいます) is read like the statute form. Only the first early use is pointed at.
55
55
  rewrite:
56
56
  depth: structure
57
57
  ja:
@@ -0,0 +1,55 @@
1
+ id: walk-time-distance-mismatch
2
+ layer: L3
3
+ status: stable
4
+ how_to_find: walk-time-distance-mismatch
5
+ severity: warning
6
+
7
+ name:
8
+ ja: 距離と合わない徒歩の分数
9
+ en: A walking time that does not match the stated distance
10
+
11
+ why:
12
+ ja: 「駅 徒歩3分(約600m)」のように、徒歩の分数と距離が合わないと、どちらかを書き間違えています。不動産の広告では、道路距離80mを1分とし、1分未満の端数を切り上げて分数を出すと決められていて(不動産の表示に関する公正競争規約施行規則)、600mなら8分です。徒歩の語の付いた分数と、そのすぐ前か後ろの括弧などに書いた距離だけを組にして比べます。速さは文書に書いたもの(道路距離80mを1分、分速80m)を使います。書いていなければ、物件広告(profile listing。物件概要の項目の並ぶ文書は設定なしでもそう読みます)だけ80mで1分、端数は切り上げとして比べ、ほかの文書は比べません。約の付いた距離は、書いた桁の幅を持たせます(約1.2kmは1.15〜1.25km)。
13
+ en: 'When a listing says "a 3-minute walk (600 m)" while it states that walking times assume 80 m per minute, the time or the distance is wrong: 600 m is 8 minutes at that rate. A number of minutes with a word of walking ("walk", "on foot") is compared only with a distance written right before or after it, and only at a rate the document states itself ("80 m per minute", "5 km/h"); without a stated rate, only a Japanese property listing (profile listing, chosen by its shape when no profile is set) uses the advertising standard of 80 m a minute, rounded up, and nothing else is compared. Part minutes may be rounded either way, or only up when the rate line says so. An approximate distance ("about 1.2 km") is read with the width of its last digit.'
14
+
15
+ message:
16
+ ja: 「{minutes}」は「{distance}」と合いません(分速{rate}mで{expected}分)
17
+ en: '"{minutes}" does not match "{distance}" ({expected} minutes at {rate} m per minute)'
18
+
19
+ how_to_fix:
20
+ ja: 距離と分数を確かめて、書き間違えたほうを直してください。物件広告の分数は、道路距離を80mで割り、端数を切り上げて出します。
21
+ en: Check the distance and the walking time, and correct the wrong one, using the rate the document states.
22
+
23
+ levels: { strict: error, normal: warning, relaxed: info }
24
+
25
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
26
+ off_for:
27
+ literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
28
+
29
+ group: facts
30
+ summary:
31
+ ja: 「徒歩3分(約600m)」のように、徒歩の分数が書いた距離と合わない所
32
+ en: A walking time that does not match the distance beside it, at the rate the document states
33
+ example:
34
+ ja:
35
+ before: |
36
+ | 交通 | あおば線「青葉台」駅 徒歩3分(約600m) |
37
+ | 賃料 | 98,000円 |
38
+ | 敷金 | 1か月 |
39
+ after: |
40
+ | 交通 | あおば線「青葉台」駅 徒歩8分(約600m) |
41
+ | 賃料 | 98,000円 |
42
+ | 敷金 | 1か月 |
43
+ en:
44
+ before: |
45
+ | Access | Ashford Station, a 3-minute walk (600 m) |
46
+
47
+ Walking times assume 80 m per minute along the road, rounded up to the next minute.
48
+ after: |
49
+ | Access | Ashford Station, an 8-minute walk (600 m) |
50
+
51
+ Walking times assume 80 m per minute along the road, rounded up to the next minute.
52
+
53
+ not_flagged:
54
+ ja: 距離の無い分数、徒歩の語の無い分数(バスで10分、駅から5分)、分数と離れて書いた距離、範囲(徒歩5〜7分、400〜600m)、上限や目安の分数(徒歩10分以内、徒歩10分程度)、約の付いた分数(徒歩約5分)、速さを書いていない物件広告でない文書(観光案内の「徒歩10分(約500m)」)、速さを二つ以上書いた文書は比べません。
55
+ en: 'Minutes with no distance, minutes without a word of walking ("10 minutes by bus"), a distance written apart from the minutes, ranges ("5-7 minutes", "400-600 m"), limits ("within a 10-minute walk"), approximate minutes ("about 5 minutes on foot"), a document stating no rate, and a document stating two rates are not compared.'
@@ -14,6 +14,8 @@ export type CountWords = {
14
14
  readonly numbers: readonly string[];
15
15
  /** 数のすぐ後ろで並べるものを数える語。点、つ、steps。 */
16
16
  readonly counters: readonly string[];
17
+ /** 数える語と、それが何の種類かを言う語までの枠(kinds of、つの種類)。枠の中の of は「two of the following」の of ではない。 */
18
+ readonly frames: readonly string[];
17
19
  /** 数のすぐ前にあると予告でなくなる語(約、第、at least)。 */
18
20
  readonly hedgesBefore: readonly string[];
19
21
  /** 数か数える語のすぐ後ろにあると予告でなくなる語(以上、目、or more)。 */
@@ -51,16 +53,17 @@ export const alternation = (words: readonly string[]): string =>
51
53
  .join("|");
52
54
 
53
55
  /**
54
- * 数と、それが数えるもの。数の前が数字・英字・数の字なら数の途中(十三、23、eleven の中)。
56
+ * 数と、それが数えるもの。数の前が数字・英字・数の字なら数の途中(十三、23、eleven の中)。数字と点のすぐ後ろの数字は、
57
+ * 条の番号や小数の続き(7.1、3.5)で、それだけでは数ではない。
55
58
  * 英語は数と数える語の間に語を二つまで置ける(three key steps)。数える語が無くても、文がコロンで終わる直前の数(the following two:)と、
56
59
  * その後ろに語が一つだけある数(the following three documents:)は数に読む。どちらも先を指す語のすぐ後ろでだけ予告になる(pointsAhead)。
57
60
  */
58
61
  const phrasePattern = (words: CountWords): RegExp => {
59
62
  const numberChars = escapeRegExp([...new Set(words.numbers.join(""))].join(""));
60
63
  const numbers = words.numbers.length === 0 ? "\\p{Nd}+" : `\\p{Nd}+|${alternation(words.numbers)}`;
61
- const counted = `[ \\t\\u00a0]?(?:\\p{Ll}[\\p{Ll}-]*[ \\t]){0,2}(${alternation(words.counters)})(?![A-Za-z])`;
64
+ const counted = `[ \\t\\u00a0]?(?:\\p{Ll}[\\p{Ll}-]*[ \\t]){0,2}(${alternation([...words.frames, ...words.counters])})(?![A-Za-z])`;
62
65
  const uncounted = String.raw`(?:[ \t]\p{Ll}[\p{Ll}-]*)?(?=[ \t]?[::][ \t]*$)`;
63
- return new RegExp(`(?<![\\p{N}A-Za-z${numberChars}])(${numbers})(?:${counted}|${uncounted})`, "giu");
66
+ return new RegExp(`(?<![\\p{N}A-Za-z${numberChars}])(?<!\\p{Nd}[..])(${numbers})(?:${counted}|${uncounted})`, "giu");
64
67
  };
65
68
 
66
69
  export const valueOf = (written: string, numbers: readonly string[]): number => {