Introduction
Let's consider the situation: I have 6 categories of resumes and portfolios which are used for different purposes (i.e. for professional job, contract, personal, marriage, research proposal, university admission purposes, etc.). I have to provide those with recent information when needed. Also I am a developer who has blogs, profiles among several online communities, forums, sites, for instance in 20 sites.
Among those, of course there is some information which is being changed very frequently (i.e. projects, technology expertise and my skill level, etc.), some are being changed occasionally (i.e. home address, cell number, etc.).
It turns to a hazardous problem when my personal and professional data are getting changed. In that case, I need to change ALL of my online profiles in 20 sites! Each time when I need to submit my resume, I have to go through the whole document to check the information that has been updated! Really silly!
Information technology is growing very fast, lots of exciting, interesting and intelligent techniques are taking place. But I am not sure why we have not got any consistent, easy way (really easy) to solve this issue and thus to save lots of our time and efforts for hazardous tasks and of course to get an efficient way to make information consistent, accurate among all documents and web places.
A Sample Solution
Let's say there is a developer who uses the following text in 20 sites as his profile content:
Mohammad Ashraful Alam is a Software Engineer. This Bangladeshi national is involved with project management and development of several US based software projects from his country. Already he has managed and developed 15 software projects, which are being used by several users of different countries, such as USA, Canada, Australia, and Bangladesh. Currently he is engaged as Project Manager at ABC Inc, USA.
Using the "Common Sharable Content" concept, the user can put his data into a specific space in the web, using a simple web or desktop application. After that, he can put the following content for his profile, where the web server will parse the tags, so will be able to render the appropriate content to its client end UI.
<datasource id="dataSource1" provider="www.x.com/provider"
servername="myServer1" userid="user1">
<datasource id="dataSource2" provider="www.y.com/provider"
servername="mySecuredServer2" userid="user2" password="psw2">
<# dataSource1.GetOfficialName> is a Software Engineer.
This Bangladeshi national is involved with project management and development
of several US based software projects from his country. Already he has managed
and developed <# dataSource2.GetTotalProjects> software projects,
which are being used by several users of different countries, such as
<# dataSource2.GetProjectCountryList>. Currently he is engaged as
<# dataSource2.GetDesignationCurrentCompany> at <# dataSource2.GetCurrentCompany>.
Design Issues
While designing any solution for the above case, there are few issues that can be considered as follows:
1. Data Security Level
Some data can be shared or referred by any of the external users or sites. For example, "Ashraf has completed <# dataSource2.GetTotalProjects>
projects." In this case, the corresponding reference tags can be shared to all so that anybody can use that in relevant places as needed.
On the other hand, the content author might not want to let anybody share his/her info using "Common Sharable Content" technology, but might want to use the content only to specific or private places (for instance, personal phone number). Special security mechanism (for instance user name/password) should be used to publish private information.
2. Service Provider and Data Model
Exactly what is the information the user needs to share in the documents, can be defined through the user interface (desktop or web) of the Information Service Provider. The Service Provider should provide enough opportunity to the user to customize content and tag definitions, as much as needed.
Data should be stored into the web space provided by the Service Provider, with normalized model. Using built-in templates or defining custom data model, the user should utilize his own data in various way. For instance, if a content author has an entity named "My Projects", which lists all the projects, using a "Row Count
" method provided by the service provider, the author can easily refer his number of projects to documents, without requiring to put "Number of Projects
" into a separate entity.
3. Platforms and Standards
As tags are being parsed and rendered from the web server, so the server side scripting software might have its own syntax and semantics regarding this particular issue. Besides, to make it widely usable, a common standard for the syntax and semantics can be defined so that ALL server side scripting languages can follow this standard to render appropriate text.
As text is being rendered from the server side, there are few or no concerns in client side support. The only concern that can be considered for the client side is, if, for instance server side script doesn't parse the tags and thus the content will not be rendered in the desired format. The browser (and/or the tag) can have the default value to show it becomes not possible to show the rendered data. So while designing the tag (and it's syntax-semantic), we can consider traditional HTML/XML mark-up languages for wide range compatibility to show default values in unconsidered cases.
4. Application Add-in
Web application or desktop application that has support for the concept "Common Sharable Content" can contain Add-in where all the available tags or methods can be inserted into the document. For instance in the "DataSource1
" sidebar (which has been initialized by connecting to a specific datasource) might contain an element "GetOfficialName
" clicking on which inserts the <# dataSource1.GetOfficialName>
tag into the document.
Conclusion
Web 2.0 is taking a very important place among the current trend of web, where rather considering "human to machine communication", "machine to machine communication" and "human to human communication" is more. It has various new approaches which are making the web space better. From my point of view, "Common Sharable Content" concept is EXACTLY what is missing here. Of course, this concept encourages the "machine to machine" communication and thus makes personal information management over the web better.
The concept might seem like a similar concept of using XML based Web Service in ASP.NET or Java technology. But, as we discussed, to make Web 2.0 really useful and popular, "Common Sharable Content" concept should be designed so that can be integrated by a non-technical or poor technical people in a very flexible and easy way.
I am interested to work towards this target. If anyone of you, the readers, are interested, please let me know.
History
- 18th August, 2006: Initial post