Changes between Version 1 and Version 2 of ERModelAIUsage


Ignore:
Timestamp:
07/18/26 15:37:29 (8 days ago)
Author:
236024
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ERModelAIUsage

    v1 v2  
    11= Entity-Relationship Model AI Usage =
    2 
    3 AI was used during the Entity-Relationship model phase only to review and improve my own initial model. The first versions of the model were created by me, and the AI was used afterwards to inspect the model, compare it with the project requirements, suggest possible improvements, explain unclear modeling choices, and help write the model documentation.
    4 
    5 My conversations with AI models, just like now, are usually for challenging my own way of thinking about the project and debating possible inconsistencies thoroughly.
    6 
    7 The final modeling decisions were made by me. Some AI suggestions were accepted, such as improving relationship names, clarifying weak entity keys, documenting data requirements, and checking consistency between the ER diagram and the written description. Other suggestions were rejected or adjusted when they did not match the intended scope of the project, for example adding unnecessary application review data, modeling event attendance, or expanding company management.
    8 
    9 The changes made based on useful AI suggestions are documented in the model history above. The full AI usage documentation is shown below.
    102
    113== Name of AI service/solution that was used ==
    124
    13 OpenAI Codex / ChatGPT
     5'''Name:''' OpenAI Codex / ChatGPT
    146
    15 '''URL:'''
    16 https://chatgpt.com/
     7'''URL:''' https://chatgpt.com/
    178
    18 '''Type of service/subscription:'''
    19 AI conversational and coding assistant, accessed through an OpenAI Plus subscription account.
     9'''Type of service/subscription:''' AI assistant used through an OpenAI account.
    2010
    2111== Final result ==
     
    2717'''Model description:'''
    2818
    29 The final result is ERModel_v08, an Entity-Relationship model for BEST Skopje Hub. The model represents students, members, membership stages, organizational functions, activity sessions, event editions, event sessions, applications, companies, attendance, absence announcements, volunteering, mentorship, and event/company cooperation.
     19The final result is ERModel_v08 for the BEST Skopje Hub information system. The model represents students, members and membership stages, organizational functions, activity sessions, event editions, event sessions, applications, core team functions, companies, attendance/RSVP for activity sessions, absence announcements, volunteering, mentorship, required attendance, and cooperation with companies.
    3020
    31 AI was not used to generate the final model from scratch. It was used to review my own model, suggest alternatives, explain unclear relationship/cardinality choices, and help improve the written data requirements. The final model decisions were selected and adjusted by me according to the actual scope of the BEST Skopje Hub project.
     21My conversations with AI models, just like now, are usually for challenging my own way of thinking about the project and debating possible inconsistencies thoroughly.
     22
     23The AI tool was used only after an initial ER model had already been created. It was used to review the model, point out missing or unclear parts, explain possible modeling alternatives, help choose between alternatives, and help write the textual data requirements in TracWiki notation. The final modeling decisions were made by me.
    3224
    3325== Entire AI usage log ==
    3426
    35 The following is a line-by-line log of the relevant interactions with the AI during the ER modeling phase.
    36 
    3727'''Prompt 1:'''
    38 Are you able to read the latest version ER model in this folder?
     28Can you tell me if the ER model fulfills my requirements and if not, what is missing, and what is redundant?
    3929
    4030'''AI response 1:'''
    41 The AI inspected the project folder, identified the latest ER model file at the time, and confirmed that it could read the TerraER XML structure. It listed the main entities and relationships found in the model.
     31The AI reviewed the initial ER model using the project description for BEST Skopje Hub. It identified possible issues and unclear areas, including attendance scope, core team membership, BOMBA applications, application review data, eligibility rules, member specializations, assemblies, RSVP placement, and the similarity between !ActivitySessions and !EventSessions.
    4232
    4333'''Prompt 2:'''
    44 Can you tell me if the ER model fulfills my requirements and if not, what is missing, and what is redundant?
     34I responded to the AI's suggestions and clarified that attendance checking for !EventEditions and !EventSessions is not needed, core team membership is implied by accepted applications, main organiser is a !CoreTeamFunction, application review data is unnecessary, events are only for UKIM students, assemblies are out of scope, board member should be treated as a role, and RSVP should be tracked at activity session level.
    4535
    4636'''AI response 2:'''
    47 The AI compared the ER model with the BEST Skopje Hub requirements and the attached project description. It identified which concepts were already represented and suggested possible missing or redundant concepts, including attendance, applications, core team functions, member stages, event editions, and company cooperation.
     37The AI reconsidered the earlier comments based on my clarifications. It explained which suggestions were no longer necessary, which parts could remain business logic instead of ER model elements, and which parts still needed attention.
    4838
    4939'''Prompt 3:'''
    50 I responded to the AI suggestions and explained which features were intentionally out of scope, such as attendance for events, application review data, and detailed company management.
     40How could event/session eligibility be modeled in the ER model anyway? I also said I did not understand the AI's question.
    5141
    5242'''AI response 3:'''
    53 The AI revised its assessment based on my clarifications. It agreed that several earlier suggestions were unnecessary for this project and narrowed the advice to the parts that mattered for the ER model.
     43The AI explained that eligibility means who is allowed to attend, RSVP, or apply, for example public, members-only, full-members-only, alumni-only, or board-only. It explained that this does not need to be modeled if it is fixed business logic, but could be modeled with attributes or a relationship to membership stages if the system needs configurable eligibility.
    5444
    5545'''Prompt 4:'''
    56 How could event/session eligibility be modeled in the ER Model?
     46I'm confused about the relationship between !FullMembers and !OrganizationalFunctions. Should it be N:M or 1:N or N:1?
    5747
    5848'''AI response 4:'''
    59 The AI explained that eligibility could be modeled either as an attribute, as a relationship to !MembershipStages, or through a separate audience group entity, but also explained that this could remain business logic if it was not configurable data.
     49The AI explained that the relationship should be modeled as N:M because one full member can hold multiple organizational functions over time and the same organizational function can be held by different full members in different mandates.
    6050
    6151'''Prompt 5:'''
    62 I'm confused about the relationship between !FullMembers and !OrganizationalFunctions. Should it be N:M or 1:N or N:1?
     52Should valid_from and valid_to dates be added? I thought mandate implies that.
    6353
    6454'''AI response 5:'''
    65 The AI explained that the relationship should be N:M because one full member can hold multiple organizational functions over time, and one organizational function can be held by different full members in different mandates.
     55The AI explained that if the project only needs to know the mandate, then the mandate attribute is enough. It also explained that valid_from and valid_to would only be needed if exact dates of holding a function have to be tracked.
    6656
    6757'''Prompt 6:'''
    68 Should valid_from and valid_to dates be added? I thought mandate implies that.
     58All relationships should be named. All attributes must have different names and all relationship names must differ. Help me rename them.
    6959
    7060'''AI response 6:'''
    71 The AI explained that mandate can be enough for the project if it represents the time period of holding a function. It suggested that valid_from and valid_to would only be necessary for more precise temporal tracking, which I decided not to include.
     61The AI suggested names for duplicated or unclear relationship and attribute names. Some suggestions were broader than needed.
    7262
    7363'''Prompt 7:'''
    74 All relationships should be named and duplicate attribute/relationship names need to be fixed.
     64I clarified that I only wanted to rename the names that were the same, not all names.
    7565
    7666'''AI response 7:'''
    77 The AI first suggested broad renaming, then corrected the suggestion after I clarified that only duplicate names needed to be changed. It helped identify duplicate names and suggested clearer names for relationships and attributes.
     67The AI narrowed the renaming advice and focused only on duplicated names that could cause problems in the ER model notation.
    7868
    7969'''Prompt 8:'''
    80 I wanted better names than "has" for identifying relationships such as !ActivitySessions and !ActivityTypes.
     70I wanted a different name than "has" for the relationship between !ActivityTypes and !ActivitySessions because an activity session is a concrete occurrence of an abstract activity type.
    8171
    8272'''AI response 8:'''
    83 The AI suggested names such as instance_of, edition_of, part_of, session_inst_of, and available_for, which helped improve the readability of the ER model.
     73The AI suggested relationship names such as `instance_of`, `occurrence_of`, and `realization_of`. I chose `instance_of` because it clearly represents that an !ActivitySession is an instance of an !ActivityType.
    8474
    8575'''Prompt 9:'''
    86 I asked the AI to help organize the data requirements for ERModel_v07 based on my existing ER model.
     76I asked the AI to help organize the data requirements documentation for my already-created ERModel_v07 by identifying the visible entities, relationships, attributes, keys, and logical attribute restrictions.
    8777
    8878'''AI response 9:'''
    89 The AI extracted the entities, relationships, attributes, and keys from my existing model and suggested a draft structure for the data requirements. I reviewed, corrected, and adapted the explanations, candidate keys, and logical attribute types before including them in the final documentation.
     79The AI produced an organized draft/checklist based on my existing ERModel_v07. I used it as documentation support, then manually reviewed it, corrected mismatches, and updated the final documentation according to my final ERModel_v08.
    9080
    9181'''Prompt 10:'''
    92 Write the data requirements in TracWiki notation.
     82Can you write it in TracWiki notation?
    9383
    9484'''AI response 10:'''
    95 The AI converted the data requirements into TracWiki-style headings and bullet lists.
     85The AI converted the data requirements section into TracWiki notation so it could be added to the project wiki.
    9686
    9787'''Prompt 11:'''
    98 I asked about the key of !EventSessions, especially because !EventSessions is weakly identified by both !EventEditions and !EventSessionTypes.
     88I asked about the relationship between !FullMembers and !OrganizationalFunctions because a full member can technically have one board and one non-board function in the same mandate.
    9989
    10090'''AI response 11:'''
    101 The AI corrected its earlier interpretation and explained that the full key of !EventSessions should include the !EventEditions key, the !EventSessionTypes key, and the partial key of !EventSessions.
     91The AI explained that if exact start and end dates matter, the relationship could include `valid_from` and `valid_to`, or be modeled through a separate assignment relationship/entity. I later decided to ignore this and keep only the `mandate` attribute.
    10292
    10393'''Prompt 12:'''
    104 Check ERModel_v08 and the newest data requirements.
     94I asked whether the key of !EventSessions should include `es_start_time`, `location`, `est_name`, and the composite key of !EventEditions.
    10595
    10696'''AI response 12:'''
    107 The AI compared the actual ERModel_v08 file with the written data requirements and found several small mismatches, such as stale key wording and naming inconsistencies. These were corrected in the documentation.
     97The AI first gave an incomplete answer, then after my correction agreed that because !EventSessions is a weak entity identified by both !EventEditions and !EventSessionTypes, the primary key should include the key of !EventEditions, the key of !EventSessionTypes, and the partial key attributes of !EventSessions.
    10898
    10999'''Prompt 13:'''
    110 I repeatedly asked the AI to check the model and text again.
     100I asked the AI to check version 08 of the ER model and the newest data requirements.
    111101
    112102'''AI response 13:'''
    113 The AI rechecked the model and text multiple times, verifying that all entities, relationships, attributes, weak keys, relationship names, and data requirement descriptions matched. It found and helped fix small text issues.
     103The AI reviewed ERModel_v08 and the written data requirements, checking consistency between the diagram and the text.
    114104
    115105'''Prompt 14:'''
    116 I asked why names such as !EventEditions were being rendered as links in TracWiki.
     106I asked the AI to check everything one last time.
    117107
    118108'''AI response 14:'''
    119 The AI explained that TracWiki automatically links CamelCase words and that adding an exclamation mark before such words prevents automatic linking.
     109The AI checked the ER model and text again and pointed out remaining inconsistencies or small issues.
    120110
    121111'''Prompt 15:'''
    122 I asked the AI to rewrite the text with exclamation marks before CamelCase entity names.
     112I asked the AI to check everything again.
    123113
    124114'''AI response 15:'''
    125 The AI generated a TracWiki-safe version of the text where CamelCase model names were escaped with !, preventing unwanted wiki links.
     115The AI repeated the consistency check between ERModel_v08 and the TracWiki data requirements.
     116
     117'''Prompt 16:'''
     118I asked the AI to check everything again because it kept finding things.
     119
     120'''AI response 16:'''
     121The AI continued reviewing the model and the text, focusing on whether the keys, relationship names, weak entities, and descriptions matched the diagram.
     122
     123'''Prompt 17:'''
     124I asked why names such as !EventEditions were rendered as broken links in TracWiki.
     125
     126'''AI response 17:'''
     127The AI explained that TracWiki automatically treats CamelCase words as wiki links. It explained that putting `!` before such words prevents automatic linking.
     128
     129'''Prompt 18:'''
     130I asked the AI to rewrite the text so that `!` is put before every CamelCase name.
     131
     132'''AI response 18:'''
     133The AI rewrote the TracWiki text and escaped CamelCase entity names such as !YoungMembers, !FullMembers, !MembershipStages, !OrganizationalFunctions, !ActivityTypes, !ActivitySessions, !EventTypes, !EventEditions, !EventSessionTypes, !EventSessions, and !CoreTeamFunctions.
     134
     135'''Prompt 19:'''
     136I asked whether the syntax `[[Image(https://develop.finki.ukim.mk/projects/bestskopjehub/attachment/wiki/ERModel/ERModel_v08.png)]]` is how to include an image in TracWiki.
     137
     138'''AI response 19:'''
     139The AI confirmed that this is valid TracWiki image syntax when using the full attachment URL. It also explained that if the image is attached to the same wiki page, a shorter form such as `[[Image(ERModel_v08.png)]]` can be used.
     140
     141'''Prompt 20:'''
     142I asked the AI to help write the required AI Use section and the ERModelAIUsage page.
     143
     144'''AI response 20:'''
     145The AI drafted the AI usage documentation structure and explained how to document the use of AI honestly.
     146
     147== Conscious assumptions and creations done through the help of AI ==
     148
     149The following changes were made to my ER model and documentation after using the AI tool:
     150
     151 * Clarified that attendance and RSVP are modeled for !ActivitySessions, not for !EventEditions or !EventSessions.
     152 * Kept core team membership implied through accepted applications instead of adding a separate core team membership relationship.
     153 * Treated Main Organiser as a !CoreTeamFunction.
     154 * Removed unnecessary application review data from the model scope.
     155 * Kept event/session eligibility as business logic instead of modeling it explicitly in the ER model.
     156 * Kept the project limited to UKIM students.
     157 * Kept assemblies outside the project scope.
     158 * Kept the specialization for members because it clearly represents observers, young members, full members, and alumni.
     159 * Treated board membership as an organizational function/role rather than as a separate membership stadium.
     160 * Renamed duplicated attribute names only where needed.
     161 * Renamed the relationship between !ActivityTypes and !ActivitySessions to `instance_of`.
     162 * Confirmed that !EventSessions is a weak entity identified by both !EventEditions and !EventSessionTypes.
     163 * Confirmed that the key of !EventSessions includes the composite key of !EventEditions, the key of !EventSessionTypes, and the partial key attributes `es_start_time` and `location`.
     164 * Added or corrected the written data requirements so that they match ERModel_v08.
     165 * Escaped CamelCase names in TracWiki notation using `!` to prevent unwanted wiki links.