Monday, December 17, 2007

Emotions as genetic instruments

I finished one of Steven Pinker's books yesterday, "How the Mind Works". The final chapters are a wonderful excursion into an explanation of emotions, the raison-d'etre of those and how DNA are the potential building bricks for having these emotions.

In the explanation about emotions in this perspective, Pinker and others assign the reason for having emotions to better chances for survival and reproduction. The explanation is that genes are building bricks that lead to having emotions. As usual with science, philosophy and especially cognitive science, all sorts of basic questions pop up on things that you generally take for granted when you grow up.

Marriage is a very common concept all over the world in almost any society or community. The explanation is that marriage is an "intelligent" method to reserve the attention of a spouse or to reserve the use of an uterus for the reproduction of your own genes. Marriage is, in this context, also a contract of property on a woman. This paragraph is very unromantic. It is very much viewing the concept of marriage from a biological perspective. Please don't consider this an attack on morality or ethics or that those things should be forgotten, they are entirely different discussions. Marriage is a public declaration of both spouses that a woman is dedicated to the reproduction of the sharing of the genes. The man dedicates his attention and protection to the reproduction as well. The idea of marriage is that this treaty cannot easily be broken by outsiders, further demonstrated by the carrying of a wedding ring. We construe further laws around the idea of marriage. I can imagine different social structures, for example harems and letting the men fight amongst themselves, where the non-winners become expendable armies that are driven by the leader to protect the pack of women. A full explanation of marriage and the social structure we have ultimately developed is written in the book, so I urge people to read those chapters instead of this blog for further clarification.

Men don't "feel" that they should flee when war breaks out. Women generally try to find the first hiding place. Men are thus biologically equipped to fight threats. Whereas, if you think rationally, war doesn't provide good odds for survival. Men are generally more violent than women (I did not say however that women are always non-violent). In most societies, only men are expected to go to war. Women are expected to stay at home with the children. It is morally repugnant to murder children and women. It is only a shame, but morally acceptable and not that shocking, that men are killed in the course of violence. In the context of gene reproduction and evolution, a woman is far more attached to the consequences of the decision than men. It takes 9 months and much more afterwards dedication for a woman. It is only natural for women to seek out partners that are willing to provide the after-care and attention and protection. Hence courtship. Courtship is the declaration of a man that he is willing to make the investment. A better courter makes better chances. It is thus not always the strongest man that has the best chances of a group, although other zoological families prefer the strongest. Since humans have different problems to solve after birth, the (biological) needs are different.

Which brings us to further interesting points, pornography for example. Why is almost all of pornography men-focused? Pornography for women is much less abundant, almost non-existent. Playgirl is mostly read by gays. There are plenty of bars with female exotic dancers. How many bars are there with dancing males? An explanation from a genetic perspective is that men can in theory mate with many women, but only so far that they are still able to guarantee protection for the upbringing. So this is not unlimited. The point here is that the possibility is there. A woman can typically mate with one man, but after that is tied to her decision for at least a number of years. Some research has been done on this topic. A naked, anonymous, unknown woman was felt by men as an opportunity and aroused almost all of them. Women however felt a naked, handsome, unknown, anonymous man not instantly as an opportunity, but firstly as a threat. This doesn't mean that women always need men around them that they know. But the first reaction to naked men isn't generally immediate and uncontrollable attraction.

Another point in the book is regarding adultery. A man's worst fear is the act of adultery itself by his spouse. But for the woman, the worst fear is not necessarily the act itself, but the loss of commitment and attention by the husband, if the husband decides to redirect his attention to someone else. This is "worst fear", I did not say that committing adultery by men is something that women would typically allow.

Wealth, status, dominance are all measures of fitness. Beauty is a measure of health. When you bring these factors together in our society, we still pursue wealth like crazy, compete strongly with other men, women dress up nicely and make themselves beautiful and thus compete with other women. If we were solely rational and thinking beings without emotions having a strong say in the forming of our thoughts, we wouldn't need to compete and make ourselves beautiful, it would surely save a lot of time in a day.

In another blog post I mentioned that we thought we were smart, but are actually still very much subject to emotions. This shows up sometimes when whole societies or nations go to war with one another. Why feel strongly about the piece of earth where you grew up on? If someone attacks you, it might be much more efficient to just pack up and leave. We like to think that our actions are 100% determined through intelligence. Yet if you think rational and consider the same situation for someone else, a radical thinker might just discover that for a host of generally accepted reactions, the best course of action might just be different. Some of our mundane and dark desires still bubble up all the way to the surface. And where we notice they are rather basic, we often try to cloud them through "reason". Can reason be an initiator for an action? I think of reasons as explanations for behaviour, or demonstrations that certain instinctive behaviors (emotionally driven actions) also make sense from an intelligence perspective.

It'd be rather difficult to think of a human being to be 100% guided by intelligence. The reason is that intelligence doesn't really provide a goal. As soon however as a goal is set, intelligence helps enormously in achieving it (consider how humanity evolved over the past decades and millenia). But to set a goal...? Are goals set by intelligence or are these actually set by some emotion, some underlying biological drive? If all our goals are based on emotion somehow, than it is fairly logical to conclude that we cannot be 100% intelligence driven. So when I say that humanity is emotionally driven and probably cannot act solely on intelligence alone, does this make the picture look bleak? Namely, ethics and morality are intellectual constructs, not emotional or instinctive ones. Why do we want humanity to be intelligence-driven? And does justice take into account emotional actions/reactions and does it protect those, or does it counter direct emotional actions? Is intelligence then, in this context, partly a plot in our brain to counter/control our biological purpose?

It is far easier for humans to remember negative events. We have a twice larger vocabulary for negative emotions than we have for the positive ones. Humanity has been subject to a large number of very negative events that encompassed all the world in certain cases, for example World war I and II. If you have seen the film "The Fifth Element", it creates a picture of a human and humanity as wild savage beasts that do nothing but engage in warfare. We do see frequent wars and atrocities. Books like "Humanity" from Jonathan Glover are interesting reads on the sociological causes for war and the circumstances in which war can occur. When thinking entirely and 100% rationally, war doesn't make sense. There are always ways to avert it, if both sides think rational. We may feel the urge to submit another tribe/nation to our will, religion or ways of living, but is it sensible? Intellectually, war is rather stupid. Then where does that feeling of "pleasure" or "need" in war originate?

On a positive note however, other things can be said about wars. The impact, size and involvement in wars has risen due to our possibilities of communication. ally-seeking, treaties and agreements. Worldwide mass-media and communication definitely helps to involve every country. Just think about it... Global war, a world war, how it is a direct demonstration of reciprocative aggressive behaviour that doesn't make much sense if you think about it rationally. However, how does the picture look when we remove the very effects of worldwide communication and globalization from the equation. Has war really become "worse" as compared to other centuries? And the frequency? And what about the reasons for going to war?

Some experiments have been conducted where a class of students was divided by some imaginary or real construct. In one case even, a coin was flipped in front of all the people in a class. Being part of a tribe or some imaginary construct seems to be very important for people. People will modify their behavior accordingly and in many cases will try to subvert others to the same division or murder them. That, to me, is the strongest evidence that we are very much guided by our emotions and that are goals are not determined by our intellect. In these experiments, fights have broken out or tortures have taken place by people that would not normally torture in other circumstances. The Rwanda atrocities happened, because the people were divided by their height. This division occurred through the Belgian colonization, where the Belgians called one side Hutu's and the other Tutu's. The sad part is that these were people of the same tribe. It was an intentional division of the Belgians. Years later... based on this artificial division, the people killed each other. Because of a division in height and resulting propaganda and behavior by those who felt part of this new "tribe".

Continuing on the positive note, there are also great positive achievements in humanity that are not often highlighted. Health care plans, women's right to vote, abolishment of torture (even though not practiced everywhere), welfare rules, government public services, courts and the justice/legal system. Free speech. Free thought. Free press. And so forth. So before anyone doubts that humanity itself is doomed, since the wars don't stop and continue, there are other thinks to consider as well that are not as easily remembered, but are very important to insert into the equation. We like to think negatively in many cases, but we should also think positively about achievements and not take those for granted, but treat them the same as the negative events and celebrate them more.

