Introspector/Snippets

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Here are all statements that are under one line

Interfaces[edit | edit source]

Introspector interfaces are Import and export routines that allow RDF statements to be extracted from InternalDataStructures? of programs.

We will build interfaces to the following projects for data extraction

[CLanG C] [CPlusPlus C++], ObjectiveC and JavaLang support from the GccProject http://gcc.gnu.org/

[CsharpLang C#], [MicrosoftIntermediateLang MSIL] and other language support via the DotGnuProject http://www.gnu.org/projects/dotgnu/

GnuMake

PerlInternals

ParrotMetaData

M4Language

AutoMake

AutoConf

BashDb


PerlDesignPatterns[edit | edit source]

http://search.cpan.org/src/SWALTERS/Object-PerlDesignPatterns-0.03/PerlDesignPatterns.html#SingletonPattern

Glade[edit | edit source]

Glade is just one of the many forms that can be imported into Luxor http://luxor-xul.sourceforge.net/

DataRepository[edit | edit source]

The data repository will be a distributed RDFServer that stored and indexes the RDFFiles.

The Representation of the knowledge extracted by the introspector is simple : It is a list of identifiers, labels, ids. Things that have a semantic assigned to them, or that may be assigned to semantics. These things are nodes, items, blocks. Basically they are the foundation of knowledge. http://www.burningchrome.com/archives/unrev-ii/msg01818.html

Declaration management[edit | edit source]

the user should be able to declare new identifiers, replace them, and import and export them from the system

We need ways for users to declare new data structures. The data declarations of the introspector provide a common naming system for all related tools

DataExtraction[edit | edit source]

we need new tools to extract RDF metdata out of various other systems. We support many different file formats for the introspector. more to come here, TODO : add a table of file formats We need to be able to dump out tabular text files of various names and types in the system. Depends on the QuerySystem? Doxygen like HTML output is important. We will support various XML format inputs and outputs. The main focus is moving towards RDF, because of the power of the rdf notation. But Using RDF to annotate XML trees make sense for representing the object structure.

NTriples[edit | edit source]

NTriples are even simpler than n3. http://www.w3.org/2001/sw/RDFCore/ntriples/

N3[edit | edit source]

n3 is a simple rdf alternative notation http://www.w3.org/DesignIssues/Notation3.html See also http://www.w3.org/2000/10/swap/Primer.html

Used Projects[edit | edit source]

I would like to use the BootLib? http://www.boost.org/

BASHDB[edit | edit source]

The introspector needs to be accessible from the bash command line.

EMACS[edit | edit source]

The emacs interface promises many integration tools

RDF[edit | edit source]

Rdf is a data format that is best described here http://www.w3.org/RDF/ What is Rdf? http://www.xml.com/pub/a/2001/01/24/rdf.html Many people ask, why do you use Rdf instead of Xml.

* Rdf is appropiate for the introspector because of its simple syntax. 
* The nodes of the compiler are naturally graphs.
* Rdf allows for information about resources to be added in when it is needed.
* MetaData is naturally stored in RDF.
* Rdf allows for the Ontology and Structure of the data to be added in after the fact.


Redland[edit | edit source]

I use Redland http://www.redland.opensource.ac.uk/ Redland is a RDF application framework with many SwigLanguageBindings?. http://www.redland.opensource.ac.uk/ We use redland to interface with C modules.

I use Perl http://www.useperl.com/ I use EulerSharp? http://eulersharp.sourceforge.net/2003/03swap/

Ontology[edit | edit source]

I have posted the first version of the introspector ontology here http://introspector.sourceforge.net/2003/08/16/introspector.n3 please review

Used On Projects[edit | edit source]

On this node, you can find examples of introspected projects :

Parrot[edit | edit source]

http://www.nntp.perl.org/group/perl.perl6.internals/14717?show_headers=1

M4[edit | edit source]

http://mail.gnu.org/archive/html/m4-discuss/2003-01/msg00001.html

Vizualization[edit | edit source]

The visualization tools will be Built upon the following ToolChain :

  * Data Extraction of statements from the subject
  * Data filtering of only relevant information from the program
  * Breaking down the data set into pages and subgraphs
  * Conversion of the statements to nodes and arcs
  * emitting of the graph to the graph layout language 
  
  * invoking of the layout engine
  * importing the results of the layout
  * creation of a planar graph
  * drawing of that graph
  * allowing the editing of the graph by the user
  * exporting of the graph to other systems.
  * saving of the graph data as a resource in the introspector


OUTPUT[edit | edit source]

Code Generators[edit | edit source]

It should be easy for a user to create new code generators

Graph layout[edit | edit source]

Graph Layout Tools vcg graphvis tulip xvpodb and more

Dia Interface[edit | edit source]

Petal2Dia : see this http://mail.gnome.org/archives/dia-list/2002-November/msg00111.html AutoDia is a great module from Arron http://droogs.org/autodia/