Recent Changes - Search:



edit SideBar


On this page... (hide)

  1.   1.  Tracking Down the Culprit
  2.   2.  The Python Alternative
  3.   3.  Major Functions
  4.   4.  Progress ... of a sort

The immediate objective of this site is to build the Semantastic semantic wiki using PyWacket integration as a springboard.

The Semantastic project was at one point fairly well defined. It was going to be to be based on Semantic MediaWiki implemented in PHP rather than a Python framework. The primary reason for using PHP was that translating all the SMW functionality into Python would be a monumental task.

However ... recently spammers/hackers broke into my SemWiki demo and demolished it with spam ... so PHP bites the security dust yet again. Security is a big requirement for this project, second only to the requirements for core functionality.

1.  Tracking Down the Culprit

Is it my fault that PHP security failed again ? Was it something I did or didn't do ? I hadn't done the most recent updates so the answer is 'probably yes '. In fact, the answer is actually 'almost certainly yes'. But ... I've gotten nailed so many times with PHP and apparently that's the way it is for me and I'm getting too old to change.

So something is out of whack, whether the fault is in PHP or myself is immaterial. After getting whammed so many times with PHP, I really feel like I need Python to have a secure website. Call it a quirk.

2.  The Python Alternative

The alternative to SemanticMediawiki is to replicate just enough basic functionality in Python to build a bare-bones semantic wiki, including a basic implementation of RDF and various Types/Properities functions. This limited objective is certainly possible to achieve within a finite period of time.

More advanced features, such as Mediawiki Templates and SMW Forms would be nice to have as well. However, the abstruse syntax of SMW Templates can be quite daunting.

In fact, it may be easier to use a Python template engine like jinja2 to generate instances of as type, or else use a standard object factory pattern like named tuples to generate 'semi-static' objects, rather than creating a full-blown dynamic object composer.

In any case, it would be a major piece of functionality, certainly person-months ( my person-months, in fact. )

So ... perhaps a monumental task, but not an impossible task.

I had considered building on Trac as a python-based semwiki and this may still be a good idea. There might also be the potential for something like true wiki Categories than the Page/Sub-page mechanism in Trac. Just extending of simple Tags to Tag:Type->Templates ( in other words tag subtypes ) might provide a lot of functionality for relatively small investment of time.

There is the remnants of a fairly developed SemanticMediawiki site that may be useful its own right.

Some of the 'wiggier' conceptual modeling content will wind up in Semantastic and maybe even wiggier stuff like connectionist and neural network topics and non-linear system dynamics ... which is reason enough to implement it in Python. (I love it that D-Wave is programmed via Python ).

3.  Major Functions

Some of the basic 'semantic' types include:

  • Basic Wiki Functions
    • markup, links, backlinks, categories etc.
    • extended sub-page mechanisms such as as top-down hierarchy of categories of unlimited depth, ability to clone and split TitleIndex subtrees.
  • Tags and Relationships
    • realm for tags:
    • extended tag semantics: relationship types ( inverse, transitive, etc. ), tag associations/clusters.
    • tags plugins, for functional customizations
    • Note that RDF 3-way/5-way meta-table structures can be hairy, especially tree-like expansions and 'truth maintenance' ( see semantic reasoner).
  • Embedded HTML Content
    • realm for HTML documents:, similar to Blog Plugin, maybe call realm "weblog:"
    • essentially the same as a wiki page with an HTML editor rather than wiki markup.
    • can display as weblog: or as embedded HTML via include macro, render safe HTML
    • no wiki search but uses tags
  • Links and Resources
    • realm for links:
    • uses wiki and tags
    • extended to blob stores and local files, MIME handling
  • Wiki Language Extensions
    • use or convert different wiki dialects, such as Creole, MarkDown, Mediawiki, etc.
    • safe includes and embedding of external HTML from trusted sources, such as Wikipedia and other 'interwiki' sources.
  • Ontology server API for wiki/links and categories/tags
    • should it be a micro-format ?

There may be a full set of document repository functions ( 'resources' ) as well, particular using Trac as a platform. This would dovetail back into the desktop environment.

Also see RuleForge basic functions.

4.  Progress ... of a sort

So, some progress has been made toward a prototype blog and a prototype semwiki implemented in Python on the old BBcom site, but I need to take a closer look at Python security before making it public. I've been nailed too many times. Maybe I'll just lock up the semwiki part and publish static HTML.

Edit - History - Print - Recent Changes - Search
Page last modified on September 08, 2014, at 05:25 PM