Thursday, October 4, 2007

N Levels and Information Networks

The goal of N Levels is to enable users to create their own "information networks" that overlay and complement today's web page and hyperlink structure.

By information network, we mean a set of objects that are connected by relationships, forming a directed graph.

An object is a collection of properties which represents "something" - it could be a physical entity, animal, person, concept, idea, or absolutely anything. A relationship is a label that defines how two objects are related to each other - for example parent-child, location, containment, etc. An object and its possible relationships is defined by its schema, or "object type". By having well-defined schema, it becomes easy for humans and software to traverse, consume, and extend an information network.

We believe information networks have the potential to drive the web scenarios of the future. While the web obviously contains an abundance of information, that information is primarily (1) represented as text on web pages, or (2) stored within databases for particular sites. In the first case, the information is not structured and hence hard for software to consume or connect to other information. In the second case, the information is structured but is generally only available within the context of a given web site. And even if that information is made available through a web service API, generally the schema used will be specific to that site - which makes it difficult to relate information from multiple sites.

The utility and benefit of structured networks of data is illustrated by the growth of social networking sites, which effectively implement a particular flavor of information network - the objects being things like people, schools, and companies, and relationships being things like "friend", "worked together", and "currently attends". As the fundamental value of a social network comes from these objects and relationships (aka the "social graph"), we would like to allow people to access, modify, and extend this information directly and in a decentralized fashion.

Looking to the future, the information network and "semantic web" would seem to be closely related. With N Levels, however, we have not attempted to have the level of richness and formalism of semantic web standards such as RDF and OWL. At least initially, we've opted for a more "loose" and simplistic approach to defining the schema. Over time we may adopt some of these standards if we think it will increase the usefulness of the service.

As we set about designing and building N Levels, we had the following objectives and guiding principles in mind:

  • Open schema. As noted above, our approach is not to attempt to define a formal and consistent set of schema, taxonomies, or ontologies. Instead we've taken a more organic, community-driven approach where users define and share their own schemas. While there will certainly be overlap and inconsistencies between schemas, the hope is that over time the schemas will evolve and align based on what actually gets used (similar to community-driven "tagging" models).

  • Information stored centrally, but accessible from anywhere. N Levels provides a centralized repository for storing information networks, as well as a generic web-based UI for managing them. However, we believe that the real value will come from overlaying and integrating these networks with the current web. Specifically, we enable people to embed object information and object search results within any web page through customizable "widgets" (which do not require any special web server integration). In addition to displaying object properties, these widgets allow visitors to navigate the underlying information network through object relationships, and also to extend those relationships. By separating the underlying "data" from how it is presented and accessed, we hope to empower users to create their own "connected communities" which are distributed across the various web pages, sites, and blogs for those users.

    To give a simple example, below is a N Levels widget which represents information about a fictional softball team. As you can see there are properties which give basic information about the team. In addition, there are relationships which provide further information and which connect the team to other objects, such as the team manager, players, games played for the season, scheduled games, etc.

    Now here is a widget which represents a player on our fictional softball team, which could be embedded in their personal web page. From the widget a visitor to the page could access information about the team, which in turn would lead to discovering more information through the various relationships.

  • Provide open but controlled access to information. Currently all of the objects created in N Levels are publicly visible and searchable. (We plan to add more granular access control at some point in the future.) Thus you should only create objects for information that you would be OK authoring on a publicly visible web page. However, we do provide control over who can modify and "connect" objects. Only the owner / creator of the object can modify its properties or delete it. In addition, the object's owner has the ability to control who is able to connect it to other objects through relationships.

    For example, for the softball team object above, the owner could make the "roster member" relationship "closed", so that only they are able to specify who is on the roster. For the "games played" relationship, though, the owner might decide to have it "require approval" - this would allow anyone to add information about games that the team has played, which the owner is required to approve before it becomes visible. Thus if someone tried to add bogus game information, the owner could simply reject it.

We are excited by the potential of information networks, and have created N Levels to provide what will hopefully be a useful service, as well as learn more about what works and what doesn't.

We realize there are some risks inherent in the approach we have taken and figure that the best way to understand them is to build the service and see what happens as it gets used. There are also a large number of feature ideas that we haven't implemented yet but intend to do so in the future. The best way to help us build a useful service is to provide feedback and suggestions on what you'd like to see - you can always send mail to (or post comments on this blog).

A big caveat which is also noted on the N Levels site - the service is currently in pre-beta development. This means there will most certainly be some bugs and also that we can't make any guarantees about service availability or data persistence. It's possible that we could lose your data - we don't intend to and will make our best effort to preserve and secure the information you create, but you should not use N Levels to store data that is mission-critical, personal, or sensitive.

Thanks for your interest in N Levels!

No comments: