Thinking must be the greatest gift God blessed us with ... Thinking is where everything starts, and where things never end ... So I've been having this problem... Some people I just don't understand - they confuse me; I don't know what I want from them. I don't know what they want from me. I am not sure why I feel about them the way I do, and I don't like my reactions to their actions. You face a problem,you think about it, you try to solve it. You think and after you do, you take action;that's the smart way to do things. Some people don't think much. Everything is so obvious, no need to think about it. In the programming world, people face problems, and they try to solve them. They try to use the machine to solve them, or help them solve them. To feed a problem to a machine, you must give it structure. You must tell the machine what it needs 'to know' and what it needs 'to do'. Over time, people developed 'methodologies' to give structure to the unstructured, to define the undefined, to name the unnamed. A 'methodology', simply put, is an approach for doing things. Another name for methodologies is 'paradigm'. A 'ProgrammingParadigm' is a programming type. What type of programming are you using? Which programming 'paradigm' are you using? There exist many programming 'paradigms', procedural, structured, functional, ObjectOriented, LanguageOriented, generic, AspectOriented, service oriented, component oriented, etc ... Some are interchangeable, others are complimentary ... They are all ways, approaches for doing programming. Programming is an activity, and a problem in itself. I just thought I'd use the same methodologies that were used to solve the programming problem to help me solve my social problems. I need to give my social problem a structure, I need to decide on some definitions, some terms that have precise meanings, names that I can use to point, to what I can't point to, for the moment ... More precisely, I will use an object-oriented approach ('methodology') to solve my social problem. But first let's start from the middle - I will solve my problem 'inside out'. I will not 'start from the beginning'; this is important because when I first started thinking, I didn't know I was object orientinizing my problem. It only became clear to me half way, and I want to take you through the same path. Two 'things' were clear to me - some people are very 'inclusive', others are very 'exclusive'. For me, that meant some people, the 'inclusive' ones, they can be friends with anyone they get along, in place, with any number of people, with all kinds of people, the funny ones, the silly ones, the smart ones, the boring ones, etc ... On the other hand we have the 'exclusives', those ones are picky about who they socialize with. They do this mainly because they have very little tolerance of what they don't like in people. So, how is this 'classification' useful? I once read (somewhere) that marriage between couples who share the same interests is more likely to be successful. And most of us have heard of this saying, "bird of a feather fly together". In conclusion, make [?] are more likely to get along with other people of the same type. We can think of this conclusion as a 'rule' a social 'rule', or an 'invariant' that is always true. If you share a type with me, you are more likely to like me. If I can classify you, or typefy you, I can apply this rule to you. And I will end up less confused and more 'secure'. Also notice how much more we can conclude if you are inclusive - you must be very tolerant; if you are exclusive, you must be less tolerant. It just doesn't make sense that someone can be inclusive and intolerant, or exclusive and tolerant. This is another rule, and classifying, make the rule statement much easier. You now know what I mean by inclusive and exclusive people, I can use those terms anywhere I want, and you will know precisely what I mean by them. A collection of 'attributes' and 'rules' that governs someone's behavior. How can I tell if someone is 'exclusive' or 'inclusive'? You watch his/her behavior. What do people do? Let's try to classify things more, refine our scope. People participate in 'activities' and 'relationships'. Inclusiveness, or exclusiveness is not written on people faces. It is seen in their behavior. An activity can be made by a large number of people, by a small number of participants, or by just one person. It is easier to determine the exclusiveness, inclusiveness of any activity - just 'count' how many people are doing it, or allowed to participate in it at the same time. Just 'count' how many exclusive activities this person participates in versus how many inclusive activities he does and you can have an idea. A relationship is harder to define - what is a relationship? My mother! She is my mother, because she gave birth to me. My sister! She is my sister, because my mother gave birth to her. My wife! She is my wife because she is the person I chose to marry. ''Didn't her agreement have anything to do with it?'' So as we see, some relations, are based on choice, others are not! I don't really care about that which you did not choose. I will only acknowledge, your choices! I am refining my 'scope'. In my context, relationships are a set of activities, with special attributes, and special grouping! You have a relationship with a person, when you perform with him/her any set of related activities! The inclusiveness, exclusiveness of those activities, determine, the inclusiveness, exclusiveness of that relation! What you do, describes who you are The more you do, the more you are The less you do, the less you are. A relationship also governs, the interrelationships between activities. Because you have a wife, you will not have DINNER with another woman! ''Why? Doesn't that rule out having any guests to dinner? "Dinner" with someone doesn't imply a romantic relationship with them.'' This is a rule, but to apply this rule effectively, we need to know about the types that plays in that contexts, right! If the rules apply, you have this relationship, if you can not have DINNER with another woman, because you are tied to another by a relation, like it or not you are married to her. If you made the choice to marry a woman, you better know the rules and apply the rules. Else people will watch you, and it won't look like you're married, and you won't be! It's like a 'loop', if you follow the rules, your are in the 'loop', if you don't you are thrown out! Obviously, from the mother son, relationship, we can also see that some relations, are the output of some activities, people are the output of some activities! To make it clearer to you where I am going with this. An activity equivalent in programming can be seen as function or procedure. Since a relation is like a 'loop' and implement 'rules', it will also be implemented as a function or procedure! Marriage is a relations, Ahmad.married(Nazli) Ali = Ahmad.hadDinnerWith(Nazli) Ali is legit! Ismail = Ahmad.hadDinnerWith(Mona) if (Ahmad.notMarriedTo(Mona)) {Ismail is a bastard son!} This is kind of why relationships are hard, they are inherently abstract, not concrete! Now it's time to introduce a new term, 'Arity' a.k.a relationship 'multiplicity' A relationship arity reflects the number of 'instances' of a 'type' that can participate in it. For example, an 'instance' of type man can be in a marriage relationship with one or more 'instance' of type woman, yet the opposite is not true. A woman can not marry more than one man. Actually a woman can marry more than one man, just not in the same 'time'. This is interesting because, 'time' is tricky, over time, most of the rules changes! Marriage is relationship 'constrained' by 'time', or in other words, 'time' is a true marriage attribute. Ahmed and Nazli are married since 1964. Ahmed and Nazli were married from 1964 till, 1994. During that period, Ahmed was allowed to marry other women, but Nazli was not. Actually Nazli is not allowed to marry women at all! Yet another 'rule'. The point is, a relation is a thing that tie two other 'types' of things together when looking at this relation thing, tow attributes are usually highlighted 'time' and 'arity'. How long is this thing supposed to last? How many can I have? How many can I have mutually? Lets refresh our memory with why this is all have started? Some people I just don't understand! We don't get along, I want to know why, but in a precise manner. My main observation, was a classification, that some people are inclusive others are exclusive. And when it come to those people, we don't belong to the same class. A new word we should all learn by now, is 'taxonomy'. 'Taxonomy' is the name of the field that studies how to classify things. This is very important because, it should be obvious by now, that sometimes problems are solved, when you successfully classify and identifying the variables affecting it. The variables I identified were three, people, activities, relationships. When a person causes you a problem, study this person activities, and relationships try to identify the types of relationships that tie you with that person. Make things clear, by drawing lines across their borders, this kind of explains why marriage is mainly just a statement, and why this is statement is really all mighty and powerful. Many social relationships are 'abstract', you can not touch them. They only exist if you say so! You are only married to a woman if you admit it. I can now use a more specific vocabulary to describe my problems. Maybe I having doing exclusive activities, with people, I have no exclusive relationship with, and, I guess I have a new rule. Too many exclusive activities with people, I can not or don't want to have exclusive relationship with is harmful! Too many inclusive activities with people, I want or am having exclusive activities with is also harmful. The type of activity I am having with someone should reflect the type of relation I want to have with him. Actually a relation is only as exclusive as the type of activities you have in it! I can also state, that building an exclusive relationship, like marriage, will be or is expected to be hard with inclusive people, people who prefer to do what that do with as many people as possible. This last statement sounds too obvious, right! Could we have said the same before our 'taxonomy' practice. I doubt it. The more we know, the more we define, the better we can refine our set of 'rules'. So what did we learn? Many things, first, that thinking patterns can apply to any domain from sociology to programming. We also learned, that if you know how to think better, you will think better about any thing that you can think about. We also learned a lot of the object oriented vocabulary, but I must find how I can add 'interface' and 'sub-class' to this article. I have never studied sociology formally, but this article was not meant to teach you sociology, it was meant to teach you about problem solving, and some related vocabulary. But I also think, that the 'problem domain' is very interesting, and almost anyone can give input to it. It is also important to note, that this article is not yet complete. It is mainly just a draft. I think it got a long way to go, before it becomes what I want it to become. I want to evolve it to an article that covers as much of problem solving patterns as possible. I want to add diagrams, UML diagrams maybe. I want to write code that implement those models. I want to show or mentioned as many systems analysis and design patterns as possible. I want to refer to programming languages, and how what facilities they provide and what facilities are they missing. This is not meant to end up as an introduction, a first read, this is meant to be the book to read. This the repertoire, this is the end all be all 'type' of thing. Many of what I want to add, I already know, but just have to find the time to add it. I also need to 'refactor' this book-to-be so that the flow of ideas will make more sense. Also many of what I want to say I still did not study! Thus it might take me a while before I end this. -- AliMotaz ---- ''Interesting article, but not all your premises are correct. For example:'' : Because you have a wife, you will not have DINNER with another woman! ''I for one can tell you that this may be true where you live, but it is certainly not globally.'' ---- DeletionCandidate - Ali (or anyone else so inclined) Please refactor the rambling and PleaseMoveThisToTheAdjunct or it will be deleted. Thanks. ''Seconded! I suspect this was once recovered using Google, but it has little value.'' ---- CategoryInteraction