NameSpace

Within a namespace, you can refer to things by their name. To refer to things in another namespace, you have to qualify the name. This qualification can be explicit or implicit, however.

In real life, we usually don’t think about namespaces, because most names clearly indicate what kind of things we are talking about. “yellow” is a color, “birch” is a tree. We don’t have to qualify “yellow” as the name of a color, because we know it implicitly.

When programming, however, namespaces are more important: When talking of attributes, many different things can have the “id-number 45268”. If all things exist in the same namespace, we assume that 45268 uniquely identifies something. If people, projects, and companies all exist in their own namespace, we have to qualifiy the id-number. Is it the id-number of a person, a project, a company?


Discussion

Hmm… just reading CharlesMauch and started thinking about his idea of a semi-private NameSpace.

Mulling about how HumanLanguage? is context sensitive, and what that means about the most natural LinkLanguage.

What I mean has much to do with the mess I made of PlainLink, and how it should be separated out into NaturalLinkLanguage?.

NaturalLinkLanguage? is AutoLink because no LinkSyntax? (CamelCase []‘s or _‘s) is ever needed.

This means any PageTitle? (any DataBase? entry from any wikis in the precedence list), even those with spaces is immediately linked without any freedom of the author to stop it except for them adjust their PrivateNamespace?.

PrivateNamespaces? should probably start with nothing defined with obvious settings (cookie saved checkboxes) to allow quick and broad adjustments that include entire wikis at a time, so, for instance, whenever you write the word wiki in a sentence (no matter the case, and not surrounded by []’), it would try to resolve that word or phrase from a list of wikis ordered by precedence of credibility (according to you), and finally having some easily switched-on default such as wikipedia as a catchall if you like lots of links in your comments.

You should also be able to define just one word or phrase at a time.

PrivateNamespaces? would only used in the DiscussionArea? of a page, where individual comments are always followed by a digital signature of the message and UserName.

In a wiki page’s DefinitionArea?, the local NaturalLinkLanguage?, would be used when rendering the page. An author writing in the DefinitionArea? of the page would have no control over what does and doesn’t link, and where those links point except to vote for your preference (or try to adjust those pages directly).

Voting for link resolution in the DefinitionArea? is implicit because it is simply done by making your PrivateNameSpace? available for the wiki software to use as a vote.

In other words, if you like the word ‘wiki’ to resolve to MeatBall instead of WikiPedia, you would change the link resolution “lookup order” in your PrivateNamespace? (you could reorder just that word, or you might want to reorder the wikis (so MeatBall always takes precedence over WikiPedia)).

Your PrivateNameSpace? should probably not readable by the wiki software by default for privacy reasons? It could be kept encrypted on the server if that is needed.

The problem that human language is context sensitive (eg. a tree can be a plant or a math concept, depending on the kind of book you are reading), where as link language on a particular wiki is not (the Tree link will always point to the same page) can be solved in different ways:

  1. Treat each wiki as a separate book, a separate conversation, a separate context. This is feasible with topic bound wikis.
  2. Make the ambiguity explicit and offer disambiugation pages. This is what WikiPedia does. It forces people to be explicit about their words, too, and leads to unnatural use of the language, or breaks one of the fundamental WikiPrinciples, namely that the link name is the page name by forcing you to use named links (also called CleanLinking).
  3. Determine the context of the current page and contextualize all outgoing links automatically. A simple method would be to determine outgoing links (eg. Category Math), checking the context of outgoing links for the target (eg. Category Math or Category Plants), and then automatically link to the correct the page. PeriPeri was a prototype that implemented WikiContextualLinking. The term they used for the pagenames augmented by categories was LatticeSpace.

Regarding the idea that LinkLanguage is a wiki principle, see Ward’s list at Ohana:WikiPrinciples:

Unified
Page names will be drawn from a flat space so that no additional context is required to interpret them. (vocabulary)
Precise
Pages will be titled with sufficient precision to avoid most name clashes, typically by forming noun phrases. (happy accidents)

CategoryNameSpace

Define external redirect: DefinitionArea PrivateNameSpace PrivateNamespace PrivateNamespaces NaturalLinkLanguage PageTitle HumanLanguage DataBase LinkSyntax DiscussionArea

EditNearLinks: PeriPeri CamelCase WikiContextualLinking MeatBall WikiPrinciples UserName

Languages:

The same page elsewhere:
MeatBall:NameSpace