It will be difficult to understand to which degrees our thoughts, opinions and declarations are based on our emotions rather than our intelligent thought. I'm not sure you can even ever consider that there is a separation possible, since thought is given a direction by goals. A goal to convince, a goal to entertain, a goal to improve status, a goal to...? I am not sure therefore, where the future will bring us. Should we aim to think 100% rational or is that just going to destroy us since emotions are better guarantors for survival? Can we develop methods in the future to separate emotion from rationality?

Since at the very depth of our being, we are driven by emotions and this gives us goals, then would a life without emotion and only pure intelligence become meaningless?

Wednesday, December 05, 2007

TomTom roll-out in Brazil

I'm doing some work for TomTom at the moment and recently they announced a roll-out in Brazil of their devices. These will be for mostly SP and Rio, amongst other cities and the general routes in the country. So it certainly doesn't include everything, it's too large a country at this time, but you can already benefit somewhat from this device over there. Or... knowing how people break open cars for car radio's and cellphones, this may be yet another reason to have your car broken into.

End of year is coming up. I'll be visiting Brazil again for family mostly. Back before New Year's.

I ordered my Honda Hybrid yesterday and am expecting it January soonest, February most probably. That'll be the car for the next 4 years.

Monday, November 26, 2007

Lack of Internet

Well, my fast computer is now unhappily very single and isolated and hasn't had the joy to talk to other computers around the world to exchange information. One can only imagine how it must be feeling at the moment.

Anyway, I haven't sulked like my computer in this new and warm house. The move went otherwise very well and the living quarters I am in are very spacious and especially friendly. The house is down-floors only and has 3 bedrooms, one kitchen and a large living room. Shower and toilet too of course, or it would become quite messy pretty soon.

This month I began a PHP job for a larger organization in Holland. Finished within a week and moved on to *another* PHP job, but dealing with secure payments and a security audit, the details of which I am not allowed to disclose under NDA :). I'm now working for an organization that grew very quickly and is very popular for GPS device lovers. Yep. That one. And it's got a bit of PHP there too, although I am not technically involved this time. I'm dealing with the joy to bring clarity into the functional description of the system. Challenging, fast and things change under your fingertips when you're writing things up. Feels very healthy when things change that fast, although it's difficult to keep a full view of what's going on.

I'm still reading cognitive science when I can. I read Steve Pinker's book a bit more and it's getting really interesting. When you really understand more about perception, how you work and think, it may sound like it takes away some magic, but it's also creating more mystery since no one has fully explained how things work (it's writing down their perceptions really... "hey, this is what the brain does too" ). Many of the things in our general day-to-day activities are so much taken for granted, that when you point things out to people they start noticing how amazing it is. Like how people are now used to getting water from the tap, electricity from their sockets and when the new generation now grows up with Google to find information. (Hardly able to imagine that "historically", books were used to look up information. For them, books have become "introductory" repositories of information from where you start to know more about the topic and "involved").

Good. I worked more on Dune as well and now I can generate PDF from HTML. Well, if you know blogspot and XPress and GMail... They use an "IFRAME" component basically that is set to "designMode" using JavaScript. From there onwards, you can manipulate elements within that text control in order to format it and do other funky stuff. I'm using an existing control called TinyMCE that is used to create the content. Then I process it in six stages towards a valid PDF document that looks very slick and nice.

The idea is to build fragments of text and cross-refer them to other things. Then you can start processing things differently and refer from within documents to other parts of er.... whatever it is you're building.

Sorry for the delay in getting new posts up. I really did not have the time or the availability of the Internet, nor inspiration or events to write new things down.

Thursday, November 01, 2007

Application Security Special Interest Group

I'm part of an expertise group at the new company where we attempt to resolve security concerns and develop new awareness on security to be integrated in the development process from the beginning of a project. The focus is not on specific things like encrypting passwords, but carries a more global nature and may lead to the development of a new service portfolio.

Tonight we have a meeting. My focus is mostly on application architecture, so very high level.

Examples of AS concerns are:
  • Unwanted and unseen information leakage (see recent web2.0 developments)
  • Cross Site Scripting attacks and other browser vulnerabilities
  • Unwanted access
  • Injection vulnerabilities
  • Lack of input validation
  • Insufficient testing on the security of an application
  • Insufficient preparation and evaluation in the architecture and design
A very basic thing that isn't truly considered in many cases is that requirements are written from the perspective how something should behave. Never how something should definitely not behave. Especially in the field of security, this is where you leave a wide gap that may introduce security problems when the developer/writer/architect is not aware of certain vulnerabilities in that area.

When things develop further, I'll write more on this blog.

Wednesday, October 24, 2007

All gone quiet

It's been very quiet on this blog, since I need to arrange a number of things and will be starting a new assignment tomorrow. I only worked very sporadically on the Dune project, managed to implement some meeting and customer email stuff.

I'm also deciding on a new car for lease purposes. So far, I checked all brands and I think I found the car I'm going to take. I'll make one more test drive, then I'll definitely go for it or not. The Netherlands have a very "well" thought out fiscal system, nobody escapes from it. One of the taxed items are lease-cars, since they are income. So the higher the price, the higher the taxation on it.

My car is probably going to be a Honda Civic Hybrid. It's cheap in the lease on a monthly basis, has sufficient power, is very friendly for the environment, doesn't break, is very quiet so that music is good to listen to, sufficiently safe, enough room for my purposes, very low "bijtelling" (addition of some value for the purpose of taxation) and the car has many luxury features standard built-in, like climate-control, seat-warming and so on. Actually, the only thing you can get for accessory extras are leather seats.

Some negative points about the car is that the back seats have a low ceiling because it's a sedan and the back seat cannot flip forward because of the batteries. Also, the internal design of controls is a bit tacky, a bit like a cheap hi-fi system with lots of dials and LED's to make the car look nice. I personally prefer cleaner design, more like the Volvo.

Friday, September 28, 2007

New machine

I've received my new machine that I ordered and managed to get it installed and working. It has been working great so far. Part of the challenge of this machine is to get Linux and Windows in a dual boot configuration on a RAID-0 array. Well, after puzzling for a day or two, I managed to get things done.

I installed Windows first. For this, just follow the steps in the manual. You'll need a single floppy disk with the RAID drivers on it, then you allocate a portion of the RAID array to Windows and the rest is similar to what you are used to.

For Linux, you'll need some more work for installation. I use Ubuntu and booted from the regular Live CD. Then I followed parts of this guide first:

https://help.ubuntu.com/community/FakeRaidHowto

But I did not proceed with the installation of the software. A very important step is the mkswap / swapon commands, as this will otherwise stop regular installation. I actually continued from the LiveCD installation of this guide:

http://ubuntuforums.org/showthread.php?t=464758

So, the use of gparted is totally unnecessary. I partitioned using dmraid and fdisk, then formatted with mkfs and set swapon/mkswap as in the guides. Then immediately started the installation process and finished off as in the second guide.

My total system has Intel E6850 dual core, 2x1GB (667Mhz) low-latency memory in dual-channel setup and 2x10,000rpm WD Raptor drives of 75G each in RAID-0 configuration.

Sunday, September 23, 2007

How the Mind Works

I bought the book "How the Mind Works" from Steven Pinker. It is a very interesting book regarding the evolution and operation of the mind. You should of course not expect a book detailing the exact workings, since that is still unknown, but a series of philosophical reflections regarding the topic.

Reading the book until now, I can see how the invention of the computer makes people believe that at some point the mind can be replicated in a machine. But I have some serious doubts on this.

I think a couple of items will become very difficult to implement in machines with the current technology developed (since computers are necessarily "formal" machines that operate on "formal" symbols and need deterministic results):
  • The mind is strongly goal-driven. A computer is not.
  • The mind does not compare formal symbols, they appear more as very fuzzy. We compare and develop rules in our mind that matches potential elements with other symbols we perceive or think. (learning is the development and extension of those rules?)
  • The mind follows a goal and extracts, from our memory/experience, relevant symbols for further processing. This can even result in a learning exercise (new rules?). The key point here being that only relevant memories are very quickly extracted at an enormous quick pace. So how does a memory extractor know what is relevant and what is not beforehand?
These are already three large problems that a software engineer should face and solve before any true intelligence is remotely possible. As a key note on neural networks, before we get there... some critics have suggested that only after large amounts of training (100,000 cycles?) does the network show the behaviour that is expected. The human mind however needs a much smaller number of iterations to pick up a new ability or skill.

Hence, my point above about rule-based networks. It is as if the memory extractor picks out certain memories (let's say mentalese fuzzy symbols) that match it to what we are perceiving or comparing, out of which may be developed a new rule that is stored in our memory for further processing.

It should be a very intelligent machine that can develop rules and even has the ability to represent (internally!) fuzzy mentalese symbols. We tend to always represent items as formal elements, since these are ultimately deterministic. So, in a way, our communication with the machine never gets translated to an "inner" representation in the machine, but always as a formal representation that makes it easier for us to analyze.

Monday, September 17, 2007

Cognitive Science and Artificial Intelligence

In some other article I discussed some of my personal perspectives on how the mind works. I've been reading in the book of "Introduction to Cognitive Science" whilst in Paris, sitting in one of the brasseries near Gare de l'Est. Not exactly the most pittoresque places, but any other place would probably distract :).

It's a very interesting book with lots of different views, perspectives and theories. It makes clear that current theories consider three different levels for analysis and these have direct analogies with computers. The lowest level is at the hardware level, where the researcher attempts to understand the mind at the level of the synapse and the biology (which is the level of the circuit board, the volts, current and silicon components). Another level looks at the component level, where and how different components of the mind work together to improve our understanding of the world and contextualize input. The highest level looks at the functional level and thus describes the representation of meaning and the end results of the overall functions.

All levels are very important. The highest level is where philosophy is most helpful, the lowest level is where biology and technology measure. One school of thought suggests that the mind is some kind of associative network that is activated through thoughts themselves (or are recollections of long-term memory).

This, to me, somehow suggests that for Artificial Intelligence to really succeed, it must spend time on re-implementing the very basics of computers. Actually, to go the route of Haskell and Erlang and stackless Python.

To make a clear distinction... the architecture of a Pentium processor uses a stack by default. This is a temporary storage in memory that is used and reserved for the processor and used to "track back" into the main line of a certain program. A program is generally written in a way that it becomes more specific for each function. So a generic function would calculate discounts for an account in a larger process, a called function retrieves the account, another called function retrieves applicable discounts.

The organization of programs this way allows us to get the programs " in our heads". The complexity of a network is highly intensive for us to resolve, as compared to hierarchical trees for example. One suggested reason for this is the limited amount of working memory that is dedicated to solve a small problem.

In my imagination, it's as if we have 3-4 CPU registers and a limited L2 cache and a strange kind of memory. This memory does not work through "locators" externally, but gets "triggered" by input and starts feeding our thoughts system.

One of the most important things to consider is that AI could benefit from computer programming without stacks, so stackless computing. Look for "stackless" python to see some examples. There are significant differences and possibilities when there is no stack in programming:
  • Programs can run without pre-determined goal. That is interesting, since programs run and act in a deterministic way. We program them to behave systematically and consistently. In the absence of a stack it is theoretically possible to introduce non-consistent behavior (which might be a pre-requisite for true intelligence).
  • General batch program architecture organizes a processing loop of some kind that always perform the same hierarchically organized routines. Without a stack and with different architectures, it is possible to consider a system that has a certain "memory" of what it did before, possibly allowing for contextual determination of certain events.
  • Continuation of a program occurs by passing in the address of a function to another. This can both be a function that complements the called function or it can be the function to process next.
Stackless computing is significantly harder to architect and program than stack-based computing. The programs closer resemble a kind of network and there is no longer (necessarily) deterministic behaviour, which is a necessity to resolve a certain problem in a consistent manner. Neural networks used in Artificial Intelligence are examples where patterns are identified, but it is in my imagination impossible to build intelligent systems from neural networks alone.

I started this story with three distinct levels for analyzing behavior. The most basic level is most important, since it's the level where things execute and exchange information. If we attempt to run our functions on incompatible hardware, we're not likely to get good results. Can we redesign the computer not to use stacks, but to require programs that are behaving as different kinds of networks and are compiled to continue execution forward, never unwind a stack-entity and in the process gather and structure their memory and other functions to develop a sense of context? It might be the key to real intelligence :)

