Attributes and Chunks, Meeting June 7th, 2023 - JacquesCarette/Drasil GitHub Wiki
Warning: Wiki should not be edited directly. Edit the files in the ./wiki/ folder instead and make a PR.
Meeting Summary for June 7th, 2023
Originally, “chunks” were captured through a nesting egg structure, where a hierarchy of extensions on an essential base (e.g., a noun phrase) defines a single chunk. This has been the working model of defining in Drasil, but has drawbacks in practice, primarily with ergonomics (it requires a complex network of types which is difficult to debug and analyze). @JacquesCarette analyzed the existing chunk hierarchy, resulting in groups of chunks that were highly related. However, we encountered difficulties in recreating the explanation behind the division of the chunks, leading us to reevaluate their existence.
Objective
This meeting focused on (re-)understanding the first pool found by
@JacquesCarette's analysis (a
-f
on the whiteboard figure --
NamedChunk
,
IdeaDict
,
CommonIdea
,
ConceptChunk
,
ConceptInstance
,
and
CommonConcept
/CI
)
and updating it as necessary.
Analysis
The focus around these chunks is to teach Drasil about names (and their
meanings). Names provide at least a few things: giving an identifier to
concepts, unambiguously reusing and referring to those concept, and enabling
pattern discovery in usage thereof. The chunks allow for names to have
abbreviations, definitions, domains, and classifications, but with extra
plumbing around the declarations for flexibility (specifically in declaring).
However, this flexibility is costly to maintain due to needing us to maintain
multiple chunks for a particular name when we typically use them all for many
words. For example, an IdeaDict
is used to add abbreviations to NamedChunk
s
(basic noun phrases) while a CommonConcept
is used to add an abbreviation to a
ConceptChunk
, the overlap in what they provide largely overlaps, but we have
to create 2 types to add abbreviations to words. A CommonIdea
/CI
adds an
abbreviation and a domain of knowledge to NamedChunk
s, which is very similar
to ConceptChunk
(a name with a definition and optional domain) and
CommonConcept
s. A ConceptInstance
is also similar to ConceptChunk
s with a
“level” difference but with many of the same possible extensions and plumbing.
Together, these chunks are complex and require careful work to make sure we can
make extensions possible from any particular chunk.
Results
We deem this group of chunks to be too similar to be unique, and too complex to
be (easily) usable and maintainable. As such, we decided to merge them into a
single chunk based on NamedChunk
, which we decided to call Concept
s.
Concepts
A “Concept” is a noun phrase that denotes something (anything!). Ones that are explainable have a definition in natural language (e.g., English). Sometimes they have abbreviations (such as NASA), and domains and/or classifications of which they belong (such as Astronomy and Public Organizations). Concepts should be used to capture noun phrases that we expect to use (and reuse) or when we want to discover patterns of their usage.
Action Items
- Merge
NamedChunk
andIdeaDict
into a single type. AllNamedChunk
s can becomeIdeaDict
s without issue. - <<pending @JacquesCarette's analysis>>
Meeting Blackboard Notes