Monday, December 31, 2007

Subjective Computer Science

Well, computer science is really a subjective science...here's why. The people who write the requirements have their own view of what the product will be. The people who design the product have their own view of what the product will be. The people who implement the design have their own view of what the product will be. The people who test the implementation have their own view of what the product will be. The people who put the product into production have their own view of what the product will be. The technical writers have their own view of what the product will be. The technical and sales support team has their own view of what the product will be. And the customer has their own view of what the software should do. Ideally, the software should do what the customer wants. But each customer has different wants, thus there are conflicting requirements, conflicting designs, conflicting implementations, conflicting testing, conflicting deployments, conflicting documentation, and conflicting technical support.

All these views and conflicts are what are so interesting in computer science. So instead of trying to stomp out different views, or conquer the world, we should embrace conflicting ideas. Here are some examples. Everyone has a different set of search terms they want to look for. Everyone has a different set of applications they use for work and entertainment. Diversity is good. Choice is good.

Now, how do we make diversity and choice possible? One approach would be to set some standards for people to adhere to. This stifles creativity, and sets the stage for software that doesn't please the customer. One way to make diversity and choice possible is to implement a pluggable interface. This is form of a standard. But there can be different pluggable interfaces for different products. Wouldn't it be nice if you could use the same plugin in different products? Say you had a plugin that worked in ImageJ. Wouldn't it be nice to be able to use the same plugin in Adobe Photoshop and the GIMP? Wouldn't it be nice to use the same interface builder format for Xcode, Eclipse, Visual Studio and NetBeans? What if I could write XML applications that would work in Safari, Firefox, and IE? It's the same fucking problem all the time. Everyone wants to reinvent the wheel. Do I use CLI or Babel?

So what is the solution to all this? At a fundamental level, we have to accept that there is diversity. There is uncertainty in all numbers. There is uncertainty in the elements in a set. There is uncertainty in the order of elements in a set.

Saturday, December 22, 2007

Uncertainty and Continuous Hierarchy

Uncertainty may be thought of as a form of continuous hierarchy. You aren't certain of the levels within the hierarchy, the nodes within the hierarchy, and where the arcs are connected within the hierarchy.

For elements, you aren't certain exactly what the element's value is.
For sets, you aren't exactly certain what the elements are.
For both, you aren't sure whether it's an element or a set, or both.
For order, you aren't certain of the order of the elements.

Thus uncertainty is a form of continuous hierarchy.

Thursday, November 29, 2007

Continuous Hierarchy versus Fuzzy Stuff

The difference between continuous hierarchy and fuzzy sets is that fuzzy sets give a degree or range to linguistic variables. This is necessary for speed. Continuous hierarchy treats linguistic variables as a continuous hierarchy.

Wednesday, November 28, 2007

The Network Effect of Gravity

When there was only a single point in space, gravity didn't exist. Once two pieces of matter were formed, gravity became present. As matter coalesced into stars, galaxies moons and planets, gravity became a network of all matter connected to all matter. The closer the matter was to each other, the heavier the weight of the connection. Larger pieces of matter contained more weight in the connections. Lots of connections meant that space was bent due to the weight of the connections. Weight is not a property of mass, it is a property of gravity or the network connection. The further the connection, the less the weight. The mesh of gravity estimates a gravitational field. Thus, at the discrete level, there is matter, then at the hybrid level there is a gravity network, and at the continuous level, gravity becomes a surface or field. The quantum nature of gravity means that as body moves through space, matter obscures other matter, and two connections might become one or one connection might become two. As connections are formed and dropped, there are quantum jumps in gravity, or gravitons. More obscuration means a stronger connection.

The Network Effect

What has happened in computer systems? First there was the first instance of the computer, then more came. Then we started hooking them together in a network or mesh. Now computers are in fields of wireless networks. Soon the whole internet will become one big field. The same thing will happen to cell phones. Currently there are only cell phone networks connected by a network of cell towers and land lines. The next step is to create a field that all cell phones will be a part of, and the network will disappear into the field.

Equivalent to continuous hierarchy

An equivalent to continuous hierarchy or network might be an energy hierarchy or network. I am not refering to the typical electric company. I am referring to energy in it's natural form. Gravity, electromagnetism and others. Would a nervous system be considered an energy network? What is the nervous system for gravity? Gravity seems to be centered on points of matter. Gravity between all the atoms in the universe creates a tremendously large network. Magnetism creates networks between magnetic objects. I believe that forces within atoms create very small networks. Gravity seems to travel in both directions of the network, and electromagnetism has definite poles to it. I don't know about atomic forces.

