Posted:August 23, 2006
NOTE: With Google’s recent announcement of its language translation service (see http://translate.google.com), there is no longer a use or need for this AI3 blog to maintain its language translation service and Javascript. Thus, the downloads listed below are still available, but no longer maintained or supported. MKB

Author’s Note: There is zipped HTML and Javascript code that supports the information in this post. If you develop improvements, please email Mike and let him know of your efforts.


Download Language Translator and JS code file Click here to download the zipped file (2 KB)

For those of you that follow BrightPlanet, we have been moving aggressively for some time now into international document harvesting and all that that implies regarding language and encoding detection and roundtripping. In fact, there is a fairly definitive tutorial post on my blog that deals with these so-called i18n internationalization issues that has become quite the reference on these matters. With its partnership with Basis Tech, in fact, BrightPlanet now can harvest documents in about 140 different languages with accurate encoding translation in multiple legacy forms for about 40 of them and morphological analysis for another 20 or so. There can be no doubt that the need for multi-lingual searching and harvesting and encoding support is an abiding trend of the evolving Internet.

So it was a great surprise and pleasure to encounter Lorelle VanFossen‘s blog site where she has cleverly linked in Google’s machine language translation capabilities. Her explanation of that approach is provided by this specific posting. So, using these techniques, my site has now embraced these language translation capabilities for the nine languages shown as follows:

So add some language translation links to your sidebar or posts and help spread the word about your blog to the world. (Go ahead, actually click on these!):


Translate into Spanish


Translate into German


Translate into French


Translate into Portuguese


Translate into Italian


Translate into Arabic


Translate into Japanese


Translate into Chinese


Translate into Korean

You will also note that my blog now has a standard panel link (different format; see below) to translations into these languages on the main and subsidiary pages.

Try this! It’s fun and impressive. Some have criticised the “ultimate” quality of these translations, but Google improves them continuously over time.

Actual Implementation and Javascript

You should note that Google itself limits the amount of actual text it will translate at any given time. Thus, if you use the translate links
from this site’s main page with its many cascading prior posts, you will see only a few posts translated. If you use the links on specific posts, however, you will find most of the content even for my longish entries translate fully.

Also, these translations are uni-directional. Don’t continue to cascade from language to language; you will get processing errors. Always begin with the English pages as originally published on this site.

There are also two other flaws in the straight implementation as described above:

  1. Google’s listing of machine translated languages is growing, and the nine listed above already take up some real estate for the languages listed. We’re probably already past the point of buttonitis
  2. There is not context for picking up the dynamic URL of wherever a user might be in a Web site or blog.

So, Graham Beynon, one of BrightPlanet’s senior developers, wrote a more generalized Javascript approach, a variant of which presently appears on this site. Via standard option listings, the languages can easily be expanded should more become available from Google, simply by adding another option entry and using the appropriate two-letter language code. Great work, Graham, and thanks.

If you inspect the source code, you’ll also see a couple of other choices you can make in the code operation by removing or adding comments. And, of course, should you choose to use this snippet, make sure you get rid of the test query and remove the HTML header stuff. You can, however, use the LanguageTranslator.html as is.

To download this file, click on the link at the top of this post. And, enjoy!

So, Welcome to Adaptive Information on the Modern Web. Or, rather:

  • In Spanish — Recepción a la información adaptante sobre el Web moderno
  • In German — Willkommen zu den anpassungsfähigen Informationen über das moderne Netz
  • In French — Bienvenue à l’information adaptative sur le Web  moderne
  • In Portuguese — Boa vinda à informação adaptável na correia fotorreceptora moderna
  • In Italian — Benvenuto alle informazioni adattabili sul fotoricettore moderno
  • In Arabic — ارحب التكيف معلومات عن شبكه حديثه
  • In Japanese — 現代網の適応性がある情報への歓迎
  • In Chinese (simplified) — 欢迎在适应现代信息网络
  • In Korean — 현대 웹에 적합한 정보에 환영.

Why is it that all of us get on particular jags?  I started yesterday with a minor interest in pursuing some semantic Web relationships with my blog site and soon found I was cruising in all directions plugins.

My last post describes the first stages of semantic readiness for my blog, with a number of follow-on enhancements in the works.  But in the process, I also came upon a nice display of social bookmark sites at the Ebiquity blog (thanks, Tim Finin, it is one of my favorites) that I immediately envied.

Well, after an amazingly short time in research, I came across one plugin that puts such links on WordPress — Sociable — that is a very clean and capable plugin.  It not only installs like a dream in WordPress (standard procedure), but it also adds some nice option settings that allow you, the blog administrator, to:

  • Select which pages the bookmark links appear on
  • Select which bookmarks get listed
  • And, select the order and some other display options.

In fact, install was so easy in looking at the PHP I was confused as to how the obvious settings and options in the plugin could be set.  My only silly criticism of the Sociable plugin is that there is virtually NO documentation and NO hype, which meant it took me a little poking around to see that when installed these site administrator options even became available.  But once discovered, cool.  How these setting options look in my WordPress administration center is shown below: 

Now we’re talking real power and coolness in a plugin.

Socialble was inspired by Paul Stamatiou and Kirk Montgomery developed and released the first version of the plugin as WP-Sociable in January 2006. In February 2006, Peter Harkins took over development. So, as you notice the new cool icons at the bottoms of my posts, credit goes to Peter and his predecessors and the Sociable plugin.  Nice work, guys.

Posted by AI3's author, Mike Bergman Posted on August 23, 2006 at 9:06 am in Blogs and Blogging, Site-related | Comments (3)
The URI link reference to this post is: http://www.mkbergman.com/262/sociable-more-plugin-method-to-the-madness/
The URI to trackback this post is: http://www.mkbergman.com/262/sociable-more-plugin-method-to-the-madness/trackback/
Posted:August 22, 2006

Once one starts talking the talk, it becomes time to walk the walk.  And, so I have now done so.  I’ve added semantic Web capabilities to this blog site, AI3:::Adaptive Information.

I’ve done so via a suite of nifty tools:

  • SIOC Exporter for WordPress.  The plugin files can be found at http://sw.deri.org/svn/sw/2005/08/sioc/wordpress/SIOC, which stands for Semantically-Interlinked Online Communities, is one of the standard RDF ontologies. The SIOC Exporter is extremely easy to install as a standard WordPress plugin; it took me less than five minutes to copy the two files and activate the system from within my blog administrator. SIOC Exporter was written by Uldis Bojars and works with all WordPress versions above 1.5
  • Okay, so that’s well and good, but what the heck does adding this plugin do? To see the RDF annotations provided by the SIOC Exporter plugin you can use the Semantic Radar extension to Mozilla/Firefox. Semantic Radar detects links to RDF metadata (via auto-discovery information) (naturally!) and displays a status bar icon at the lower right of the browser status bar. Semantic Radar is also very easy to install, only requiring a re-start of the browser. The icon appears when RDF data is detected; clicking on the icon will allow you to browse SIOC RDF data (see below), as well as FOAF and DOAP metadata.  Semantic Radar was also written by Uldis Bojars
  • The presence of Semantic Radar provides another new feature, which is to ping the Semantic Web Ping Service when metadata are detected. This allows for a community based discovery of the Semantic Web data.  The Semantic Web Ping Service was written by Frederick Giasson.  The purposes of the service are to notify that a new semantic web document
    has been published on the Web, to archive its location, and to give its
    location to other web services.

After these simple installations, I now had the SIOC icon for the Semantic Radar detector on my browser and my site was generating SIOC data due to the SIOC Exporter.  Clicking on that icon brought up the SIOC browser, which provides an entry for the blog as a whole and all posts listed on the main page:

One of the SIOC browser links, among other options, enables you to review validated RDF using the W3C service.  Here is what my triples looked like:

And, as noted above, the viewing of this data also pinged the Semantic Web Ping Service, which now showed my entries under both the SIOC and FOAF categories:

All of this was extremely easy to implement. My next phase in using such tools is to expand the breadth of the subject ontologies to parse against my blog site and to discover information extractors or metadata generators that create those attributes on the fly. Stay tuned!

Posted by AI3's author, Mike Bergman Posted on August 22, 2006 at 3:56 pm in Semantic Web, Site-related | Comments (2)
The URI link reference to this post is: http://www.mkbergman.com/260/enabling-sioc-for-ai3-adaptive-information/
The URI to trackback this post is: http://www.mkbergman.com/260/enabling-sioc-for-ai3-adaptive-information/trackback/
Posted:August 6, 2006

Well, my blog has just celebrated its official one year birthday.  Happy Birthday, AI3!

In the past year I’ve posted a new entry about every three days (128 total) and about half have a user comment.  The posts have been placed into 16 different categories.  My posts tend to be much, much longer than a "standard" blog in keeping with my intent to have this site be an early release point for substantive musings and research.  In that regard, I rate the site a high success, but it does come at a bit of a cost in packaging what had normally been my own internal drafts.

My Pro Blogging Guide has been very popular, with about 10,000 downloads from various venues (including about 2,500 from this site). The site is ranked about 100,000 in popularity on Technorati, pretty remarkable given its narrow and targeted focus.  Thanks!

I find that my posts tend to very episodic.  Fortunately, I post when my natural work flow and research dictates.  I have certainly read about "blogging burnout" quite a bit in the past year.  I suspect that blog authors who see themselves as needing to fufill popular expectations or to build audiences feel such pressures.  I just dawdle along, with my own weird musings and according to my own weird muses.

What’s Coming

I am very excited about the pending release of my semantic Web expert’s reference portal, SWISHer.  It is done and presently resides in the background; I am just working out some publicaton and blog integration details.  Stay tuned!  For those of you in this space, I think you will find its 200,000 or so definitive articles an invaluable reference library.

Other than SWISHer, I expect more of the same from the AI3 blog in the coming year:  a few, long posts per week, most of a research nature or based on analysis, with an occasional PDF or white paper summarizing an active research topic or series of posts.

I’d like to thank you for taking the occasional time to look at my stuff.  I again invite all of you to comment and interact as much as you’d like.

Posted by AI3's author, Mike Bergman Posted on August 6, 2006 at 12:29 pm in Site-related | Comments (0)
The URI link reference to this post is: http://www.mkbergman.com/256/happy-first-birthday-ai3/
The URI to trackback this post is: http://www.mkbergman.com/256/happy-first-birthday-ai3/trackback/
Posted:June 27, 2006

I don’t generally rant on this blog, but after having just about puked on too many Web 2.0 references, I’m now choking on new Web 3.0 references.  (For those not in the know, Web 3.0 is the "real" semantic Web stuff, while Web 2.0 is that oh-so tired tagging and mashup shit.)

Well, the escalation now appears clear.  We’re now seeing a proliferation of Web 3.0 posts today in order to set some distinctions.  Don’t like 3.0, not enough horsepower?  How about I see that and raise you to 4.0?  But why end there?  After all, high school was terribly fun and clever. . . .   

So, the heck with it.  I decided to jump right to the jugular:

Hey, ninety eight point six, it’s good to have you back again. oh,
Hey, ninety eight point six, her lovin’ is the medicine that
saaaved me,
Oh, I love my baby.

It’s so cool to be on the cutting edge . . . .

Posted by AI3's author, Mike Bergman Posted on June 27, 2006 at 6:32 pm in Semantic Web, Site-related | Comments (1)
The URI link reference to this post is: http://www.mkbergman.com/248/hey-web-986/
The URI to trackback this post is: http://www.mkbergman.com/248/hey-web-986/trackback/