Friday, September 07, 2007

Bye Bye Brasil...

I'm relocating myself for some time and going back to Holland. Reasons mostly have to do with family and possibilities/opportunities career-wise. Besides that, it's a question of the ability to do a Master's, the work conditions, the violence and some absolutely appalling cases of corruption / abuse of public services / government that the world has ever seen :\ (and in my opinion a general lack of common applied sense and/or lack of action. Brasil (the people, the judiciary system, the democracy) will have to throw out a good lot of incompetent or thieving personas that somehow got their position there before it can go forward.

I'm already looking around for opportunities and have some interviews planned. Later on, I'll have to see how things match together. Project Dune is still going forward, the forums could improve a bit qua traffic. I'm reinstalling and moving between computers at the moment, so editing and other activities may be a bit difficult.

Saturday, September 01, 2007

Why quality plans should use wiki's

I'm writing up a lot of information in the Project Dune wiki and start to realize the potential and importance of the wiki itself. I have been browsing wiki's for some time, but now is the first time I am actually editing a lot of pages.

The Project Dune wiki is about software quality and has two main purposes. It documents the project and it documents consolidated knowledge about quality.

As I go through the pages, I experience the difference between a site with static information that is maintained by a number of editors versus a site that has freely editable information with a couple of access constraints. So when a reader can become an editor at the touch of a button, it gives the feeling (and potential) of participation. This is important for a human being and for companies to generate a sense of identity.

When a company would use a wiki to document quality plans and use the discussion and talk extensions, consider the difference in attitude that the engineers would have on the quality policy and plans (in the case of companies where only managers are owners of the policy and dictate it 100%). The question is not so much that engineers must have made a contribution on the wiki. The difference is the possibilityto suggest changes to the policy immediately and do so on the record in public.

But I don't think the wiki is immediately sufficient. I've worked in some companies that have a very archaic view of the quality plan / policy. It is probably comparable to code crush, which is when a developer becomes highly defensive against any proposed changes on the code and may get furious when he finds out that someone else messed about in the implementation. Even though the statement is often made that it's totally open and we're willing to change, it doesn't necessarily apply in practice.

It shouldn't be like that. We should consider the quality plan and policy an adopted approach documented and taken by all participants (certainly in the case of the wiki). In this view, the quality manager, managers and people that make decisions become stewards of this information. Their role isn't to judge content, it's to take care of it and continuously ensure that the group as a whole steers the quality plan and policy to better definitions.

Consider opening up your policy and plans to your internal engineers. Trust them to be able to apply common sense (or make sure they receive additional, adequate training to make better decisions). You might also want to back up your wiki with discussion forums. This way, any doubts on the policy can be cleared by other participants with the added benefit that it can also be used to document certain conversations and retain that knowledge.

Friday, August 31, 2007

Project Dune developments

I haven't been able to post much recently due to a release being developed at work, some emails from the project team of Dune and the stewardship of a new project infrastructure for Project Dune.

You can check out the forums (phpBB) already. The wiki (mediawiki) is in development and I suspect it will be released very soon.

The project has attracted a couple of new members and is now getting ready to support itself over the following couple of months. We're adding better targets, better planning, better documentation, better milestones, better interaction with the community.

Our hosting is done by SiteGround. It's the first time I do business with them, but so far things have been fantastic. Always up and their support team responded within minutes to support requests. Absolutely awesome service, awesome packages (5000GB/month bandwidth and 500GB disk space per account) and I can certainly recommend it to others. If you do, make sure that you mention us as a reference, you will help the project out with a couple of free months of hosting.

So pretty soon the wiki comes out. We'll get all the way back to development and a regular cycle of project documentation when all is done. You should also see a couple of new (active) members on the project.

Wednesday, August 22, 2007

The mind as an activity network

The book I am reading about cognitive science is very interesting. It talks about the mind as a network that is constantly activated by external events. Mostly within the context of a book you read or a conversation you are part of.

Assuming you haven't drunk any alcohol that might impede this network activation... :) When reading a story, certain events become connected and you start to visualize them. They also become intertwined with your past experiences, so the exercise of recalling the actual events that happened at for example a restaurant may not actually be 100% true ( this is a problem for justice, thinking about it ).

If you read the following story:

"The men are sitting at the table in the diner. The waitress brings the coffee. The coffee spills on the table top. The men exchange documents. The contract is signed".

