First post

Hello my name is Daniel Kornev, I'm Developer Evangelist at Microsoft Russia, and here I will post about the things I research in my spare time - all around Semantics and Contexts.

Have to say that these terms may have nothing in common with their usual means so let me introduce you what I mean under Contexts and Semantics first:

Context - context has several means:

  • Context - is a set of common things that different actions different people do together (or alone) - items, actions and states.

Examples:

  1. You are working on a scenario for film - context is containing related stuff, and stuff you think about and use while working - it can be your experience on creating scenarios, your knowledge about how to create scenarios, etc.
  2. You with your friend are working on a project - context contains your and your's friend experience of working on similar projects/in similar areas, stuff related to current project, people related to this project, resources etc.
  • Context is available for store - you can save the workspace around this context - documents, connections to people, all related stuff and then get all of them again when you will need to access this context again.
  • Context is consisting of tasks you accomplish - all applications that you used to run to get some stuff related to this context are a part of the context.
  • Context is your environment - say when you work on your project, you like to have all notifications to be turned off, sound - muted, pop-up windows - ignored, and if you ever would like to see any interruption then it should be email from your manager or teammates.

Concluding, your Context is a set of your items, your actions, their states and set of relationships between them.

Semantics - it is a codename for the project I work on where I research all Context-related stuff :)

Semantics is under development now, it is coded in C#, it uses .NET Framework 3.5 and such new features like LINQ, ADO.NET Entity Framework, Managed Add-Ins Framework. Lots of PInvoke is used for development to get context-info from Windows.

Disclaimer: Semantics is not official Microsoft product, it is just my own research project, that I work on at my spare time, and the only reason it will be discussed here is that I will try to cover patterns of usage of latest Microsoft technologies combined with PInvoke. You may find it not so interesting for you to read all posts, but some of them you may find interesting if they would touch your areas of interest/research.

The goals of Semantics are:

  • Enable user to concentrate on his work by making his computer environment context-dependent in servicing his work.
  • Improve user's productivity

Several Outcomes from Semantics:

  • One way to notify others about your own presence using different IM Clients and Email services

Example:

You are chatting with your friends using say Windows Live Messenger, and you suddenly receive an email from your manager that you need to do this and that and that deadline was yesterday :) Common situation, right?

Semantics will notice that you've got an important email from your manager and if you will start your work on what your manager asked you for, Semantics will automatically publish your updated Presence - "Busy" or "Do Not Disturb" - depending on the IM client. You may have a lot of different clients - for example, I use Windows Live Messenger, Office Communicator and Skype, and setting my presence each time I need it in all three apps is very annoying. Semantics will do that for you, enabling you to change your presence in all IM clients it serves using 1 click.

  • One way to manage incoming information - emails/IMs/notifications using one common notification framework built around System Notifications built-in to Windows.
  • One way to control all your connections with people you care about - your love, your family & friends, teammates and management team, etc.

This is just an example of things I claim to try to accomplish, for sure :)

see you! :)