Open faerietree opened 7 years ago
This is relevant in this sense:
In some cases it makes sense to use a second pass for content phrase filtering
instead of employing very complicated and failure prone regular expressions (e.g. for the Mixed case where it is very complicated and costly to match content and a specific markup node at the same time).
Allows e.g. hierarchical progressive splitting of sections, i.e. gathering context (!) while on the way to detecting leaf content parts
.
Thus in the end the leaf content parts found are the same as in the current weighted score system where hit count
(number of content part declarations found) is the most significant factor. As leaf content parts get the most hits in a tree structure like in (XML based) documents these declarations will always get the highest rating. This prevents hierarchical splitting which is required to maintain context. (Which is exactly the purpose of section headers or more general content part declarations! Repeating the context in every leaf content element is highly redundant.)
As only markup stores the hierarchy level, there is no known way around extending the declaration detection on a per sheet document type basis, e.g. ODT, DOCX, MD, RST, ...
In these sets of declarations, the upper most level must get the highest weight by all means besides there are more than 1 occurrences to ensure an top bottom approach which is mandatory here due to the tree structure. (Currently as said above, only leaf content parts are detected in "worded" patterns
.)
Definitions
Indexless := no index numbering scheme, i.e. if a number occurs then it is either content or denoting a hierarchy in a markup and not a series. => numbers are explicit (no regular expression) => can only have an implicit ordering. indexed := with index numbering scheme (i.e. explicite order)
Generic := filter by an expression (regex|wildcard|...) Specific := explicit := filter by explicit content (repeating phrase) Raw content := markup content Content := plain text.content, i.e. the visual content like information text, media, ...
Content part declarations
[Content phrase filter] (matching all specific content parts within all hierarchy levels mixed)
generic|regex|wildcard
can match index (have an explicit series order)
all|mixed
numbers+special chars only (have an explicit series order, hierarchy e.g. 1.1, 1.2, 2.1, ...)
Note: Number based index may need filtering of false positives due to numbers occuring in the content parts, too.)
guaranteed indexless
specific|explicit (guaranteed indexless)
all|mixed
numbers+special chars only (e.g. 1.1:, 1.1:, 1.1:, ...)
[Raw content | Markup phrase filter]
specific|explicit, match only indexless (no order; numbers denote hierarchy depth; Matches only within one hierarchy level)
generic, can match index (Matching all series within all hierachy levels in one pass! [1]) Note: This is the default case for XML base file formats. It requires keeping track of hierarchy depth counting in code because a node has no number attached! It can however have a style attached denoting depth.
[Mixed: Markup & Content phrase filters]
[1] Only of limited use as higher level elements have no content part if following strict sectioning. what remains is only the declaration unless there is summary|description content between e.g. 1. and its subsection 1.1 .
Purpose
They are essential for the worlddevelopment civilization editor, open bookkeeper bot, ...