It sounds like a really boring story, but your past experiences fill in a lot of details here:
  • The men are probably businessmen, because there is a contract and documents (but the story doesn't tell)
  • The waiter looks like one of those waitress stereo-types you have seen in the movies.
  • The spill on the table is not the whole pot, but it's only the size of a coaster and since you didn't read any complaint, it might be a drop.
  • The men are not sitting next to each other, but confront each other.
  • There is an eery sense of mystery perhaps.
Cognitive science has different explanations for how the mind works. One of those is a network with activations that activate nodes and which, in parallel form, activates other nodes that are related.

Now consider memory... Memory is according to some theorists a regular activation of nodes that cause you to feel or think something similar to what you have experienced before.

So... when reality is difficult to recall perfectly... it's because memory isn't a perfect retrieval machine. It's an imperfect machine that retrieves the gist of things and something else that may or may not have occurred, but you may never be sure.

When you gather more experiences in your network, you'll probably form your opinions and personality as well. This means that you yourself becomes responsible for some things that you find important, thus those nodes become more visited and as they become more visited, they seem even stronger and more important than anything else. The objectivity of the mind in this sense is a bit of an utopia for sure. Yes, we are able to hide our subjectivity by writing and talking the right words, but it won't ever happen! :)

Recalling the events from above, you can think of various experiments like:
  • Show a couple of sentences and then ask people if they're sure they didn't read the sentence or actually did ( helps to find out how much they imagined and how much was real of the story ).
  • Re-tell the story factually, how it was read exactly.
  • After the story, let people choose words that are relevant and words that are not. This helps to find out more about the ability to associate between events and to find out the distance of concepts within a network.
Anyway, I'm just starting to read here... It's very interesting indeed!

Tuesday, August 14, 2007

Is a formal IT development process like ISO and CMM a cognitive substitute?

Not hindered by any lack of knowledge once again, I'm asking myself some questions on what the real factors for IT project success are. These factors are often broken down as planning, skills, communication and formalization of a development process (like ISO, CMM, etc.).

What I miss from the above are other properties that people should have, beyond formalization and communication and skills. It should be easy to defend that project success depends for a very high percentage on communication and its quality.

But communication is an expression of our ideas, and then my argument would be that the correct ideas should exist before we are able to communicate efficiently with others to align the team and project with those ideas that would guarantee the success of a project. So... what is more important? The efficient communication itself between the team? Or the formation of the (correct) ideas itself in the first place?

My thoughts are basically revolving around the idea that... if I were to re-design or re-think software quality as a concept, how would I explore the limitations, shape this area of thought and come to new conclusions and realizations of what, from a cognitive perspective, really goes on in an individual's mind during the development process and how this can be very strongly influenced by the communication within the team. I reckon that from this perspective on quality, personality is more important than technical skill.

Some initial thoughts that could start this theory are:
  • Personal traits and attitude that seek out error are far more important than any compliance with rules or regulations.
  • Quality cannot be undoubtedly and efficiently measured without establishing clear criteria with the user or client.
  • Thought pattern development, problem analysis, conflict resolution, behaviour etc. are not generally part of quality theories (unless you accept the very vague terms in ISO/CMM documents that might just mean about anything).
  • The nature and objective of the project should be very clear from the start.
  • Software engineers should understand general errors of thought and learn to voice concerns more readily and harshly.
  • Disposition towards stakeholders may put pressure on engineers to change their response.
A natural reaction when encountering a problem, accident or incompliance is to establish rules and guidelines that people need to adhere to in an attempt to prevent similar occurrences. This might also stimulate a certain no-thought attitude where rules and guidelines are simply followed without understanding the actual matter and nature of the job. It can also falsely be used as a means to indicate progress. The latter can result in very serious problems developing until it's too late to recognize them. It might also result in a couple of people that know and a couple of people that follow blind.

So, my focus and view on quality in this post is to ramify about identifying cognitive processes and nature of the human mind that are most contributing to developing quality software. So, rather than thinking of process as a set of rules and actions, I regard process as a set of traits, attitudes and motivations that someone needs to develop in order to develop high quality software.

Traits, attitudes and motivations can also be called company culture. If we understand how we can influence this culture from within, we should have the capability to improve the quality that a certain person is able (and willing) to develop.

But there is another problem here. Without a framework for measuring the level of quality produced, the entity has no means of knowing whether their actions are effective. This probably requires frequent peer reviews and other means for measuring compliance in an attempt to adjust traits, attitudes and motivations, all to become more efficient all the time and eventually contribute more significantly to this process of self-enlightenment.

The problem here is the same as the one indicated at the start. There are (not yet) true absolute criteria of measuring software quality. Any attempt to establish such a criteria has so far resulted in a total mess, since the entities that are impacted by these criteria attempt to maximize on the goals given to them individually. This is because these criteria are often aligned with promotion factors or budget allocations.

There have been good successes, because the factors that indicate quality can differ from one project to another. Now... given this is a truth. How can we ever consider to develop a framework or "standard" of quality that encompasses each and every different situation or project? Standard in the sense of rules, regulations and processes as actions.

Monday, August 06, 2007

Knowledge has arrived!

I ordered books from Amazon about Cognitive Science, distributed intelligent multi-agent systems, we got "Corporation be Good!", the market for virtue, "The language instinct" and "How the Mind Works"...

The purpose is not just to consume the knowledge within the books. I've interestingly experienced that through cognitive science explorations around, I've started to think more focused on very philosophical issues like the meaning of meaning. When making life decisions and so on, it's a good idea to know why and what you are doing things for.

So... if I don't post here for a while... that's the reason!

Saturday, August 04, 2007

And we thought we are clever... :(

Some recent discussions and readings are about cognitive science and behaviour. Behaviour sciences and anthropology are very interesting study areas where some people like to draw similarities between behaviours of animals and humans.

When we're young, we learn that humans are the superior intelligent species, given that we are able to apply rationality and reason to cases. The very idea of intelligence is a bit of a loose concept in my opinion. I find it a bit difficult to truly define what intelligence means, even not in words.

To give examples about the daftness of human beings, just look at war. When you really think about it, war is a very foolish concept, you could make analogies with male leaders of animal groups like moose or elephants that are struggling to come out as a leader of a group. A very simple and basic animal activity. I liked the book Humanity by Jonathan Glover. It shows how far we as humans still need to go to really exceed ourselves and to really become the intelligent species on this planet.

Actually, somewhere in this book I read about an occurrence in the first world war, where soldiers of different sides got together for a Christmas mass and the other day buried their dead and played soccer in the battlefield. The film is called "Joyeux Noel" and really shows you how still close to basic animalistic behaviour (and instinct?) we get. As soon as people found out that the people on the other side were equal, they discovered it didn't make any sense whatsoever to shoot one another. This created quite a difficult situation for the officers, because it means a total impasse of the war situation! How else to resolve a conflict than through violence?

Recent technological improvements in warfare were mostly aimed at increasing the distance between the killer and the victim. The objective to better guarantee the killer's life. From a psychological perspective, killing from a distance is much easier and comfortable. You don't have to drive a knife in the other guy's belly, the guy doesn't scream in your ear, so it's easier to be done with it. The objective being....... ..... ? It's all about deprivation of the resources on the other side, whether these are human resources or material resources. There are warbots on the market now that can be armed with guns and have the ability to fire. Will we see largely mechanized armies in the future, where robots do the fighting for us? If this is the case, then it really gives us new information about ourselves. How boy-ish we actually are in the resolution of conflicts (or starting them). Yes, humans fight on both sides, although their political and cultural development may significantly differ. The same existential rules apply however.

Jonathan Glover talks about moral resources. Think of them as your capability to apply rationality to a given discussion or event. Tribalism (the sense of belonging to a group) can overwhelm these resources, which can thus lead to very severe levels of violence that in other occasions would be deemed totally inappropriate (read: when applying common sense in regular situations). Some psychological experiments put very good friends into different groups to analyze their behaviour. In no time, they turned enemies to one another if their motives couldn't be aligned any longer (motives that are in opposition with the group to which they belong).

Belief is also a factor. Belief. It's a very dangerous thing that can have enormous consequences, especially when certain people are not willing to consider alternatives to whatever they believe. Belief is highly influenced by propaganda and as such, propaganda is a strong tool to (knowingly) influence your disposition towards other people. The trick in this case is to de-rail the enemy or the other side and reduce their status or value. Dehumanize them. Once dehumanized and reduced to second class, the killing becomes a lot easier.

So, if we see how easy it is for our minds to fall into a certain trap of extreme simplistic and animalistic behaviour... how much of our reasoning is really governed by reason and intelligence? I reckon that a lot of arguments in discussion are raised in defense of the continuation of our instincts. Even though they sound intelligence, they do not necessarily take (sufficiently) into account what all the important factors really are.

Our beliefs and emotional disposition towards a subject and morality changes due to worldly events. One could argue that countries that had more problems (war) to deal with historically are also the countries that are now in the first world. Maybe this is also caused by behaviour in general. In Brazil for example, people absolutely hate conflict and do everything in their power not to have to tell someone what they think or that changes in jobs for example need to take place. Compared to Holland and the UK, anybody that steps out of line of generally accepted practice will very quickly be pointed out, or appropriate steps will be taken to conform. Maybe this kind of behaviour leads to more wars (to force other countries to behave similarly or "in line with common sense"), whereas other countires seek to avoid conflict and "live with it".

All in all, the whole point of this post is to re-consider the fact of rationality and intelligence. We cannot assume that we are 100% rational thinkers by reason, morale and so on. There are definitely some animalistic factors involved that influence our beliefs (beliefs influencing our decisionmaking process). After all, how strongly you feel about something being true is how strongly you react to a certain event. I'm not sure whether us humans are able to deal with this in full at some point in time. We'll probably need to emotionally detach ourselves and think like Data, of Star Trek. :)

