For sure, Stan.  I've got to iron out some kinks, and figure out how a user 
could upgrade from one version of Tifoist to the next (i.e. never need to 
re-enter or fix anything in an upgrade.)

Once I can get the basic functionality working, I will throw myself into 
figuring out how to build a Tifoist plugin.

I'm thinking, very much on the fly:

   - Testing of basic functionality first.  Iron kinks.
      - Well, once I finish "basic functionality", (the scope is a moving 
      target right now.)
   - Setup Tifoist as a plugin, then test that and iron out kinks.
   - Then work on Tifoist upgrading.  Test and iron out kinks.
   - At some point, test TiddlyWiki upgrade of a TiddlyWiki with Tifoist 
   plugin.
   - At some point, and in logical chunks, add more functionality, while 
   making sure none of the above get broken.


I've spent *the last few days hyperfocused on GUI design* (i.e. making the 
TiddlyWiki look like an an application for domain "modeling" and database 
engineering, maybe even software engineering).

Also a little sidetracked by naming paralysis by analysis.

Anyhoo, latest incarnation for your viewing pleasure and scrutinizing:  
Tifoist-TW5 
Prototype 2 <https://tifoist.neocities.org/CJ_TIFOIST_BIS_PROTOTYPE_V2.html> 
(continuing 
to model a domain I know well: the business domain of New Brunswick's 
Buildings Group, related information about 2/3rds of the way down this page 
<https://www2.gnb.ca/content/gnb/en/contacts/dept_renderer.149.1699.html#mandates>
.)

On Saturday, February 27, 2021 at 8:50:23 AM UTC-4 [email protected] wrote:

