Changes between Version 1 and Version 2 of ERModelAIUsage
- Timestamp:
- 07/18/26 15:37:29 (8 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ERModelAIUsage
v1 v2 1 1 = 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.10 2 11 3 == Name of AI service/solution that was used == 12 4 13 OpenAI Codex / ChatGPT5 '''Name:''' OpenAI Codex / ChatGPT 14 6 15 '''URL:''' 16 https://chatgpt.com/ 7 '''URL:''' https://chatgpt.com/ 17 8 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. 20 10 21 11 == Final result == … … 27 17 '''Model description:''' 28 18 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.19 The 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. 30 20 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. 21 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. 22 23 The 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. 32 24 33 25 == Entire AI usage log == 34 26 35 The following is a line-by-line log of the relevant interactions with the AI during the ER modeling phase.36 37 27 '''Prompt 1:''' 38 Are you able to read the latest version ER model in this folder?28 Can you tell me if the ER model fulfills my requirements and if not, what is missing, and what is redundant? 39 29 40 30 '''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.31 The 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. 42 32 43 33 '''Prompt 2:''' 44 Can you tell me if the ER model fulfills my requirements and if not, what is missing, and what is redundant? 34 I 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. 45 35 46 36 '''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.37 The 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. 48 38 49 39 '''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.40 How could event/session eligibility be modeled in the ER model anyway? I also said I did not understand the AI's question. 51 41 52 42 '''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.43 The 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. 54 44 55 45 '''Prompt 4:''' 56 How could event/session eligibility be modeled in the ER Model?46 I'm confused about the relationship between !FullMembers and !OrganizationalFunctions. Should it be N:M or 1:N or N:1? 57 47 58 48 '''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.49 The 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. 60 50 61 51 '''Prompt 5:''' 62 I'm confused about the relationship between !FullMembers and !OrganizationalFunctions. Should it be N:M or 1:N or N:1? 52 Should valid_from and valid_to dates be added? I thought mandate implies that. 63 53 64 54 '''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.55 The 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. 66 56 67 57 '''Prompt 6:''' 68 Should valid_from and valid_to dates be added? I thought mandate implies that.58 All relationships should be named. All attributes must have different names and all relationship names must differ. Help me rename them. 69 59 70 60 '''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.61 The AI suggested names for duplicated or unclear relationship and attribute names. Some suggestions were broader than needed. 72 62 73 63 '''Prompt 7:''' 74 All relationships should be named and duplicate attribute/relationship names need to be fixed.64 I clarified that I only wanted to rename the names that were the same, not all names. 75 65 76 66 '''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.67 The AI narrowed the renaming advice and focused only on duplicated names that could cause problems in the ER model notation. 78 68 79 69 '''Prompt 8:''' 80 I wanted better names than "has" for identifying relationships such as !ActivitySessions and !ActivityTypes.70 I 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. 81 71 82 72 '''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.73 The 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. 84 74 85 75 '''Prompt 9:''' 86 I asked the AI to help organize the data requirements for ERModel_v07 based on my existing ER model.76 I 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. 87 77 88 78 '''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.79 The 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. 90 80 91 81 '''Prompt 10:''' 92 Write the data requirements in TracWiki notation. 82 Can you write it in TracWiki notation? 93 83 94 84 '''AI response 10:''' 95 The AI converted the data requirements into TracWiki-style headings and bullet lists.85 The AI converted the data requirements section into TracWiki notation so it could be added to the project wiki. 96 86 97 87 '''Prompt 11:''' 98 I asked about the key of !EventSessions, especially because !EventSessions is weakly identified by both !EventEditions and !EventSessionTypes.88 I 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. 99 89 100 90 '''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.91 The 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. 102 92 103 93 '''Prompt 12:''' 104 Check ERModel_v08 and the newest data requirements.94 I asked whether the key of !EventSessions should include `es_start_time`, `location`, `est_name`, and the composite key of !EventEditions. 105 95 106 96 '''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.97 The 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. 108 98 109 99 '''Prompt 13:''' 110 I repeatedly asked the AI to check the model and text again.100 I asked the AI to check version 08 of the ER model and the newest data requirements. 111 101 112 102 '''AI response 13:''' 113 The AI re checked 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.103 The AI reviewed ERModel_v08 and the written data requirements, checking consistency between the diagram and the text. 114 104 115 105 '''Prompt 14:''' 116 I asked why names such as !EventEditions were being rendered as links in TracWiki.106 I asked the AI to check everything one last time. 117 107 118 108 '''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.109 The AI checked the ER model and text again and pointed out remaining inconsistencies or small issues. 120 110 121 111 '''Prompt 15:''' 122 I asked the AI to rewrite the text with exclamation marks before CamelCase entity names.112 I asked the AI to check everything again. 123 113 124 114 '''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. 115 The AI repeated the consistency check between ERModel_v08 and the TracWiki data requirements. 116 117 '''Prompt 16:''' 118 I asked the AI to check everything again because it kept finding things. 119 120 '''AI response 16:''' 121 The 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:''' 124 I asked why names such as !EventEditions were rendered as broken links in TracWiki. 125 126 '''AI response 17:''' 127 The 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:''' 130 I asked the AI to rewrite the text so that `!` is put before every CamelCase name. 131 132 '''AI response 18:''' 133 The 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:''' 136 I 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:''' 139 The 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:''' 142 I asked the AI to help write the required AI Use section and the ERModelAIUsage page. 143 144 '''AI response 20:''' 145 The 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 149 The 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.
