Graham Klyne
Personal and Career Information
Revised: July 2005 (extended version)
This version expands on Semantic Web and RDF related activities over the past 2-3 years.
Outline of technical experience
- Developing and deploying Semantic Web applications for life science research.
- W3C Semantic Web standardization activities, notably RDFcore, CC/PP and RDF interest group.
- IETF standardization activities, notably content negotiation, Internet fax, and messaging related.
- Network and Web application security.
- TCP/IP, e-mail, web and other Internet application protocols.
- Programming in Python, Java, Haskell, C/C++, and more.
- Working with various computer systems, including PCs, Linux, VAX/VMS and dedicated hardware.
General
I am a software designer, programmer and researcher, currently developing Semantic Web research applications. I have been an active participant in Internet technical standards development through the World Wide Web Consortium (W3C) and Internet Engineering Task Force (IETF). My technical background includes mathematics, statistics, programming language and operating systems principles, systems programming, real-time software, computer hardware and systems integration. I am a full member of the Association for Computing Machinery (ACM). I am a British citizen, aged 50, married with two children. My non-professional interests include the construction and flying of model aircraft, travelling the English inland waterways by narrowboat, and country rambling.
Education
I read Mathematical Studies (a combination of mathematics, statistics and computer science) at the University of Bath and graduated in 1976 with upper 2nd class honours.
Publications
At the time of writing (July 2005), I am editor or co-editor of the following published IETF RFCs:
- RFC4021, Registration of Mail and MIME Header Fields, G. Klyne, J. Palme, March 2005.
- RFC3864, Registration Procedures for Message Header Fields, G. Klyne, M. Nottingham, J. Mogul, September 2004.
- RFC3863, Presence Information Data Format (PIDF), H. Sugano, S. Fujimoto, G. Klyne, A. Bateman, W. Carr, J. Peterson, August 2004.
- RFC3862, Common Presence and Instant Messaging (CPIM): Message Format, G. Klyne, D. Atkins, August 2004.
- RFC3553, An IETF URN Sub-namespace for Registered Protocol Parameters, M. Mealling, L. Masinter, T. Hardie, G. Klyne, June 2003.
- RFC3458, Message Context for Internet Mail, E. Burger, E. Candell, C. Eliot, G. Klyne, January 2003.
- RFC3342, The Application Exchange (APEX) Option Party Pack, Part Deux!, E. Dixon, H. Franklin, J. Kint, G. Klyne, D. New, S. Pead, M. Rose, M. Schwartz, July 2002.
- RFC3341, The Application Exchange (APEX) Access Service, M. Rose, G. Klyne, D. Crocker, July 2002.
- RFC3340, The Application Exchange Core, M. Rose, G. Klyne, D. Crocker, July 2002.
- RFC3339, Date and Time on the Internet: Timestamps, G. Klyne, C. Newman, July 2002.
- RFC3297, Content Negotiation for Messaging Services based on Email, G. Klyne, R. Iwazaki, D. Crocker, July 2002.
- RFC2938: Identifying Composite Media Features, G. Klyne, L. Masinter, September 2000.
- RFC2913: MIME Content Types in Media Feature Expressions, G. Klyne, September 2000.
- RFC2912: Indicating Media Features for MIME Content, G. Klyne, September 2000.
- RFC2880: Internet Fax T.30 Feature Mapping, L. McIntyre, G. Klyne, August 2000.
- RFC2879: Content Feature Schema for Internet Fax (V2), G. Klyne, L. McIntyre, August 2000.
- RFC2738: Corrections to A Syntax for Describing Media Feature Sets, G. Klyne, December 1999.
- RFC2703: Protocol-independent Content Negotiation Framework, G. Klyne, September 1999.
- RFC2533: A Syntax for Describing Media Feature Sets, G. Klyne, March 1999.
- RFC2531: Content Feature Schema for Internet Fax, G. Klyne, L. McIntyre, March 1999.
Also at the time of writing, I am a co-editor of the following W3C published recommendations:
- Composite Capabilities/Preference Profiles (CC/PP): Structure and Vocabularies: Graham Klyne, Franklin Reynolds, Chris Woodrow, Hidetaka Ohto, Johan Hjelm, Mark H. Butler, Luu Tran; W3C Recommendation, 15 January 2004,
http://www.w3.org/TR/CCPP-struct-vocab/.
- Resource Description Framework (RDF): Concepts and Abstract Syntax: Graham Klyne, Jeremy J. Carroll; W3C Recommendation, 10 February 2004,
http://www.w3.org/TR/rdf-concepts/.
Career history
December 2004- : University of Oxford, Research Associate/Computing Officer
The Zoology department at Oxford are developing BioImage, a Semantic Web enabled database (www.bioimage.org). I joined to apply my Semantic Web background to develop and deploy a bioinformatics research application, the Drosophila Testis Gene Expression Database. My work involved deploying Open Microscopy Environment software for image and metadata acquisition, gathering and organizing information from online databases, genetic analysis datasets and researcher observations, and preparing data for Internet publication.
November 2002- : Independent Consultant and Programmer
I have been undertaking contract work, continuing my W3C and IETF standards related work, and implementing software for my own Semantic Web ideas. I was also a member of the European iTrust working group, including as a member of the program committee for the First and Second International Conferences on Trust Management. I have worked for the W3C SWAD-E project, prepared an evaluation report for the Harmony research project, and served as an industrial advisory board member for the IST SECURE project. A key interest during this period has been to explore functional programming (in Haskell) as a basis for Semantic Web inference, and to develop libraries to enable Haskell as a "scripting language" for the Semantic Web (see: http://www.ninebynine.org/RDFNotes/Swish/Intro.html), including implemention of XML and RDF parsers. I have also been exploring extreme programming ideas, in particular test-led development, in programming projects using Python and Haskell.
Alongside my active participation in the W3C RDFcore working group until it's completion in early 2004, I have tackled a number of small Semantic Web software development projects, all in pursuit of using Sematic Web knowledge representations and inference techniques to provide an alternative way to implementing substantial parts of distributed information processing systems:
- Implemented an RDF-based report generator in Python, using an RDF encoding of the report description. This has since been used in a number of personal projects to export readable or otherwise usable data from an RDF knowledge base. Subsequently, I created a translator for a more user-friendly report description language.
- Used RDF together with my report generator software to process message header descriptions as part of my IETF work to create a registry for email and HTTP message header field names.
- Under contract to Rutherford Appleton Laboratory, as part of their trust-related work in the SWAD-E project, explored the use of existing RDF tools to configure network elements to enforce a network access authorization policy. Primarily this used CWM and my own report generator software.
- My work on authorization policy enforcement showed up some serious restrictions in CWM as a general purpose inference tool. This convinced me that it would be most desirable to have an inference tool that provides a principled means for extension, so that possible inferences are not limited by the basic tool. Further, I felt that the extension mechanism needed (a) to have the full power of a general purpose programming language, and (b) needed to permit the expression of new inferences in a logically tractable fashion. This led me to consider functional languages, and Haskell in particular, leading to implementation of a scriptable RDF inference tool (Swish) in Haskell. The core engine is functional and has been released as open source, but it is very much a work-in-progress as I feel that further work on Swish should be driven by real application requirements.
- Using my Swish platform as a base, I have experimented with RDF datatype aware inferencing, which I view as a one key route to providing extensible inferencing (through the introduction of new datatypes); e.g., in my work on network access authorization, I felt a need for an IP address datatype. I implemented several forms of inference mechanism (using both rule-based and OWL-like class-based approaches), and tested them on inference based on rules of integer arithmetic. The results of this work left me with some serious concerns about the role of class-based inference in general information processing tasks, which I have not yet resolved to my satisfaction.
- Also using my Swish platform as a base, implemented an RDF graph-differencing tool. This was used to diagnose some graph-creating software that I was writing; without which it was extremely difficult to isolate the differences between graphs containing hundreds of RDF statements.
- I have spent some time exploring issues of provenance and modality in RDF, which are (quite properly) not really addressed by the core RDF specification, the main results of which are exploratory documents on my Web site. Both of my RDF graph implementations support named graphs, though as yet I have not experimented extensively with their use.
- I am currently in the process of using "literate Haskell" to create an executable tutorial about description logics (DLs). The plan is to create an explanation of DL reasoning, covering various members of the family of DL languages, which is formalized and exemplified by executable Haskell code. The goal of this work is to build a deeper understanding of the limitations of DL reasoning (such as OWL) compared with general rule-based reasoning. There is considerable theoretical work in this area, but little in the way of guidance for practical use of these inference techniques.
- Throughout this period, I have maintained an active role in the Semantic Web community, participating in mailing list discussions, attending some meetings and reviewing new proposals and specifications.
Also during this period, I have held discussions with potential users of Semantic Web technology, and tried to understand what aspects may be useful for addressing near-term real-world problems. I have come to the view that many aspects of the broad Semantic Web vision are not yet ready for real-world use, but there remain some prosaic uses where there are real near-term benefits to be gained, based on the compositional and evolvable properties of RDF. Specifically, I think that integration of information from diverse sources is such a use, which requires that Semantic Web tools can be adapted to work with existing non-RDF data sources.
January 2000-October 2002: MIMEsweeper Group, Head of Strategic Research
(Initially with Content Technolgies, purchased by Baltimore Technologies in October 2000, and again by Clearswift Corporation in March 2002.) With a change of ownership of 5GM, I left to rejoin the team with whom I worked on the early ideas for MIMEsweeper and WEBsweeper. My role was to investigate and develop new technologies to form the basis of new content management facilities for the MIMEsweeper range of products. After the business was purchased by Baltimore, I worked with Baltimore's research team in Dublin to propose technical strategies for developing an integrated line of network security products, and championed research into a more robust approach to application security based, in part, on Semantic Web technologies. I left Clearswift when they disbanded the research group.
- Internet and Web standards design and drafting
- technology research, particularly related to Semantic Web and security
- programming, mainly in Java and Python.
November 1997-November 1999: 5GM, Network Software Architect
I left Integralis to focus on the opportunity offered by the G5 Messaging project, which was an effort to create a secure, reliable messaging protocol to provide service levels of fax with the convenience of email, and legal admissibility of electronically transferred messages. By this stage, I had become the lead technical designer of the G5 Messaging protocol, and was working on a software design to implement the protocol. During this period, I was instrumental in the formation of a new working group within the IETF to address issues of protocol-independent content negotiation. I was technical lead for up to 10 developers, with early protocol archiver implementations undergoing system testing around June 1998.
- Internet protocol standards: design and drafting
- software design and programming, mainly in Java
1993-1997: Integralis Ltd, Software Architect
Here, I performed a number of roles combining my software development experience with the company's expertise in computer networking. I was pivotal in the formation of a software development group within the company, which was eventually spun-off as a separate company (Content Technologies). My roles included:
- providing customer technical support for advanced networking products
- software developments for clients of Integralis, using C/C++/Java on various systems
- designing and developing an Internet Address Translation Gateway (C/C++ on Linux)
- writing software architecture documents and white papers for customer projects
- early work on the G5 Messaging technicalspecification
- IETF Internet Fax Working Group participation
1986-1993: Independent Programmer/Consultant
Self-employed, participating in several projects:
- C programming for an international foreign exchange dealing system; also device drivers in 8086 assembler. Technical support for product demonstrations at several overseas exhibitions.
- programming VAX and PDP-11 systems in Pascal and assembler for a networked version of the Oxford Metrics motion analysis system (see below). This used dedicated hardware to capture data from TV cameras, and transferred data to a VAX/VMS host for processing.
- development in C++ of an engineering design office data management system running under MS-Windows.
- development in C++ of a mechanism design program running under MS-Windows. I was involved in all aspects of this project from overall design to writing the operating manual.
1980-1986, Oxford Medical Systems/Oxford Metrics: Software Project Manager
I developed software for VICON, a new product using TV cameras and a PDP-11 computer to measure and analyze human movement; this was the first commercially available 3-D motion capture system. I was responsible for the mathematics, software design and most of the programming of this product. I also performed several system installations and customer training (hardware and software) at sites throughout the world. The product was very successful, and its descendents are still made by Vicon Motion Systems Ltd.
1979-1980: Kins Applied Technology: Programmer/Consultant
Developing a distributed system for industrial quality control applications., including design for a central data collection station and the programming of real-time database, operator interface and report generation packages. I am proud to say that several years later, a large part of the software I implemented was still being incorporated into new projects.
1978-1979: Plessey Radar, Civil Systems Unit: Contract Programmer
Involved with a large telemetry system for monitoring water supply distribution and providing flood warnings. I programmed a package to display diagrams of the plant with real-time updates reflecting changes in plant status.
1977-1978: British Ship Research Association: Contract Programmer
B.S.R.A. were developing an experimental system for computer aided design of ship structures. I performed a number of general and system programming tasks for this project.
1977: Atkins Research and Development: Systems Engineer
Atkins Research and Development is part of a large civil engineering consultancy group. I was involved in several small consultancy projects, and wrote software for a general purpose brewery control system.
1974-1976: British Steel Corporation: Placement Student
The third year of my course at Bath University was spent in industrial training. I was placed with British Steel Corporation's Corporate Engineering Laboratory in Battersea (formerly BISRA), and assigned to a project investigating techniques to develop real-time software for "embedded" systems using large host computers. I worked on a number of stimulating projects involving advanced systems programming techniques, compiler design and real-time process control.
For feedback please see: http://www.ninebynine.net/Contacts.html
$Id: $