MeatballWiki | RecentChanges | Random Page | Indices | Categories

PeriPeri is a project aimed at creating Wiki:SpikeSolutions of various ideas, most notably of a FacetWiki.

The second generation PeriPeri wiki engine, PP/2, is written in PHP sitting on top of PostgreSQL?. A wiki run on the PP/2 engine can be found at [MeatBall Society's PeriPeri2 site]. From that page:

This is an experimental rewriting of the first PeriPeri script, to resolve issues that arose during the initial spike. Its purpose is to continue exploration of the LatticeSpace concept, and to provide a throw-away test platform for other wiki design experiments. This latter has already borne fruit on the MeatballWiki site, both in the visible AsynchronousAutorefresh technology used on RecentChanges, and the less-visible database back-end now supporting the site. Other features, such as AggressiveCaching, CacheableCustomizability and ParentPages, have been evaluated and rejected.

This site has been made public for the primary purpose of demoing the new InterFacetLinks? technology, serving the dual purpose of simplifying LatticeSpace visualization and navigation, and (with NearLinks) serving as a functional SisterSite technology, in this case to MeatballWiki.

Please do see the PP/2 site for more! -- ChrisPurcell

7 June 2008: I noticed a massive splurge of spam on PP/2 today. Since it has no active community, and I don't have the time to add EditHash/HumanVerification, I disabled editing to avoid yet another spam-filled GhostTown on the web. If anyone wants to play with editing it, just drop me a line. -- ChrisPurcell

17 May 2009: At some point in the last year, meatballsociety.org appears to have stopped treating PHP pages as cgi scripts. PeriPeri is hence completely broken, and I currently do not have login privileges to fix it. -- ChrisPurcell

March 25th, 2004 :- PeriPeri is one year old today!

Over the last year, [PeriPeri] (pronounced "Piri Piri") has developed the following original features:

Other features:

Details of most of PeriPeri's features can be found at PeriPeri:PeriMechanics. The engine uses one file per facet, one directory per WikiWord, and a replaceable RDF cache database.

PeriPeri is a spike of the FacetWiki project.

Shatter Workings

Contributed by BayleShanks, refactored by DavidSchmitt.

The namespace problem is namespace collision. That is, what to do if the natural wiki name for two separate ideas turn out to be the same thing? To stick with the example used on PeriPeri, consider that there is a large wiki. There is a page for the word "Tree" (it's called "ATree" because Tree isn't a Wiki Word). Computer science discussions often refer to trees (the algorithmic kind), and so link to the page ATree. But biologists also refer to trees (the biological kind).

One solution is the prefix or postfix the word in each community; there is no page for Tree, but there is CompSciTree and BioTree. It is asserted that this is a suboptimal solution.

So, we come to PeriPeri. In PeriPeri, there is a page PeriPeri:ASet and there are two facets:

Chris uses the word "facet" instead of "subpage" for a good reason that we'll get to later.

When another page links to ASet, that link may end up at the page PeriPeri:ASet, at PeriPeri:CategoryMaths:ASet, or at PeriPeri:CategoryBiology:ASet. Which one is chosen depends on context. Specifically, the algorithm looks at the other links on the linking page. For example, if there is a link to CategoryMaths on the linking page (and no link to CategoryBiology), then the link goes to PeriPeri:CategoryMaths:ASet. The algorithm tries its best to force the link to the most specific level (i.e. to link to PeriPeri:CategoryMaths:ASet or PeriPeri:CategoryBiology:ASet rather than just PeriPeri:ASet). On pages containing links to both the categories, it cannot resolve the ambiguity and defaults to PeriPeri:ASet.

Now, the reason we don't like the word sub-page; instead of multiple hierarchial levels of subpages, such as CategoryCompSci:Balanced:ATree, we only have one level, and we ignore ordering. Specifically, we have CategoryCompSci+Balanced:ATree, and this is the same as Balanced+CategoryCompSci:ATree. The word sub-pages connotes hierarchy, so he uses "facets" instead.

Oh, also, the verb "shatter" is the action of saying "I think the page ATree needs multiple facets, so I will create CategoryCompSci:ATree". It's shattering because you are breaking the page ATree into different pieces.

Facet Terminology

Given a page called CategoryBiology:ATree.

Initial comments

Chris, great ideas. I feel that namespace collisions are a looming problem and I agree that it eventually should be solved with a FacetWiki of some sort or another. I think PeriPeri is getting close to "the" answer. I think it is not quite the answer yet, because I don't think it is quite simple enough yet -- but it's certainly a huge step!

Specific suggestions/questions:

That's how Shatter is working. Addendum: this is no longer the case.

The new link format fixes this; one can now use CategoryBiology:ATree, CategoryEcology:ATree, or CategoryBiology+CategoryEcology:ATree, and they will all go to the same page.

It's more like renaming the page, actually, and that's (renaming pages and facets) something that could be added.

To solve the last two problems, I motion that the facet title should be included in the page itself, and editable. I.e. the page PeriPeri:ATree~CategoryBiology,%20CategoryEcology would have a tag like \facet_title(CategoryBiology?,CategoryEcology?).

Changing this would change the title of the page (i.e. move the page, break links and perhaps produce conflicts).

So, for instance, you could start out with \facet_title(CategoryBiology?), and then when CategoryEcology? was added to the wiki, you could change it to \facet_title(CategoryBiology?,CategoryEcology?). Now, say someone comes along and tries to access PeriPeri:ATree~CategoryBiology. This should be transparently redirected to PeriPeri:ATree~CategoryBiology,%20CategoryEcology (since there is no actual PeriPeri:ATree~CategoryBiology) (there should be some mechanism to force creation of a new PeriPeri:ATree~CategoryBiology, but it would be rarely used).

I feel that these two would make it much simpler for the user; this way, instead of thinking about the facet title at all, the user can just think in terms of categorizing the facets.

I think a tool for explicitly rearranging the Shattered facets of a page would make more sense. Changing facet title is not something one would do very often, making it part of editing a page would be like making editing the title of a page possible in a standard Wiki: confusing.

Using a different name forces people to find out what's different. (They're also called "streams" for other reasons than the Shatter algorithm, by the way.)

