| 353 | | 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. |
| 354 | | |
| 355 | | 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. |
| 356 | | |
| 357 | | The changes made based on useful AI suggestions are documented in the model history above. The full AI usage documentation is shown below. |
| 358 | | |
| 359 | | == Name of AI service/solution that was used == |
| 360 | | |
| 361 | | OpenAI Codex / ChatGPT |
| 362 | | |
| 363 | | '''URL:''' |
| 364 | | https://chatgpt.com/ |
| 365 | | |
| 366 | | '''Type of service/subscription:''' |
| 367 | | AI conversational and coding assistant, accessed through an OpenAI Plus subscription account. |
| 368 | | |
| 369 | | == Final result == |
| 370 | | |
| 371 | | '''Diagram:''' |
| 372 | | |
| 373 | | [[Image(wiki:ERModel:ERModel_v08.png)]] |
| 374 | | |
| 375 | | '''Model description:''' |
| 376 | | |
| 377 | | 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. |
| 378 | | |
| 379 | | 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. |
| 380 | | |
| 381 | | == Entire AI usage log == |
| 382 | | |
| 383 | | The following is a line-by-line log of the relevant interactions with the AI during the ER modeling phase. |
| 384 | | |
| 385 | | '''Prompt 1:''' |
| 386 | | Are you able to read the latest version ER model in this folder? |
| 387 | | |
| 388 | | '''AI response 1:''' |
| 389 | | 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. |
| 390 | | |
| 391 | | '''Prompt 2:''' |
| 392 | | Can you tell me if the ER model fulfills my requirements and if not, what is missing, and what is redundant? |
| 393 | | |
| 394 | | '''AI response 2:''' |
| 395 | | 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. |
| 396 | | |
| 397 | | '''Prompt 3:''' |
| 398 | | 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. |
| 399 | | |
| 400 | | '''AI response 3:''' |
| 401 | | 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. |
| 402 | | |
| 403 | | '''Prompt 4:''' |
| 404 | | How could event/session eligibility be modeled in the ER Model? |
| 405 | | |
| 406 | | '''AI response 4:''' |
| 407 | | 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. |
| 408 | | |
| 409 | | '''Prompt 5:''' |
| 410 | | I'm confused about the relationship between !FullMembers and !OrganizationalFunctions. Should it be N:M or 1:N or N:1? |
| 411 | | |
| 412 | | '''AI response 5:''' |
| 413 | | 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. |
| 414 | | |
| 415 | | '''Prompt 6:''' |
| 416 | | Should valid_from and valid_to dates be added? I thought mandate implies that. |
| 417 | | |
| 418 | | '''AI response 6:''' |
| 419 | | 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. |
| 420 | | |
| 421 | | '''Prompt 7:''' |
| 422 | | All relationships should be named and duplicate attribute/relationship names need to be fixed. |
| 423 | | |
| 424 | | '''AI response 7:''' |
| 425 | | 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. |
| 426 | | |
| 427 | | '''Prompt 8:''' |
| 428 | | I wanted better names than "has" for identifying relationships such as !ActivitySessions and !ActivityTypes. |
| 429 | | |
| 430 | | '''AI response 8:''' |
| 431 | | 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. |
| 432 | | |
| 433 | | '''Prompt 9:''' |
| 434 | | I asked the AI to help organize the data requirements for ERModel_v07 based on my existing ER model. |
| 435 | | |
| 436 | | '''AI response 9:''' |
| 437 | | 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. |
| 438 | | |
| 439 | | '''Prompt 10:''' |
| 440 | | Write the data requirements in TracWiki notation. |
| 441 | | |
| 442 | | '''AI response 10:''' |
| 443 | | The AI converted the data requirements into TracWiki-style headings and bullet lists. |
| 444 | | |
| 445 | | '''Prompt 11:''' |
| 446 | | I asked about the key of !EventSessions, especially because !EventSessions is weakly identified by both !EventEditions and !EventSessionTypes. |
| 447 | | |
| 448 | | '''AI response 11:''' |
| 449 | | 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. |
| 450 | | |
| 451 | | '''Prompt 12:''' |
| 452 | | Check ERModel_v08 and the newest data requirements. |
| 453 | | |
| 454 | | '''AI response 12:''' |
| 455 | | 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. |
| 456 | | |
| 457 | | '''Prompt 13:''' |
| 458 | | I repeatedly asked the AI to check the model and text again. |
| 459 | | |
| 460 | | '''AI response 13:''' |
| 461 | | 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. |
| 462 | | |
| 463 | | '''Prompt 14:''' |
| 464 | | I asked why names such as !EventEditions were being rendered as links in TracWiki. |
| 465 | | |
| 466 | | '''AI response 14:''' |
| 467 | | The AI explained that TracWiki automatically links CamelCase words and that adding an exclamation mark before such words prevents automatic linking. |
| 468 | | |
| 469 | | '''Prompt 15:''' |
| 470 | | I asked the AI to rewrite the text with exclamation marks before CamelCase entity names. |
| 471 | | |
| 472 | | '''AI response 15:''' |
| 473 | | The AI generated a TracWiki-safe version of the text where CamelCase model names were escaped with !, preventing unwanted wiki links. |
| | 351 | 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. |
| | 352 | |
| | 353 | The changes made based on useful AI suggestions are documented in the model history above. The full AI usage documentation is available on the following page: [wiki:ERModelAIUsage ERModelAIUsage]. |