Careers: Interviews
Architecture Guru: Michael Daconta

This week, Stephen Ibaraki, I.S.P., has an exclusive interview with Michael C. Daconta. Michael is an internationally known developer, writer, design and architecture guru specializing in such diverse areas as the Semantic Web, eXtensible User interface Language (XUL), C++, dynamic memory management, Java, and JavaScript.

Michael serves as the Director, Web & Technology Services at McDonald Bradley, Inc. (www.mcbrad.com).

*****
Discussion:
Q: Your combined accomplishments are staggering. Thank you for agreeing to this interview.
A: Thank you for the compliment and for giving me the opportunity to discuss issues of importance to information technology professionals. I think it is especially important now because of the depressed mood of the industry after the Internet bubble burst. In my opinion, this is doubly unfortunate because the enthusiasm over the internet was wholly justified. The greed and corruption ruined a good thing. Thus, we need to not let the greed of a few dampen our spirits. Technology and the Internet are revolutionizing every aspect of society and we have the power to continue that trend. We also have the responsibility to always put the public interest first and to abide by the Software Engineering Code of Ethics and Professional Practice at
http://www.computer.org/tab/seprof/code.htm


Q: Michael, can you describe your remarkable background and how you got to the position you are currently in? What are your particular responsibilities?
A: For those who want all the details, you can look at my curriculum vitae at
http://www.daconta.net/resume.html. I will take a few moments and highlight some of my most memorable experiences:

  • Military Intelligence Officer. Not being able to pay for college, I enrolled in ROTC and later won an ROTC scholarship from my performance at the Advanced Camp Training (I later won Distinguished Military Graduate). I am proud of serving as an Intelligence Officer in the military and highly recommend it as a great launching point to any career. Having said that, you must always be on the lookout to shape your career in a positive way. I wanted to make sure that the military used my computer science degree, so in Officer Basic Course (at Ft. Huachuca, Arizona where I have just moved back to), I began asking the Intelligence Center and School personnel if I could use my computer science skills. I eventually elevated the issue to the General’s technology office and was given the opportunity to come back to Ft. Huachuca after serving a year of tactical time in Korea (to really learn what the military was about). The leadership skills I gained as a platoon leader in Korea (after a short detour through Airborne school) have been invaluable. Taking care of troops, counseling soldiers, staying up all night on exercises, handling over-turned vehicles, disciplining soldiers, working with and under great officers … I cherish those memories.
  • Mystech Associates, Inc. - I always knew that my military career would probably not be life-long. The pull of higher technology was too great and when I was in the military the technology career-track was non-existent (this has since changed). After writing military intelligence simulations at Ft. Huachuca, I was hired by a gentleman named Tim Halstead to work on a larger Intelligence simulation called TACSIM. Thus began my career at a wonderful company called Mystech Associates, Inc. When I joined there were about 150 people and when we were bought by Sterling, we were over 300 people. This was due to the outstanding leadership of Dave Young and the remarkable Human Resource skills of Jodi Johnson. Recently, Dave and Jodi started a new company called Oberon (http://www.oberon.com). At Mystech I worked my way up the technical career ladder … programmer, system analyst, project lead, office manager and technical director. Mystech was a forward-thinking company and put in place a solid technical career track. My two most memorable pieces of software during this time was the High Resolution System Stimulator (HRSS) and my first major Java program (in 1995!) called the Operations Other Than War (OOTW) simulation. HRSS was especially memorable because I had to fight to do the project. There is an expression for young Lieutenants in the military called “Bet Your Bar”. The “bar” refers to your “butter bar” which is the gold bar that designates your rank as a 2nd Lieutenant. So “betting your bar” was putting your credibility (and possibly career) on the line in your assessment of the enemy situation. Well, I had to “bet my bar” before my superiors would let me build the HRSS simulation in only 3 months before a major exercise. The technical aspects of the project were compelling: simulate high-level tactical units, deaggregate each unit into its individual components (tanks, people, etc.), lay out the deaggregated units on digital terrain in formations, broadcast the positions of each deaggregated element to a high-fidelity 3D Unmanned Aerial Vehicle (UAV) simulation running on an SGI box where the equipment would be rendered in 3D. Me and one other programmer coded the simulation in C in three months, deaggregated and laid out up to 300,000 entities in the exercise. It was a big success and won a larger contract to enhance and field the simulation to other sites. Let me briefly mention the OOTW simulation. I coded it in Java in three weeks and tested it live on a training exercise at Ft. Huachuca. In its first test, it ran flawlessly (no memory leaks, no segmentation faults!) for four days straight. A long-running simulation is a great test of a language and this sold me on Java. As a funny aside, throughout those three weeks of intense coding, my nervous system administrator kept saying, “You are never going to finish it!” I kept replying, “Relax. I’ll make it.” One of the best compliments I have ever received was from an operations manager I hired named Rob Olson who said, “Mike, you are the calm in the center of the storm!” There definitely were some hectic days at the Military Intelligence Battlefield Simulation Center (MI-BSC). Good times.
  • Telemedicine Applications Company - Mystech and a private investor spun off a small company to leverage some work it had been doing on Telemedicine applications. This was my first experience at coding for the health care industry and I would do it again in a heartbeat! This experience was bittersweet for a number of reasons including personnel conflicts. In terms of technology, I never coded so much Java. Unfortunately, we experienced growing pains as Java 1.0 moved to Java 1.1. Believe me the drastic AWT changes caused me a ton of wasted time. We probably stumbled across every major deficiency of that early Java platform including threading bugs, AWT bugs, numerous Out of Memory Errors, and lots more. We also did have some successes: I wrote my own networked Whiteboard and watched a Doctor in Stanford University perform a remote teleconference with Doctors in Korea using my Whiteboard!!! What a jolt! (Of course, it worked well otherwise I might have a different opinion). I also wrote my own DICOM viewer for displaying radiology images. A key lesson learned here was that you must properly size your system: you don’t handicap yourself with an underpowered database (Microsoft Access), not-enough memory and a brand new operating system (Windows NT 4.0 with NO service packs -- ugghhh!!!).
  • Electronic Mortgages with Fannie Mae - Recently as Director of Technology and Web Services for McDonald Bradley, I had the privilege of developing XML based standards for Fannie Mae. These standards were adopted by the Mortgage Industry Standards Organization (MISMO) and are being refined and deployed in pilots as we speak. I created a compound document format which basically encodes the Model-View-Controller paradigm in a single document. Working with the folks at Fannie Mae like Gary Haupt, Jennifer Donaghy and Mark Oliphant was a real pleasure. This was my first experience working with the financial/mortgage community and it was also very successful. The coolest part from a technology perspective was an interactive, rule-based eMortgage validator. Fannie Mae loved it.
  • Virtual Knowledge Base - My current project is one of the most challenging and best I have worked on. The goal is to break down the current “stovepipes” for information processing in the Intelligence community. To do this we are creating an interoperability framework where producers and consumers of information can plug-in to a virtual backbone, register their needs or capabilities, and transact. The technologies involved are XML, J2EE, Web Services, Taxonomies, Ontologies and robust Security via SAML. The team is led by a seasoned government program manager, Ted Wiatrak, and my fellow director, Danny Proko. Some of the other team members are people you will learn more about in my two upcoming books as they are co-authors: Kevin Smith, Clay Richardson and Donnie Avondolio. We are making significant progress on these tough challenges and are determined to solve this set of problems for the government.


Q: What are your personal goals 1, 3, and 5 years into the future?
A: A great question. For the next year, I am mostly trying to get settled in this new area (building a custom home), finishing up two books, work, going to a bunch of conferences and I may teach some college courses. Though, my wife may force me to take a break!!

Within 3 years, I plan on getting my PhD and writing more cool software. I hope to also get some time to write fiction but we’ll see.

Within 5 years, I will probably be starting another business. Maybe sooner, I have not decided. Anyone who knows me, knows that I have no problem setting goals. Sometimes, I put too much on my plate. This started right from childhood; it may have something to do with me being a preemie. My mother always said, “Your eyes are bigger than your stomach.” Oh well, I’d rather have too many goals than not enough.


Q: What ten career pointers would you provide specifically to people who wish to enter the computing field?
A: I know that my career success is directly related to following a set of core principles. Here are the ones that have worked best for me:

  1. Integrity. You must have high moral standards. You must build a solid reputation that is based on integrity. Everything else pales in comparison to this.
  2. Problems are opportunities. You have to enjoy solving problems. Be the one in a meeting to volunteer to solve a problem. Stand up and take on the burden. Paste this on your wall: SOLVE THE PROBLEM!
  3. Program Boldly. If you are in a project and NOT trying to revolutionize the industry then you are not the kind of team-member I want. Who would want to just be mediocre? Not me. I’d rather make an ambitious plan and only hit the 80% mark then shoot lower. Remember the expression: Ready, Fire! Aim, Fire!
  4. Ego-less programming. Forget who solves the problem. Forget who gets credit. All that means nothing as long as the problem is solved. Believe me, the people who need to notice your accomplishments will notice them. Don’t be afraid of holding someone else up who did good. When you are in a leadership position, don’t be afraid of adopting another person’s idea. If it is a good idea, then use it and give that person the credit. We need and want more good ideas, not less. The rallying cry for every project should be, “Have you made progress today?” Have you pushed the boulder up the hill, even a little bit? If you did, you can sleep well for you will have earned it.
  5. Do what you say you will. This is similar to #1 but deserves another mention. When you make a promise, live up to it. On technical projects, learn how to estimate well. Don’t be ashamed to say things take time. Good software is like good construction (and having switched home builders I can vouch for this) … it takes time to do it right.
  6. If you want to have people interested in you, do interesting things. Too many companies and people do not understand the law of returns. This is the same people who think happiness should be pursued. Wrong. Happiness is a byproduct of doing something else. This is the same idea for a business and for your career; do the right things and the rest follows. Diligently work hard and you will be asked to shoulder more responsibility (via promotion). So focus, on doing interesting things and interesting work will come to you. Maybe this sounds like faith, but it works.
  7. ASK! Speaking of faith, the bible says, “ask and thou shall receive.” I’ve found this to be true. It does not mean you can make a wish and it will fall out of the sky. It just means that there are so many doors closed to you because you did not knock on them. Always ask - the worst that can happen is they say no. If people don’t know what you prefer, or what you like, they will just do it their way. So if you want to influence any process, you best open up your mouth. This reminds me of one of my favorite saying from Thomas Moore, “Silence means consent.” If you don’t speak up, you consent to the course of action presented.
  8. Be a people person. Nurture and respect relationships. I have been helped by many people in my career. I owe them a debt of gratitude and my help in return. Be open to help and be willing to give it in return. People are more important than things. People are more important than schedules. I am a schedule and list type person but I have learned that I will toss them aside, if I have to help someone or talk with someone or just be with someone. People are more important than things. You must have your priorities straight.
  9. Peer mentoring. I have written an essay about this on the Mcdonald Bradley web site (and there are a few others there on other development topics). Everyone should teach others. You learn best when you turn around and try and teach what you have learned. Every night at the dinner table, I ask my kids, “teach me something you learned today.” I believe that every company should initiate a peer mentoring program and books like Java Pitfalls and More Java Pitfalls are part of that philosophy.
  10. Have a sense of humor. In Korea, a fellow lieutenant related to me her conversation with one of my non-commissioned officers. She had asked him what he thought of me and he said, “Daconta is by the book, but he has a good sense of humor.” Be able to laugh and that includes laughing at yourself. I’ve done a ton of ridiculous things in my life and I’ll do a ton more before I die. It’s not making mistakes that matters, it’s what you do after you’ve made a mistake. So, make sure your work and family life include laughing and fun.


Q: For those who have long established careers in computing but wish to change, what ten computing areas would you recommend that they should focus on? What do your forecast as hot topic areas to start researching now?
A: Well, I am going to combine hot topics and recommended computing areas as I think they are related. Here are the ones I am currently most interested in:

  • Semantic Web/ Taxonomies / Ontologies
  • J2ME/wireless development
  • Distributed / parallel computing
  • Security
  • Web services
  • Online games
  • Telemedicine / Bio-informatics
  • Software architecture/ design patterns
  • Graphics
  • Native RDF and XML databases
  • P2P
  • Mobile Agents
  • Natural language processing (NLP)
  • Content Management
  • Artificial Intelligence


Q: Developers want a single "meta-language" to develop user interfaces that are cross-platform and cross-device. eXtensible User interface Language (XUL), allows developers to break from platform dependencies and develop rich, dynamic user interfaces in record time. XUL is designed to work together with such technologies as Resource Description Framework (RDF), XBL (XML Binding Language), JavaScript, XML (eXtensible Markup Language), and Cascading Style Sheets (CSS). Can you provide more details about your work in this area with examples? What are your top ten tips for XUL?
A: I will be honest that I have been disappointed in the progress of XUL. The concept is right but whether it gets mainstream adoption is not yet solidified. I place specific blame for this at AOL’s feet. The book was written on the presumption that AOL would adopt and use the technology it owns. If AOL won’t adopt Mozilla as its primary browser (in its Windows client), why should corporations? AOL has recently adopted Gecko for its Macintosh client but has not yet committed to doing the same on its Windows client. Until AOL makes a move on this, the jury is still out on XUL.


Q: You have worked extensively with advanced C++ programming features, such as creating class-specific allocators, understanding references versus pointers, manipulating multidimensional arrays with pointers, and how pointers and dynamic memory are the core of object-oriented constructs like inheritance, name-mangling, and virtual functions. What experiences and real world examples can you share with our audience? What are your top tips for C++ pointers and dynamic memory management?
A: It has been a while since I have done any major C++ projects. Almost all of my new code nowadays is in Java. The C++ I now run across is just looking at other people’s code.

All the dangers of C++ you mentioned, I have run across in real projects. Pointers are like mathematics, you either understand them or you don’t. The most egregious errors I remember with pointers is when junior programmers would be passing arguments to a method that uses pointers and they would guess at the correct syntax! Don’t ever guess! If you see a junior programmer randomly trying combinations of *, & or [] then tell them to slowly back away from the keyboard and give them a tutorial on pointers. So, you need to have a good grounding in the basics and the rest can be acquired as needed. Some simple examples are: what lvalues and rvalues and the relationship between pointers and arrays.
For example:
int int_array[5] = {1,2,3,4,5};
int *int_ptr = int_array;

Does int_array[2] equal *(int_ptr + 2) ?
Answer: yes.

While the above is basic, if you don’t understand the relationship between pointers and arrays for single-dimensional arrays, you can’t move up to multi-dimensional arrays where the syntax gets worse. Then there are pointer pointers, pointers to structures, copy constructors, memory allocation … and every concept builds on the ones before them.

Of course, memory leaks and segmentation faults are the most common errors I remember wasting hours debugging. I have been thankfully out of these types of pitfalls for awhile by using Java; I may revisit them in the context of C# to see what that universe is like.


Q: How would a C or C++ programmer move to Java and JavaScript? What examples or scenarios can you provide from your rich store of knowledge in this area?
A: It is trivial for C programmers to move to Java; the only major hurdle being learning the OOP concepts. The C++ programmer already knows the OOP concepts but may miss C++ features like multiple inheritance or operator overloading that are not available in Java. Personally, I never missed those features.

In hindsight, I was slightly over-zealous about Java when it first came out. I have learned since then that religious fervor over programming languages is just wrong. I can now take a broader view. They all have strengths and weaknesses. Also, some people are more effective in one language over another. You must evaluate the right programming language based on the size and type of project you are coding. If you are coding a quick prototype, it probably does not matter what you code in. If you are coding a mission-critical application, you must put reliability and robustness over personal preference. For example, I am a big fan of strong typing. I believe the minor amount of verbosity is well worth the compiler time checking of parameters. Again, don’t think about how good a programmer you are, but what the average programmer has to grasp.


Q: What are the most powerful features in the latest edition of Java and can you provide examples of their implementation?
A: I have to separate Java from JavaScript to answer this as they are two very different beasts.

Java is still a beehive of activity with the Java Community Process going gangbusters. Some of my favorite new features are the XML APIs (the “JAX Pack”), the JSP tag libraries, assertions, and the addition of regular expressions. As for examples, I would recommend the free Java tutorials at http://java.sun.com or some of the other free online texts.


Q: You are an international and well respected authority on Java development and its pitfalls and shortcomings. With your extensive experience, you have developed solutions and techniques for improving performance. What are your top specific solutions for major Java programming problems?
A: The top pitfalls in Java would be threading problems (starvation, deadlock, etc.), out of memory errors, null references, poor exception handling, and non-intuitive APIs. There are pitfalls in every package in the Java library so which ones effect you most depend on which packages you use most.

Solutions to pitfalls depend on the simplicity of the pitfall. Simple pitfalls usually have simple, universal solutions while complex pitfalls only have techniques or workarounds that are more or less effective depending on the context. An example of these two types would be String concatenation (easy) versus OutOfMemoryError (context specific but still pretty easy). For String concatenation you just don’t use the plus operator for concatenating a String in a loop (use StringBuffer). For OutOfMemoryError you catch the error, set references to null and call System.gc() but there is no guarantee you can reclaim enough memory with this technique.

In the new book, More Java Pitfalls, we cover a much larger breadth of the Java platform including J2ME, J2SE and J2EE. The book is complete and will be out soon. I am real pleased over the quality of the pitfalls and the depth of the explanations. We made a conscious effort to go into more detail to reveal the root cause of each pitfall. More Java Pitfalls is significantly larger than Java Pitfalls.


Q: Your books are highly recommended. What led you to write these masterful works?
A: Most of my books have been direct responses to challenges I have faced in my career in addition to enjoying teaching. I believe in standing up for the average programmer and making his or her life easier. I am also opinionated enough to call a spade a spade and damn the consequences. We have to push hard for progress. I feel very strongly that there is such a thing as a calling. Not a specific calling (though that is possible). A general or universal calling: Make things better. That may sound corny, but I believe it.


Q: Can you provide your views on J2EE and J2EE patterns?
A: I do not yet consider myself an expert on J2EE as I have not yet had enough hands-on coding experience with it beyond trivial examples. For More Java Pitfalls, my co-authors wrote the pitfalls in that area. However, my initial impression of the EJB container is that it is a superb abstraction to eliminate the complexities of thread programming (as well as other server-side complexities). Remember, that I previously mentioned that threading bugs was one of the top pitfalls -- so this directly addresses that deficiency. Thus J2EE simplifies server-side programming and allows programmers to focus just on implementing the business logic. As for J2EE patterns, I recommend: EJB Design Patterns: Advanced Patterns, Processes, and Idioms by Floyd Marinescu and Ed Roman.


Q: Describe future book titles and articles can we expect from you?
A: In the first quarter of 2003, More Java Pitfalls will be published by John Wiley & Sons, Inc. In the second quarter, John Wiley and Sons Inc. will publish The Semantic Web: the future of XML, Web Services and Knowledge Management. After that, I will probably be updating the book XML Development with Java 2, published by Sams; however, I may decide to wait until the XQuery spec gets closer to a W3C recommendation. I really don’t like chasing technology and try to avoid it if I can. Lastly, I am also considering an interesting niche book on C# for later 2003. As for articles, I plan on doing articles on Java Pitfalls, XML and the Semantic Web for various online and print publications.


Q: Can you describe some of the projects that you have worked on and what tips you can pass on?
A: I discussed several projects when discussing my background. To that I will add some lessons learned from three projects:

  • In 1989, my boss asked if I could write a utility to automatically generate standard project, file and method documentation headers for C source code. Having been neck-deep in C for 9 months, I boasted that I could write the utility in two weeks. Having never written a language parser before, the next two weeks were very intense and the project ended up taking three weeks (no, I did not use a parser generator and grammar as I would today). My boss threw that estimation error back in my face several times that year. The lesson learned was to never give off-the-cuff estimates. Now my estimates follow a more disciplined methodology with a detailed task break down into atomic-level tasks with known durations. Also, unknowns are carefully listed and given cautious estimates.
  • In 1997, I needed to write a parser for the Air Force to parse Air Tasking Orders; however, instead of the simplistic approach, I pitched and received approval to develop a rule-based parsing engine driven by XML templates to handle all United States Message Text Format (USMTF) messages. This actually was a dual-template system, one template to drive the parser and a second template to map the parsed fields to database tables and columns. This sold me on the utility of XML (which became a W3C recommendation a year later). Additionally, another lesson learned was that with some innovation and ambition, you can turn a seemingly mundane programming task into an ambitious piece of software. This was one of many exercises in “programming boldly.”
  • In late 1998, I was asked to troubleshoot performance problems in an Intelligence processing system. In training class, when all 20 students would attempt to perform a query at the same time, the system would take up to 15 minutes to respond to a query. While the system was coded well, there were several key design flaws. In key areas the designers took abstractions too far - isolating the database in an inefficient wrapper and wrapping a text editor for simple parsing chores. While flexibility and separation of concerns are generally a good thing, too much of a good thing is bad. In the end, we sped up queries by up to 2000%. In hindsight, this was a classic pitfall … something that looked correct but executed with disastrous results.


Q: Please provide your views on UML, and XML?
A: Both of these are cornerstones of my development these days.

We use UML in every design document we produce. It is a de-facto standard and I believe reflects the maturation of software engineering. As an aside, I am in favor of licensing of software engineers. We need to step up to the plate and take responsibility for our products. I am confident that I can engineer robust software and am willing to get a license and be responsible for my products. It is time we stopped stalling on this issue. Software is too important to society for vendors to pass the buck -- does this mean the cost of some software projects will rise? Sure. But the additional cost for proper design and testing will be well worth it.

XML is revolutionizing the IT industry and it will continue to do so. XML provides application-independence and easy separation of content from presentation among other benefits. The value proposition of XML is simple and intuitive. The benefits affect every consumer, business and government agency. This is why it is critical for the business community to judge Microsoft’s support of XML on whether it makes XML the default file format of MS Office. If it does not, the .Net vision is just more “embrace and extend.” I feel strongly about this because retarding efficient knowledge capture and reuse to protect a monopoly is an affront to society.


Q: What are the hottest topics that all IT professionals must know to be successful in the short term and long term?
A: In the short-term you should know: UML, XML, Web-services and either J2EE or .NET. In the long-term, first look at the 15 topics I presented above. Secondly, look at focusing on foundational skills like the Software engineering body of knowledge (www.swebok.org), software architecture, and design patterns.


Q: What would be your recommended top ten references for the serious developer?
A: I have to give one plug here for our upcoming book on the Semantic Web. This is the first book I have written that will have no code in it. It is aimed more as a strategic conversation between a CIO and the CEO than a tutorial. Having said that, I am excited and impressed by the number of insights we reveal about the roadmap to the semantic web.

Now some others:

  • The Mythical Man Month, Brooks, Addison Wesley.
  • The Design of Everyday Things, Donald Norman, Doubleday.
  • After the Gold Rush, Steve McConnell, MS Press.
  • Software Fundamentals: Collected Papers of David L. Parnas, Hoffman and Weiss, Addison Wesley.
  • Design Patterns, Gamma, Helm, Johnson, Vlissides, Addison Wesley.
  • The Practice of Programming, Kernighan and Pike, Addison Wesley.
  • The Art of Programming, Donald Knuth, Volumes 1, 2, & 3, Addison Wesley
  • Peopleware, Tom DeMark & Timothy Lister, Dorset House Publishing.
  • Mastering Enterprise Java Beans, Ed Roman, John Wiley & Sons, Inc.

Many others not listed here … most of my books are packed away … besides reviewing many books for John Wiley & Sons, Inc. and Sams, I never hesitate to buy a book (from Amazon) on a new topic if I believe it will help me on a project. Books are one area I never skimp on. One recent book, I am reading from John Wiley & Sons, Inc. is The Art of Deception by Kevin Mitnick. So far, it is superb.


Q: You have done extensive research with the Semantic Web and are a respected authority in this area. Both RDF and XML Topic Maps are two competing but yet could be complementing frameworks. Does your research indicate that one of these has the better potential? And why?
A: These technologies are complementary but different. The question actually needs to be expanded to taxonomies versus ontologies. It is important to understand the difference between taxonomies and ontologies and how they complement each other. A taxonomy is a hierarchical classification of things. The most well-known example of a formal taxonomy is the library’s Dewey Decimal system of subject classification. An ontology is a formal class model which specifies classes, subclasses (inheritance hierarchy), properties of classes, formal property constraints and formal associations between classes. Taxonomies are for organizing things just as the directory structure (or file system) on your hard drive is used to organize your files. An ontology is a formal model of how things relate to each other that can be used for inference. The important thing to remember is that while every ontology class can be a topic in a taxonomy, the reverse is not true. For example, I could have a topic called “hot items” which may be useful for organization but irrelevant for inferences. In terms of discovery, taxonomies are well-suited to browsing and ontologies are better suited for inference, association and standardizing your domain entities. Now, in relation to the above discussion XML Topic Maps are primarily for recording taxonomies; however, they have some aspects of Ontologies. However, they do not nearly approach the Ontology formalisms and the emerging “semantic algebra” in languages like OWL. I view this as an example of a technology “over-reaching” beyond its original purpose. We should say to ourselves, “small tools, small tools, small tools” until we get it.


Q: We all know the web in its existing form is "out of control" in its ability to locate useful resources. Do you believe that contributors to a Semantic Web can easily be convinced to (XML) tag their resources based on communities? And if not, what elements are missing?
A: I recently wrote a short paper on XML for the government, one section involved misconceptions about XML. Here is my response to that very question from the paper:

XML Misconception: Users will not tag their data.

Of all the misconceptions, this is the most serious. Luckily, the precedent of HTML soundly refutes this sentiment. The popularity of HTML was driven by grass-roots, non-programmers with a desire to share their work and thoughts. In other words, for the average person the benefits of a world-wide audience outweighed the learning curve for HTML tags. Applying this to XML, the chief problem is a lack of understanding of the benefits of XML tagging in order to generate the motivation to apply the effort. Since XML is a middleware technology and possibly one-step removed from end-user presentation, it is more difficult for the end-user to get instant gratification in applying their tags. One way to alleviate this is to have both instant transformation to an end-user form and most importantly an ability for users to see visual links between their tagged data and others. Such visual links are just one way for the end-user to understand how their individual effort in XML tagging helps solve the needle in the haystack problem.


Q: What is the time frame when the Semantic Web will become a critical mass for Internet users?
A: I don’t think the average user will be able to spot the transition as it will be transparent. Since ontologies, like NLP, are most effective in closed domains, we will probably first see the technologies spring up in intranets. That makes the most sense, as proper use of semantic web technologies will be a competitive edge. The trend toward corporate portals will facilitate this as portals are the perfect semantic web front-end due to their role as aggregator. Other trends will reinforce the cycle like office documents in XML, annotations, and web-services. Successes will steam roll until Semantic web applications are common place. Then more ambitious cross-domain projects will be initiated and people will say, “Hey, the semantic web is here.” I predict we will reach a semantic web tipping point for portals and intranets within three years.


Q: If you were doing this interview, what five questions would you ask of someone in your position and what would be your answers?
A: This is already pretty long, so I will only add two short questions.

q: What do you think of Mac OS X?
a: While I have used both Macs and PCs for a decade, I prefer the Macintosh. Now that Mac OS X has Unix underneath, good Java support and a great GUI that seamlessly integrates with all my digital devices -- what’s not to love? I don’t mind paying extra for great design.

q: What technical innovation are you most looking forward to?
a: The integration of the PDA, cell-phone and MP3 player (I’m getting an iPod for Christmas!). Combine a PDA, the iPod’s 20GB hard drive, a 3G wireless network and easy blue-tooth connectivity and you have a compelling new computing platform for personal and corporate knowledge applications. In fact, think of it this way, when cell phones become serious computing devices (in terms of resources), we will have more networked computing power than at any other time in history!


Q: It’s a blank slate, what added comments would you like to give to enterprise corporations and organizations?
A: I would like to close with four recommendations for corporations:

  • Only adopt technologies that support open standards.
    • Reject vendor lock-in.
    • Begin internal mentoring programs.
  • Now is the time to be investigating the semantic web.
To developers, I would urge them to be aggressive in pushing technology. IT can deliver productivity increases to every employee. IT can revolutionize education and training. This is a great time to be a developer!


Q: Thank you for sharing your valuable insights with us today and we look forward to reading your books, and articles.
A: It has been a pleasure. Thank you again for giving me the opportunity to share my thoughts and experiences with the Information Technology community.


Copyright Network Professional Association® 1994-2017. All Rights Reserved.
NPA Privacy Statement