Sam's profileSamb Business Intelligen...PhotosBlogListsMore ![]() | Help |
|
October 31 InfoMesa - Associations and AssetsWell, it was a pretty good day. I didn't know if I'd get this posted, but here we are. I have overhauled the Asset System based on customer feedback. Assets are now driven from a database and tied to a license system. While many assets (images, videos, shapes) will be either proprietary and belong to the organization using the InfoMesa, some will be purchased and will involve licenses that must be tracked. Who's using the image "abc.jpg"? How many people are using "abc.jpg". These can be important questions - especially from a compliance perspective. There are many uses for Assets. In the image above you can see images (from Assets) and XAML shapes (the ovals in this image). Images can be sourced from Hard Drive Farms (Network Shares, Local Drives, and URL's) -- this means that items secured in a Sharepoint Document Library can now be added as Assets for use in InfoMesa. Cool. As you might remember, XAML is the underlying XML language used to describe shapes drawn and composited in WPF. I used Microsoft Blend to design the Ovals and the Integrin Shapes that could be useful for applications such as Cell Signaling and Metabolic Pathways. Since XAML supports animation, these things can also be animated - they can also be somewhat interactive. The Assets Tab may look the same, but it's completely new underneath the hood. These Assets can also support keywords, so you can search for items in libraries by keywords and terms that may not be obvious from the filenames. This is a key feature in any non-textual repository.
Along with Assets, we made progress on Associations. Now this is something we have not talked a lot about. Associations allow you to tie elements together. They are not Annotations which are used to explain something. Association show relationship, they show flow (unidirectional or bi-directional). They are stored in the database and can be traversed along their paths. I decided to use curves for the rendering of the associations. Each Association will have great control over their appearance. The Control Rods that control their shape will conceal themselves later on. They even have arrowheads to denote direction. Even though this diagram is using XAML elements between the Association lines exclusively. I want to stress that *any* element can be associated to any other element. Web Results can be associated to an Image, a Video, a Molecular Model, etc. Since these are not Annotations, any movement of the elements tied together will impact the lines. So feel free to tie stuff together and then move it - the lines will follow along. Needless to say, there will need to be an option (most likely in the Settings Tab) to turn this complexity on and off. Here's a close up of the Association Curve... More next week... Don't forget to vote if you live in the US! October 30 InfoMesa - Look Ma, I cleaned up my Room!I've been working this week on cleaning up the experience around selecting Rooms and Creating Rooms and Destroying them. Here's where I am right now... Now, a large profile consumes the top third of the screen. After a selection, the Name, Description, Creator and CreateDate can be readily seen. Clicking on the Large Room Picture will bring up the Profile Dialog and allow you to add/subtract researchers to/from the room. I'm also doing a huge makeover on the asset system, but that post will need to wait...I'm hoping to make the drop tomorrow night, but don't hold your breath - perhaps early next week at the latest... October 20 InfoMesa - Room & BoardInfoMesa is all about visualizing, persisting and collaborating around visual elements stored in virtual Whiteboards. Originally, we were just going to use Whiteboards as the base organizational element, but after some discussions with people in the pharmaceutical/Life Science industry we decided to organize these whiteboards further into the concept of a room. This will allow visualizations at higher levels of science occurring in the whiteboard complex. You can imagine rooms being grouped into pavilions, floors and even buildings and complexes. Rooms can contain any number of whiteboards and you can create any number of rooms. Researchers can share a room or they can just be private, just as a whiteboard can be worked on privately or jointly. The taxonomy of rooms (how you name them) is completely up to the implementing company. For example, you could use phases of a project (Basic, Hit to Lead, Lead to Hit, Phase I Clinical) or make the whole room a Project (MRK445). The names of rooms can be changed and the whiteboards can be moved between them, so try not to worry about that too much. Clicking on New Room will allow the creation of a new container for whiteboards. The Researchers Tab will allow you to select Researchers that are "authenticat-able" to InfoMesa Assets. This will likely involve the cloud and Active Directory (and yes, we are working on this). We want to allow researchers from separate locations and even organizations to work on Whiteboards together, while also securing the assets in appropriate ways. This is a critical goal to approaching research in this manner. Once a Room is created, you can build out Whiteboards. There are some additional operations that you can do with Whiteboards, such as Moving them to other Rooms, Killing them off (only the author can do this), Copying them to clone work quickly, and Merging work from two or more whiteboards. In a future post, we will talk all about these operations. As we have mentioned before, everything that's going on visually is being stored and persisted to a database. When you create a Room you are populating the Room Table (as seen below)... Likewise, the creation of a whiteboards records the basic information needed to tie a whiteboard to a Room. By storing items in the database this way, we can allow organizations to build Rooms, Whiteboards and even populate elements on Whiteboards very rapidly (even non-visually) by writing data to the appropriate tables by using SQL Server Integration Services or any other ETL tool. Even Biztalk could be used to run complex workflow among instruments and people. A new build for December's Phase is being dropped into the SkyDrive account found here: As always, comments and discussion is invited... October 15 InfoMesa - User StoriesI've had a number of folks ask me to publish the requirements that have been given/generated for the InfoMesa application. Here they are...I will continue to add to this document as they come in or get more refined. General Requirements
Persistence
Whiteboards
Sub Canvases
Elements
Formations of Elements
Tags
Annotations
Associations
Services
Tools
Shelf
Assets
Guided Tours
Settings
Other Devices
October 10 What does WPF (Windows Presentation Foundation) bring to InfoMesa?What is WPF? Windows Presentation Foundation is the new visualization library that shipped with .Net 3. It is supported inherently on Vista, but also works with Windows XP (sp2). Like it's older (much older) cousin GDI, WPF is used to paint items to the screen. GDI has many flaws that WPF improves upon. For one, WPF is built on top of DirectX, this means that anything using WPF is being driven off of any graphics acceleration cards (GPUs) that happen to be on board. This type of off-loading has a major impact on both performance and what can be accomplished visually. In GDI, anything painted on the screen is not persisted. In other words, for whatever is painted on the screen, the burden for keeping it on screen during refreshes and occlusion (minimize, windows moving over it) falls to the developer. Additionally, GDI is basically a fire and forget operation. Pixels are turned on and off, but the ability to work with the pixel directly is not easy - it's not an object - it's just memory with a value. WPF is different, it's object -based, so a rectangle persists, has properties and even events and methods. It's very much like a Visual Object-Oriented Database. I thought I'd use InfoMesa to show some of the benefits of WPF. First, when you use the geometry of WPF you get resolution independence and thus, scale independent displays. Even raster based objects, like Images, get a pick up. Here's an example. In the screen below we have a Metabolic pathway, made up of about 25 images that are pasted together - each tile is positioned precisely on a grouping mechanism called a Canvas. The magic begins as we zoom in (in this case, we use the Mouse Scroll Wheel to move in) Again, we keep moving in, the full image is still being handled, but now we see paper-crisp sharp detail.
XAML - understanding the markup and programmatic side Positioning each item can either be done programmatically or by using XAML markup. In my opinion, the XAML markup side has been clearly described over the last few years, but the programmatic side is where all the power comes. If you are going to use WPF for visualization purposes you have to learn the programmatic side to gain all the advantages. For example, to create the Ink Canvas below you could use XAML... <Canvas> Or, I could do it programmatically (in C#)... InkCanvas inky = new InkCanvas(); It's not an either/or street - mixing them together gives you tremendous power. In InfoMesa you can right click on any of the containers for the visuals and create a menu such as the one below. Selecting the option that's second from the last (Dehydrate XAML) takes the object (that, in this case, was programmatically generated) and shows the XAML that represents it. Notice the XML tag element called Strokes at the bottom - yeah, that's right, that's the actual ink strokes in the ink canvas. You can store this value and persist visual changes to the items (without needing the database that may have been used to build them out). This is a really big deal for Scientific Visualization. Above, I show the Ink Canvas on the InfoMesa surface and also the Asset Gallery which can contain imagery or XAML based Markup. These Shapes (they can be different) can be stored as strings or XML proper and pulled out of a repository and squirted directly on the canvas. More articles are on the way and a new build of InfoMesa is coming next week. October 07 Welcome to the InfoMesa Project - Official LaunchThis is an exciting day. The project that I've been working on for almost a year now is now going into an official launch. InfoMesa has been, and continues to be, a community effort by Microsoft Life Science and our major Enterprise Life Science customers and partners. InfoMesa is a bit unusual because it's designed to create community in the scientific landscape, while also having broad applicability across many other vertical industries. What is it? InfoMesa is a project to allow scientists to do more science and more discovery in a collaborative and data-rich environment. The metaphor that we have elected to use as the underlying fabric of the InfoMesa is a Whiteboard. InfoMesa allows any kind of data or visualization to be added to the Whiteboard. Far from static, these tools are interactive, allowing data to be absorbed from data sources like Oracle, SQL Server, Excel Spreadsheets, XML or even Cloud-based web services. InfoMesa, when complete will support imagery, video, 2D connected models, 3D models (lit in a photo realistically manner), web searches, results from web service calls, Image Tile Maps, ScatterPlots, Sticky Notes, Ink Notes, Rich Annotations and Associations. An Example of a typical InfoMesa Whiteboard is shown here: Whiteboards are quite large in size (about the size of 20, 30" conjoined monitors). Whiteboards can also be linked to each other, so this allows an efficient way to both organize work and to handle performance concerns. The screen is completely resolution independent, you can use the MouseWheel to zoom in and zoom out and the canvas can be scrolled left, right and up and down. Each element on the Whiteboard can be tagged (and actually will insert tags based on it's type when a tool is added to the whiteboard). Data Visualization backed by Data Persistence As each item is added to the whiteboard, it is saved -- or persisted -- to a back end database. Each whiteboard is drawn from a database that contains a third-normal form relational data structure. This means that as you add items, other people that are sharing the same whiteboard can see what you have added and vice versa. It also allows us to control who can see, change, and create items on the whiteboard. Another advantage to this is that a whiteboard can be built programmatically. In other words, by doing appropriate data inserts and updates in the data model a whiteboard can be built up. The platform is currently sitting on top of an Access Jet database for easily being transferred to any Windows XP (sp2) or Vista machine. However, the final data platform will be SQL Server 2005 or 2008 for scalability, security, and feature reasons. Another item to throw in here, Sharepoint Portal Server, which has been explosive in both it's growth and uptake in the Life Science Community has a feature called the Business Data Catalog (BDC). This feature allows Sharepoint to index relational databases and customize the experience of what happens when a search result link is clicked. This allows searching across the entire corpus of Whiteboard, Room, Element and Tagged Elements and when a result is clicked an InfoMesa application is fired up and presented to the user. How are Things Organized? To have science organized by massive whiteboards is too flexible, everything just gets grouped together spatially and every scientist or worker will have their own way to doing this. We need structure and it needs to be inherent to the underlying fabric. So, we have come up with a hierarchy of organizational principles. Rooms are provisioned by a researcher, or by a team of researchers. Each room then contains and number of Whiteboards. Whiteboards can be linked to one another within a room metaphor. There are some use cases floating around which require links across rooms and we will be pursuing this. Within each whiteboard, we support a notion of sub-canvases that are typed. We currently support Ideas, Hypotheses, Experiments, Decisions, and Procedures. This allows a structure to embed any of the tools inside these frameworks and move them around, persist them to another whiteboard, or even to Reward or Penalize the results coming from the type. For example, if an experiment seems to be promising a bar graph on the top left corner can be clicked and adjusted to signal that the experiment seems to always be successful given the conditions described inside the canvas.
The Problem we are Trying to Solve Why are we doing this? During the last year I've had a number of scientists basically support the notion that research and the computing environment underlying this activity as it stands now does not support the learning, annotation and journaling (documentation) richness that is needed. As an example, consider the following web site: www.pdb.org - the Protein Databank. This is a fantastic site and used by hundreds of researchers every day. This site provides an efficient way to store information and to share it, but the granularity of the storage and the learning aspect is completely inefficient. I can see who the authors are, the primary citation, the history, the method, and even parameters to consider about the data. If I want to interact with the proteins structure I can launch any number of molecular viewers (KiNG, Jmol, etc.). Once I have read everything and learned about the protein, I close everything back up and the knowledge is now mine, but the company or organization that I work for is not any smarter (other than the knowledge between my ears now). What if, the actual areas of the protein structure that Dr. Zhang worked on was clear to the eye, what if the specific data points in the X-Ray Diffraction data that are critical to understanding the structure or mechanisms in the structure were able to be annotated and connected literature? This is what we are solving with InfoMesa. These types of pages can be sourced into InfoMesa, but the annotation features and manipulation features allow me to do the science inside of a rich cockpit, without worrying about the communication aspects as much. In short, I can do more science and the knowledge is institutionalized, regardless of geographic boundary. Will it work on my Laptop? When it comes to an application like InfoMesa we are trying to revolutionize the actual "Day in the Life" of a researcher. There are now numerous form factors that both Microsoft and others are bringing to market that allow workers to be more social and more productive. Examples of this are the Surface Computer, Touch Wall, Social Computing Rooms, such as those found at Renci, and even powerful desktop machines with 90" of conjoined monitors such as those sold by Alienware, HP Blackbird and Boxx Technologies. We do support InfoMesa on Laptops and I have been demonstrating that for over a year. It is not the platform we expect that it would be used in typical use. Additionally we are exploring how it would work with technologies like the Wacom Cintiq digital tablet and other form factors. What do I need to run it? Microsoft Vista Recommended (Also supported by Windows XP, Service Pack 2 - DotNet 3.51) Visual Studio 2008 A *great* graphics card Instructions: Unzip InfoMesa_Data in the root drive of C: So the structure should look like this: Where can I get it? InfoMesa is an ongoing project. We will be publishing the community members soon on these pages, but anyone can download it and play with it. We suspect that even the community users will both share and "fork" the source code to do other projects internally that they want to keep proprietary. This link above contains both the source, the data and example files and a PPT to share with management or others. To Be Continued... I will continue to post here on a weekly basis regarding the progress of this project...send me comments or questions that you have. |
|
|