(((meta (@ (content . "Query: Context Directive") (name . "title"))) (meta (@ (content . "manual") (name . "role"))) (meta (@ (content . "#manual #search #zettelstore") (name . "tags"))) (meta (@ (content . "zmk") (name . "syntax"))) (meta (@ (content . "00001007700000 00001007720000") (name . "back"))) (meta (@ (content . "00001007700000 00001007720000") (name . "backward"))) (meta (@ (content . "1") (name . "box-number"))) (meta (@ (content . "(c) 2020-present by Detlef Stern ") (name . "copyright"))) (meta (@ (content . "20230707204706") (name . "created"))) (meta (@ (content . "00001006032500 00001007701000") (name . "forward"))) (meta (@ (content . "en") (name . "lang"))) (meta (@ (content . "EUPL-1.2-or-later") (name . "license"))) (meta (@ (content . "20241118174741") (name . "modified"))) (meta (@ (content . "20241118174741") (name . "published"))) (meta (@ (content . "public") (name . "visibility")))) (p "A context directive calculates the " (em "context") " of a list of zettel identifier." " " "It starts with the keyword " (kbd "CONTEXT") ".") (p "Optionally you may specify some context details, after the keyword " (kbd "CONTEXT") ", separated by space characters." " " "These are:") (ul (li (kbd "FULL") ": additionally search for zettel with the same tags,") (li (kbd "BACKWARD") ": search for context only though backward links,") (li (kbd "FORWARD") ": search for context only through forward links,") (li (kbd "COST") ": one or more space characters, and a positive integer: set the maximum " (em "cost") " (default: 17),") (li (kbd "MAX") ": one or more space characters, and a positive integer: set the maximum number of context zettel (default: 200).")) (p "If no " (kbd "BACKWARD") " and " (kbd "FORWARD") " is specified, a search for context zettel will be done though backward and forward links.") (p "The cost of a context zettel is calculated iteratively:") (ul (li "Each of the specified zettel hast a cost of one.") (li "A zettel found as a single folge zettel or single precursor zettel has the cost of the originating zettel, plus 0.1.") (li "A zettel found as a single sequel zettel or single prequel zettel has the cost of the originating zettel, plus 1.0.") (li "A zettel found as a single successor zettel or single predecessor zettel has the cost of the originating zettel, plus seven.") (li "A zettel found via another link without being part of a " (a (@ (href . "00001006032500")) "set of zettel identifier") ", has the cost of the originating zettel, plus two.") (li "A zettel which is part of a set of zettel identifier, has the cost of the originating zettel, plus one of the four choices above and multiplied with roughly a linear-logarithmic value based on the size of the set.") (li "A zettel with the same tag, has the cost of the originating zettel, plus a linear-logarithmic number based on the number of zettel with this tag." " " "If a zettel belongs to more than one tag compared with the current zettel, there is a discount of 90% per additional tag." " " "This only applies if the " (kbd "FULL") " directive was specified.")) (p "The maximum cost is only checked for all zettel that are not directly reachable from the initial, specified list of zettel." " " "This ensures that initial zettel that have only a highly used tag, will also produce some context zettel.") (p "Despite its possibly complicated structure, this algorithm ensures in practice that the zettel context is a list of zettel, where the first elements are " (@L (@H "“") "near" (@H "”")) " to the specified zettel and the last elements are more " (@L (@H "“") "distant" (@H "”")) " to the specified zettel." " " "It also penalties zettel that acts as a " (@L (@H "“") "hub" (@H "”")) " to other zettel, to make it more likely that only relevant zettel appear on the context list.") (p "This directive may be specified only once as a query directive." " " "A second occurence of " (kbd "CONTEXT") " is interpreted as a " (a (@ (href . "00001007701000")) "search expression") "." " " "In most cases it is easier to adjust the maximum cost than to perform another context search, which is relatively expensive in terms of retrieving effort."))