I guess typical physics would call these things fields and write equations to describe them.

Continuous Hierarchy revisited

What seems to make hierarchies continuous is movement in space and time. Perhaps movement or fluidity is what makes particles look like waves. The question remains whether motion is a continuous, discrete continuous or discrete thing. All my intuition leads me to believe it is discrete continuous in space (discreteness occurs during collisions) and continuous in time. If we discuss collisions in time, we talk about scheduling. Perhaps the universe is running on a scheduler. Two things can't exist in the same spot--can two things exist at the same time? If a single particle exists in a vacuum, will it vibrate? Is there something about a vacuum that makes it vibrate?

Tuesday, November 27, 2007

Finally, a definition of continuous hierarchy

A continuous hierarchy or network is a collection of sets in which:

1. The elements are hard to distinguish. Examples of this are puns and synonyms.
2. Elements are different based on viewpoint (fuzzy numbers).
3. Sets can be difficult to distinguish.
4. Sets have different elements depending on viewpoint. This brings forth a whole subjectiveness to mathematics and computer science. Discussions about whether something is a fish or a mammal, a fruit or a vegetable become relevant.
5. The whole hierarchy is a dynamic, changing thing. This allows languages to change.
6. The order of elements within a set is hard to distinguish
7. The order of elements within a set is different depending on viewpoint
8. The order of elements within a set is also a continuous hierarchy or network.

Perhaps these simple insights will help us create a mathematics for politics, religion, social sciences, etc.

Wednesday, November 21, 2007

Subsets of Continuous Hierarchy

One of the subsets of continuous hierarchy is dynamic hierarchy. Viewed from the point of set theory (say Venn diagrams), dynamic hierarchy includes rotating sets, growing sets, shrinking sets, moving sets, jumping sets, and deforming sets. Hierarchies that continuously reform links. Hierarchies creating and destroying nodes. Loose links. Constant restructuring. Adaptable hierarchies. No ego. Only purpose. Hierarchical infrastructure that dynamic hierarchies meet get thrown into a quandry.

Another subset of continuous hierarchy is partial hierarchy. In a set theory view, the edges of the set become permeable. A member could be both in and out of a set or somewhere not quite in a set. The set boundaries may disappear leaving half of a set boundary. Some boundaries are distinct and some are non-existent, and everything in between. In the hierarchy, the edges are semipresent and are colored in gray values.

There are other subsets of continuous hierarchy that are yet to be named. One that might be considered is one where the nodes share a point instead of an edge. Another is where nodes overlap to some degree.

What seems apparent is that continuous hierarchy or continuous networking is something that has energy. Electromagnetic waves have both a particle and a wave behavior. The wave carries the particle. In continuous hierarchy, perhaps there is energy flowing between the nodes and over the edges. Perhaps in computer science, this energy may be thought of as the program counter, thread of control, or current instruction. I prefer to think of all nodes as being energized alive and operating.

All these represent primitive ideas about continuous hierarchy. The search continues.

Semantic Organism

What is language? Some say language is a semantic network. I say it's a semantic organism. There are many semantic organisms, natural, sign, mathematical, technical, visual. People absorb semantic organisms to survive, learn and entertain themselves. Some semantic organisms are painful, some are healing. Some medications control semantic organisms. Some semantic organisms affect medications.

Tuesday, November 20, 2007

Continuous Hierarchy

One might ask, what is continuous hierarchy? Well, I'll tell you. It is not the hierarchy you typically think of. One might think of the edges of the hierarchy getting shorter and shorter. One might think of the nodes getting bigger and bigger. Edges get less important. Nodes begin to overlap. If the hierarchy is view in terms of set theory, the edges of the sets begin to bleed into each other. A member could be both in and out of a set, or somewhere not quite in a set. The set boundaries may disappear leaving half of a set boundary. Some boundaries become distinct and some are non-existent. When languages and cultures meet, they exchange words. Jargon from a specialty creeps into natural language. (URL is you are el. english and spanish and hebrew?) I don't believe this is fuzzy sets or fuzzy logic. Here's why: everything is also dynamic.
Distance collapses. Languages collapse under the pressure from other languages. Cultures collapse. Technology lets languages extend into countries. Infrastructure that is distinctly hierarchical gets undermined. Only a system based on continuous hierarchy can survive. The top and the bottom are right next to each other. There is no top and there is no bottom. Only shifting hierarchies. Hierarchies continuously reforming different links. Loose links. Constant restructuring. Adaptable hierarchies. No ego. Only purpose. An organization with a vision survives. Critical skills are shared so there aren't any weak points.

Now. How does one write a system with these capabilities which does this in an efficient manner?