[Introspector-developers] Updated webpage and description of the project
Status: Beta
Brought to you by:
mdupont
From: James M. D. <mdu...@ya...> - 2004-11-28 23:51:28
|
I have updated the main webpage, please review the text and comment on it. mike ABSTRACT The Introspector enables the programming tools that deal with source code such as the compiler to communicate in a standard and neutral manner reducing the accidental cost of programming. Like a telephone switchboard connects many parties who might wish to talk to each other, the Introspector allows multiple consumers and producers of data about software to be quickly and painlessly transfered. This data about software, or meta-data is read and written in and out of existing software tools via a standardized plug-in interface. Each producer has its own flavour of data and format of data that it stores about your software, and the introspector allows for each software to speak it's native language. The Introspector plug ins act analogous to network cards in an ethernet allowing for broadcasting of the meta-data to the network of consumers. Get Involved Please vising the project page for Downloads Please join the Mailing List for discussion Please come to the irc server irc://irc.freenode.net/#introspector for a chat Implementation The usage of RDF or Resources Description Format as the underlying representation is of essential importance. RDF is the foundation of the next generation of the internet, the Semantic Web where hypertext links is replaced by meaningful references to resources of type and quality. The introspector uses the excellent Redland RDF Application Framework for parsing/serializing, storing/retrieving and querying/traversing the RDF data. The Berkley DB storage mechanism provides an efficent indexing system, and the SWIG Simplified Wrapper Interface Generator provides native langauge interfaces for all major programming systems. The GCC interface uses Redland to create repositories of data that can be processed by any tool needed. Experiments have been made with compiling this graph data into arrays, so called "ICE Cubes" that can be traversed even quicker than the redland database. This new technology when available will be able to be used from the same introspector API that gives access to Redland. Future Goals The internal data structures of the compiler are translated into OWL Web Ontology Language structures that describe the structure of compilers meta-data about your programs. Futher the processing and parsing of this meta-data will is driven by meta-programs that are written a special form RDF that gives instructions to the introspector engine how to effienctly traverse and extract relevant data similar to XSLT and GraphPath. This frees the introspector from containing any knowledge about copyrighted material. Currently this is being protyped in perl instead of creating a new language. The introspector seeks to populate the semantic web with data about software and most importantly about free software because the sources are publically available. This first layer of meta-data describing the resource of free software will be the key for making intelligent programs (agents) that are able to reason about the software itself. Examples of such agents are tools that can find relevant emails for lines of sources code because having a detailed and documented semantic model of the domain of free software is the key for the processing of the natural language texts about it. This meta-data is to include all data collected about your software by the compiler, the make & build system, the savannah/sourceforge project management and debian packaging system, the CVS changes and the mailman mailing list software. The Introspector's scope was originally just the GCC "C" compiler, but is now expanded to include the extraction of meta-data from different compilers and interpreters, such as perl,bison,m4,bash,c#,java.c++,fortran,objective-c,lisp and scheme. Various patches to the target systems will be officialy submitted and unofficially maintained to allow for the introspector to extract data in a standard form. License The software is free software in the spirit of the GNU manifesto and is revolutionary in the freedoms that it intends on granting to its users. It is designed to be independant of the sources and consumers of the metadata that it provides and to avoid creating dependancies on any one provider. The focus of the introspector is enabling the user of the compiler and tool builders to be able to access the data they need. Licensing is GPL for the core with LGPL for the user facing modules. The licensing of the ontologies and tree traversing tools that may or may not be derived from the source code of the producers of the metadata is an open question. ===== James Michael DuPont http://introspector.sourceforge.net/ |