Project /
SemantasticOn this page... (hide) 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 CulpritIs 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 AlternativeThe 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 FunctionsSome of the basic 'semantic' types include:
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 sortSo, 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. |