Maybe it's all part of being human.... :)

Thursday, August 02, 2007

The importance of Cognitive Science

I bought a couple of books on Cognitive Science from Amazon. It's an increasing field of science and it is very interestingly right in the middle of a couple of fields of research: Psychology, Linguistics, Sociology, Neuroscience, Artificial Intelligence, Anthropology and a couple more.

The importance and application of cogsci is here now and in its fullest, to develop new applications for computers that go beyond the general click-and-do and replication of human action. Cogsci is an adventure into the (partial) replication of human will and need with the objective to filter information, entities or people on our behalf.

Think about social websites that are popping up everywhere. Why do I have to go online? Do I have the time and do I want to browse through paaaaages of irrelevant nonsense just to find something I find remotely interesting? And even if I resolve one particular need at that time, what about all the other stuff that comes next?

So, why consider social networking as the action of going online in the first place? Shouldn't we think of social networking as an ambient network that is all around us, all the time? Going online is a bit boring and limiting, but the alternative of being constantly notified of new events is pretty boring too.

The resolution is that a computer therefore must find out information that is meaningful to us at the time. For this, it needs to find out interests (beyond keyword-matching), find out how we feel, find out where we want to go, find out what we (would like) to buy, find out what is going around us and with us basically. More sensors in our environment are likely to produce that kind of information. Some smarter ways of interaction remotely (through phones) are also going to help. Some smarter ways of data mining and finding relevant resolutions are key to the resolution of this problem.

The problem is always that a computer has very limited sensors of its environment and cannot infer or create a meaningful representation (of meaning) in the first place. It doesn't have emotional sensors to find out our mood (unless we instruct some nonsense ambient ball for example to choose it). This makes the computer quite a limited and hopeless item in our battle for filtering information, yet!

Sunday, July 22, 2007

Dutch history in Recife

I had the opportunity to be part of a film group that was making a documentary about the history of Recife, especially the part where the Dutch ruled this city for 24 years. Actually, founded the city.

The Dutch / Recife history goes quite a while back and most Brazilians here rever the period, as it was when Recife started flourishing and become a planned city. The Dutch first went to Salvador, because that's where the Portuguese were stationed and where the industry was. They took it for a very short time in 1924 or 25, but it was quickly retaken by the Portuguese. In 1630, they took Recife going through Olinda. Many of the churches and Portuguese symbols in Olinda were razed to the ground by the Dutch on this small crusade.

Maurits van Nassau (Mauricio de Nassau) started his rule of Recife in 1637. He started studying at the age of 14 and as he was part of the noble family line, he managed to secure a good position, I believe as army colonel. His problem was that he wasted a little bit too much money, was actually a squanderer. So when he was given the opportunity to rule Recife, he didn't think twice. He managed this region and brought other regions to flourish at the same time. In a short while, the Dutch rule extended from Sergipe south of Recife to beyond Fortaleza in the North, a place called São Luis de Maranhão.

The Dutch were actually attracted to the north of Brazil due to the abundance of sugar cane. Many of the colonizers brought over from Holland started trades. Maurits created schools, built bridges, infrastructure and made the fort and Mauritsstad much like the buildings in Holland. Some of these buildings even bear resemblances to this day, although a lot are in a very sorry state indeed.
Of course, in that time there weren't very many people living in The Netherlands, only 1 million in total. However, there were specific social developments underway. The Spanish and Portuguese were highly catholic and conservative in their thinking. Learning from the strong reform movement in Holland, they prohibited the reading of any document, including the Bible.

Holland was at the front of strong reforms through the thoughts of Calvin and Luther. This produced a climate of strong liberalism and a climate of high tolerance. The tolerance allowed people of different religions to live together in the country itself plus in the colonies.

Holland also already had very basic democratic management systems in place since the 13th century, for example the water council (hoogheemraadschap). This was a democratically run water management organization. Throughout the middle ages and later up to the start of the 20th century, Holland has been delayed somewhat in development mostly due to the battle against the sea. A couple of serious floods devastated parts of the country. As with other parts of Europe, the region was run through different families of nobility, which otherwise was called The Seventeen Provinces.

As for Recife and Pernambuco, the Dutch needed people to work on the sugar plantations. They were always after new trade agreements and selling their newly gathered exotic wares back home for very high prices. Since the number of people was insufficient, the Dutch (like the French, Belgians, English, Portuguese and Spanish) were looking for slaves to do this work for them. The west coast of Africa was a notorious region where the slaves were taken from. The Portuguese were in charge of many of these slave markets on the west coast, but during Maurits's rule in Recife, the best of these slave markets were taken over and so, Recife managed to get access to slaves, which started the flourishing of the region. Porto de Galinhas is also a remnant of this practice, albeit of a different period, where the word galinha (chicken) actually means slave. (the chickens are landing).

If you look at the map spanning the region of the Americas and Africa, the Dutch controlled ports and colonies in South Africa, along the west coast of Africa, the island of St Helena, Sergipe up to São Luis de Maranhão, the Antillen, New Amsterdam (later called New York) and Suriname. Peter Stuyvesant has been famous for establishing New Amsterdam in America, but it was later traded with the English for the control of Suriname.

There were two main companies around this time, the West Indië Company and the United East Indian Company. The WIC established the colonies around the Americas, whilst the VOC went around the Cape of Good Hope to countries like Indonesia, Sri Lanka and Australia.

During the rule of Maurits, the Jewish community found a place of quiet to practice their religion and also expand their own trade. The first synagoge of the Americas was built in Recife. However, in 1643, Maurits was ordered back by the WIC to serve back in Holland. He extended his rule against the company for one more year, but did return in 1644. The flourishing of the region without Maurits quickly declined and it was followed by a number of Portuguese sieges that diminished the control of the region bit-by-bit, both attacking from the south and from the north. The last stand was made in Recife.

So, it was great to be amidst a lively story-teller today. Parts of Dutch and Brazilian history were relived today with historians, document researchers, archeologists and people of the local Dutch community.

Saturday, July 21, 2007

The gist and computational semantics...

Gist is described in Wikipedia as the general significance, of remembered experience. I'm continuing to read up on semantics, computational semantics and how things are interrelated. Language is a way to communicate about events and concepts, but for language to work, we need to have similar ideas about concepts, as otherwise miscommunication occurs. How do we resolve miscommunication and do we adjust our world model to compensate for this? The very interesting part in this is that for communication to work across cultures, we need to understand how other cultures perceive the world and what their norms and values are for communication and interaction.

The learning process is the key to human intelligence. The way I see it now is that we learn a number of concepts through our senses and actions, then as we learn to communicate, we are able to talk about similar things since we have a way to imagine and reconstruct those similarities. Without similarities (learning by analogy?), it'd be very difficult to learn anything. In another line of thought, I can imagine that we start with a large ball of conceptual knowledge that we are born with. Then through continuous experimentation, observation and communication this gets divided into more specialized concepts. Eventually better represented as a certain kind of conceptual network. It is interesting to note that some linguists believe that not all words of our vocabulary are learned from external sources, but may actually be inferred by meaning based on similarity. This is quite difficult to prove however.

