(:addthis:)
CoEvolution > Oimp > WikiBot
WikiBot
Principle
Collaborative software agent within a wiki environment in order to foster Human-Computer Stigmergy.
Architecture
Layers
| Internal
| Computers
| Humans
|
API handling
|
callbacks used after content updates (node saved, simpler than network traversing)
|
OpenCyc, Google, Swicki, Wikipedia, DBpedia, Citizendium, Scholarpedia, Alltop, Delicious, Google Alerts, OpenSearch, Similarpedia, ...
|
developer of the plugin
|
community
|
wiki, allows for direct editing by users
write : node (direct or as a results from the network traversing)
read : user modification, provides feedback to the plugin
|
N/A
|
editors
|
Architecture
Each WikiBot is an agent providing for Seedea (thus build with the meta-module to do it more efficiently). The goal is to provide stigmergy from the Seedea platform.
Each user would also be able to adapt bots for his own ideas and expected behavior (+/- information, +/- updated frequently, provide direct suggestion and feedback, etc).
Timing
- edition by the bot when no human is editing (average required time for bot edition + current time >> expect next time of edition and no recent request of edit recently)
- editing time windows could be computed (probably during night or such specific times)
- pre-processing is nearly impossible since they would take changes into account but eventually it could be time by splitting a document in chunk and pre-processing the stable ones (no recent modification of those lines) while avoiding the often edited ones. Global editing or editing required global data can still not be pre-processed though or not without risk, it's a bet.
- when a bot edit has been corrected it is considered correct by default (but not always true, just correct *so far*)
- find a way to distinct what has been added since last time you edited (for example a color)
- eventually synchro/asynchro has to be user defined in order NOT to hinder his creative process
- the faster the loop, the more expensive (potential speed-based pricing)
- else it can just be queued to be executed when resources are free
Services
Usage | Potential API | Comment |
Suggestion engines | cf dedicated section in the creativity article | Specialized engines should be based on the category detected (cf following service) |
Correct vocabulary | ? | Very basic but still useful especially for professional presentation. |
Abbreviation | abbreviations.com | Facilitate micro-blogging/SMS conversion |
Name | Name Masher | Does not seem to provide an API so far! |
Category | uClassify | Suggest one or many categories amongst : technology, science, philosophy, art, ... |
Word cloud | ? | Having a quick view of the content of the page. |
Link share | AddThis | Being able to share interesting ideas with others quickly. |
Literacy review | ? | Check the length of the sentences and infer on the expected public. |
Non-Seedea microservices tracking | Wakoopa | Being able to track tools but based on local running softwares, not internal or external services. |
Check the dedicated page : Services.
Feedback mechanism and auto-organization
- use a feedback system to rate our swarm of agents/bots evolving in the cloud
- build a re-localization mechanism in order to optimize speed and transfer for the most used ones that require special resources (see also Co-Evolution_Fabien-Benetou_desc_tech.pdf page4)
- ex. ML executed very closely to the data server
- simple buttons
- that didn't help
- try with X (suggestion with input box for a value)
- human-readable comment
- that helped
- (actually automatic by usage)
- managing this system is actually our core added value
Result
Test it here, our MetaModuleData.WikiBot
Reference
To do
- See if UpdatePage() of pmWiki is sufficient
- Use the meta-module to build it (helping to provide the underlying structure, the good practices and the layer of abstraction regarding wikis and Seedea)
- Thus allow direct edition from within the wiki itself
- ontogenesis
- autopoeisis
- self-improvement
- Generate a new specialized instance of Seedea (without cheating : not re-installing it manually thus using RemoteInstall) and stamp it with "Generated by Seedea"
- use the OWC in order to be "wiki-independant" (cf ArchitectureWikiLayer)
- Study if the project with Mao should be using this on coZop or thoof(seems to have fallback to reddit) code base instead
- PHP mediawiki bot : "A useful bot and cron library providing everything you need to automatically correct or create articles."
- Eventually replace OpenCalais with something more constructed
- Check Wikipedia's
- make a bot for automatic discovery
- make a bot for automatic integration (see Cziko' WM, automated/boosted evolutions)
- make a template that allow manipulation of the system (eventually make a hierarchy of templates with gradual specialization)
- embed the discovered code (see above) based on the serialization heuristic (I/O as strings)
- test (TDD inspired) the generated bot against
- syntax error
- execution error
- remote query error
- gradually randomly modify the code to pass each test
- based on multiple simultaneous simulations
- test with human supervision (eventually with AmazonTurk) on the result
- use feedback for modification of the code
- Python Wikipedia Robot Framework collection of tools made to fit the maintenance need on Wikipedia, but it can also be used on other MediaWiki sites.
- active channel #pywikipediabot on freenode