WEBVTT 00:10.790 --> 00:17.660 OK, so welcome back that we'll see quite a simple example of a pattern collecting information. 00:18.380 --> 00:23.990 Now we're going to talk about a little bit of a more complex pattern that on the very surface looks 00:23.990 --> 00:24.620 quite simple. 00:24.620 --> 00:30.130 But when you start digging and it becomes a little bit complicated and it's related very much to status 00:30.140 --> 00:32.900 functions we talked about in the philosophical section. 00:34.170 --> 00:36.260 So it's called the party rule party. 00:36.650 --> 00:38.920 And I'm going to do the same thing here. 00:38.930 --> 00:45.800 So I'm going to walk through this is how they are typically described, how patterns typically describe 00:45.800 --> 00:48.170 I'm going to use data structure for how I go through it. 00:49.490 --> 00:56.450 So the on the very high level, we have persons or other types of entities that are actually playing 00:56.450 --> 01:00.060 roles in in concrete situations. 01:01.580 --> 01:03.380 So how do you handle that? 01:03.590 --> 01:05.980 So the name of the pattern is party rule. 01:06.100 --> 01:11.620 Yeah, the intent is guidelines for how to use party and rule concepts together. 01:12.140 --> 01:18.620 The motivation is that parties and roles are common, recurring problems in concept models and in has 01:18.620 --> 01:19.060 its roots. 01:19.070 --> 01:26.360 As I said, in the state, its function declarations as described in the foundation section, the applicability 01:26.360 --> 01:31.370 that it could be used in all situations where the concerns need to be separated clearly. 01:31.850 --> 01:34.200 So not only persons can play roles as well. 01:34.220 --> 01:38.780 So an organization can play a role or a system can play a role or almost anything can play a role. 01:40.340 --> 01:47.100 So that is kind of taking on a function in some concrete scenario and the consequences for using it 01:47.100 --> 01:54.710 that you get very much increased ability for, for example, handing authorization roles and and structuring 01:55.160 --> 02:04.010 legal frameworks about who can do what in different situations and creating accountability and traceability 02:04.030 --> 02:06.020 in in businesses and so on. 02:06.410 --> 02:13.040 So it's very, very important usually in a business, and it leads to generally that increased and modify 02:13.040 --> 02:14.250 ability of the system. 02:14.600 --> 02:17.200 However, it could also increase the complexity. 02:17.570 --> 02:24.050 So again, that is something you need to take into account how there's many credits here. 02:24.070 --> 02:30.560 Alan Silverstone, Paul Wangu, Mango's, Pangalos Erixon and a couple of other people talked about 02:30.560 --> 02:31.940 the party role concert. 02:32.360 --> 02:35.720 OK, so let's start with the structure and the participants in the structure. 02:36.260 --> 02:43.400 So we have a context type and roles are defined for a specific context type. 02:44.420 --> 02:51.500 Then we have a concrete context and a priority is assigned a role within that concrete context. 02:52.130 --> 02:52.520 Right. 02:54.440 --> 03:02.450 And then we can have a role, connection rule saying that maybe some priorities when they are participating 03:02.450 --> 03:10.130 in a concrete context could play some roles in conjunction, but might not be able to play other roles 03:10.130 --> 03:13.520 in conjunction or actually across contexts as well. 03:13.970 --> 03:17.270 So there is a connection of role assignment. 03:17.630 --> 03:21.020 So that is regulated by this rule. 03:21.620 --> 03:28.160 So that's the same same type of same type of structure that we found in the load unit when we discussed 03:28.160 --> 03:28.460 the load. 03:28.460 --> 03:29.810 Your example, if you remember that. 03:31.070 --> 03:36.680 So already here you see this becomes a little bit abstract and hard to grasp. 03:36.680 --> 03:43.700 So let's take a concrete example of the court and the trial to see how this actually fits in in the 03:43.700 --> 03:44.810 real world scenario. 03:45.140 --> 03:50.000 So yet again, I'm going to use an object model to describe the concrete scenarios. 03:50.000 --> 03:52.850 So you see how the conceptual structures work. 03:54.530 --> 04:00.770 OK, so let's take this step by step so we have a context type we call into court. 04:01.760 --> 04:05.270 And within that context, there's a role defined. 04:05.270 --> 04:09.830 Call a judge on another roll call prosecutor. 04:10.670 --> 04:11.060 Right. 04:11.690 --> 04:15.920 There is the rule saying that you cannot be the judge and the prosecutor in the same context. 04:18.440 --> 04:25.040 Then there is a trial, which is another context type that is wrong within the court, and though you 04:25.040 --> 04:31.630 have a defendant, you have jury members and you have trial judge and you also have other rules as well. 04:31.640 --> 04:32.960 But here are three examples. 04:34.010 --> 04:38.570 Then there could be a connection rule saying that you could be the trial judge and the court judge at 04:38.570 --> 04:39.260 the same time. 04:39.440 --> 04:40.160 That's fine. 04:40.610 --> 04:46.310 But you cannot be the defendant and the trial judge at the same time, or you cannot be the jury member 04:46.340 --> 04:47.660 and the defendant at the same time. 04:48.140 --> 04:52.690 So quite a logical step to assigning roles to parties. 04:54.140 --> 05:00.170 So let's say now that we have this context type and role judge, now we can say that we have a specific 05:00.170 --> 05:02.420 context, which is New York state court. 05:03.950 --> 05:07.220 And within that we have a priority called Judy. 05:07.490 --> 05:12.610 And she's the the judge within the specific court. 05:13.490 --> 05:16.750 So there is a New York State judge, which is called Judy. 05:17.240 --> 05:17.650 Right. 05:18.470 --> 05:19.970 Then we have a trial. 05:20.390 --> 05:23.060 So here's our trial, A1, let's say it's called. 05:23.900 --> 05:28.460 And that's of the type trial, which is the context type. 05:28.940 --> 05:34.010 And there's also a role we saw in that context type, which is called a trial judge. 05:34.310 --> 05:36.570 And it happens to be that since she couldn't. 05:36.600 --> 05:40.940 Can you d actually also the trial judge on this trial? 05:43.510 --> 05:50.080 So there's also the role, the Simon connection here, saying that it's fine for Judy to be assigned 05:50.080 --> 05:57.640 both the judge role in the New York state court and be assigned the judge, the trial judge in this 05:57.640 --> 05:58.640 specific trial. 05:58.990 --> 06:02.350 So this connection is fine according to this rule. 06:04.090 --> 06:07.690 And then we have a defendant, which is also role within a trial. 06:08.140 --> 06:16.300 And there is a defendant called Charles, and he has then the defendant assignment rule in this trial. 06:17.320 --> 06:22.380 So now we're hooking up specific parties to the roles that we define for the contexts. 06:24.430 --> 06:27.490 So maybe that's correct. 06:27.640 --> 06:29.680 But maybe you think it's too complicated. 06:30.910 --> 06:35.830 So here's an example of how a pattern could be quite complex, even if it's correct. 06:35.830 --> 06:41.920 And maybe it needs to be that complex and maybe even more things added on to it to actually reflect 06:41.920 --> 06:43.810 the what you're trying to say here. 06:44.560 --> 06:48.930 But let's make it a little bit simpler and see how that would look like. 06:48.940 --> 06:53.320 So let's say that we get rid of the rules and the connections and say just that we have a context and 06:53.350 --> 06:55.780 we have our own assignment within the context for the party. 06:56.260 --> 06:59.650 And you have a role and you're assigned to that in a context. 07:00.010 --> 07:07.660 So using that more simplified version, you can say that you have a role called you judge, in the context 07:07.660 --> 07:08.980 of a New York state court. 07:09.160 --> 07:12.340 And Judy is assigned that role in that context. 07:13.000 --> 07:15.100 And you have another role called trial judge. 07:15.100 --> 07:19.690 And jury is actually assigned that role in a specific context of a trial. 07:20.110 --> 07:26.590 And you have another defendant role and Charles is the defendant in this specific trial. 07:27.860 --> 07:29.950 So here's a simplified version of it. 07:30.490 --> 07:33.490 But that might be too simple. 07:33.700 --> 07:39.400 So then you don't see anything of the as I showed you the connections between the different assignments 07:39.700 --> 07:45.950 and any rules there are, there needs to be thought of when you assign people different roles. 07:46.750 --> 07:51.600 So here you see maybe a simplified version, but maybe that is too simple. 07:51.610 --> 07:53.950 So maybe you look like a hybrid version. 07:54.220 --> 07:59.590 So you can see that you can probably play around with different complexities here in different patterns. 08:00.070 --> 08:05.200 So let's say that we then putting in something called a roll, we have this is the basic structure of 08:05.200 --> 08:06.070 the simplified one. 08:06.310 --> 08:11.440 But maybe we would like to see a little bit more about this declarative role that they're playing. 08:12.190 --> 08:16.750 I'm not putting in the rules again here, but I'm adding another different take on this that you can 08:16.750 --> 08:22.840 actually have declarative rules and contextualize rules, sorry, declarative roles and contextualized 08:22.840 --> 08:23.260 roles. 08:24.190 --> 08:30.130 And in this example, if we take the Ozbek version of that, we can say that we have a judge, which 08:30.130 --> 08:34.240 is a role and we have Judy and she's playing this. 08:34.240 --> 08:37.960 So she's been assigned a declarative role during a period. 08:38.110 --> 08:43.030 So during the period of one year here, she's playing the role of a judge. 08:44.320 --> 08:48.490 And then we might have a context, which is a specific trial. 08:48.700 --> 08:51.730 And she's the trial judge during this concepts. 08:51.730 --> 08:57.970 What I removed here is kind of the second context of the court, so to speak. 08:58.180 --> 09:05.380 But I'm including that she's actually could be assigned a judge role outside a specific trial. 09:07.720 --> 09:13.240 So and then I could add that I have Charles, who's the defendant, and the defendant has a role in 09:13.240 --> 09:14.010 the trial as well. 09:14.320 --> 09:20.770 So the the the a little bit hybrid version here is saying that, judge, you're a judge both in a court 09:20.770 --> 09:25.270 on a declarative basis and you're a judge in a trial on that specific basis. 09:25.840 --> 09:30.610 So that is kind of combining the two different judge rules I define in the more complex case. 09:31.990 --> 09:37.300 So that's a hybrid, a little bit more complex, but not as complex as the first one, but more complex 09:37.300 --> 09:37.960 than a simple one. 09:37.960 --> 09:39.520 And that is not the end goal. 09:39.520 --> 09:41.860 To be complex here is more like that is more flexible. 09:41.980 --> 09:43.690 How flexible it could be for you. 09:45.400 --> 09:46.870 OK, related patterns. 09:46.870 --> 09:52.660 So the party role pattern is, of course, related to the party pattern as well. 09:53.780 --> 09:59.420 We are not going through here, but you can read more more about that in some books about patents. 10:00.650 --> 10:01.220 Very good. 10:01.550 --> 10:07.920 That was the second a little bit more complicated, thorough analysis of how to use the pattern, the 10:07.920 --> 10:09.020 party role pattern. 10:09.290 --> 10:09.860 That's next year. 10:09.860 --> 10:15.570 We're going to be talking about how process models and conceptual models are related. 10:16.430 --> 10:17.020 See you there.