Social collaboration is about helping members of a group collaborate to achieve the goals of the group. This is fundamental to our nature, we all have goals and most of us work within one or more groups. We use information and communication in order to help us collaborate to achieve the goals of the group.
The main aim of this project is to investigate the fundamental nature of social collaboration and provide a system to help individuals and groups work more effectively. Most organisations providing online services are focused at the higher levels, like communication, social networking, forums, sharing photos and video, selling goods, portals, etc... By talking a more fundamental look it becomes obvious what to make for the next useful service and how to tie together existing services in a more useful way.
PDAs and on-line calendars are really nothing more than expensive pieces of paper. There is not much intelligence in what they provide, most rescheduling has to be manually done by the user. The problem is that schedules change. Unexpected events pop up requiring other events to be rescheduled both in life and on work projects.
Scheduling algorithms appear easy to write but the difficulty is in getting a solution before the Universe implodes and keeping memory usage below something that a PC can handle. Also, a basic scheduling algorithm doesn't provide a useful solution, many levels of complexity have to be added before a useful solution can be obtained.
The aim of this system is to find optimal times for meetings between users as well as scheduling their own tasks in an optimal way. The other thing about this is that it is designed to also be used on projects and provide managers with a Microsoft Project type view of the whole project. Users can add holiday time and see how tasks are rescheduled. Also changing project milestones will reorganise user's tasks appropriately.
A typical scenario may be something like booking a doctor appointment. Instead of ringing up your doctor's reception and discussing many different times to find a suitable one, just add an entry to your schedule. The program will automatically negotiate with your doctor's schedule for the optimal time for your visit. If something urgent pops up for you or your doctor, the schedules are automatically renegotiated to find the next best optimal time. This may result in rescheduling another appointment, say your dentist appointment, to an earlier, more appropriate time for you. In fact, your whole next-week may have been reordered and optimized based on some resheduling done this week.
The aim is that everyones scheduling programs keep rescheduling to provide a more optimal solution for everyone.
This system has some interesting side-effects; scheduling events that you would like to do but are normally complex and low priority. You can schedule an event rule like "every 3 months organise a 4 hour BBQ with my Uni friends". The schedule program will then go about doing just that! It will keep reorganising schedules for members of the group Uni friends so that approximately every 3 months there is a 4 hour BBQ organised between as many as possible of the group (it may not be possible to get everyone, depending on their schedules). Also, since the schedule program knows where you are before the BBQ, it will also organise the travelling time, so it will let you know to leave 30mins before the BBQ start, depending on your planned location before that event and the location of the event. Also, the BBQ could be at one of 4 different locations, so it will also try to choose the optimal location. If you have to get food or drink before the event, you schedule that as a dependency on the BBQ event and it will also schedule that as something to do before the BBQ, thus you will probably have to leave even earlier to go shopping.
This is a very rough overview of what this system does. It is quite a bit more complex than described above; there are also security, authentication and privacy scenarios that have not been mentioned.
See planOfile for a prototype system showing one aspect of social collaboration.
Further details on this project, especially the system and algorithms to solve the above problem will not be publically disclosed until after the patent work has been completed.




