There are some crucial areas where computer technology needs major improvement to genuinely benefit users. Unfortunately, most are not feasible to pursue using current generation software technologies. No mere collection of apps would suffice. An architectural solution is needed to move forward. This has been the goal of my research into infocentric data and software architecture, a superset of "decentralized" and cryptography-oriented designs.
Interoperability
- There should be no artificial compatibility barriers resulting from negligence or perverse market incentives.
- Like security, interoperability requires both good architecture and defensive design. Optimum behavior needs to be easiest and cheapest so that it becomes default without coercion or education campaigns.
- User needs are diverse and ever changing. Technology itself is under constant rapid evolution. Designs must allow inevitable transitions to be seamless, if not transparent.
- Traditional software applications are complex tangles of design concerns. This works against interoperability. Each concern must be strictly separated. For example, data that comprises a social network must not be tied to a particular service or network scheme, so that both may evolve independently.
- Strong data semantics combined with content-based reference immutability are among the best tools we have toward interoperability. They pin down what should not change, reduce ambiguity, and prevent the loss of history and context.
Expression
- Users tend to seek out technology that gives them the least resistance in expressing themselves and getting their voice heard. Technology should feel like a natural canvas of thought. Unnecessary complexity impedes expression. Progress here will require radical rethinking of UI traditions.
- Dynamic and multi-modal UI paradigms should become the default. Conceptually, users will be bring their own favorite UIs and creative tools to the global graph of data. Tools may be tailored to different skill levels while operating upon the same data.
Effortless Sharing
- Sharing information should be trivially easy at all times. It must not require wrangling protocols, apps, logins, etc. This modern absurdity is not lost on the average user.
- Data sharing should never be dependent upon third party services, including decentralized networks. A good litmus test is whether users in the same room can exchange data directly, without an internet connection. (And then seamlessly continue to exchange information online..)
- There should never be a concern about maintaining privacy during transmission or storage. This means default encryption for private information.
- There should be no possibility of data collisions or ambiguities during exchange, such as naming conflicts or indeterminate data typing and schemas.
Annotation
- Users must be able to reliably reference any known information for the sake of annotation. This is critical to encourage cross-linking, commentary, context-building, revisions, novel compositions, etc.
- Information must never be silo'ed into applications, sites, or network domains, whereby outside interaction is difficult, unstable, or requires permission.
- It must be easy to discover useful third-party annotations, with varied solutions dependent on use case. The simplest solution is merely to query a trusted repository known to host annotation metadata for a particular set of data. Advanced designs will use social networks, AI techniques, and community processes to curate quality annotations.
Layering
- Users must be able to selectively layer information to meet their needs, from private notes to whole collections of third-party annotations and other metadata.
- No services or authorization should ever be required to manage layering.
- Every piece of data with immutable content-based (cryptographic hash) reference identity is a defacto nexus of global multi-party interaction that no one can control or subvert.
- References can come from unlimited sources. Because of the absence of collisions in hash-referenced data graphs, sources can be layered without need for manual coordination.
- Users and communities are in control. They can filter what information they choose to layer, among the global pool available.
- Example.) A particular community may specialize in fact-check annotations for major news publications. These annotations, being first class data, may be further annotated by other parties, including the original publishers. Yet another source may provide open-policy filtering and summarization for annotation collections from multiple sources. Each source controls its own collections and technically may delete data that proved embarrassing. However, this is risky in comparison to public retraction annotations, as countless replicas will likely exist by that point. As with print publication, honesty and self-correction is the best policy. Unlike print, a digital retraction is more likely to replicate quickly and cut off further controversy.
Collaboration
- Collaboration needs to become so accessible that participation becomes default behavior, reversing the trend of the consumption-driven internet.
- Small contributions must be possible with little effort -- making a small bug fix, changing a melody by one note, correcting a fine point of grammar, etc. Today, countless improvements never occur because the process requires too much time or expertise.
- In traditional software, collaboration features must be explicitly designed and orchestrated. Instead, collaboration should be a baked-in part of the data and software architecture. All information must be collaborative by default. Layerable data architecture provides the foundation, but particular designs must encourage a high degree of decomposition and normalization.
- Large collaborations must become easier to organize, in order to increase the power of community efforts. Graph data models help to ensure clear relationships, history, and context of interactions. UI designs must then take advantage of these to provide easily navigable organizational overviews.
Aggregation
- The ability to layer any information without conflicts must be combined with means to aggregate useful information to begin with. Many centralized services effectively serve this function today. A particular trusted repository could contain a cohesive metadata collection, built through community processes. However, it must also be possible to continuously draw information from myriad sources into a locally curated set. This should eventually be possible on a per-user basis, whereby a private agent maintains fresh data used by local views. This also enables extensive personalization.
- Aggregation helps to reduce redundancy. A topic of discussion can be logically clustered around a particular data entity instead of dispersed among unlimited unorganized channels of conversation. This encourages ideas and viewpoints to be collectively explored and refined on whatever scale is best suited. Public debates become a true open forum, where every novel thought on a matter can be cataloged, evaluated, and cross-referenced. Support for ideas can be expressed through voting rather than wasteful parroting.
- Aggregation is one of many Quality-of-Service (QoS) attributes that may serve as a commercialization opportunity amid the global graph of public semantic data. Because all of the data is open, a service's methods and policies may be validated by anyone.
Contextualization
- Internet media has become a haven of stale or cherry-picked facts, lying by omission, and outright deception via repetitive but inaccurate statements. People commonly complain that they don't know what to trust and yet don't have the time or energy to do their own research. This is one of the factors behind modern cultural and political polarizations. Excessive group alignment and identity is partly a reaction to information overload amid the war for attention. Harmful simplifications like soundbite-oriented media and social media "echo chambers" are enticing because they restore a sense of groundedness and reduce cognitive load.
- Layered annotations, trustworthy aggregation, and efficient collaboration provide the framework for contextualization to become widespread -- a world where no almost information stands alone. Users can always filter their sources to a narrow spectrum, but this will be an explicit choice. To most it will likely feel like missing out on the full story. With most of the noise filtered, this will not have the same appeal. It will become possible to quickly peruse the best versions of each viewpoint and examine their relative popularity to different groups and worldviews. This should encourage greater internal debate that harnesses diversity within groups, while also finding common ground among groups.
- Traditional advertising can be replaced by customer-driven propagation of reliable information. Context can even be added to information floating in the physical world. For instance, an augmented reality overlay could highlight healthful and unhealthful items on a grocery store shelf. Such applications would be enormously empowering to consumers, stimulating robust competition and truthful marketing with less need for government oversight.
Customization
- One size never fits all. Most existing internet services are homogeneous for the sake of scalability to millions or billions of users. But many users would rather have more power to customize their environment. Decentralization in the form of local software control allows any related overhead to be handled locally.
- Customization can be part of a collaborative effort to refine open software and data. Users and organizations should be able to easily share what works for them. The ramifications for business computing would be enormous, as IT departments find new avenues to collaborate among and across industries to meet shared needs and develop best practices.
- portable reputation
- visibility of activity
- security in numbers
- many hands, light work