Some readings in the area of ontology allowed me to understand a bit more about how we can imagine the storage of concepts in a conceptual tree. When analyzing similarity or thinking about how things are related, the larger the distance between these items, the longer it takes to interpret the concept. This also would explain how it becomes more difficult to learn something if we know nothing about the concept. For example, research indicated that when associating canary with singing, this is easily accepted and very quickly associated and confirmed as true. But the distance between canary and songbird is only single step. Associating a canary with flight takes slightly longer to confirm, as the distance is now two steps (through bird and then to flight). Other relationships may not exist and probably should not be created as they would develop a wrong relationship between concepts and therefore a wrong conclusion or erroneous view of this world. The strength between these relationships (belief?) may be rather difficult to change once it is established.

As we thus grow this conceptual tree and develop relationships and enrich it with splits in certain concepts (differentiation), we constantly re-shape our conceptual network. My doubt in this theory is whether besides real-world concepts that we store in the brain, we also store how we inferred a certain relationship, as this would help us in the future to derive other concepts more rapidly. This helps us to find other similarities at a faster level.

Gist is a project that attempts to analyze concepts in a certain space and makes divisions between these concepts using support vector machine classifications. The research is very interesting and I am wondering whether support vector machines are part of the key to allow machines to learn similarly and build a similar conceptual tree.

I imagine the brain as a very large network. Even though the network cannot yet derive meaning or produce language as we are born, the network or an externality to it must have the ability to train it. Supposing that the chemical and neuro-biological processes in the brain produce a certain sequence or state (that which represents a certain concept), how do we know or test that this state or sequence is that what we observe or listen or is meant by somebody else? This requires us to continuously test these concepts with the external world and re-test our experience against our observations until the network produces something that comes close to the actual experience. This raises the interesting question how we become efficient in testing observation against our idea of the thing, whether they are part of the same network, and so on.

I've ordered a couple of books that allow me to dive into the material for real from an academic perspective. I'm very interested whether the ideas that I have developed are in one way or another similar to existing theories.

Friday, July 20, 2007

When malvolent factors collide...

It's generally a combination of all factors all colliding together (like Murphy's law) that shape such a serious incident. I take it now confirmed that the reverse of the right thruster had been disabled. Having said that, the effect of the reverse thruster at high speed is not necessarily high.

The design of the automatic braking of the Airbus has been criticized before, as it does not in all situations guarantee that the plane will actually brake in time. When to brake is sensed by a couple of things. It's better to let you know from different sources and other accounts where similar events developed:

http://www.rvs.uni-bielefeld.de/publications/Incidents/DOCS/ComAndRep/Warsaw/leyman/analysis-leyman.html

http://www.msnbc.msn.com/id/13773633/

http://www.kls2.com/cgi-bin/arcfetch?db=sci.aeronautics.airliners&id=%3Cairliners.1993.670@ohare.chicago.com%3E

http://answers.yahoo.com/question/index?qid=20070718063700AA4OCc5

Well, since all I can do is speculate, I'm leaving it to the following course of events:
  • The thrusters were not in operation, but their effect during landing is minimal. Not sure how much of a difference they would have made on this account.
  • The speed of the aircraft at landing was higher than normal. This may have caused hydro-planing and Airbus has a system where the rotation of the wheels need to be at 45knots minimum for the braking system to kick in. This is when automatic braking is in use.
  • The runway was too short to recover in any way possible. When the braking apparently started to work, the runway left was too short to bring the plane to a full stop. The pilot reverted his decision and attempted an emergency take-off.
Thus. the combination of all undesirable factors together:
  • Some mechanical disability that makes a difference (reverse thrusters disabled)
  • Probable failure of the plane to recognize it was on the ground, causing the braking not to kick in on time
  • Failure of the pilot to recognize this occurrence and apply braking manually (if possible)
  • Too short a runway to give more lee-way in the recovery of these emergency situations
  • Rain puddles on the runway (see rainspray) that caused the hydro-planing in the first place
The actual course of events can only be found out for sure when the report comes out. Some of these findings can only be truly confirmed with the data of the black box.

Analysis of the crash...

I've been looking at the video now in step-mode. It's poor quality, but I can derive a couple of things that question the statement that the reverse thrusters had been in operation the whole time. Looking at the video and taking some screenshots however, I'm not so convinced this was the case.

(click on the pictures to see them larger)

Here are some considerations of mine that suggest a different sequence of events that seems to be a closer account:

http://www.youtube.com/watch?v=k6lO-eig_i0&mode=related&search=

Here we see the approach of the aircraft, right, where the plane sees the camera at an angle of about 300 degrees, head-up:


This image shows how the aircraft is passing the camera. The rain should be an indication of full-thrust working. The speed of the air at thrust surpasses the speed of the airplane by far. I see no waterspray being pushed in front of the airplane. Also, the size of the spray and its shape seem to indicate that the jet being pushed backwards is solely attributable to the wheels. There isn't even, as far as I can see, a buildup around the wings that indicate any kind of reverse-thrust to stop the plane at this point. Note that at this point the plane is probably around half the length of the runway. The Airbus A320 requires at least 300-500 meters of runway beyond the 1.9km that this runway has:


Here we see another camera recording the event. The plane is in view lower right and is just entering the camera frustrum:


Camera 10 has a detail view. Now we do see a waterspray being pushed forward even beyond the forward wheel. The buildup of spray around the body of the aircraft as a whole is noticeable. This is what you'd probably have to see in the first image (albeit the shape of the water spray would be longer due to higher speed), but at least the water should move higher and around the body of the aircraft if reverse-thrust is to be engaged. See that white cloud in this picture? I didn't see that in the previous pictures. Common sense tells me that if reverse thrust was working earlier, we should at least see a visible deceleration and similar upward-moving waterspray in the previous pictures.


Here we see another image a second later. In the overall movement of things, I don't see the aircraft noticeably slowing down, but it's as if it suddenly starts rolling out ( no thrust applied whatsoever ) and it's as if the spray of the reverse thrust is suddenly diminishing significantly. Has the pilot just decided to abort the landing at this point in an attempt to take off again with the remaining speed? This is probably about 3/4 down the runway or so:


This image here shows another camera about 3 seconds later. There seems to be a short flash at the left turbine, which may indicate the thruster reversing again into forward mode. I am not sure whether reversing the thrusters at this point, when still rotating reverse, would ignite a flash of some kind (maybe someone can comment?). The length of the runway in front must definitely be very limited.


Even though the news indicates that the right reversor was defective, I'm not sure whether this is truly the cause. It's very well possible that it was not operating and the aircraft logic prohibiting the operation of the left reverse thruster. However, there are other accounts of disabled reverse thrust or braking due to failure of the sensors or conditions prohibiting proper sensing of ground conditions (the A320 does not allow pilots to engage reverse-thrust in "flight" condition).

http://www.aaib.dft.gov.uk/publications/bulletins/february_2005/airbus_a320_200__c_ftdf.cfm

http://www.rvs.uni-bielefeld.de/publications/Incidents/DOCS/ComAndRep/Warsaw/warsaw-report.html

http://nakedshorts.typepad.com/nakedshorts/2005/08/debugging_airbu.html

Plus... we see that the reverse thrust does kick in at some point (picture 4), albeit much too late. If there was a full defect, this wouldn't have happened.

There seems to be quite some confusion with engineers as to how the actual braking operation works, as the manual is not very clear at this point:

http://www.pprune.org/forums/archive/index.php/t-92017.html

I can imagine that when one engine does not allow reverse thrust, the other should not apply it as this would spin the airplane around. There should be a safety mechanism in an aircraft that guarantees (more or less?) equal thrust being applied to both engines. Steering in an aircraft is not done through thrusters, but through wing action and ailerons.

Personally, if this is what happened, I can understand the stress of the pilot. There is only just enough length to land in dry weather conditions. The runway is wet. The pilot with 20 years of experience must have landed here before and know about the length of the runway. The pilot must have known about the pending maintenance action for the right turbine. The grooving has not yet been done (pending for September) due to "commercial pressure" to open the airport ( the losses would be too great ). The aircraft on touchdown does not respond to any braking commands (see potential similarity with other reports on other A320 crashes). More than halfway down the runway, the aircraft finally responds, but the length in front of the plane simply doesn't cut it. The pilots probably both decide to pull back up. The reverse-thrust is aborted and the thruster is set to forward thrust again. The speed of the aircraft at this point is far from favourable with only very little runway left. Is it possible that another 300-500m would have saved their lives? The A320 takes off and lands at around 160knots. This is 82m per second. The landing speed was above 160 knots at the time of touchdown.