> This looks really nice, Charlie.  Let me know when you are ready for some 
> beta testing.  I have a couple of nice book projects where I could use 
> Tifoist.
> Stan
>
> On Tuesday, February 23, 2021 at 10:05:14 PM UTC-5 [email protected] 
> wrote:
>
>> "ORM-ish à la TiddlyWiki" is now "*The Tifoist Project*"
>>
>>    - *T*ifoist *I*s a *F*act-*O*riented *I*nformation-*S*emanticization 
>>    *T*ool
>>
>>
>> The previous work I now call "prototype 1."
>>
>> I am now labouring on "prototype 2", involving some GUI design and 
>> overhauling/refactoring what I did in prototype 1.  Much of what I did in 
>> prototype 1 is now broken in prototype 2.
>>
>> Much work to do before prototype 2 can be released into the wild for some 
>> scrutiny.  For now, I share a few screenshots (attached). 
>>
>> Cheers !
>>
>> On Tuesday, December 1, 2020 at 4:49:31 PM UTC-4 Charlie Veniot wrote:
>>
>>> Project TiddlyWiki:  ORM-ish à la TiddlyWiki 
>>> <https://intertwingularityslicendice.neocities.org/CJ_ORM.html>
>>>
>>> *BTW:  My announcement for this project has turned into an awesome 
>>> thread of discussion.  Please check out Using TiddlyWiki for fact-based 
>>> information modelling and database engineering ??? 
>>> <https://groups.google.com/g/tiddlywiki/c/57_eiPadjCo> for some 
>>> ridiculously excellent buffet of food for thought about, um, thought 
>>> (cognitive processing).  Things like (I can't do it all justice):*
>>>
>>>    - *managing complexity*
>>>    - *information/knowledge design/navigation*
>>>    - *PhD-related stuff about context and keeping stuff understandable*
>>>    - *in short:  A LOT OF WOW GOODNESS !!!*
>>>
>>> *Latest Updates*
>>> *(The following pretty much sums up changes/additions since November 
>>> 23rd.)*
>>>
>>> *Text Rotation Testing*
>>>
>>>    - I took a little side trip trying to figure out a generic mechanism 
>>>    from creating tables like in the "Entity Relationship Matrix" tiddler.  
>>>    Although I gave up after a few hours (much too big and messy of a job), 
>>> I 
>>>    left the following two tiddlers in the TiddlyWiki in case I ever want to 
>>>    try again: "Research Macros" and "Text Rotation Tester"
>>>    
>>> *Coded Form of Facts*
>>>
>>>    - I last had coded form of facts setup as one field for each fact, 
>>>    containing the entire coding line (for example:  coded field = "BUILDING 
>>>    1:1 BLDG_NAME").
>>>    - That was making all of my scripting more complicated (having to 
>>>    split that coded field into the three parts: BUILDING, 1:1, and 
>>> BLDG_NAME 
>>>    for whatever kind of processing.)  MORE IMPORTANTLY: that was making it 
>>>    much more difficult for me to setup "data entry" of a fact's coded form 
>>> via 
>>>    select widgets.
>>>    - Now, a fact's coded form is split into three fields: c1, c2, and 
>>>    c3.  (for example:  c1 field = "BUILDING", c2 field = "1:1", and c3 
>>> field = 
>>>    "BLDG_NAME".)
>>>    - This change from one field to three required some rejigging of 
>>>    various tiddlers, including (among others):  "Entity Relationship 
>>> Matrix", 
>>>    "oEs" (a transclusion template to generate conceptual representations of 
>>>    entities; see "BLDG_SPACE_UNIT" tiddler for an example)
>>>    
>>> *Early start (experimentation) of widgets for data entry*
>>>
>>>    - Using "select widgets" to help with creating coded form of facts.  
>>>    I'm very new to the use of widgets for this purpose, so this will take 
>>> me a 
>>>    while to get right.  For a starting example, see the "A Building has 
>>>    exactly one Name / A Name is unique to a Building" fact
>>>
>>> *Entity Relationship Matrix tiddler*
>>>
>>>    - For the slanted column titles, I removed the little links for the 
>>>    related tiddlers, because the slanting of titles often causes the 
>>> tiddler 
>>>    links to not be clickable (they wind up at the bottom of "z-order", and 
>>> it 
>>>    just isn't a fun thing to try and fix at the moment.)
>>>    - Pure CSS for tooltips on the check marks is wonky sometimes 
>>>    because of tooltip positioning (which can only be auto-adjusted nicely 
>>> to 
>>>    show the tooltip, in a guaranteed viewable spot, with javascript.)  That 
>>> is 
>>>    not a fun thing to try and fix at the moment.
>>>    - Scrolling the table columns towards the left: modified so that 
>>>    when columns get slid over to the left, the cells don't show on top of 
>>> the 
>>>    row headers on the far left (that remain in fixed position.)
>>>    - I haven't figured out how to do the same for column headers, but 
>>>       I'm on the fence: not sure I want to hide column headers when columns 
>>> are 
>>>       scrolled to the left.
>>>    
>>> *Primary Keys for entities*
>>>
>>>    - I was setting up all primary keys as "value_type" tiddlers, but 
>>>    I've modified so that primary keys are now specified as a simple field 
>>> on 
>>>    each related entity tiddler.  
>>>    - Seeing as I'm a big believer in using Sequence Numbers (as per 
>>>    Oracle Database products; whatever is equivalent in other database 
>>>    products), it doesn't make much sense for each primary key having a 
>>>    dedicated tiddler.
>>>       - Instead, every entity has a sequence number name specified in a 
>>>       field, and each sequence number follows the exact same standard (data 
>>> type, 
>>>       max length .... all of which are currently hard-coded in scripts; I 
>>> plan to 
>>>       move those "standard sequence number details" in a data tiddler).
>>>    - BTW: Related oEs template tiddler (for conceptualisation of 
>>>    entities) modified accordingly.
>>>    
>>> *Conceptualisation of Entities*
>>>
>>>    - For each attribute, the table now shows the related fact in a new 
>>>    column on the far right side.  (Just nice extra information about each 
>>>    attribute).
>>>    - TODO: setup some mechanism to specify an order for the attributes 
>>>    (likely up/down buttons with saving position in related fact tiddlers; 
>>>    still thinking about it.)
>>>    
>>> *Task Tracking*
>>>
>>>    - Renamed "Facts - Coded Form Pending" to "Facts - Incomplete Coded 
>>>    Form".
>>>    - Got rid of "Entities/Attributes Pending Creation" tracking because 
>>>    "Facts - Incomplete Coded Form" handles that.
>>>    - Added "Entities - Incomplete Primary Key" tracking.
>>>    
>>> *Entity "... to Many" relationships with value types or with other 
>>> entities*
>>> *(getting into some heavy-ish relational database design stuff here ...)*
>>>
>>>    - In simple "... to 1" relationships, this would translate into one 
>>>    table for the one entity (for an entity relationship to a value type), 
>>> or a 
>>>    table each for the two entities (for an entity relationship to an 
>>> entity).  
>>>    Easy peasy.
>>>    - However, for a case of "... to many", that introduces an 
>>>    additional table for both scenarios (1. relationship to many value type 
>>>    instances 2. relationship to many entity instances.)
>>>       - That's something I need to ponder on: i.e. how to handle 
>>>       writing facts, coding those facts, and conceptualisation entities 
>>> (i.e. the 
>>>       related scripts) 
>>>    
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/60559437-eaa3-4123-be6f-1755b0a0e370n%40googlegroups.com.

Reply via email to