Drasil
Drasil copied to clipboard
`nc` / `mkIdea` conundrum
So I was about to file an issue, based on the work at Attributes and Chunks that went along the lines of "remove all mkIdea
calls that use Nothing
for the third argument". Because, basically, all those things are 'morally' NamedChunk
, so why put them in an IdeaDict
?
This has been visited before, in How should we handle abbreviations and When to use Maybe
In this particular case, what it boils down to is: is there a true ontological difference between what we call NamedChunk
(which is a bad name since it is assumed to have a term
) and an IdeaDict
which accepts the idea that some things may have an abbreviation? That seems kind of silly, doesn't it?
So I'm actually thinking the exact opposite now: merge NamedChunk
and IdeaDict
(leaving just IdeaDict
). And yes, this goes in the opposite direction of what I was saying before, of trying to get rid of uses of Maybe
!!!
Why the change of mind? In this particular case, I think that 'abbreviation' really is, and should be, an optional 'decoration' on something. But here's a way to change my mind again: are there situations where having an abbreviation would be manditory? I can't think of one, but that's far from proof. Interestingly, Googling for "must have an abbreviation" (i.e. this search has 20 hits, one of which is to Drasil!! So there are things out there that 'must have an abbreviation'. Ah, but we're not talking about concepts to be modeled by Drasil, but rather the meta-model. There would have to be a whole category of things that must have abbreviations, with that category being important enough to be internalized in Drasil, i.e. all the way down to Haskell code. And that, there isn't.
Upshot: there is no conceptual gain in keeping these separate. And there is no conceptual gain in having 'abbreviation' ever be manditory.
So this issue now says the opposite of what I started with:
- merge
NamedChunk
andIdeaDict
(call itIdea
) - have the abbreviation remain optional, aka a
Maybe
.
Is this really a design issue, since it has some pretty concrete steps, or would it be more of a newcomers issue to hopefully help us along our chunk journey?
@JacquesCarette I think this is labelled design because it is part of the bigger conversation on what to do with the naming of our chunks. We should only follow through with this issue if it moves us forward on fixing the design of our attributes and chunks. Given the evolution of our thinking on this, I'm not sure @JacquesCarette feels the same way as he did when he created this issue over a year ago.
Indeed things have further evolved. So I think this might even have already been done, and the new thing is Concept
(though it might not have been fully implemented).
What's implicit in the above is that we need to split DrasilConcept
out from Concept
, i.e. those concepts that we use for ourselves can have much higher requirements, such as making the abbreviation manditory.