From PyWacket Wiki

Project: Technology

On this page... (hide)

  1.   1.  Lessons Learned - Trac Plugins
  2.   2.  Lessons Learned - Wiki Markup Conversion
  3.   3.  Lessons Learned - Semantic MediaWiki

Various software technologies will be used to develop the new apps:

Mostly Python

Some PHP

Ruby ?

Java

1.  Lessons Learned - Trac Plugins

Whenever possible, the functionality for all the new !SemWeb type of functionality will be implemented as plugins. Inference engine functionality may require some modifications to the core code.

I started out with Trac and TracPlugins. Certainly, the architecture of plugins made a lot of sense and is one of the major 'buy ins' of the project. Trac Plugins may still be the best bet in developing something with a common core of functions even if I am not using Trac itself, in other words, not "reinventing the wheel" for a plugin standard.

There has been interest in a semwiki type of thing within the Trac community ( but nothing tangible yet ). As far as I can tell, Semantic MediaWiki continues to provide much of the inspiration.

Core functionality for the Trac approach would be RDF and RFD store. The easiest approach in the short run might be:

 * generalize TracTags and extend with RDFlib, would require a TracTag-like plugin for each new type
 * some sort of RDFstore
 * a modest extension of Trac Forms
 * a simple 'on-demand' relational interference engine for navigating through properties and relationships.

In other words, skip the dynamic type creation, powerful template language and tools. It's not exactly a 80-20 decision, more like a 60-20 decision. It might have better performance than a full blown SemWeb plugin.

See examples of plug-ins at Trac Hacks.

See Proposed Wiki Extensions.

Translating HTML/Wiki Dialects See Drupal to FullBlog converter.

2.  Lessons Learned - Wiki Markup Conversion

Converting wiki markup can be a challenge, somewhat parallel to database conversion.

The PmWiki Custom Markup Engine has an interesting approach to the translation process, by dividing into into a discrete number of phases:

 _begin      start of translation
 fulltext    translations to be performed on the full text            
 split       conversion of the full markup text into lines to be processed
 directives  directive processing
 inline      inline markups
 links       conversion of links, url-links, and WikiWords     
 block       block markups
 style       style handling       
 _end        end of translation

Clearly, the designers have given the parsing process a great deal of thought.

3.  Lessons Learned - Semantic MediaWiki

Security and language usability aside, the quickest and easiest way to implement a working semwiki is still MediaWiki plus Semantic MediaWiki extensions.

SMW has some really interesting features, such as properties and types, semantic 'type' templates, enhanced forms, semantic drilldown tools, etc etc. Basically, the new functions should create a blend of data model with document model. The end result seems to be a richer navigational environment for the user, allow access by properties, types or values as well as by categories and page links.

I probably will have either a localhost or heavily firewall-ed installation SMW to extract useful features. It's still pretty much the only game in town semwiki-wise. Maybe I'll figure out how to protect the dang thing from hackers in the meantime. ( Flat-file systems with 755 'permission lockdown' seems to be an effective and workable solution, though admittedly awkward at times. )

Retrieved from http://semantastic.com/pywacket/index.php/Project/Technology
Page last modified on September 08, 2014, at 05:28 PM