Besides this plane having probably suffered a technical problem, we cannot ignore the other factors that have contributed to this. The pilots get informed that they better circle around for another landing attempt if they do not manage to land at the first 300m on the runway. Imagine the consequences if the braking system doesn't work and you're halfway down the runway (that is 8-10 seconds down). The decision you are forced to take in the next 10 seconds is crucial and every second is very, very crucial. Braking the airplane at more or less full-speed having only half of the runway left, a runway without grooves in wet conditions? This probably went through the pilot's minds at the last point of decision.

A couple of people in Brazil just put a value on the price of human life. For a jet full of people to crash in a busy airport, the monetary equivalent is the money that was made from February 2007 until now.

My expectation for any airport wherever in the world is that all international and safety norms are met, if not exceeded. THEN we can talk about weighing off extra security and safety measures versus economic benefit.

Thursday, July 19, 2007

Accountability (vs. "relaxa e morra")

I found a new, very insightful and interesting blog from Lucia Hippolito. Cientista política, historiadora e jornalista, especialista em eleições, partidos políticos e Estado brasileiro.

http://www.luciahippolito.globolog.com.br/

She also commented on the fact of lack of accountability across Brasil. With the following main observations through the text:
  • Accountability contains the idea that authority is a public servant. Elected or not, it has to be accountability for its actions to society.
  • Less stage and more debate, less uprisings and more interviews, less "law by ministry" (do other countries have this even?) and more attendance to the Congress.
Well... Accountability. Such a great word, and there is no portuguese translation! (ironic?)

When we look at the disaster of the airplane in São Paulo, some important "political processes" immediately kicked in. Nope. Not what you expect. Immediate investigations were ordered to try to blame it on the runway, but overall, the political world kept rather quite. The president has, unfortunately, not appeared on television in the last 72 hrs to send his condolences and show his commitment and compassion. Bit disappointing.

In February 2007, the airport was closed for 737, Fokker 100 (3 large aircraft visiting the airport) due to concerns about safety. The main concern of safety is the short runway of 1.9 km, which is too short for larger aircraft too land in certain conditions. Some days later however, this closure ruling was overruled by an appeal, stating that the safety considerations to be taken into account did not outweigh the economic ramifications that would ensue due to airport closure. So basically all the people in the jet died because of money and we just found out the exact numeric value that the Infraero, ANAC, government, Justice have considered "equals" human life.

The Airbus A320 is able to land on the runway of that length in dry weather conditions. Not in wet weather conditions. There are accounts of the Airbus failing to engage the reverse thrust, as it happened in Warsaw and some other event (mysterious) in France some time later. In this case with SP, it appears that the airplane had problems with the reversor since the Friday before (which, ironically, was the 13th). According to TAM, this was not prohibitive to still using the airplane. I'll leave this to airplane experts to decide whether this is correct or not. The pilot attempted to take off again, (but very likely due to aircraft logic was unable to). At least someone is looking at flight deck automation problems.

There seems to be a strong will to make money in Brazil and this focus is costing lives of other people. Rather than complying with all standards, assume the responsibility beyond the will to make money, some people are playing russian roulette with other people's lives.

If there is no consequence this time around and the "guilt" remains in the middle as it has been the case for other incidents.... Brazil is hopeless. It will mean there is no accountability for Brazil, no conscience, no responsibility, and not even authority or leadership. If that be the case, get out while you can! Before you become another statistic.

On another note... the PanAm games are there. Millions spent in the Maracanã stadium on some silly sport events when the people outside the stadium are living in atrocious conditions. I'm saying this not to say... let's NOT have the panams... I'm saying this because the money spent on having the games, with the full entourage and so on, seems a bit much. The positive thing is that even the poor living on the famous slums hill can see the fireworks going off in several rounds during the opening concert. It was amazing and beautiful. That should make them at least slightly happier...? Or am I safe in assuming it makes them quite mad to see how money is being wasted on fireworks that could have been used to improve poor health-care or impossible sanitary conditions, or ... maybe... like... ending drugs and violence in Rio?

Ignorance abound! One day or another... Brazil will have to face its consequences. Or rather... the people will.

(image above courtesy Duke Chargista).

Tuesday, July 17, 2007

On the meaning of meaning...

I think through my reasoning of the previous posts there is a certain scope to mathematically represent certain concepts of meaning and their relationships in a different way than NLP does at the moment.

The challenge is:
  • Natural language embodies meaning (semantics)
  • The embodiment of this meaning should be extracted and translated to a different representation, ideally mathematical
  • The interrelations between concepts should be clarified and also encoded into a mathematical representation
  • A document should be analyzed according to a world model or instance model that a large network may have. Then generate a representative network model of the meaning of that document within that world model or instance model
  • I make the distinction between what I call model meaning and what I call instance meaning in that model meaning is something that applies to all instances (the truth of an instance), whereas an instance may differ because it has different or additional concepts or elements that do not or not always apply to the model meaning. An instance is easily recognized in (correct) language by words as "he", "its", "his", "her", "them". Things that belong to someone or things/concepts that have a specific name or identifier. General concepts do not have these names or identifiers.
  • Encode a query into a network model translation and disambiguate if necessary. Then find all network model translations that have similarities to the key network model
A further challenge in this topic is that just storing a network model of the overall meaning of a document is not enough, because lookup of that document through its meaning requires additional computational effort.

The necessity is to encode that particular meaning into a different key, such that this key has a specific meaning or range of meanings with error that can be used to look up the pertaining document. It should work the same way as storing a word that is referenced to a range of documents. Knowing the word, we can look it up from the database and retrieve all documents in which the word occurred.

For meaning, this is obviously very different and far from straight-forward, plus that there is very likely a large margin of error in analyzing its meaning (use of synonyms adds to this error and might also slightly change the meaning if changed by a single choice of synonym).

It would be great to choose a very long number for example, which properly resembles the induced meaning of the document and where the document itself generates a range of different possible meanings that can be expressed as close to the generated number. This allows a query to be more effective and find a wider or smaller range of documents.

Monday, July 16, 2007

The problem: inferring meaning for computers

I browsed Wikipedia on the "Meaning of meaning". In order to allow computers to search the web semantically, it is necessary to allow a computer to understand meaning or at least map it to a category/number/element, so that it can infer relationships between words, passages and texts overall (between documents). I reckon this is computationally very intensive. It is necessary to better understand the concept of meaning in an attempt to represent it for a computer.

Well, reading Wikipedia, which is of course not the best reference on knowledge but acceptable for starters like me, I see that there are a number of very difficult problems arising when mapping meaning towards a mathematical element.

Meaning is induced by the environment and the interpretation of elements of a language. One text noted that knowledge is not stored as a linear corpus of text in the mind, but rather more like a network of elements that together represent the idea or concept. This means that rather than recalling the text corpus that describes the idea (after reading it the first time for example), knowledge is continuously reconstructed from the stored elements that we find (individually) important and relevant. This seems to mean that memory and the method how things are stored are very relevant for semantics. This explains also quite well how interpretation (based on experience) allows one person to totally misunderstand another, even though the language may be correct.

The problem with computers is that they are in general stateful (stacks, memory, CPU cache) and process one thing at a time. Consider for example the following paragraph from Wikipedia:

"In these situations "context" serves as the input, but the interpreted utterance also modifies the context, so it is also the output. Thus, the interpretation is necessarily dynamic".

It's easy to understand that when we process a certain corpus of text, the meaning and interpretation of that text will change as we scan it. This to me means that the analysis of a text in itself in one pass does not equate to the continuous, recursive analysis of that text, since the text itself is able to modify the context in which it is read. There is a feedback in the text that a computer will need to simulate. It seems that the more I read about semantics, the less I find computers able to simulate the mind processes that lead to understanding of meaning and communication of ideas. Let alone searching for it in a 400TB database (Internet).

Besides natural language in text form or speec, we are able to make sounds, facial expressions and we communicate through body language. The total of these elements will form a larger message that a computer cannot process. Also the emotional weight of certain texts is difficult to simulate for computers.

