Modular Architecture
One of the things I heare over and over from the FLEx Dev team is that the code base for FLEx is really complex. Not having years of experience in coding in my background, I laugh and think if it is really complex then why have we not tried a rewrite to keep the codebase alive. There are lots of reasons to do a rewrite including making the maintenance of the code base more maintainable. If the codebase actually gets too complex then it seems to me that our whole enterprise of linguistics is in danger. These arguments are not new thoughts in the IT and digital project managment world. It is just an acknowledgement that these factors are real and apply here as well.
That said, if we could imagine a new FLEx how would it be different? What would we do different from the start? I think modularity would be important. To that end I have started a list of modules that I would think would be a useful way to load divide the coding. I imagine that the core would need to be more like Gephi, where the core DEV team may chose to engage from time to time in the development of a module or plugin, but their core focus and responsibility is to primarily keep the core API available to the add-on modules and their maintainers. Now, in the Drupal project there has been years of discussion about how an idea gets added to core before it is actually added to core. The same kind of discussion happens in the WordPress community. However, here we have a mammoth set of fields in the database and still need more as we look to add more features.
If I were to develop a FLEx replacement I would use a Plugin type architecture, and a very specific code documentation schema.
Here is how I would even divide current core development into a plugin architecture. So what modules might could possibly exist? - in no particular order:
Animals, Nature, and Natural things Module
This plugin would supersede the “scientific name” field. It would hook into the entry and sense level and would be responsible for adding linked data to the lexeme from the biological and geological sciences. It would have two CC0 licensed pictures, which can be included in the dictionary and links to the appropriate resources on that species or element or geological feature.
https://en.wikipedia.org/wiki/International_Plant_Names_Index
The red list: http://www.iucnredlist.org/info/terms-of-use#4._No_reposting__sublicensing_and_or_redistribution
Use Birds from Wikipedia list
Get photos and license and descriptions
Language Learning Module
Lists
Pairing with other tools
Semantic Domain Module
Add Ron Moe Semantic Domain List and attempt to match English based words already in the dictionary
Add Intercontenental Dictionary numbers
Add Comparative Austronesian Dictionary numbers
Digital Publishing Module
Webonary Export
Dictionary View Export
Pathway Export
Export a body Chart
Export a
Media Management Module
Allows users to import images, audio, and video from several sources.
It looks at the embedded metadata and presents that to the user, it copies relevant metadata to various predefined fields to make information available to other processes (plugins and APIs)
Construction Grammar Module
Define constructions one sees in the grammar, allow the parser to find other examples in the corpus of these constructions.
- This would include the part of speech and associated fields
Role and Reference Grammar Module
Tense analysis
Discourse Analysis
Notes Module
- Simply adds a variety of notes to the entry and sense
Project Management Tools
User Identities and Identity Management
Project Management lists
Pre Formatted views for establishing Process and workflows.
Role Management
Import Wikipedia text for reversal dictionary
- This plugin would query using wikidata or wiktionary API to look and see if there is a lexicography entry and then parse that entry according to the needs of the FLEx based entry.
Orthography and Phonology Module