7326ba74fe
Use HTML standard for plausibility checks in the more guesswork-like heuristics. Added more class names to look for date strings. |
||
---|---|---|
.. | ||
src/main/java/nu/marginalia/converting | ||
build.gradle | ||
readme.md |
Converting Models
Contains models shared by the converting-process and loading-process.
Design
The two processes communicate through a file-based protocol. The converter serializes instructions to file, which are deserialized by the loader and fed into an instructions.
The instructions implement a visitor pattern.
Conceptually the pattern can be thought of a bit like remote function calls over file, or a crude instructions-based programming language.
This
producer.foo("cat");
producer.bar("milk", "eggs", "bread");
translates through this paradigm, to this:
(producer)
writeInstruction(DoFoo("Cat"))
writeInstruction(DoBar("Milk", "Eggs", "Bread"))
(consumer)
while read instruction:
interpreter.apply(instruction)
(Interpreter)
doFoo(animal):
...
doBar(ingredients):
...
(doFoo)
DoFoo(animal):
apply(interpreter):
interpreter.foo(animal)
(doBar)
DoBar(ingredients):
apply(interpreter):
interpreter.bar(ingredients)