]>
description | 📧🏷️ Étiquette: Electronic tag processing |
last change | Tue, 20 Jun 2023 01:32:24 +0000 (18:32 -0700) |
URL | https://git.ladys.computer/Etiquette.git |
Lady’s notes :—
[2023-05-28] The persistence/retrieval logic
in ./memory
probably merits being extracted out into its own
repository, with a little extra work to make it more generic. I’ll
probably do that just as soon as I ⓐ actually need it
in something else, ⓑ want to develop persistence
mechanisms other than just in‐memory storage, or ⓒ get
bored.
[2023-05-28] This needs a lot of work to support full extensibility beyond the assumptions that it makes by default—in particular there is currently no way to support custom tag types or predicates. For tag types, mandating a known parent type would help interoperability (both could be given as types for the tag) and make it possible to figure out which tag relationships are allowed.
One thought was to have this be frozen, but lazily evaluated, so new
types or extensions could be added (⅌ TagSystem
?) up until a Tag
is actually constructed.
[2023-05-28] The “plain literal” handling in this library would be better handled in a dedicated R·D·F library and will probably get refactored once I actually get one written.
[2023-05-28] Instead of having a bunch of
messy SCREAMING_SNAKE_CASE
constants in the beginning of
./model.js
, maybe it’s worth maintaining a small schema of the
portions of the Tagging vocabulary which are
being used and deriving that stuff dynamically?
Having it be an Ecmascript file is probably better than J·son
considering ⓐ the syntax change from import assertions
(assert
keyword) to import attributes (with
keyword) has not yet
landed in Deno, and ⓑ Ecmascript files can have
comments.
[2023-05-29] Developing this opens the door
to a ✨Configurable Metadata✨ approach where all of the ::add*
and ::delete*
methods are automatically generated from the
schema. This would likely require making TagSystem::Tag
a
“manual” subclass (ordinary function with a prototype that inherits
from Tag::
and which calls out to Reflect.construct
) and then
defining the methods on the prototype there. A static Tag.For
method would potentially save needing to then do any binding.
[2023-06-14] This is done.
17 months ago | current | shortlog | log | tree |