introspector-developers Mailing List for RDF Software Introspector
Status: Beta
Brought to you by:
mdupont
You can subscribe to this list here.
2002 |
Jan
|
Feb
(1) |
Mar
|
Apr
(8) |
May
(6) |
Jun
(9) |
Jul
(6) |
Aug
(4) |
Sep
(2) |
Oct
(18) |
Nov
(29) |
Dec
(18) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(57) |
Feb
(41) |
Mar
(4) |
Apr
|
May
(1) |
Jun
(6) |
Jul
(3) |
Aug
(34) |
Sep
(28) |
Oct
(3) |
Nov
(1) |
Dec
(1) |
2004 |
Jan
|
Feb
|
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(4) |
Dec
(3) |
2005 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(3) |
2012 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Mike D. <jam...@go...> - 2016-03-27 01:27:35
|
Hi all, I know it has been a long time, but I have new tools to attack the old problems of the introspector. See my writeup here on some work in progress. https://h4ck3rm1k3.wordpress.com/2016/03/27/sparql-queries-against-the-gcc-tree-graphs/ -- James Michael DuPont Kansas Linux Fest http://kansaslinuxfest.us Free/Libre Open Source and Open Knowledge Association of Kansas http://openkansas.us Member of Free Libre Open Source Software Kosova http://www.flossk.org Saving Wikipedia(tm) articles from deletion http://SpeedyDeletion.wikia.com |
From: Mike D. <jam...@go...> - 2015-08-09 05:01:05
|
I have reworked the creating of RDF to use new constexpr statements in C++11/14 so that you can mark up your classes and use that information to generate ontologies and instances. https://github.com/h4ck3rm1k3/gcc-plugin-cpp-template/tree/master/owl more to come, but good things in the works! mike -- James Michael DuPont Kansas Linux Fest http://kansaslinuxfest.us Free/Libre Open Source and Open Knowledge Association of Kansas http://openkansas.us Member of Free Libre Open Source Software Kosova http://www.flossk.org Saving Wikipedia(tm) articles from deletion http://SpeedyDeletion.wikia.com |
From: Mike D. <jam...@go...> - 2012-03-09 12:54:22
|
Hello world. I have now a running gcc plugin that embeds perl into the gcc, also it has a gtk frontend. http://rdfintrospector2.blogspot.com/2012/03/embedding-perl-in-gcc-plugin.html it is just a skeleton right now, and only does the basics. mike -- James Michael DuPont Member of Free Libre Open Source Software Kosova http://flossk.org |
From: <jam...@go...> - 2009-12-01 15:11:31
|
Hi, I am open to FAT client, and QT models, yes. But let me say that I think that the webframework is very easy to use. Via the TT template toolkit you can do custom code generation. It is very easy to process the ASTS in this framework. C++ would be much more verbose, but of course it could look much better. When i have the new tree control (jstree) running better, i will be able to show you some stuff. you can see the demos of jstree here : http://www.jstree.com/demo Mike On Tue, Dec 1, 2009 at 3:50 PM, P. Christeas <p_c...@ho...> wrote: > On Tuesday 01 December 2009, jam...@go... wrote: > > Hi all, > > > > After many years, I just want to let you know that I am still working on > > the project. > > > Welcome back! > > Just a quick thought: have you considered the Qt framework with > QAbstractItemModel for MVC? > > > -- > Say NO to spam and viruses. Stop using Microsoft Windows! > > > ------------------------------------------------------------------------------ > Join us December 9, 2009 for the Red Hat Virtual Experience, > a free event focused on virtualization and cloud computing. > Attend in-depth sessions from your desk. Your couch. Anywhere. > http://p.sf.net/sfu/redhat-sfdev2dev > _______________________________________________ > Introspector-developers mailing list > Int...@li... > https://lists.sourceforge.net/lists/listinfo/introspector-developers > |
From: P. C. <p_c...@ho...> - 2009-12-01 14:50:59
|
On Tuesday 01 December 2009, jam...@go... wrote: > Hi all, > > After many years, I just want to let you know that I am still working on > the project. > Welcome back! Just a quick thought: have you considered the Qt framework with QAbstractItemModel for MVC? -- Say NO to spam and viruses. Stop using Microsoft Windows! |
From: <jam...@go...> - 2009-12-01 11:32:39
|
Hi all, After many years, I just want to let you know that I am still working on the project. you can read about my latest work here : http://rdfintrospector2.blogspot.com/2009/12/catalyst-jquery-jstree-rdf.html I am using a Rails like MVC framework called catalyst and jquery atm for building the web based GUI browser for the introspector data. mike |
From: James M. D. <mdu...@ya...> - 2005-01-24 22:57:41
|
http://rdfintrospector.blogspot.com/2005/01/introspection-warts-and-all.html Introspector : the process of Introspection, to Introspect I am a regular reader of news.google.com, and decided to as a joke google the news for the term "introspector". Although it was, not found, looking for "introspect" and "introspection" got some interesting insights into how this term was being used in everyday journalism. I found an interesting usage of the term to introspect that I kinda liked, not the fluffy idea of just "looking at your mind", although this can apply to that as well. It turns out that introspection is seen as some as a brutal honesty, a valuation of your own self with a bent on the negative. It means admitting mistakes, looking beyond the facade. It boils down to a skeptical approach. This allows you to be critical of yourself and promotes change when it does not cause paralysis and depression. The point is that just looking at something is not enough, the reflection is just feeding you with data. You also need to process this information and feed the decision making process and eventually take concrete action upon it. The Sunday Times of Malta writes "We do lack, though, an ability to meditate about ourselves, to introspect. If there are mirrors on the walls of our conscience and consciousness, we do not look into them much"That is an interesting observation, we lack this ability in general, and if we have it, we don't use it much. This implies that it is a tool or skill that has to be learned and is not something you are born with. I think that it is in some form a type of learned self criticism that some people carry on to the point of paralysis. It can be painful, but it not impossible. Any time you listen to critic from outside and then process this criticism, then you are going through a process of introspection. In fact, introspection is a form of taking the pain out of criticism, because you then internalize the external critic, and identify yourself with it, thus being able to see yourself from outside. Now, Here is another one I liked because they connected introspection with the negative aspects, the warts. "Jonathan Moyo, put it this way: ÂZANU PF needs to introspect a little and see itself warts and all. ...""Now, here is the concept of brutal truth. Seeing your own failures and accepting them. Then I decided to search for this expression, "see itself warts and all". Now, Here is a definition of the role of journalism that uses that term, warts and all, and has a reference to a mirror. "The role of journalism is to hold up a mirror to society so it can see itself, warts and all. The role of journalism is to shine a light on all sides of an issue as fairly and objectively as possible so people can make up their own minds."Here is another one, about a guy who creates learning organizations "I care about learning in organizations. I want to help organizations create processes, structures, and cultures that support learning and change."This is also an important factor in the introspector project, the aspect of learning.He goes on "My work puts a mirror in front of the organization so that it can see itself, warts and all."In the same page, Another reference to the mirror aspect, and warts. "....we took people through a process of reflection and feedback that empowered them to learn and change" I like that as well, the process of reflection and feedback makes an inanimate object come to life. Now, we get to the light. What is the light that shines upon the introspector program itself? It is the light of the mind of the user of the software. So, the introspector is a tool to allow you to shine your mental light and see software, warts and all. Here is an example of a somewhat mystical usage of the term introspection talking about a diagram of the four quadrants of spirituality : "things like feelings, ideas, wishes, interior states, even things like mathematics and logic, none of which can be seen running around out there in the sensory world, but can only be accessed by looking within by introspection, awareness, contemplation, meditation, phenomenology, and so on. In figure 1, you can see a few representative items that you can be aware of if you introspect your own mind or awareness or experience things like sensations, feelings, images, symbols, concepts, and so on, none of which can be see in the exterior world."That is kind interesting, talking about the expression of cultural inner values being expressed as magic. That has long been my belief that all these belief systems are externalizations of the inner beliefs of people. Now, we turn to hits on the act of introspection. It turns out that some people think that George Bush is capable of learning reflection. "Last week was a week of introspection in Washington." "Most notably, George W. Bush danced right up to  but did not cross  the line of admitting he might have actually made a mistake during his first term. " ÂIn a first-term press conference, [the president] said he could not remember any mistakes. Thursday, Bush was more reflective. It can be that introspection is going to far, as pointed out in the indiaexpress.com In fact, self-introspection almost becomes self-depreciation when the party says: ÂÂOne can take very good decisions, pass very correct political resolutions and give fine slogans. But unless party organizations exist and have live contacts with the masses, they will remain only on paper. Mike North writes in the chattanoogan, an article titled "In My Humble Opinion: Reflection, Introspection, Resolution And Execution" "I use the last week of the year for reflection, introspection, and resolution. I encourage you to do the same. But how, practically speaking, does one go about such a process? You can begin by starting the new year with a journal. Reflect upon the past year. Write down the joys, pain, successes and failures. Make a list of the people you love, and of those that you may not care for quite as much. Honestly assess where you are in your relationships and career or life goals. Keep the journal all year long. It will be invaluable come time to repeat the process next year. The next step is introspection. Look at that list of failures. Were they your fault, or beyond your control? What could you have done differently? Do you deserve the credit for your successes? What about those people with whom you don't get along? Could you do more to get along with them? Are you where you want to be in life? If so, how do you prepare for the next step? If not, why not? Be frank with yourself. Make note of the things that you know need improvement. The first part of any battle plan is a thorough analysis of the enemy, his strengths, and his weaknesses. This is no less important when the enemy is yourself. Being totally honest with ourselves may be the hardest part of this process. We tend to rationalize. This tendency is the biggest obstacle to personal growth and improvement. The lack of self-discipline is a problem too, but even that is easier to correct if we'll admit that we're lazy sluggards totally lacking willpower." Here is another example of reflection feeding decision : âThe book has come at the right time, when I am at an age (48 years) wherein I can reflect back about my own life and my work and also look forward to plan my future. I have a lot more time to think, take stock of my responsibilities and position myself in the art scenario.â So, Reflection collects data. Introspection assigns semantics to them, resolutions are decisions made upon them, and the execution carries them out. This reminds me of the scientific method, that of observation (reflection), hypothesis (introspection and resolution), Experimentation(Execution). Summary Now we get to the point of looking into the software. Software is some form of external expression of the inner thoughts of people. The introspector allows you reflect upon them. But in the end, the process of introspection, the assigning of values to this reflected data is work intensive. It requires a value system from the user. So the introspector learns to help the user evaluate the data collected from reflection. Then the decision making process kicks in, and the execution. Looking at the entire program, not looking at just the surface allows you to really understand it. Looking at the data values used, looking at the documentation and specification about the various parts. Looking at the data structures, how they are used. All of this is planned as functionality of the introspector. Only when you have a single critical viewpoint from which you can observe the entire system will you also have a ground to stand on and be able to change it. I hope that you find these examples as interesting and as instructive as I did. Mike ===== James Michael DuPont http://introspector.sourceforge.net/ __________________________________ Do you Yahoo!? Yahoo! Mail - now with 250MB free storage. Learn more. http://info.mail.yahoo.com/mail_250 |
From: James M. D. <mdu...@ya...> - 2005-01-07 12:04:56
|
This is the text version of : http://rdfintrospector.blogspot.com/2005/01/n3v-n-triple-vectoran-efficient-memory.html Happy new year! I have finally gotten around to start unifying the ideas of ice cubes and rdf. The ice cube idea was to use a binary matrix representation of the graph as a N*N cube of data. RDF/ntriples is based on making statements of triples that describe the graph. I have today, built a new binary representation of the ntriples format. It is based on the idea of representing each uri as an index into a vector. This index should be as compact as possible, so we can exploit the cache of the computer. This gets into the area of linear algebra, and the tools lapack will be interesting, and ScaLAPACK provides a distributed processing mechanism for it. I will have to write more about that in the future. Basically it boils down to creating an vector of uri, and assigning those uris an index. Optimally the index would be a perfect hashing function. For the introspectors gcc graphs, this index is already there, it is the node id that was assigned during the traversal of the compiler graph, so I just extract out that number encoded in the uri of the node. For the predicates, an id is assigned as a counter, first come first serve. The program that does this is done by the n3v_converter.pl program. It has the following parameters : input_uri the uri (file:foo.ntriples) to parse map_file the map file of predicates to indexs output_file the output file to produce debug_file the debug file to emit PACKFORMAT the format of the binary file PACKFORMAT are three chars, one for the subject, predicate and object. It is passed directly to perls pack routine, one page that documents it is here Here are some useful values, but it occurs to me that a fixed width char format might be interesting as well! C An unsigned char value. S An unsigned short value. (This 'short' is _exactly_ 16 bits, which may differ from what a local C compiler calls 'short'.) I An unsigned integer value. (This 'integer' is _at_least_ 32 bits wide. Its exact size depends on what a local C compiler calls 'int', and may even be larger than the 'long' described in the next item.) L An unsigned long value. (This 'long' is _exactly_ 32 bits, which may differ from what a local C compiler calls 'long'.)The resulting packed input file can be read directly into memory. Here is an example program that reads the Short/Char/Short triple stucture. Here is the input file that is it hardwired (in terms of array size) to read. here is my post to rdfig/swig on the freenode irc chat more to follow. mike ===== James Michael DuPont http://introspector.sourceforge.net/ __________________________________ Do you Yahoo!? Yahoo! Mail - You care about security. So do we. http://promotions.yahoo.com/new_mail |
From: James M. D. <mdu...@ya...> - 2004-12-24 18:00:50
|
This article is posted to the introspector blog : http://rdfintrospector.blogspot.com/2004/12/idea-of-introspectorswsh.html First of all, Merry Christmas! In this article, I want to propose an semantic web shell, the SWSH that will be the first key user interface component to the introspector. The Name I was looking at the CWM today, and then Swish, and was wondering about all these Semantic Web Acronyms.: Swish, Swig, Swap. The first name that came to my mind was Swash (but later I found out that it is taken), and I thought what could swash that be? What will SWSH be? Well like bash, but for the semantic web. This is something that has been going through my mind as of late. It is related to applying the introspector to bash as well. I have long since planned to make an introspector interface to bash, and I have the need to pass more information into the gcc to guide the rdf output, so my plan was to describe all the parameters to the gcc in rdf so that I can relate them to the resulting output. A semantic web shell will allow you to interface to any command from the shell, but the parameters, returns, environment variables and scripting are accessible via rdf resources. Each shell script, each command, each variable, each invocation and each file are defined as rdf resources and they will be able to annotated. The environment of your shell with be an rdf storage. The shell will allow you to wrap bash commands as resources as well, and describe them using rdf. Networks of Pipes The piping system is important, pipes will be able to be defined as rdf graphs, and the most interesting thing will be the logic that can be done on the data elements between the pipes. You might decide to insert an agent to make some decision on the data in the pipe as it passes though, and split it out into multiple pipes depending on the value. This will all be possible. Adding in semantics to existing output The next innovation will be conversion of data from cut and split into rdf. You will be able to say that "cut -d: -f 1,4,6" will return three columns and define a resource to describe them further. This will allow you to mark up text files. Implementation : Of course you are asking yourself how this maybe implemented. One key component here will be replacing the getopt lib with redland. All of the options to all these tools will be able to passed via rdf. Another key component will be replacing printf with an emission of an rdf statement. This will include all the information about the context of the program where it was called, and all the parameters extracted via the gcc introspector. In order to be able to implement all of this in one lifetime, we will need the gcc::introspector to provide us with all the information need about the data structures of all the programs and we will need to translate the data structures into rdf. This can be done semi automatically however, like is seen with the serialization routines that are possible in java and C# when reflection is enabled. As soon as the ability to traverse the ASTS of the gcc is stable and efficient, it will be feasible to create meta programs to create a base level rdf interface to almost any program. Then by marking up of the data structure with more advanced semantics via rdf, the binding can be customized and regenerated in iterative fashion. Future Music When the introspector is in full gear with modules for each command that is executed, you will be able to extract also the meta data out of the scripts. For example if you have a awk script, then the awk::introspector will give you an rdf dump of that script which can be processed further. When you are compiling, you will be able to invoke configure, make and compile all driven from the metadata about your computer. The project data will be extracted out of make, the configuration data out of autoconf, the source code data out of the gcc. By introspecting over the Linux kernel via the gcc and the gcc itself, you will have all the metadata about your machine available. The Linux kernel will also be enabled with a introspector, so that all the kernel symbols will be accessible via the rdf query interface. Shared libs and dependencies will also be rdf resources. Include files, and libs as well. At the lowest level, even the file system will be treated as an rdf resource, directories, files will be addressable and annotatable via rdf. The commands, ls and file will be able to return rdf objects as well. By using rdf, we can unify all the tools of the Linux system from the kernel down to the shell and present a single point of contact for all information in the system. Also, for source code, and files, we will be able trace the history of each file, The edits to it, the copying and linking of it etc. Via the shsh, the history file will give you all the information you ever could want. When cvs, svn have be added to this framework, then you will be able to trace all changes and associate them to who made them. When the editors and web browsers have been enabled, then you will able to get rdf descriptions of each edit, and each history file. Then you will be able to much easier find out where files and changes came from. The editors can also use this information for highlighting and intelligent editing. mike ===== James Michael DuPont http://introspector.sourceforge.net/ __________________________________ Do you Yahoo!? Take Yahoo! Mail with you! Get it on your mobile phone. http://mobile.yahoo.com/maildemo |
From: James M. D. <mdu...@ya...> - 2004-12-06 13:06:13
|
I have relaunched the blog : http://rdfintrospector.blogspot.com/ Here is a nice post : --- Mike <mdu...@ya...> wrote: Often I am asked, What is the introspector? What does it provide? Why should I support you? What makes your product unique? Let me try and put it down for the record, at least a starting point. When you program in C, you are often confronted with the problem that you want to wrap a structure in another to do this You want to be able to traverse over all the fields of a structure. You ask yourself, why dont I have the ability to do this? Why does not the compiler support this simple feature? Well the answer is, the compiler * supports* this feature, you just dont have access to it! There are a wealth of features in the compiler that you are not given access to. Now, you may ask yourself, why cannot I have access to this information, and my answer is you can! The introspector provides it. Now, you may ask yourself : How will you be able to access this data? When will you get access to it? What will it look like? The data will be first extracted into rdf. Then it will be presented to you via the rdf api redland. The question is, when will this code be invoked? My goal is to be able to present this data to you at compile time and at runtime! It should be possible to write code that uses the metadata of the compiler that is usable at any given time. It should be possible to write expressions that are captured at compile time and made available at run time. Let me give you an example : Lets say you want to defined a new function called funky_print(). This function you want to make very flexible, so that it will be able to process any type that you pass to it. So, you declare it like this funky_print(void *). Then you want to generate code to handle all types of calls to it, so you make an introspector query like this : intercept_calls(<span style="font-family: courier new;">funky_print,funky_print_handler); Lets say you have the simple set of declarations : funky_print (void * args); funky_print_handler (void * args); intercept_calls (void * function,void * process); int main() { intercept_calls (&funky_print,&funky_print_handler); return 1; } Now, none of these functions are defined yet. But we have clearly be able to mark the relationships using the compiler, using native c. Now all we need to do is create a program that will process this data once it is extracted. In the introspector you have the ability to capture all calls to a function. You can filter the rdf and extract all those calls via query. Then you can extract all the types of the parameters, all the sources of data from the caller. Basically you have all the data that the compiler does. In this case you will be able to generate code for all types of the print routine and then replace the funky_print function calls with a specialized function. The advantage of this technique is that you will be able define your own meta data and meta functions inside and outside of the compiler without changing the compiler. The meta functions will be able to written in your language of choice and will allow you do have the freedom program the way you feel like. more to follow. mike ===== James Michael DuPont http://introspector.sourceforge.net/ |
From: Mike <mdu...@ya...> - 2004-12-02 18:59:23
|
<html><head><base href="http://195.140.210.90/blogger"></head><body bgcolor="white" text="black"> I created a new blogger template that allows you to emit rdf <br /><a href="http://http://introspector.sourceforge.net/2003/12/blog2n3.template">Template</a> <br />It is a simple way to turn your blog into rdf <br />Why pay for rss syndication from blogger.com/google? <br />You can just use cwm to process your blog in n3 format emitted by this archive template <br />thanks to irc:de...@fr...#rdfig for iconv support <br />"iconv -t utf8 -f windows-1252 index.n3" to convert my blog into something readable <br /><a href="http://195.140.210.90/blogger">http://195.140.210.90/blogger</a> <br /> <br />This is the first step to migrate to my new server using rdf <br /><br />--<br><font color="gray" size="2">Posted by Mike to <a href="http://195.140.210.90/blogger/2003/12/i-created-new-blogger-template-that.html">GCC Hacker</a> at 12/23/2003 04:01:40 AM</font></body></html> |
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/ |
From: James M. D. <mdu...@ya...> - 2004-11-28 20:10:32
|
--- James Michael DuPont <mdu...@ya...> wrote: > I will be packaging this all up in one system real soon now. So, I have now been able to get the perl scripts to run on the output of rdfproc, a part of redland. All you need to use this now are just the redland, and there are debian packages for them. You can use many tools on this rdf, take a look at http://librdf.org/ for more information You are going to want these packages for debian. librdf-perl - Perl language bindings for the Redland RDF library librdf0 - Redland RDF Application Framework librdf0-dev - Redland RDF library development libraries and headers libraptor1 - Raptor RDF Parser library libraptor1-dev - Raptor RDF parser and serializer development libraries and headers Here are some good example data files : http://introspector.sourceforge.net/2004/11/c-dump.ntriples.gz http://introspector.sourceforge.net/2004/11/c-dump.rdf.gz These are two forms of rdf, ntriple and rdf/xml. You can use them with the introspector like this, example given with the ntriples : 1. gunzip the file gunzip c-dump.rdf.gz 2. make a redland repository rdfproc Global parse ntriples file:/ The Global is the name of the repository file:/ is the base address that can be what ever uri you want That will create a repository in the current directory using berkleydb 6.2M Global-po2s.db -- predicate object index (used to find by field) 9.0M Global-so2p.db -- subject -object index (not used) 9.5M Global-sp2o.db -- subeject predicate index (graph traversal) 25M total So you have about 9mb of indexes for a 500k zipped ntriples file. The unpacked sizes are here : 13M Nov 28 15:34 c-dump.rdf 4.7M Nov 28 15:34 c-dump.ntriples wc(wordcount) on c-dump.ntriples gives lines 96,818, words 387,292, chars 4,846,776 The original source file (expanded with headers) lines 13,270 words 27,221 chars 260,051(254K from ls) c-dump.i So we are talking about 10x increase in size for indexing. For example, i have installed the introspector into my home dir : /home/mdupont/EXPERIMENTS/introspector/introspector-0.7 The cvs version is up to date, I will be releasing the sf file/ so, to use it Go to the directory containing the rdf database files perl -I/home/mdupont/EXPERIMENTS/introspector/introspector-0.7 ~/EXPERIMENTS/introspector/introspector-0.7/recurse5.pl node_types:function_decl file:/ the node_types:function_decl is the node types that i am looking for, other interesting ones can be found in the Introspector/GCCTypes.pm file. I hope that you take some time and play around with the introspector. It is not running perfect, but fast! mike ===== James Michael DuPont http://introspector.sourceforge.net/ |
From: James M. D. <mdu...@ya...> - 2004-11-27 23:06:32
|
Dear All, I have checked in an alpha version of the rewrite of the introspector into the cvs. it is in the introspector-0.7 cvs directory. Also you can find the code in the sourceforge release system. http://prdownloads.sourceforge.net/introspector/introspector-0.7.tgz?download This new system is ultra fast and scalable, using the BDB (berkleydb) 4.0 indexes from redland over the ASTS of the gcc for high speed caching and traversal. The rdf files are extracted from the gcc. You will need the redland and the patched gcc to use this tool at the moment. I will be packaging this all up in one system real soon now. The reason why I am releasing this now, before it is finished is to get interested and attention back on the introspector. It has been many years since I have started on this project, and many things have happend since. There is a large amount of competition out there at the moment, but I still think that this project has a chance to make a difference. I look forward to your feedback. mike ===== James Michael DuPont http://introspector.sourceforge.net/ |
From: James M. D. <mdu...@ya...> - 2004-11-27 13:25:08
|
Dear Introspectors, Attached is the status mail for the vcgdotgnu subprojects for the intropector. I have been very busy and have rewritten the perl rdf interface into redland. Now I have a brand new, high speed and scalable way to process the rdf from the introspector patched gcc. I will be publishing some code real soon now. mike Feel free to chat at irc://irc.freenode.net:#introspector or jabber me at jabber://md...@ja... or jabber://md...@nu... --- James Michael DuPont <mdu...@ya...> wrote: > > Hi all, > > It has been a while, but whatever. > > Here is a quick status update : > > 1. The work on modularization by twlevo is coming along > http://www.xs4all.nl/~twlevo/ > He has a new modular VCG with a new GUI. This will be managed in the > vcgdotgnu repository in the future. He is also now coadmin, welcome! > > 2. The work on pnet is coming along , I am now able to compile the > full > vcgdotgnu source with the pnetc and produce IL. Now I am working on > the > Xwindows bindings. > > 3. The work on introspector is coming along, > I have a brand new rewrite of the introspector gcc rdf interface that > is very fast and flexible. It is able to emit vcg. I am workgin on > using it for processing the vcg sources themself for usage with > dotgnu. > This is not done yet. > > More to come, > > mike > > Feel free to chat at > irc://irc.freenode.net:#introspector or jabber me at > jabber://md...@ja... or jabber://md...@nu... > > _______________________________________________ > Vcgdotgnu-developers mailing list > Vcg...@no... > http://lists.nongnu.org/mailman/listinfo/vcgdotgnu-developers > ===== James Michael DuPont http://introspector.sourceforge.net/ |
From: <sr...@co...> - 2004-03-26 18:03:06
|
Two kinds of information are necessary for human life on this planet: (1) Genetic information. No batteries required. (2) Everything else, i.e., civilization. Batteries required. Please be welcome to participate in the 11th annual Extreme Markup Languages Conference --> August 2-6, 2004 <-- Hotel Europa Montreal, Canada www.extrememarkup.com As always, it's a family gathering for rubber-meets-the-road technical luminaries interested in doing a better job of supporting civilization. Come share your light, and be brightened, too. You'll be glad you did, and not only because Montreal in August is great fun. Peer-reviewed paper submissions are due --> April 16, 2004 <-- Submission guidelines: http://www.mulberrytech.com/Extreme (e-mail questions to ex...@mu...) Peer Reviewer Applications are due TODAY, Friday March 26, 2004. Tutorial Proposals are due TODAY, Friday March 26, 2004. -- Steve Steven R. Newcomb, Co-chair Extreme Markup Languages 2004 -- An IDEAlliance Event www.extrememarkup.com sr...@co... ------------------------------------------------------- Coolheads Consulting http://www.coolheads.com direct: +1 540 951 9773 main: +1 540 951 9774 fax: +1 540 951 9775 208 Highview Drive Blacksburg, Virginia 24060 USA |
From: <seb...@ad...> - 2004-03-18 15:22:35
|
Hello ! I am evaluating different software/libraries to build a "structural=20 graph" of C and C++ code, and found introspector very close to what I=20 initially wanted to do : build an RDF graph representing the program=20 structure. However, I am not sure what the introspector status is... is this=20 project working ? is it still alive ? TIA, -- S=E9bastien |
From: James M. D. <mdu...@ya...> - 2003-12-23 03:19:55
|
Why pay for rss syndication from blogger.com/google? You can just use cwm to process your blog in n3 format emitted by this archive template http://introspector.sourceforge.net/2003/12/blog2n3.template thanks to deltab for iconv support "iconv -t utf8 -f windows-1252 index.n3" to convert my blog into something readable Example n3 from the introspector http://enterprise-introspector.biz/blogger/index.html mike ===== James Michael DuPont http://introspector.sourceforge.net/ |
From: James M. D. <mdu...@ya...> - 2003-11-15 04:21:40
|
--- James Michael DuPont <mdu...@ya...> wrote: > From James Michael DuPont Fri Nov 14 20:15:18 2003 > Received: from [80.128.228.108] by web41503.mail.yahoo.com via HTTP; > Fri, 14 Nov 2003 20:15:18 PST > Date: Fri, 14 Nov 2003 20:15:18 -0800 (PST) > From: James Michael DuPont <mdu...@ya...> > Subject: Release of new gcc api technology : introspector datacubes > To: gc...@gn... > MIME-Version: 1.0 > Content-Type: text/plain; charset=us-ascii > Content-Length: 1403 > > HI all, > > thought you might like to try out this new toy gui for introspecting > the gccs asts. > > One important aspect that is should mention is that this providers a > fulll access to the gcc interface via code generation and subsequent > execution. That creates the possibiltly to require that the users of > that generated code make thier derivitive works under the gpl. That > just might solve the wishes of those who want only free software to > interface to the gcc.. > > peace, > > I have released a new version of the introspector, a proof of > concept, > something you can look at and learn from. A self contained demo > program > that allows you to graphically explore the structure of a almost any > program that you can compile with the gcc! > > It features the introspector ice cube. > The ice cube contains a superfast and compressed extract of the > semantic data of the program that can be compiled in as a lib and > loaded into memory in miliseconds. > > The graph alogorithms are also very fast on constant size arrays of > object! > > Hopefully It will become the new way to embed a static semantic > resources into your new programs. > > We then slice the ice cube for each by Property into nice thin C > arrays. > > It has a gcc tree extracted out of the dotgnu pnet idlasm code emit > function. That means i have reversed engineered an free software > component. > > The results of the reverse engineering are stored in a rdf > repository. > This has cwm,perl, and shell scripts doing semantic processing of the > data. An redland RDF repository is used to interface into the guts of > the gcc compiler. > > The asts are serialized by a patched gcc3.4 experimental > -fdump-translation-unit, you can find the source code in the cvs. > > That is emitted into rdf and converted by a perl script into a ice > cube. > > That are served into slices of data, each attribute its own vector > that has the length of the number of nodes in the selected rdf > property. There is in fact a matrix of all the objects and > relationships between them stored in the Array. > > This program contains just the linux binary of the program that has > all > this data compiled into an ICE Cube : > > That is emitted into a inline c array for compiling into the target > program. > > Please join up on the list, come to the #introspector chat zone on > freenode.net, and jabber me at md...@nu... > > You can find the source download here : > http://prdownloads.sourceforge.net/introspector/introspectorgraph-0.1.tar.gz?download > > Here is a binary for linux : > > > and a screenshot here : > http://introspector.sourceforge.net/2003/10/node_dialog.png > > > ===== > James Michael DuPont > http://introspector.sourceforge.net/ > > __________________________________ > Do you Yahoo!? > Protect your identity with Yahoo! Mail AddressGuard > http://antispam.yahoo.com/whatsnewfree > ===== James Michael DuPont http://introspector.sourceforge.net/ __________________________________ Do you Yahoo!? Protect your identity with Yahoo! Mail AddressGuard http://antispam.yahoo.com/whatsnewfree |
From: James M. D. <mdu...@ya...> - 2003-10-28 00:19:42
|
Dear all, I have been working on the gui. Quite fun. It should now compile from the dist and from the cvs. The functions are : 1. you can select a node and get a dialog with the fields and references to it. 2. you can expand the node in the tree 3. you can use the roller in the dialog to advance along the nodes 4. you can click on a filed to follow it to a new dialog. More to come mike ps : the links are again ScreenShot : http://introspector.sourceforge.net/2003/10/node_dialog.png CVS ACCESS : cvs -d:pserver:ano...@cv...:/cvsroot/ introspector login cvs -z3 -d:pserver:ano...@cv...:/ cvsroot/introspector co introspector Binary for linux http://introspector.sourceforge.net/2003/10/introspectorgraph.gz Tarball for gtk 1.2 http://introspector.sourceforge.net/2003/10/introspectorgraph-0.1.tar.gz ===== James Michael DuPont http://introspector.sourceforge.net/ __________________________________ Do you Yahoo!? Exclusive Video Premiere - Britney Spears http://launch.yahoo.com/promos/britneyspears/ |
From: James M. D. <mdu...@ya...> - 2003-10-26 18:54:58
|
Hi all, I now have the new introspector module, ice cubes attached to a gladegenerated gui!! The current gui allows you to cycle through the arrays of the icecubes. The maximum numbers of nodes in there are 2383. here is the dist : http://introspector.sourceforge.net/2003/10/introspectorgraph-0.1.tar.gz The binary is here for linux http://introspector.sourceforge.net/2003/10/introspectorgraph.gz The module for cvs is introspector/gtk-gui The data vector is compiled directly into the program ,and contains part of the dotgnu ildasm toolkit, the DumpInstructions method. This is soo fast, the loading of the icecubes lasts less than a second. have fun, mike ===== James Michael DuPont http://introspector.sourceforge.net/ __________________________________ Do you Yahoo!? Exclusive Video Premiere - Britney Spears http://launch.yahoo.com/promos/britneyspears/ |
From: James M. D. <mdu...@ya...> - 2003-10-16 08:28:55
|
Hi all, long time no see. Well, I have been working on Hurd, porting the hurd subsystem to the gcc under linux so that you can compile it. That will allow us to use the introspector on it. After thinking about this for a long time, I realised that the introspector is good for operating systems, I wanted to use it on linux, but I think the internals of linux are not that interesting. Mach has a very interesting and clean api, but hurd is difficult to compile. So I have started to port it to compile (not run) under linux. You can find my tarballs with the stuff inside here : Mach headers (morphed for linux) http://introspector.sourceforge.net/2003/10/mach_linux.tgz Hurd headers (morphed for linux) http://introspector.sourceforge.net/2003/10/hurd.tgz Here are three modules from hurd ported . http://introspector.sourceforge.net/2003/10/libthreads.tgz http://introspector.sourceforge.net/2003/10/libstore.tgz http://introspector.sourceforge.net/2003/10/libshouldbeinlibc.tgz Anyway, the MiG the Mach interface generator now emits n3 : http://introspector.sourceforge.net/2003/10/mig-introspector.tgz and you can find some example output here : http://introspector.sourceforge.net/2003/10/MiG-Introspector-Cooked.n3 I have been also looking into some Matrix libraries for the introspector data cubes, looking in GSL (GNU scientific lib) and BLAS, but need some more time for that. Later, mike ===== James Michael DuPont http://introspector.sourceforge.net/ __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com |
From: James M. D. <mdu...@ya...> - 2003-09-22 15:52:21
|
Here is an post to the gcc list about the new vcg underway. TO : eg...@ta... CC : Jeffrey A Law <la...@re...>, Ulrich Drepper <dr...@cy...>, gc...@gc...u Based on this old thread : http://gcc.gnu.org/ml/gcc/2000-12/msg00580.html Re: Looking for Cygnus' modified VCG graph viewer * To: Jamie Lokier <egcs at tantalophile dot demon dot co dot uk> * Subject: Re: Looking for Cygnus' modified VCG graph viewer * From: Jeffrey A Law <law at redhat dot com> * Date: Mon, 18 Dec 2000 11:40:29 -0700 * cc: Ulrich Drepper <drepper at cygnus dot com>, gcc at gcc dot gnu dot org I think you will be interested that the problem is solved : There is now a savannah project for VCG that hosts the DotGNU (pnet/C -> IL) and the native engine under cvs. http://www.advogato.org/proj/VCGDotgnu/ http://savannah.nongnu.org/projects/vcgdotgnu http://gnufans.net/intrspctr.pl?VcgInterface It contains all the sources, and is GPL compliant. We are working on a cut down and cleaned up engine with less crashes please submit any patches or bug reports that you may have. mike ===== James Michael DuPont http://introspector.sourceforge.net/ __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com |
From: James M. D. <mdu...@ya...> - 2003-09-22 07:34:18
|
Just uploaded new files to the webserver: http://gnufans.net/intrspctr.pl?VcgInterface this example is taken from the vcg source code http://introspector.sourceforge.net/2003/09/test_adg.c vcgout.pl vcg rdf extractor : http://introspector.sourceforge.net/2003/09/vcgout.pl Introspector n3 : http://introspector.sourceforge.net/2003/09/_test_adg.n3 VCG Source : http://introspector.sourceforge.net/2003/09/example_vcg_layout_expr.vcg Linux PM Bitmap (gziped) http://introspector.sourceforge.net/2003/09/example_vcg_layout_expr.ppm.gz As you can see, the graph layout is coming along. Soon we will have a robust solution!! mike ===== James Michael DuPont http://introspector.sourceforge.net/ __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com |
From: James M. D. <mdu...@ya...> - 2003-09-17 14:49:19
|
Hi all, Just been reading up on damls : I think that is is very close to what I am modeling with the function bodies in rdf notation. There is a mapping from DAMLS to UML http://codip.grci.com/codipsite/wwwlibrary/DUETGuide/DAMLS-UML_Mapping_V1.htm Here are some links on software agents : http://www-2.cs.cmu.edu/~softagents/ The function is basically a damls:process, and the implementation of the function is the damls:ServiceModel. If you replace the word web with local rdf resource locator, then with the introspector interfaces into the gcc, you will be able to create semantic agents for calling functions and finding the right function to use. Basically when we get all this data into some type of server that can serve up interesting bits into bitesized rdf, then we can make better agents. I think the next step will be to make a simple server that implements this api : http://gnufans.net/intrspctr.pl?BasicAPI That will allow for these agents to be built without haveing to deal with HUGE amounts of data. more to come... mike ===== James Michael DuPont http://introspector.sourceforge.net/ __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com |