The Nooron Pattern Language https://nooron.org/know/nooron_pattern_language Nooron is a comprehensive approach to working with information. It is built to simplify reuse. It accelerates software creation and distribution. It can be understood as the interaction of the following patterns.
The Patterns Instances of pattern are the individual patterns in the pattern language constituted by the kb.
Aggressively Free Software
Intent Free Software (ala the GPL) as opposed to narrowly Open Source Software is unambiguous about its availability and clearly committed to the creation of a digital commons.
RelatedPatterns RadicalOpenness
References http://www.gnu.org/copyleft/gpl.html
Agile Software Development
AKA Extreme Programming
Intent Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan.
RelatedPatterns RadicalOpenness
References http://agilemanifesto.org/
Citizen Scientist
Intent The professionalization of science interposes scientists between us and our participation in the improvement of knowledge. Citizen Scientists take an active role in creating their understanding of the world.
RelatedPatterns LiterateProgramming
References http://www.amazon.com/exec/obidos/ASIN/0714525103
Collective Intelligence
AKA Hive Mind Noosphere Global Brain
Intent Maybe together we have enough intelligence to solve some of the really big problems.
RelatedPatterns CitizenScientist SelfOrganization RadicalOpenness KnowledgeRepresentation
References http://bootstrap.org/ http://www.noosphere.org http://pespmc1.vub.ac.be/
Criteria and Evaluations
Intent The implicit criterion in most rating systems is 'goodness'. Every adjectival phrase is a potential criterion and hence a potential dimension along which evaluations may occur. This infinitely extensible space is the space of human opinions. Criteria and evaluations can be used to filter, order, improve and inform rich representations of information. Goodness is not enough.
KnownUses PICS http://www.votery.org
RelatedPatterns PeerReview
References http://www.w3.org/PICS/ http://www.noosphere.org/background/goodness
Don't Repeat Yourself
AKA DRY
Intent Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
RelatedPatterns RecombinatoryKnowledge Versioning LiterateProgramming KnowledgeRepresentation
References http://www.pragmaticprogrammer.com/ppbook/extracts/rule_list.html
Extensible Architecture
Intent Build flexibility into the very nature of a system by basing it on well-defined interfaces and simple interactions.
Applicability Nooron benefits from the Extensible Architecture approach first by attempting to make as much of the system as possible be knowledge-based and then leveraging everything with a growing set of knowledge-based tools. For example, PyOKBC is the Python knowledge representation API (Application Programmer Interface) used by Nooron to talk to data and by the creators of 'garments' (Nooron Page Templates, nee Zope Page Templates) which portray and interact with content. PyOKBC was based on OKBC, the Open Knowledge-Base Connectivity API because OKBC was specifically designed to interact with diverse knowledge sources simultaneously, interactively and interoperably. Knowledge basees served by one machine from one kind of KRS (knowledge representation system) can do things like inherit from and transitively contain knowledge from other machines using other KRSes. The possibility of using PyOKBC backends to turn legacy datastores into knowledge stores is hence the fundamental mode of extensibility in Nooron. By using knowledge-based techniques to generate XML output, Nooron makes the generation of a vast range of useful portrayals of knowledge to be possible with a tremendous amount of generality, reusability and customizability. Reusability will be the reward of careful and diligent authors of NooronPageTemplates.
RelatedPatterns KnowledgeRepresentation REST
Fully Automatic
AKA Batteries Included
Intent For new or casual users the utility of software is grounded in its clarity, predictability and reliability. Making every aspect of a system 'good enough' makes it easy for new users to get started. Having 'good enough' features trickle down from power users automatically is one way to provide usability for everyone.
RelatedPatterns FullyConfigurable KnowledgeRepresentation
Fully Configurable
AKA Mass Customization
Intent For technical or 'power' users the utility of software is grounded in its openness, automatability, and customizability. Making every aspect of a system understandable, configurable and replaceable makes it possible for the needs of serious users to be satisfied indefinitely. People who are 'power users' in some contexts can still appreciate simplicity during more mundane tasks.
KnownUses SmallTalk Squeak
RelatedPatterns FullyAutomatic NotSoBasicAuthentication KnowledgeRepresentation
Knowledge Representation
Intent Represent knowledge in the form of conceptual categories (called classes) and instances of those classes (called individuals) in such a way that computers can manipulate the knowledge by storing it, retrieving it and performing inferences on it.
KnownUses OKBC PyOKBC Cyc
Literate Programming
Intent Generate the documentation for a system from the source code for the system so programmers are supported by their tools to create and learn from better documentation, and probably create better and more understandable code.
KnownUses http://www.literateprogramming.com/ftools.html
RelatedPatterns CitizenScientist
References http://www.literateprogramming.com
Not So Basic Authentication
Intent Users own and maintain their identity and preference information at a location of their choosing and minimize registration effort at sites they visit.
Method Users enter an URL instead of a username at a BasicAuthentication prompt.
RelatedPatterns FullyConfigurable KnowledgeRepresentation
Peer To Peer
Intent Facilitate system scalability and self-organization by permitting or requiring that the computing resources of the users are contributed to the overall system.
RelatedPatterns RadicalOpenness
Peer Review
Intent Filter and improve human intellectual efforts by having fellow lovers of quality provide feedback and rating.
RelatedPatterns CriteriaAndEvaluations RadicalOpenness
REpresentational State Transfer
Intent Make URLs a powerful part of the user interface for a web-based application by ensuring that clearly understandable parts of the URL are equivalent to subject, verb and object.
KnownUses http://www.amazon.com http://www.yahoo.com
RelatedPatterns URLsHaveMeaning
References http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm http://internet.conveyor.com/RESTwiki/moin.cgi/FrontPage
Radical Openness
Intent Permit a system to benefit from the contributions of all comers by erring in the direction of open write permissions and relying on trust, peer review, and ratings to put control over the signal to noise ratio into the hands of the viewer rather than having to be the responsibility of a moderator or administrator.
KnownUses http://c2.com/cgi/wiki?WikiWikiWeb http://www.everything2.com
RelatedPatterns PeerReview NotSoBasicAuthentication ExtensibleArchitecture Versioning REST
Recombinatory Knowledge
AKA Modularization Law Of Demeter
Intent Keep different kinds of knowledge properly separated into containers which can be 'composed' with other knowledge to support multiple uses, and diverse purposes unimagined by their creators.
Variations transclusion
KnownUses http://www.nooron.org/know/nooron_app_architecture.pykb
RelatedPatterns KnowledgeRepresentation DontRepeat
References http://www.ccs.neu.edu/home/lieber/LoD.html
Self Organization
AKA Fast, Cheap and Out of Control
Intent Self-organization is the basis for the most complex, powerful systems known. Brains, life, and the universe itself exhibit the properties of spontaneous complexity generation, information manipulation and replication which underlie self-organization. Software systems which embrace these design principles can similarly be sources of surprising novelty.
KnownUses Life Brains Universe
RelatedPatterns RadicalOpenness LiterateProgramming
Semantic Web
Intent Transform the experience of users of the World Wide Web from surfing-between-interlinked-statically-formatted-pages, to interacting-meaningfully-with-meaning.
RelatedPatterns KnowledgeRepresentation
References http://www.semanticweb.org/
Text Considered Harmful
AKA AssertionTheUnitOfSelection
Intent When people make the effort to express themselves in knowledge rather than text, they make it easier for machines (without AI) to process their utterences usefully. In turn, this means computers can do a much better job of helping us reuse, improve and (through richly 'typed' representations) understand our collected knowledge. Writing text is a form of expression whose usefullness lies somewhere on the spectrum between screaming incoherently in the wilderness and crafting fully machine-understandable knowledge in Cyc.
RelatedPatterns KnowledgeRepresentation
URLs Have Meaning
Intent Enable users to request output in particular file formats simply by tacking appropriate sequences of file extensions onto the ends of URLs.
RelatedPatterns REST
Versioning
Intent Keep track of the distinct, successive (possibly branching) states that information goes through.
Motivation Digital information is typically frequently copied and revised. It is often the case that useful information is lost in this process or that the very history of successive versions is itself of interest. Keeping each successive significant revision of a digital artifact supports important goals such as restoration of previous state, discovery of who performed what changes and understanding of the significance of changes. It is particularly useful when there are a large number of people involved with the data in question and also when there are a large number of digital objects under management.
KnownUses http://www.gnu.org/software/rcs/rcs.html http://www.gnu.org/software/cvs/ http://nodal.sourceforge.net/
World Views
Intent An information system which specifically supports the creation and improvement of caricatured 'Points of View', 'Perspectives' or 'World Views' makes possible a new kind of intellectual tourism where we view the familiar in new ways or find new things which are invisible from our habitual perspectives. These every-colored-glasses may accelerate the evolution of the traveller just as they may accelerate the evolution of knowledge, the identification of the roots of conflict and the creation of consensus.
RelatedPatterns PeerReview CriteriaAndEvaluations