fsedu-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fsedu-developers] Joint goals of the introspector and fsedu -- knowled


From: James Michael DuPont
Subject: [Fsedu-developers] Joint goals of the introspector and fsedu -- knowledge representation?
Date: Tue, 25 Mar 2003 06:53:44 -0800 (PST)

Fellow hackers : 

It is time that we call to arms, it is time that me make a difference.

I have spent too much time trying to appease people in the free
software community that are only interested in hiding the true facts
about Free software and the power structures therein.

I would like to say that the next step that I see for Introspector and
FSEDU projets is a clear vision statement. This fits into the goals of
the introspector project.
Here are 8 of the goals of the introspector that fit into the fsedu.

You will see that the conflict between the those who wish to CONTROL
and LIMIT the knowledge of the fellow hackers want to LIMIT their
KNOWLEDGE. The lack of knowledge creates FEAR, UNCERTAINTY, and DOUBT.

There is such a thing as FSFUD. Free software FUD. The FSEDU is the
ANTI-FS-FUD pill. By opening the knowledge to the users, the newbies,
the trolls, and the students the entry price is lowered. 

This causes a change in the powerbase of the Free software community.
Right now we have tribes of hackers, but no real civilization. The few
who know don't share their knowledge, This creates a knowledge and
power gap. Those who seek to change this situation are fire-hosed with
FSFUD. 

The entire negative publicity about the introspector project comes from
the people who have a vested power base in the current state of
Dis-information and FUD in the free software compiler community. The
FSF has gotten into a bad habit of squashing projects they feel are
threatening. Threatening is anything the gives knowledge and power to
the people. The ease of use of the knowledge extraction tools promised
by the introspector brings a deep and primal fear into the minds of old
school free software gurus. 

The idea that you don t need special tools to write meta-programs that
transform C programs is scary. The entire control of the GPL is based
around FUD, the definition of linking and derived work is questionable
at best. In the end we are limited only by our creativity.

The arguments against the introspector is that people may abuse the
data gained from free software. 

In fact this is just an argument against the sharing of knowledge!!!

That is the real thing that the guardians of Free Software are afraid
of, the sharing of knowledge. 

Most of free software contains key undocumented data structure, hidden
structures, and other tricks that are intended on throwing off the
newbie, the confusing of potential enemies. 

These stops in the programs increase the time needed to understand and
reuse the software. The introspector promises to remove them, and that
is what the FSF is afraid of.

My conclusion on the introspector project is that its goal is the
semantic extraction of data out of free software. These semantics are
the data from the user split up into fine pieces that may be
referenced. 

>From all the things that I have learned about the semantic web,
compilers, databases and conceptual/UML modeling, the most important
thing is knowledge. Knowledge is encoded in very different forms, each
being a creative expression of the author. It is difficult if not
impossible to automatically extract this, but the manual preparation
and indexing of this data is valuable.

The real goal of the FSEDU should be to prepare knowledge and present
knowledge. This can be done by extracting and documenting knowledge
embedded in software.

One way to do this is to prepare knowledge about software projects. A
software project contains knowledge in an executable form. Each project
covers part of the world knowledge. By understanding software, we can
understand the thing that the software is written to cover.

Given the huge amount of free software, there are huge amounts of
knowledge available. 

Just given the gcc source code for example, you have the raw material
for a course in computer representation of numbers, compilers,
processor architecture, data types, etc. The linux kernel contains a
huge amount of information about the outside world. 

The representation of knowledge becomes the central task of the fsedu,
and the amount of knowledge that we can gather, the better the project
is. By creating a means to represent knowledge extracted from software,
we have a flexible framework that is going to be useful for other
domains.

So the first step is the indexing :
GOAL 1. Creation of an indexing system for a given program, that way
you have a set of URIs that you address every part of data. Basically
it means that you have way to talk about internals of the system of
study in a non-ambigious manner. 
This is needed for every field of study in fsedu. 
Independent of the topic studied, it does not have to be software.
http://www.topicmaps.org/

Secondly we need to be able to export the data from the system into
RDF.
GOAL 2. Creation of a RDF representation of the data.
Basically, we need to be able to not only talk about the data of the
system studied, but also copy the contents of the knowledge that we
have gained, or that is gained by the automatic processing
(parsing/compiling) into a format that is easily processed by the
fsedu. 

This goal fits into the ideas of wiki, a wiki node represents
knowledge, but it is hard to reuse, because you need to parse it. You
cannot see the relationship between nodes, only that there are links. 

In rdf, you have the idea of a typed relationships. 

A wiki is simple way to present knowledge, and it should be possible to
edit the fsedu knowledge base via a wiki system. The only difference is
that we will allow for the importing and preserving of semantic
information in the wiki. 

GOAL 3 : Be able to import and export to wikis by using encoding system
to embed relations into the wikitext. The wiki is a simple GUI in that
respect.

In savannah, you have project, package, cvs, task, bug, and patch
information, but each one hast only very limited knowledge about a
program. That does not contain enough information to understand the
program itself. 

GOAL 4: Be able to annotate databases tables and rows, database
schemas, php pages and uris. We need to be able to have ways to
reference into savannah, and to be able to export the savannah into a 
So the first step is the RDF indexing of the various parts of savannah
representation of a project. 

We need a conceptual model that we can use as a central key for a given
project. This model needs to accessible as URIs into individual
concepts. Each concept needs typed relationship to other concepts. The
OWL http://www.w3.org/TR/owl-ref/ Ontology is a good start for this
task.

Goal 5 : The creation of a unified FSEDU Ontology that brings all
fields of study under one naming and numbering system.

Only via including the comments of the source code, and the cross
referencing of the source code to a conceptual model will the source
code become move valuable. 

Goal 6 : The extending of the cpp preprocessor and other documentation
tools (doxygen) to extract comments and the indexing of them.

A c++ program contains much information that can be extracted.
Goal 7:  The extraction of datatypes, methods, function and usage
information from programs. The methods bodies must also be extracted.

Goal 8: The browsing, editing and visualization of the knowledge.
This fits into the forum project, need a uml editor like DIA.

Mike



=====
James Michael DuPont
http://introspector.sourceforge.net/

__________________________________________________
Do you Yahoo!?
Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!
http://platinum.yahoo.com




reply via email to

[Prev in Thread] Current Thread [Next in Thread]