[Chris said it's "facet" now. Thus all references are changing. Perhaps a little history on this should stay.]

Anyhow, cool stuff!

Thanks :)

-- BayleShanks and ChrisPurcell (Kritter)

Hi Chris, hi folks!

First, I have to say, that I'm very impressed by your creation of page shattering and the idea of using the links within a page to categorize it.

One problem though I'm having, is demonstrated on PeriPeri:Example:PageFacets. There I have created links to CategoryGeek, WikiProgrammer. While CategoryGeek:DavidSchmitt and WikiProgrammer:DavidSchmitt exist, trying to link to DavidSchmitt created a begging page. I feel that information got lost here. Perhaps that could be improved by TransClusion? Or just an intermediate page linking to all existing facets of DavidSchmitt?

-- DavidSchmitt

Thanks for the praise, and the interest!

This begging link is intentional, and to do with what PeriPeri:ContextualLinking is achieving. Basically, the two facets, CategoryGeek:DavidSchmitt and WikiProgrammer:DavidSchmitt, are treated by the Shatter algorithm as two separate meanings of the word DavidSchmitt. Since the context gives no clue which to plump for in preference (called Shatter failure), it goes for the super-facet, plain old DavidSchmitt. The fact this doesn't exist doesn't faze Shatter, because it should exist, should overview all the possible definitions of DavidSchmitt, namely CategoryGeek:DavidSchmitt and WikiProgrammer:DavidSchmitt, and should link to them.

This page could be created auto-magically, but that goes contrary to the spirit of PeriPeri, namely that of being a Wiki:SpikeSolution and doing the simplest thing that usefully works. The super-facet-sub-facet asymmetry is an emergent effect of the Shatter algorithm, and one I rather like. I'm open to dispute here, of course.

In the case of your page, since both sub-facets are in fact about the same thing, namely you, they should be merged into one single page, at least according to my (as-yet unwritten) theories. I'm open to dispute here also, and open this page and PeriPeri for that purpose: what are useful ways to apply PeriPeri:ContextualLinking?

-- ChrisPurcell

... it should exist ...
I see. Yeah that was probably a bad example. The super-facet should contain generalities about me and the sub-facets only the specifics?

This page could be created auto-magically, ...
A possibility I would prefer. Maintaining the list of available sub-facets is tedious and error prone. Facets should have the same level of (automatic) support within the wiki as RecentChanges and BackLinks.

By the way, while "CategoryGeek:DavidSchmitt" is called a facet of "DavidSchmitt", what is your term for the "CategoryGeek:" part?

-- DavidSchmitt

The super-facet should contain generalities about me and the sub-facets only the specifics?
Like I say, it's my opinion that the sub-facets in question should not exist separately, since they both describe you. If they do exist, the super-facet should contain no useful information except links to (and descriptions of) its sub-facets, since there is no guaranteed way of linking to it.

Maintaining the list of available sub-facets is tedious and error prone.
The auto-magic creation is a non-trivial task. Any such page should be useful, i.e. contain as much information as an explicitly-created page:
Furthermore, maintaining the list would not be a chore, not in the simple cases for which auto-magic would be least bemusing to code, if you only add facets to a page by linking to them from the super-facet.

Facets should have the same level of (automatic) support within the wiki as RecentChanges...
None, incidentally. It's superimposed externally by a .htaccess script.

...and BackLinks
Actually, I'm currently working on an alternative to using BackLinks as a filing system (see PeriPeri:PageFiling). This has the same list of issues I've just described, and could easily extend to support auto-magic filing of facets in a future stage of the spike.

what is your term for the "CategoryGeek:" part?
"Facet title". I'm not terribly inventive with names :)

-- ChrisPurcell

If [the sub-facets] do exist, the super-facet should contain no useful information except links to (and descriptions of) its sub-facets, ...
I was confused by the example of John Abbe given on PeriPeri:ContextualLinking.
Yeah, I don't like that page solely for that reason. I didn't write it, and am too close to the technology to attempt to refactor it. -- ChrisPurcell


Where have I lost "streams"?

Streams are, or were, the basis of the PeriPeri engine - every page a stream with a page name and a stream title. Shatter was then implemented on top of this, treating any stream with an appropriate stream title as a facet. However, my refactoring has since removed all non-facet streams, so the two terms are now synonymous. I prefer "facet". -- ChrisPurcell

Done. Have I missed anything?

Looks good to me. Am I still talking to DavidSchmitt, by the by? If so (or if not, in fact), couldya keep signing comments? I feel like I'm talking to a quorum, otherwise :) -- ChrisPurcell

Sure, sorry. On the topic of PeriPeri:ContextualLinking. Perhaps Bayles explanation should be copied over or linked as replacement for the current text? -- DavidSchmitt

Well, decided enough time had passed to copy it across myself. PeriPeri:ContextualLinking now has a reworded version of Bayle's text, replete with actual working links. -- ChrisPurcell

CategoryWikiEngine | CategoryWikiTechnology


MeatballWiki | RecentChanges | Random Page | Indices | Categories
Edit text of this page | View other revisions