As I have written before, it does not seem possible at the moment to reliably construct a mathematical model for semantic search that works. There are only parts of the problem as a whole that can be simulated (a better word is approximated ).

Whereas it would certainly be very interesting to see whether semantics as a whole can be better approximated if we apply further matrix operations on matrixes of different purposes. For example, we could use LSI and LSA to consider relevance of one text to another on a very dry level, but multiply this with the knowledge of a particular context of reference, also represented in another matrix in the hope to find something more meaningful.

Matrices seem very useful in the context of deriving knowledge out of something we don't really understand :). A neural network is a matrix, LSI uses matrices and probably it's possible to come up with different matrices that represent contextual information or an approximation of context itself.

Assuming that we have a matrix for a concept or context, what happens when we apply an operation of that matrix on an LSI document? It may be far too early to do that however. In order to come up with anything useful it's necessary (from the perspective of the computer) to come up with a certain processing pipeline for semantic search.

These efforts probably also require us to re-think Human Computer interaction. A lot of our communication abilities are simply lost when we interact with a computer over the keyboard, unless we assume that our ability to communicate those concepts through language is very precise. As I said before, when we communicate and we communicate with people that have similar experiences, the level of detail in the communication need not be very large. This is because the knowledge reconstruction at the other end is happening more or less the same way (based on rather crude elements in the communication), which means that a lot of details are not present in the text. A computer might then find it very difficult to reconstruct the same meaning or apply it to the right/same context.

A further problem is the representation of knowledge, context and semantics. We invented data-structures like lists, arrays and trees that represent elements from quite restricted sets. The choice between these structures is governed by the general operation that is executed upon them and decisions are led by resource or processing limitations. However, the data structures were generally developed on the basis that the operations on them were known beforehand and the kind of operation (and utility of each element) is known at or before processing time.

Semantic networks (or representation of knowledge and/or context) do not exhibit this requirement, seemingly:
  • A representation of a concept, idea or element is never the root of things, or at least not a root that I can easily identify at the moment. Does the semantic network have a root at all? I imagine it more to be an infinitely connected network without a specific parent, a network of relationships.
  • The representation of a network in a computer data structure is not basic computer science.
  • Traversing this network is very costly.
  • The memory requirements for maintaining it in computer memory as well.
  • It is unclear how a computer can derive meaning from traversing the network, let alone apply meaning to the elements for which it is traversing the network.
  • Even if there are specific meanings that can be matched or inferred, the processing power is likely very high.
  • The stateful computer is not likely to be very helpful in this regard.
The latter is based on my imagination that the mind does not maintain a lot of state, but seems more a very rapid "functional language computer". Rather than retrieving meaning A or meaning B from memory directly based on the factors of a lookup, it reconstructs a meaning from smaller elements.

This goes back to a philosophical discussion on what the smallest elements of meaning are and how they interact together.

Latent Semantic Analysis

This is a wonderful explanation of LSA:

http://lsa.colorado.edu/whatis.html

"As a practical method for the statistical characterization of word usage, we know that LSA produces measures of word-word, word-passage and passage-passage relations that are reasonably well correlated with several human cognitive phenomena involving association or semantic similarity. Empirical evidence of this will be reviewed shortly. The correlation must be the result of the way peoples' representation of meaning is reflected in the word choice of writers, and/or vice-versa, that peoples' representations of meaning reflect the statistics of what they have read and heard. LSA allows us to approximate human judgments of overall meaning similarity, estimates of which often figure prominently in research on discourse processing. It is important to note from the start, however, that the similarity estimates derived by LSA are not simple contiguity frequencies or co-occurrence contingencies, but depend on a deeper statistical analysis (thus the term "Latent Semantic"), that is capable of correctly inferring relations beyond first order co-occurrence and, as a consequence, is often a very much better predictor of human meaning-based judgments and performance.

Of course, LSA, as currently practiced, induces its representations of the meaning of words and passages from analysis of text alone. None of its knowledge comes directly from perceptual information about the physical world, from instinct, or from experiential intercourse with bodily functions and feelings. Thus its representation of reality is bound to be somewhat sterile and bloodless."

Having read this from the perspective of inferring meaning from a corpus of text, I think perspectives and statements on the use of LSA or LSI are too positive to become anything truly useful for web search by itself alone.

A philosophical discussion on the meaning of meaning can be useful to understand how meaning is actually represented or can be analyzed. If ever we understand how meaning is derived, it should be possible to generate better approximate (mathematical?) models.

It's very difficult to infer any kind of meaning without having access to the real world the way that humans do. It would be interesting to find out how the world looks like to deaf or blind people. This should give us useful clues on the way a computer is perceiving a corpus of text. Moreover, maybe the way disabled people compensate can be a useful indication for other compensations in LSA or LSI.

It is very interesting though to see how meaning and semantics can be (in limited ways) represented by a mathematical calculation. This begs the question whether the mind itself is a large, very quick and efficient calculator or whether it's depending on certain natural processes. I think personally, as in another post, that the mind does not rely on calculation alone and that the model of a stack-based computer does not even come close to resembling our "internal CPU".

The intricate and complex process of deriving meaning from the environment requires an interaction between memory, interpretation, analysis and emotion. Mapping this to a computer:
  • Memory == RAM and disk, probably very, very large and not always accurately represented (human memory is 'fuzzy')
  • Analysis == Deconstruction of events into smaller parts
  • Interpretation == The idea inferred from the sum of the smaller parts, with extra information added from memory (similar cases)
  • Emotion == A lookup and induction of feelings based on the sum of the smaller parts, that recall certain emotions associated with the (sum of) those events. This is induced feelings when watching/reading a romantic love-story or in other cases levels of stress induced by a previously suffered trauma.
Clearly the computer is missing a lot of information. Besides the problems of Natural Language Processing (variations of meaning "hidden" in the text, where words mean different things, etc.), a poem to a computer is a sterile corpus of text that embodies much less meaning than it does to a human. Without memory and therefore association with similar events, a single corpus of text is empty and out of context.

These realizations lead me to believe that, in order for a semantic search to be really successful, one must replicate people's memories, emotions and contexts and analyze each corpus of text (the Internet) within the context of that particular person. To analyze and consider the whole Internet within the context of individuals is an impossible task. If we do this based on certain profiles, we might be able to execute this.

The ideal situation is the possibility to store "meaning" and not just keywords from a certain corpus of text and only later match this meaning with intention (search). I don't think we are able yet to represent meaning in other ways than text, unless we consider that LSA or LSI are indications of meaning by large arrays of numbers (matrices)?

Ugh! Sounds like LSD might be a better means to approximate meaning :)

Sunday, July 15, 2007

Latent Semantic Indexing

LSI (Latent Semantic Indexing) is a technique in computer science for finding certain "latent" information in documents. It's about analyzing semantic space through mathematics and statistics, which discovers semantic relationships between words and passages, however the computer cannot name that particular relationship. Also, actual meaning cannot be derived this way, but it can analyze how one corpus of text relates to another.

LSI creates a very, very large matrix of documents in columns with terms(words) in rows, where cells are occurrences. The to-be compared text is another single-column matrix that is transposed and multiplied with this very large matrix. The result is a couple of numbers that describe relevance, or similarity, both in the semantic space (not just word occurrence).

If you are interested, this tutorial gives a very good review of the technology. Several start-up companies are selling Search Engine Optimisation "solutions" based on LSI, but these are all mostly a fraud:

http://www.miislita.com/information-retrieval-tutorial/svd-lsi-tutorial-1-understanding.html

LSI is an attempt to discover "latent" information in documents in an attempt to make our search engine searches more useful. Semantic search is about searching for meaning, whereas most current search engines use word occurrence search (a very dry method of search). LSI by itself is far from sufficient to even approximate a true semantic search.

I have just played around with this technology using a couple of papers found through Google. LSI Tutorial:

http://www.miislita.com/information-retrieval-tutorial/svd-lsi-tutorial-4-lsi-how-to-calculations.html

The technology is computationally very intensive (well, since matrix operations are, and the set we are considering is, namely the Internet). If you wanted to use LSI properly, you'd have to index all documents on the Internet first, establish a matrix (that will never fit in memory) with the number of columns equal to the documents you have analyzed and the number of rows to the unique terms (words) you have encountered. Then establish a matrix with your search query that has as many rows as the other matrix. Then transpose and multiply. It's easy to see that this type of processing can't easily be done online for the volume of searches that are taking place.