How is HOPE Different?

HOPE processes semanticized data ("semanticized" is a word that does not currently exist in the dictionary.) What does it mean to semanticize data? We can consult the Merriam-Webster dictionary:

to give a meaning to

to subject to semantic analysis

This defines very clearly how HOPE is different from traditional data processing applications. First, data coming in to HOPE, often from a real-time data source such as a stock ticker, is parsed and given semantic meaning. This meaning is carried along with the data from thence onward.

Once semanticized, the data can be semantically analyzed -- the semantic meaning of the data drives the processes performed on that data.

Let's look at a common problem in a traditional architecture. Given a street address, we want to add the latitude & longitude information (geo-coding) of that address when persisting the address from, say, an input form on the web. Here's a high level diagram of the traditional approach:

Here we see how the server does one thing -- after receiving the data from, say, the registration page, it obtains the lat/long from a service and, along with the street address, stores the data in a database.

Now let's look at what happens when we semanticize the data:

The data for "street address" is now semantic. We can now wire in processes (as receptors) that do a variety of things knowing the semantics of the data. We might want to

Upload the contact info to the GPS is our car for future reverence.

Show our location on a map.

Verify the address with the US Postal Service.

Query to get the latitude/longitude of the address.

And oh yes, we might want to add that information along with the contact information being stored in the database.

As the diagram illustrates, a traditional application creates a single monolithic process chain -- that's all it can do because:

That's all the programmer programmed it to do.

Without semantic meaning, the data is just a bunch of bits, so nothing else in the system knows that it can do something with the data unless explicitly instructed to do so by the programmer via implicit meaning.

HOPE is different because:

Data is semantic -- because it conveys meaning, other processes (receptors) in the system can manipulate that data as well.

A HOPE application is extensible -- you configure it from a library of processes (receptors) to create your own process chains. Some of these "receptors" are free, coming from the open source community, others may be commercial third party products, others your company may develop internally.

Rather than a monolithic application that sits on a single client or server, processes can be distributed, creating high performance, stable systems.