| By Joseph Moeller | Article Rating: |
|
| May 30, 2002 12:00 AM EDT | Reads: |
16,810 |
We developed a "patent mining" tool for our company utilizing XML. Corporate leaders wanted to provide company-wide browser access to our corporate patent portfolio as well as in-depth analysis of our patent data. They saw this as a way to assist our company in strategic and investment decisions and to encourage innovation and collaboration.
The highly structured format of patent data led easily to a hierarchical representation in XML. The use of XML made programming simpler. We only had to load the XML document containing the patents into a browser, so there was no need to extract from a database. In addition, we were able to present the same XML data in multiple ways, using various XSL stylesheets. XML provided a very straightforward, inexpensive, and effective way to meet this requirement for patent mining.
Packaged software is available that imposes structure on a company's content, making it easily searchable and capable of being displayed in various ways in a browser. For this application, however, the volume is relatively low; our company currently has only a few hundred patents totaling about 10MB of data. The content is fairly static; the issued patent data rarely changes, and relatively few new patents are added each month. And the number of concurrent users will remain low.
Because of these factors, we decided we could safely avoid purchasing any content management, database, or other software.
Implementation Steps
The U.S. Patent and Trademark Office (USPTO) provides downloadable access to all patents that have been issued. We wrote a script to access the USPTO Web site, search for our company's patents, and then download them. Once we had them all together, we identified the consistent structure throughout. Listing 1 shows the XDR Schema we created to model the XML markup (all code references in this article can be downloaded at www.
sys-con.com/xml/source.cfm).
The header section of a patent contains field data such as patent number, title, issue date, and assignee. The header data also includes repeating groups such as inventors, references cited, and classes. The detailed body of the patent, which includes the "claim" of the patent and a lengthy description, consists largely of unstructured text.
After downloading the patents, analyzing their structure, and creating a schema from them, we were ready to mark them up with XML. To expedite the markup process we wrote a Perl script to tag the structured fields with XML. This was fairly easy to parse with Perl due to the rigid structure of the data.
Figure 1 shows the first page of a patent as it appears on the USPTO site. Listing 2 is the same patent data after being downloaded and marked up with XML. Figure 2 shows the same patent again as displayed in our tool using XSL; it's deliberately similar to the USPTO presentation because we intended to duplicate that look and feel.
The home page of our application lists the critical information for all current patents: patent number, issue date, title, inventor. From this a user is able to click on a patent number and see the detail of an individual patent, such as the one shown in Listing 2. We also created a page that provides field searches and a keyword search of all corporate patents. We used XPath queries to perform the field searches; for keyword search we used regular expression pattern matching. A citation analysis diagram displays which patents reference a patent and which are referenced by a patent. A class distribution histogram groups the patents according to the USPTO classification scheme.
Mining Unstructured Data
Patent mining starts with searchable access to the patent data, but more in-depth analysis requires mining of the unstructured claims and description data in the body of the patent. We ran various cluster analysis programs against the unstructured data and converted the output of these programs into XML. We then displayed the data in various ways using XSL. For example:
- Relevance matrix diagram: Uses an algorithm that analyzes overlap in word content and clusters the content accordingly
- Optimized cluster analysis diagram: Clusters the patents into 20 categories based on word usage
- Molecule diagram: Shows the clustering in molecules connected to each other based on relevance
We originally planned to make the patent mining tool a client-side application, which seemed like the simplest and most straightforward route. A client-side application involves downloading the XML data onto each desktop browser, parsing the XML, caching the data in memory, and then transforming it by XSL, all on the client. Some functions, such as keyword search, require loading all 10MB of the data onto the desktop, which became a performance bottleneck. (After the first time, however, the data was cached.)
An additional client-side drawback was that to make effective use of XSLT, each client had to have XSLT installed. Yet many Microsoft Internet Explorer users don't yet have MSXML parser 3.0 or above, which is required for XSLT. So we had to backtrack and use the more limited functionality of XSL (a standard component of IE 4.0 and above) on the client desktop.
We'll soon be converting our application to server-side processing, wherein all the processing takes place on the server and only the resultant HTML is sent to the client. Then we won't have a bandwidth/download problem, since the 10MB of data remains on the server. As there's also a persistent DOM (loaded once into cache) ready for processing on the server, performance and scalability are increased. And the processing is no longer browser-dependent. We don't need to be concerned about whether the client Internet Explorer can handle XSLT, or whether the client browser may even be Netscape, which has limited XML support.
For more complete patent mining functionality, including more analytical tools, we may still buy packaged software. If we decide to expand the scope of patents to include all similar patents issued by the USPTO, which could number in the tens of thousands, we'll definitely need a database. In the short term, however, we have a useful application founded on XML that our company can use to perform basic patent mining.
Published May 30, 2002 Reads 16,810
Copyright © 2002 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Joseph Moeller
Joseph Moeller is a consultant specialist, working in the Enterprise Information Technology division of EDS. One initiative of EIT is Knowledge Management, which addresses the identification, growth, and reuse of the enterprise's intellectual captial. Joseph Moeller has worked for EDS for 20 years, and currently works in EDS Austin Innovation Lab, which has made XML an important part of their strategic direction.
- Agile Adoption – Crossing the Chasm
- Cloud Expo New York: The Java EE 7 Platform - Developing for the Cloud
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- Cross-Platform Mobile Website Development – a Tool Comparison
- Architecture Governance – the TOGAF Way
- Twelve New Programming Languages: Is Cloud Responsible?
- It's the Java vs. C++ Shootout Revisited!
- Cloud Expo New York Speaker Profile: Arun Gupta – Oracle
- Agile Development & Enterprise Architecture Practice – Can They Coexist?
- Cloud Expo New York: Industry-Leading CxOs to Present June 11-14
- Component Development and Assembly Using OSGi Services
- Big Data: Information Spawns Innovation
- Agile Adoption – Crossing the Chasm
- Graal, a Dynamic Java Compiler in the Works
- Cloud Expo New York: The Java EE 7 Platform - Developing for the Cloud
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- Cross-Platform Mobile Website Development – a Tool Comparison
- Architecture Governance – the TOGAF Way
- Google Analytics with Monitis Dashboard
- Twelve New Programming Languages: Is Cloud Responsible?
- It's the Java vs. C++ Shootout Revisited!
- Cloud Expo New York Speaker Profile: Arun Gupta – Oracle
- Scaling Java and JSP Apps with Distributed Caching
- Agile Development & Enterprise Architecture Practice – Can They Coexist?
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- JavaServer Faces (JSF) vs Struts
- The i-Technology Right Stuff
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- What's New in Eclipse?
- i-Technology Predictions for 2007: Where's It All Headed?




















