Tuesday, July 08, 2008

Invariants on the Web

Invariant is something that does not change under a set of transformations. The picture on the right shows Pappus’s Invariant in geometry. The invariant tells that by following certain rules the three intersection points shown in the figure are always collinear no matter how people may draw the two lines and locate ABC and DEF in the lines respectively.

Invariant study is fundamental to any scientific research, especially when the research domain is as complex as World Wide Web. Invariants are supposed to be constant within the specified research scope. By well understanding the invariants we may effectively improve the knowledge over many complicated issues. Therefore, it is unsurprisingly for us to see the discussion of invariant study in the new Web Science Research Initiative.

In "A Framework for Web Science", the flag article of Web Science, Tim Berners-Lee and his colleagues have carefully studied several invariants on the Web. In particular, one invariant is outstanding among all the others. The one is URI (Uniform Resource Identifier). In the paper Berners-Lee et. al. had focused on discussing which invariant represents the binding of semantics with declared objects. There was no final best solution concluded in the paper, however, the one closest to the best was URI.

In varied programming languages we have widely used an invariant, which is declared name. In programming languages such as Java or C++, "each unique object (i.e. with distinct semantics) is declared with a distinct name in one program. By referencing a name, a program accesses the semantics behind the name." Hence declared name is taken to be invariant.

On the Web we are currently using another invariant. "Web researchers decide to use location binding to solve the problem, i.e. URIs and URLs. By default, identical URIs reference the same semantics. Identical URIs on web is the same as identical declared names in programs. However, the name of this URI is varied, i.e. name is no longer an invariant. In constrast, URI becomes a new invariant."

The authors, however, pointed out that indeed neither of the two was proper invariant on Semantic Web (or on the future Web). "The difference is, however, that the requirement of machine understanding," said by the authors. We actually have no ways to promise the consistency of the meaning to which a URI points. It is the same as we cannot enforce users to consistently bind the same name to any unique object on the Web.

Although with the problem, the authors did not provide a satisfactory answer to the problem in their paper. By contrast, they simply emphasized that "W3C suggests that do not transfer URI to another object. That is, whenever you create an object, giving it a unique URI. This requirement is thus the same as that whenever we create a new object in program, make sure we give it a unique name." In other words, please do not change the referred destination of any URI though anybody has the right to perform such a change. This passive resolution is not a satisfactory answer. Deprecated URI has gradually become a severe problem when more and more Web applications start to assume URI to be invariant on the Web. May we have an alternate, active answer to the question?

The figure above shows three basic components when we bind semantics with certain object. They are the declared name, the object itself, and a link connecting the two sides. So which one of them is truly invariant when they are presented on the Web?

As the paper has discussed, neither the declared name nor the link (i.e., uri) is true invariant. "Apple" may be fruit or a software company. We have no way to restrict a handpointing to a fixed destination.

The only exceptional one is the object itself. Although by nature an object can only be itself and it is automatically an invariant to itself, how can we present this invariant besides name and link? This is thus the problem.

We humans have so customized of binding semantics with declared names that we have almost forgotten some more intrinsic binding beneath the surface.

When we are binding the declared name "apple" with the object apple, we are actually making a semantic computation in our brain such as to determine whether it is a fruit with red or yellow or green skin and sweet to tart crisp whitish flesh. For people, a name is not just a name, but also a computational procedure in human brains. It is actually not the name that identifies an object, it is the procedure that identifies the object. The declared name is only a named shortcut referred to the particular procedure in brain. When we convert the procedure to machines, it is an epistemological process.

The picture above shows the new paradigm of semantic binding on the Web. The left side is changed to a particular epistemological procedure (which could be implemented in various ways such as the one we have suggested). Unlike names, these procedures are unique since they can unambiguously answer either yes or no for any identification request. Based on these epistemological procedures, Web links (such as URIs) are upgraded to be Web threads. The Web threads connect the same Web into a varied layer. Moreover, from the philosophical and economical aspects the construction of epistemological procedures and Web threads would be the basis for the production of mind asset.

In summary, epistemological procedure and Web thread are invariants on the Web. Through Imindi, we are going to demonstrate the world something extraordinary happening on the Web.

UPDATE: related reading about URI, "What do people have against URLs or URIs?" by Kingsley Idehen.


Unknown said...

hi Yihong,

a specific implementation of the epistemological process you describe could be to reuse URIs as much as possible.

This means that every time I want to refer to an entity, and before I create a URI for it, I can check to see if anyone else has created such an URI and reuse it is appropriate?

But how to establish such a repository of identifiers?

One team that is trying to do this is the OKKAM project:


check them out!


Yihong Ding said...


Thank you for the reference.

You are right. There are certainly many ways to implement the epistemological process. I have briefly looked at the OKKAM project you mentioned. It seems that they are doing this type of implementation though their approach is different from what I am thinking. But it is fine, there are more than one ways.

I am glad that the Web has already started its transformation. It is slow now. But the evolution is stable. Once the transformation passes the tipping point, we are going to see a different Web.


Anonymous said...

Hi Yihong,

Fantastic post. As you hint, lets hope that we can harness this natural epistemological process to not only disambiguate Apple (Computer Company) from Apple (Fruit) but also to be able to enable each of us to build on top of these understandings to create and share new levels of meaning.

Yihong Ding said...

Sure Adam, mind network has great deal of potential for us to do many things. The more I think, the more I feel that we are indeed approaching into an unexplored realm where gold is everywhere. ;-)