AgileWiki Community

Building Web 3.0

First, what do I mean by magic? "Creating as speaking", which when translated from Aramaic is one possible origin of the word Abracadabra. The term "Ontological Invocation", or bringing things into existence by naming them is another way to define magic, and who can argue with the power of ideas? But for me, the magic has always been in writing software, as a unification of science and engineering where the proof of a theory is in its execution. Now in general I would say that software itself is not magic, though there are exceptions. One exception is ning.com, where you can quickly construct your own social network. As I've said before, ning is an inspiration.


Web3.0 is Magic


For me, Web3.0 is all about 2 things:
  • Extending the web to include p2p networks, and
  • Semantic processing.
Achieving the first point is pretty straight forward. A p2p network needs to include nodes which are web servers which allow users to participate in that network. It is the second point which is the real challenge, and for this we need to make use of Norm's Theory of Rolonics as well as my own contribution, Rolonic Software Engineering. Semantic processing almost requires the use of a knowledge repository. And the word Ark is a Rolonic term for a knowledge repository.

The keystone to semantics is simply that names have different meanings in different contexts. In Rolonic Software Engineering, everything is implemented as a Rolon, all user objects are Rolons and all Rolons are user objects. But more to the point, every Rolon defines a context. So the meaning of a [wiki] word may vary from one Rolon to the next.


A Model for Magical Software


Writing software is a kind of magic, but we have also managed to put a lot of magic into our development tools as well. The best models that I have for magical software are the languages, compilers and IDEs that we use to develop software. All of these tools deal with an implicit knowledge base, complex ontologies (variables, methods, classes and packages) and flexible name scoping.

Here are two examples of how we can use this model:
  • In a knowledge repository we need to organize things [Rolons] into Realms, which deal with different domains of knowledge. Realms correspond to Java packages.
  • We use the ApplicativeContext relation in our knowledge repository to extend the context [namespace] of a Rolon. ApplicativeContext relations correspond to a Java import statements.


The Problem with Software Development Today


There was a time when it was better to teach someone with the domain knowledge of an application how to program than to teach a programmer the necessary domain knowledge. My how times have changed. To develop a product today you need a team of programmers with knowledge of a wide range of technologies. This has disenfranchised individuals with domain knowledge and has made software development a very costly and risky endeavor.

The answer is to put more magic into the software. Then anyone can, with a reasonable effort, create new products. This is entirely feasible. Consider accounting software as an analogy.

Accounting software for large businesses is pretty standardized, because [in general] every large business needs virtually the same reports. But it is a completely different story when you look at small businesses. The reporting requirements for small businesses varies tremendously, each one having a different subset of the comprehensive reporting needed by large businesses. And with a smaller accounting staff, custom reports consolidating multiple reporting requirements are needed as well. Now how does this apply to software?

If you look at mature software products for business and other collaborative efforts, they all must deal with many of the same issues, like access control and tracking changes. Unfortunately the history of these products is as varied as the history of the accounting requirements of large businesses, which each started with its own unique reporting requirements. Developing software with more magic in it means focusing on the things which are common to mature products and building an open platform, like ning, that allows individuals to define their own creations.

Share  Twitter

Comment

You need to be a member of AgileWiki Community to add comments!

Join this Ning Network

© 2010   Created by Bill la Forge on Ning.   Create a Ning Network!

Badges  |  Report an Issue  |  Privacy  |  Terms of Service

Sign in to chat!

 
 
 
 
  Get AgileWiki at SourceForge.net. Fast, secure and Free Open Source software downloads