introspector-developers Mailing List for RDF Software Introspector (Page 2)
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: James M. D. <mdu...@ya...> - 2003-09-17 06:40:58
|
here is a relevant thread to the license debate : http://crynwr.com/cgi-bin/ezmlm-cgi?3:sss:7115:njnpnenpjcebichpnajn#b good quote : --- David Johnson <da...@us...> wrote: > The freedom of the GPL code is still there. 100% free. > You can take the server with the new API and write a free client for it. > So can anyone else. That there happens to be proprietary client available > is irrelevant. You seem to be arguing that the provisions of the GPL > should extend beyond the code it is attached to and regulate external > and non-derivative works. The would make the GPL an offensive weapon, instead of the defensive shield it currently is. > > Trying to extend the GPL beyond the boundaries of copyright law is > extremely dangerous. The client application above is not your code. > You > have no legal, ethical or moral rights over it. Attempting to control > it is tyranny, the very thing the GPL is fighting against. Freedom is > > about removing restrictions, not replacing them with others. ===== 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: Jos D. <jos...@ag...> - 2003-09-16 22:45:52
|
Mike - I feel you are right ;-) Last weekend, while trying to get more grip on constructive logic/mathematics, I re-understood that "embedded in a constructive proof that an object exists is an algorithm for constructing the object; the programming task can be replaced by the task of proving theorems" -- Gries, Schneider and I believe this is the case - we just have to work it out via test cases ;-) -- Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/ James Michael DuPont To: Jos De_Roo/AMDUS/MOR/Agfa-NV/BE/BAYER@AGFA <mdupont777@yahoo cc: dm...@us..., introspectors .com> <int...@li...>, Bijan Parsia <bp...@is...> Subject: Re: [Introspector-developers] Re: Start of the C# Kernel Prolog Port 2003-09-17 12:08 AM I was thinking today about this : fluents are a type of object :Fluent a owl:Class. :AbstractFluent a :Fluent. :SourceFluent a :AbstractFluent. :GoalFluent a :SourceFluent . :MachineFluent a :AbstractFluent. We could go on to : RdfSourceFluent a :SourceFluent a :AbstractFluent. terms are a type of predicate :Term a owl:Predicate. :AbstractTerm a :Term . :RdfSubject, :RdfObject, :RdfPredicate a :AbstractTerm . :PrologVariable , :NonvarTerm a :AbstractTerm . :StringTerm a NonvarTerm . :StructureTerm a :StringTerm . :ConsTerm a :StructureTerm . :ConjunctiveTerm a :ConsTerm . :RdfQuery a :ConjunctiveTerm . :Hornclause a :StructureTerm . :RdfClause a :Hornclause . :FalseTerm :uses log:Truth . :NilTerm :represents owl:Nothing. # I have to look up :ParsedTerm :represents :RdfStatement. :NumericTerm :represents :RdfNumeric. :IntegerTerm :represents :RdfInteger. The Engine class is missing : :Engine :Identifers :Dictionary; :Variables :PeerTerm; :Bindings BindingStack; :Terms :TermStack. :BindingStack :Terms . or something like that, basically I see the Model View Controller applied to this. The Terms are the model. the Fluents are the real life. The Engine contains the terms in a TermStack, it have the Peer terms for accessing behaviours in other languages via the introspector API. gcc:Function = gcc:function_decl a owl:Property. and gcc:Type = gcc:type_decl a owl:Class. This makes all the rdf types for a given c application, directly out of the compiler. A unification algorithm will generate the best code for a give Function instance by reading in the gcc:function_decl object associated statements. That will give you all the information you need to link in the code that you need from the compiler. you can then make the best possible binding choosing to call the function at any given point. if the assembler code is attached to the introspected c, and the machine byte code, even the dwarf debugging output, all introspected and xrefed into the rdf, then you will be able to make intellegent and semantic modifications to the program using logic statements and then be able to emit the code out with little stress. That would make the next generation of optimizing via semantic information feeds very user configurable. The user themselves will be adding to the compilers knowledge and sharing data. For the c#, there is a lot of work left to do. Here is a grep of the TODOs for c# code http://introspector.sourceforge.net/2003/09/TODO.txt mike --- Jos De_Roo <jos...@ag...> wrote: > > Haven't been following the latest evolutions (if any) of fluents > but I got some hands-on experience with them in (I guess) 1999. > I'm not sure where to find a point of convergence as > swap engine; does it prove for instance the OWL testcases? > (that would be a tangible starting point, maybe...) good idea! I think that is a great idea. transform the owl test cases into prolog. > > > -- > Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/ > > > > > James Michael > > DuPont To: Jos > De_Roo/AMDUS/MOR/Agfa-NV/BE/BAYER@AGFA, introspectors > > <mdupont777@yahoo > <int...@li...> > > .com> cc: > dm...@us... > > Subject: Start of the > C# Kernel Prolog Port > 2003-09-16 08:54 > > AM > > > > > > > > > > Dear fellow hackers, > > Dmiles has started me on a new and exciting task of porting > KernelProlog to C#. This tool, when running will allow for a > customized > and small prolog engine for the introspector. > > ModalitySharp AKA KProlog AKA Jinni > http://www.binnetcorp.com/download/kprolog/KernelPrologUserGuide.html > > here is a brief description : > """ > Kernel Prolog supports a simplified CUT-less and operatorless subset > of > ISO Prolog. Its main merit is a redesigned set of built-ins and an > axiomatic reconstruction of Prolog on top of Horn Clauses with first > class Fluents. Kernel Prolog Solvers (first class LD-resolution > interpreters), together with Sources and Sinks provide stateful > objects > needed to represent the state of the Solvers as well as for > interoperation with the embedding Object Oriented environment. > """ > > here some more about fluents > > """Kernel Prolog can be seen as a collection of Horn Clause > Interpreters running LD-resolution on a default clause database and > calling built-in operations. Through built-in calls, they possess the > ability to create other query first class engines and interoperate > with > Java through a set of stateful objects called Fluents. > > Fluents are created with specific constructors, usually named the > name > of the type, by converting from other fluents or conventional Prolog > data structures like Terms, Lists or Databases. All Fluents are > enabled > with a stop/1 operation which releases their resources (most Fluents > also call stop/1 on backtracking to free resources). > > Sources are Fluents enabled with an extra get/2 operation. Typical > Sources are Horn Clause Engines, File, URL or String Readers, Fluents > built form Prolog lists. Sinks are fluents enabled with an extra > put/2 > and collect/2 operation. Typical fluents are ClauseWriters or > CharWriters targeted to Files, TermCollectors (implemented as a Java > Vectors collecting Prolog terms), StringSinks (implemented as a Java > StringBuffers colecting String representations of Prolog terms). > Prolog > Databases are first class citizens implemented as extensions of > Sources > which provide add/2, remove/2, collect/2 operations. > > Fluents are resources which go throuh state transitions as a result > of > put/2 or get/2 operations. They end their life cycle in a stopped > state > when all the resources they hold are freed. An algebra of Fluent > composers provides abstract operations on fluents. For instance, > append_sources/3 creates a new Source with a get/2 operation such > that > when the first Source is stopped, iteration continues over the > elements > of the second source. Compose_sources/3 provides a cartesian product > style composition, the new get/2 operation returning pairs of > elements > of the first and second Source. Split_source/3 creates 2 Source > objects > identical to the Source given as first argument. It allows writing > programs which iterate over a given Source multiple times. Sources > and > Sinks are related through a discharge(Source,Sink) operation which > sends all the elements of the Source to the given Sink. > """ > > > It is written in java, we are porting it to c# > Now, I have finally gotten it to compile (after commenting out half > the > code) if you want to help implement, now is the chance. > > The great thing about the engine are the number of classes : > you have five trees : > with the roots : > :AbstractFluent -- the basis for all objects that are affected by > time > > :AbstractTerm -- this basic for all terms and language > representation > :PeerTerm -- an user interface term, interacts with the user > :Dictionary -- a hash table > :TermStack -- a stack of terms > > hier is the class hierachy : > :AbstractFluent > :SourceFluent > :GoalFluent > :MachineFluent > > :AbstractTerm > :NonvarTerm > :StringTerm > :StructureTerm > :ConsTerm > :ConjunctiveTerm > :Hornclause > :FalseTerm > :NilTerm > :ParsedTerm > :NumericTerm > :IntegerTerm > :PrologVariable > > :Dictionary > :PeerTerm > > :TermStack > :BindingStack > > This system should be usable to later on replace/augment the > EulerSharp > code, it represents a cleaner engine model. > > I think that we can reduce it down some more : > PeerTerm, HornClause and others seem to be more implementation > specific > and should be removed from the core engine if possible... > > Oh, here is the code : 54k tgz : > http://introspector.sourceforge.net/2003/09/ModalitySharpKernel.tgz > MD5: eed736c5a000b3bacf516da93ae5d9dd ModalitySharpKernel.tgz > > Also, it is on the openmodality csv > http://sourceforge.net/projects/openmodality/ > > It is in cvs here : > cvs.sourceforge.net:/cvsroot/openmodality/kernel/Kernel > > more to come!!! > > > ===== > James Michael DuPont > http://introspector.sourceforge.net/ > > __________________________________ > Do you Yahoo!? > Yahoo! SiteBuilder - Free, easy-to-use web site design software > http://sitebuilder.yahoo.com > > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Introspector-developers mailing list > Int...@li... > https://lists.sourceforge.net/lists/listinfo/introspector-developers ===== 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-16 22:08:47
|
I was thinking today about this : fluents are a type of object :Fluent a owl:Class. :AbstractFluent a :Fluent. :SourceFluent a :AbstractFluent. :GoalFluent a :SourceFluent . :MachineFluent a :AbstractFluent. We could go on to : RdfSourceFluent a :SourceFluent a :AbstractFluent. terms are a type of predicate :Term a owl:Predicate. :AbstractTerm a :Term . :RdfSubject, :RdfObject, :RdfPredicate a :AbstractTerm . :PrologVariable , :NonvarTerm a :AbstractTerm . :StringTerm a NonvarTerm . :StructureTerm a :StringTerm . :ConsTerm a :StructureTerm . :ConjunctiveTerm a :ConsTerm . :RdfQuery a :ConjunctiveTerm . :Hornclause a :StructureTerm . :RdfClause a :Hornclause . :FalseTerm :uses log:Truth . :NilTerm :represents owl:Nothing. # I have to look up :ParsedTerm :represents :RdfStatement. :NumericTerm :represents :RdfNumeric. :IntegerTerm :represents :RdfInteger. The Engine class is missing : :Engine :Identifers :Dictionary; :Variables :PeerTerm; :Bindings BindingStack; :Terms :TermStack. :BindingStack :Terms . or something like that, basically I see the Model View Controller applied to this. The Terms are the model. the Fluents are the real life. The Engine contains the terms in a TermStack, it have the Peer terms for accessing behaviours in other languages via the introspector API. gcc:Function = gcc:function_decl a owl:Property. and gcc:Type = gcc:type_decl a owl:Class. This makes all the rdf types for a given c application, directly out of the compiler. A unification algorithm will generate the best code for a give Function instance by reading in the gcc:function_decl object associated statements. That will give you all the information you need to link in the code that you need from the compiler. you can then make the best possible binding choosing to call the function at any given point. if the assembler code is attached to the introspected c, and the machine byte code, even the dwarf debugging output, all introspected and xrefed into the rdf, then you will be able to make intellegent and semantic modifications to the program using logic statements and then be able to emit the code out with little stress. That would make the next generation of optimizing via semantic information feeds very user configurable. The user themselves will be adding to the compilers knowledge and sharing data. For the c#, there is a lot of work left to do. Here is a grep of the TODOs for c# code http://introspector.sourceforge.net/2003/09/TODO.txt mike --- Jos De_Roo <jos...@ag...> wrote: > > Haven't been following the latest evolutions (if any) of fluents > but I got some hands-on experience with them in (I guess) 1999. > I'm not sure where to find a point of convergence as > swap engine; does it prove for instance the OWL testcases? > (that would be a tangible starting point, maybe...) good idea! I think that is a great idea. transform the owl test cases into prolog. > > > -- > Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/ > > > > > James Michael > > DuPont To: Jos > De_Roo/AMDUS/MOR/Agfa-NV/BE/BAYER@AGFA, introspectors > > <mdupont777@yahoo > <int...@li...> > > .com> cc: > dm...@us... > > Subject: Start of the > C# Kernel Prolog Port > 2003-09-16 08:54 > > AM > > > > > > > > > > Dear fellow hackers, > > Dmiles has started me on a new and exciting task of porting > KernelProlog to C#. This tool, when running will allow for a > customized > and small prolog engine for the introspector. > > ModalitySharp AKA KProlog AKA Jinni > http://www.binnetcorp.com/download/kprolog/KernelPrologUserGuide.html > > here is a brief description : > """ > Kernel Prolog supports a simplified CUT-less and operatorless subset > of > ISO Prolog. Its main merit is a redesigned set of built-ins and an > axiomatic reconstruction of Prolog on top of Horn Clauses with first > class Fluents. Kernel Prolog Solvers (first class LD-resolution > interpreters), together with Sources and Sinks provide stateful > objects > needed to represent the state of the Solvers as well as for > interoperation with the embedding Object Oriented environment. > """ > > here some more about fluents > > """Kernel Prolog can be seen as a collection of Horn Clause > Interpreters running LD-resolution on a default clause database and > calling built-in operations. Through built-in calls, they possess the > ability to create other query first class engines and interoperate > with > Java through a set of stateful objects called Fluents. > > Fluents are created with specific constructors, usually named the > name > of the type, by converting from other fluents or conventional Prolog > data structures like Terms, Lists or Databases. All Fluents are > enabled > with a stop/1 operation which releases their resources (most Fluents > also call stop/1 on backtracking to free resources). > > Sources are Fluents enabled with an extra get/2 operation. Typical > Sources are Horn Clause Engines, File, URL or String Readers, Fluents > built form Prolog lists. Sinks are fluents enabled with an extra > put/2 > and collect/2 operation. Typical fluents are ClauseWriters or > CharWriters targeted to Files, TermCollectors (implemented as a Java > Vectors collecting Prolog terms), StringSinks (implemented as a Java > StringBuffers colecting String representations of Prolog terms). > Prolog > Databases are first class citizens implemented as extensions of > Sources > which provide add/2, remove/2, collect/2 operations. > > Fluents are resources which go throuh state transitions as a result > of > put/2 or get/2 operations. They end their life cycle in a stopped > state > when all the resources they hold are freed. An algebra of Fluent > composers provides abstract operations on fluents. For instance, > append_sources/3 creates a new Source with a get/2 operation such > that > when the first Source is stopped, iteration continues over the > elements > of the second source. Compose_sources/3 provides a cartesian product > style composition, the new get/2 operation returning pairs of > elements > of the first and second Source. Split_source/3 creates 2 Source > objects > identical to the Source given as first argument. It allows writing > programs which iterate over a given Source multiple times. Sources > and > Sinks are related through a discharge(Source,Sink) operation which > sends all the elements of the Source to the given Sink. > """ > > > It is written in java, we are porting it to c# > Now, I have finally gotten it to compile (after commenting out half > the > code) if you want to help implement, now is the chance. > > The great thing about the engine are the number of classes : > you have five trees : > with the roots : > :AbstractFluent -- the basis for all objects that are affected by > time > > :AbstractTerm -- this basic for all terms and language > representation > :PeerTerm -- an user interface term, interacts with the user > :Dictionary -- a hash table > :TermStack -- a stack of terms > > hier is the class hierachy : > :AbstractFluent > :SourceFluent > :GoalFluent > :MachineFluent > > :AbstractTerm > :NonvarTerm > :StringTerm > :StructureTerm > :ConsTerm > :ConjunctiveTerm > :Hornclause > :FalseTerm > :NilTerm > :ParsedTerm > :NumericTerm > :IntegerTerm > :PrologVariable > > :Dictionary > :PeerTerm > > :TermStack > :BindingStack > > This system should be usable to later on replace/augment the > EulerSharp > code, it represents a cleaner engine model. > > I think that we can reduce it down some more : > PeerTerm, HornClause and others seem to be more implementation > specific > and should be removed from the core engine if possible... > > Oh, here is the code : 54k tgz : > http://introspector.sourceforge.net/2003/09/ModalitySharpKernel.tgz > MD5: eed736c5a000b3bacf516da93ae5d9dd ModalitySharpKernel.tgz > > Also, it is on the openmodality csv > http://sourceforge.net/projects/openmodality/ > > It is in cvs here : > cvs.sourceforge.net:/cvsroot/openmodality/kernel/Kernel > > more to come!!! > > > ===== > James Michael DuPont > http://introspector.sourceforge.net/ > > __________________________________ > Do you Yahoo!? > Yahoo! SiteBuilder - Free, easy-to-use web site design software > http://sitebuilder.yahoo.com > > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Introspector-developers mailing list > Int...@li... > https://lists.sourceforge.net/lists/listinfo/introspector-developers ===== 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: Jos D. <jos...@ag...> - 2003-09-16 17:27:55
|
Haven't been following the latest evolutions (if any) of fluents but I got some hands-on experience with them in (I guess) 1999. I'm not sure where to find a point of convergence as swap engine; does it prove for instance the OWL testcases? (that would be a tangible starting point, maybe...) -- Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/ James Michael DuPont To: Jos De_Roo/AMDUS/MOR/Agfa-NV/BE/BAYER@AGFA, introspectors <mdupont777@yahoo <int...@li...> .com> cc: dm...@us... Subject: Start of the C# Kernel Prolog Port 2003-09-16 08:54 AM Dear fellow hackers, Dmiles has started me on a new and exciting task of porting KernelProlog to C#. This tool, when running will allow for a customized and small prolog engine for the introspector. ModalitySharp AKA KProlog AKA Jinni http://www.binnetcorp.com/download/kprolog/KernelPrologUserGuide.html here is a brief description : """ Kernel Prolog supports a simplified CUT-less and operatorless subset of ISO Prolog. Its main merit is a redesigned set of built-ins and an axiomatic reconstruction of Prolog on top of Horn Clauses with first class Fluents. Kernel Prolog Solvers (first class LD-resolution interpreters), together with Sources and Sinks provide stateful objects needed to represent the state of the Solvers as well as for interoperation with the embedding Object Oriented environment. """ here some more about fluents """Kernel Prolog can be seen as a collection of Horn Clause Interpreters running LD-resolution on a default clause database and calling built-in operations. Through built-in calls, they possess the ability to create other query first class engines and interoperate with Java through a set of stateful objects called Fluents. Fluents are created with specific constructors, usually named the name of the type, by converting from other fluents or conventional Prolog data structures like Terms, Lists or Databases. All Fluents are enabled with a stop/1 operation which releases their resources (most Fluents also call stop/1 on backtracking to free resources). Sources are Fluents enabled with an extra get/2 operation. Typical Sources are Horn Clause Engines, File, URL or String Readers, Fluents built form Prolog lists. Sinks are fluents enabled with an extra put/2 and collect/2 operation. Typical fluents are ClauseWriters or CharWriters targeted to Files, TermCollectors (implemented as a Java Vectors collecting Prolog terms), StringSinks (implemented as a Java StringBuffers colecting String representations of Prolog terms). Prolog Databases are first class citizens implemented as extensions of Sources which provide add/2, remove/2, collect/2 operations. Fluents are resources which go throuh state transitions as a result of put/2 or get/2 operations. They end their life cycle in a stopped state when all the resources they hold are freed. An algebra of Fluent composers provides abstract operations on fluents. For instance, append_sources/3 creates a new Source with a get/2 operation such that when the first Source is stopped, iteration continues over the elements of the second source. Compose_sources/3 provides a cartesian product style composition, the new get/2 operation returning pairs of elements of the first and second Source. Split_source/3 creates 2 Source objects identical to the Source given as first argument. It allows writing programs which iterate over a given Source multiple times. Sources and Sinks are related through a discharge(Source,Sink) operation which sends all the elements of the Source to the given Sink. """ It is written in java, we are porting it to c# Now, I have finally gotten it to compile (after commenting out half the code) if you want to help implement, now is the chance. The great thing about the engine are the number of classes : you have five trees : with the roots : :AbstractFluent -- the basis for all objects that are affected by time :AbstractTerm -- this basic for all terms and language representation :PeerTerm -- an user interface term, interacts with the user :Dictionary -- a hash table :TermStack -- a stack of terms hier is the class hierachy : :AbstractFluent :SourceFluent :GoalFluent :MachineFluent :AbstractTerm :NonvarTerm :StringTerm :StructureTerm :ConsTerm :ConjunctiveTerm :Hornclause :FalseTerm :NilTerm :ParsedTerm :NumericTerm :IntegerTerm :PrologVariable :Dictionary :PeerTerm :TermStack :BindingStack This system should be usable to later on replace/augment the EulerSharp code, it represents a cleaner engine model. I think that we can reduce it down some more : PeerTerm, HornClause and others seem to be more implementation specific and should be removed from the core engine if possible... Oh, here is the code : 54k tgz : http://introspector.sourceforge.net/2003/09/ModalitySharpKernel.tgz MD5: eed736c5a000b3bacf516da93ae5d9dd ModalitySharpKernel.tgz Also, it is on the openmodality csv http://sourceforge.net/projects/openmodality/ It is in cvs here : cvs.sourceforge.net:/cvsroot/openmodality/kernel/Kernel more to come!!! ===== 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-16 06:55:20
|
Dear fellow hackers, Dmiles has started me on a new and exciting task of porting KernelProlog to C#. This tool, when running will allow for a customized and small prolog engine for the introspector. ModalitySharp AKA KProlog AKA Jinni http://www.binnetcorp.com/download/kprolog/KernelPrologUserGuide.html here is a brief description : """ Kernel Prolog supports a simplified CUT-less and operatorless subset of ISO Prolog. Its main merit is a redesigned set of built-ins and an axiomatic reconstruction of Prolog on top of Horn Clauses with first class Fluents. Kernel Prolog Solvers (first class LD-resolution interpreters), together with Sources and Sinks provide stateful objects needed to represent the state of the Solvers as well as for interoperation with the embedding Object Oriented environment. """ here some more about fluents """Kernel Prolog can be seen as a collection of Horn Clause Interpreters running LD-resolution on a default clause database and calling built-in operations. Through built-in calls, they possess the ability to create other query first class engines and interoperate with Java through a set of stateful objects called Fluents. Fluents are created with specific constructors, usually named the name of the type, by converting from other fluents or conventional Prolog data structures like Terms, Lists or Databases. All Fluents are enabled with a stop/1 operation which releases their resources (most Fluents also call stop/1 on backtracking to free resources). Sources are Fluents enabled with an extra get/2 operation. Typical Sources are Horn Clause Engines, File, URL or String Readers, Fluents built form Prolog lists. Sinks are fluents enabled with an extra put/2 and collect/2 operation. Typical fluents are ClauseWriters or CharWriters targeted to Files, TermCollectors (implemented as a Java Vectors collecting Prolog terms), StringSinks (implemented as a Java StringBuffers colecting String representations of Prolog terms). Prolog Databases are first class citizens implemented as extensions of Sources which provide add/2, remove/2, collect/2 operations. Fluents are resources which go throuh state transitions as a result of put/2 or get/2 operations. They end their life cycle in a stopped state when all the resources they hold are freed. An algebra of Fluent composers provides abstract operations on fluents. For instance, append_sources/3 creates a new Source with a get/2 operation such that when the first Source is stopped, iteration continues over the elements of the second source. Compose_sources/3 provides a cartesian product style composition, the new get/2 operation returning pairs of elements of the first and second Source. Split_source/3 creates 2 Source objects identical to the Source given as first argument. It allows writing programs which iterate over a given Source multiple times. Sources and Sinks are related through a discharge(Source,Sink) operation which sends all the elements of the Source to the given Sink. """ It is written in java, we are porting it to c# Now, I have finally gotten it to compile (after commenting out half the code) if you want to help implement, now is the chance. The great thing about the engine are the number of classes : you have five trees : with the roots : :AbstractFluent -- the basis for all objects that are affected by time :AbstractTerm -- this basic for all terms and language representation :PeerTerm -- an user interface term, interacts with the user :Dictionary -- a hash table :TermStack -- a stack of terms hier is the class hierachy : :AbstractFluent :SourceFluent :GoalFluent :MachineFluent :AbstractTerm :NonvarTerm :StringTerm :StructureTerm :ConsTerm :ConjunctiveTerm :Hornclause :FalseTerm :NilTerm :ParsedTerm :NumericTerm :IntegerTerm :PrologVariable :Dictionary :PeerTerm :TermStack :BindingStack This system should be usable to later on replace/augment the EulerSharp code, it represents a cleaner engine model. I think that we can reduce it down some more : PeerTerm, HornClause and others seem to be more implementation specific and should be removed from the core engine if possible... Oh, here is the code : 54k tgz : http://introspector.sourceforge.net/2003/09/ModalitySharpKernel.tgz MD5: eed736c5a000b3bacf516da93ae5d9dd ModalitySharpKernel.tgz Also, it is on the openmodality csv http://sourceforge.net/projects/openmodality/ It is in cvs here : cvs.sourceforge.net:/cvsroot/openmodality/kernel/Kernel more to come!!! ===== 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: Peter M. <pet...@wa...> - 2003-09-14 08:36:45
|
Stephen Compall wrote: > Peter Minten <pet...@wa...> writes: > > >>Here the safe level concept is used. SilverScheme has 5 safe levels, >>ranging from 0 (no protection) to 4 (paranoid). The safe levels >>determine what a function can or cannot do. > > > I think you should use symbols here instead of magic numbers. Why not both, easy enough to do. Greetings, Peter |
From: James M. D. <mdu...@ya...> - 2003-09-13 19:07:59
|
Dear fellow hackers, thanks to some great help from sanxiyn, and from michal's pirate code, I was able to hack out a first version of the p First i tried to create a n3 file, that contains the asts of python : http://introspector.sourceforge.net/2003/09/PythonAst.n3 Here is the code that outputs the python parse tree, it needs some work, but is it a good start : http://introspector.sourceforge.net/2003/09/PythonIntrospector.py The test output cleaned by cwm is here : http://introspector.sourceforge.net/2003/09/test-cwm.n3 Here is an example filter that you can use to extract the names, just a simple test of cwm and the python introspector : http://introspector.sourceforge.net/2003/09/joinObjects.n3 use it like this : ~/cwm/cwm.py test.n3 --filter=joinObjects.n3 Tomorrow I would like to get the strings and lists dumping as well as the recursion working better, feel free to start hacking on it. 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: Stephen C. <s1...@me...> - 2003-09-13 18:47:26
|
Peter Minten <pet...@wa...> writes: > Here the safe level concept is used. SilverScheme has 5 safe levels, > ranging from 0 (no protection) to 4 (paranoid). The safe levels > determine what a function can or cannot do. I think you should use symbols here instead of magic numbers. -- Stephen Compall or s11 or sirian Texas law forbids anyone to have a pair of pliers in his possession. bemd Ft. Meade Roswell Kh-11 security White Water CESID BLU-97 A/B Crowell csystems Merlin 9705 Samford Road 64 Vauxhall Cross Becker Dateline |
From: Peter M. <pet...@wa...> - 2003-09-13 15:59:27
|
James Michael DuPont wrote: > Hi Peter, > Here are some questions : > > 1. is it possible to write the language and the book in synch, so when > you are writing your book, you are writing the docs for the language? Hehe, I'm afraid you misunderstood something. I was referring to the FSEDU SchemeBook and accidentaly posted to introspector-dev instead of fsedu-dev. As for SilverScheme, it's undergoing evaluation at the moment. I'm pretty sure it's as good as I can make it, but it still has some ugly parts. SilverScheme is not ascetically pleasing with it's need to use owner in cases when you would normally say 'this'. Also a few issues have to be worked out with regards to serialization, call/cc, mixins and other complicated stuff. The strict object model used can sometimes be a real pain in the behind. The last few hurdles probably won't be a problem, it's mostly getting old parts of the language up-to-date with the new language semantics (mixins for example were defined in a time when there were binding objects). As for the language docs, I'm inclined to make that a wiki process (my thought processes are chaotic, a wiki is chaotic, perfect fit :-). With the current stability of the language it's likely that the notes I make are pretty final and can be compiled into some form of a manual for daring people (I'm really not the guy to write docs for dummies, and I don't expect dummies to be smart enough to use SilverScheme ;-). Oh, and let me tell you about a few neat new features. I've added optional arguments and keywords through an understandable syntax where keywords are signaled by putting a ':' for their name and optional arguments by putting a ' for their name. The biggest improvement of the last weeks is something else though: monitors. The SilverScheme interpreter will not communicate with the user through basic console I/O but through an attached monitor. A monitor is a program that communicates with the SilverScheme interpreter through RDF messages. The interface for monitors is really powerful, you could easily do all introspection by attaching an introspector as a monitor. For a SilverScheme program a monitor is just a function that returns a value, but monitors can interrupt execution and do stack dumps, etc. Multiple monitors may exist on a single thread, if (call-monitor) is called by another monitor the monitor control simply passes to the newly called monitor and returns after the newly called monitor is done). Multiple threads may also have multiple monitors. > 2. scheme might be very useful for the processing of introspector ast > nodes. So can we put a priority on using redland rdf dbstores as the > input to the scheme engine? > > Then I can rewrite my cwm programs in scheme and run them. My current priority for the SilverScheme engine input is RDF since it allows development of the eval function in another language for the time being. So there is no problems with that. You must remember however that the input is in S3 (SilverScheme Serialization) format and that SilverScheme is not a logic language like CWM RDF. > 3. The Wiki : > > I have been talking to e-kyle about splitting cost of a real provider. > If we do this write the entire gnufans site can be rehosted. Cool, do you think there will be room for some SilverScheme stuff there? I'm going to need a wiki for the design process of the interpreter. > 4. Rdf do you think it is possible to write the book and the wiki all > in an RDF syntax. I have been dreaming of the way to unify all these > formats into one. Hehe, if you can build a translator from a YAML like syntax to RDF. RDF is not nice to write in, but a YAML like document style is. I think that a YAML variant aimed at RDF would do wonders for these kinds of things (books and wiki's), the ease of YAML, the power of RDF. Normal YAML uses a tree model btw so it's not very good for graphs. Would a wiki with required passworded accounts be possible btw? It would make the copyright matter easier. I attached some wiki pages I've been writing already, they are probably not quite book-ready but will do for a small manual for daring users. Greetings, Peter PS: I've also attached a little example of how RDF could be processed in SilverScheme. |
From: James M. D. <mdu...@ya...> - 2003-09-11 17:26:07
|
Hi Peter, Here are some questions : 1. is it possible to write the language and the book in synch, so when you are writing your book, you are writing the docs for the language? 2. scheme might be very useful for the processing of introspector ast nodes. So can we put a priority on using redland rdf dbstores as the input to the scheme engine? Then I can rewrite my cwm programs in scheme and run them. 3. The Wiki : I have been talking to e-kyle about splitting cost of a real provider. If we do this write the entire gnufans site can be rehosted. 4. Rdf do you think it is possible to write the book and the wiki all in an RDF syntax. I have been dreaming of the way to unify all these formats into one. 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: Peter M. <pet...@wa...> - 2003-09-11 17:09:35
|
Hi folks, did some reading up on Scheme, trying to find logic bugs in the language. I found none, to my great joy and frustration ;-). I did find a couple of ideas for the SchemeBook however, dunno if they are in it already, at the time of writing the wiki is offline. The SchemeBook should have a big style guide chapter. Scheme is a programming language that gives the programmer full control and has many different ways to accomplish a task (for traversing a list: recursion, iteration and applicative programming (map)). With so much power it's easy to use kludgy ways to reach your goal, resulting in buggy programs. For example one often has the choice between using iterative programming style (assignment) or functional programming style (result passing). As every good LISP programmer knows functional programming style is often the best choice since assignments make code harder to following. And that's just one of the style issues. A design chapter is also nice. Designing Scheme programs is different from designing for example Java programming. Matters like when to use classes (and even more important, when not) are quite important for a beginning Scheme programmer. Finally attention to the more important Guile supported SRFI's that aren't covered elsewhere in the book would be nice. For example the sharp-comma (#,()) can be quite useful for reading in common objects or serialization. Greetings, Peter |
From: James M. D. <mdu...@ya...> - 2003-09-10 13:56:57
|
Yes, How silly of me, I turned on profiling and logging, that here was a bit older version.... :) mike --- Armin Rigo <ar...@tu...> wrote: > Hello James, > > On Tue, Sep 09, 2003 at 05:52:44PM -0700, James Michael DuPont wrote: > > Added this to the cwm main : > > if __name__ == '__main__': > > import os > > try : > > print 'going to import Psyco ' > > import psyco > > # psyco.profile() > > print 'After import Psyco ' > > except: > > print 'Psyco not found, ignoring it' > > # import urlparse > > doCommand() > > I assume that you know that if psyco.profile() is commented out, and > you don't > do a psyco.full() either, then the only way to have Psyco actually do > anything > at all is by selecting individual functions with psyco.bind() or > psyco.proxy(). > > > I have increase the ram by 2 > > # define MALLOC_BIGBUFFER PAGESIZE*16384*2 > > and added in some diagnostics > > Ok. This is in linuxmemchk.c, which is a memory usage checker based > on the > same principles as Electric Fence. It was very useful at some point > of the > development of Psyco but nowadays I don't really activate it any > more. > > > Armin > ===== 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: Armin R. <ar...@tu...> - 2003-09-10 13:26:33
|
Hello James, On Tue, Sep 09, 2003 at 05:52:44PM -0700, James Michael DuPont wrote: > Added this to the cwm main : > if __name__ == '__main__': > import os > try : > print 'going to import Psyco ' > import psyco > # psyco.profile() > print 'After import Psyco ' > except: > print 'Psyco not found, ignoring it' > # import urlparse > doCommand() I assume that you know that if psyco.profile() is commented out, and you don't do a psyco.full() either, then the only way to have Psyco actually do anything at all is by selecting individual functions with psyco.bind() or psyco.proxy(). > I have increase the ram by 2 > # define MALLOC_BIGBUFFER PAGESIZE*16384*2 > and added in some diagnostics Ok. This is in linuxmemchk.c, which is a memory usage checker based on the same principles as Electric Fence. It was very useful at some point of the development of Psyco but nowadays I don't really activate it any more. Armin |
From: James M. D. <mdu...@ya...> - 2003-09-10 11:01:25
|
Dear All, I have been experimenting with cwmclone, a prolog based cwm tool. http://www.unc.edu/~bparsia/sw/cwmclone/cwmclone.html It seems that it is much faster in parsing the n3 from the introspector, and it might be a much more useful tool in terms of logical programming than cwm. At least I hope to be able to convert the n3 statements into prolog statements directy and forgo any cwm like code to begin with. I have had problems with cwm in general, not being able to do programs that manipulate the rules themselves. It seems that meta-logical programming in cwm is a long way off. Prolog is much more well researched on that aspect. That is why I would like to call out to all you people who are using prolog or have some experiece with it to speak up now and tell me what you are doing. I will be posting some first tests soon with the cwm and prolog. I know that marioluca was doing something intersting with this.... 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-10 00:53:15
|
Sorry for the spam, but wanted to send to some interested people here have started porting cwm to psycho and want to optimize it. Pscho is the best thing to find for cwm, it promises a faster execution. Was thinking about splicing the code into many different threads with shared memory structures. Split it into many multithreaded processes that all execute on part of a distributed messagepassing execution engine. That would save some time with the same rules that are running constantly, just refreshing the via rdf pipes. Each mini server doing one task like exporting data or importing data. The exchange could be like what peter was talking about. Basically each one will be running only on sub process of the main engine. anyway, here is the changes to pyscho and the cwm to get them talking Added this to the cwm main : if __name__ == '__main__': import os try : print 'going to import Psyco ' import psyco # psyco.profile() print 'After import Psyco ' except: print 'Psyco not found, ignoring it' # import urlparse doCommand() had to add more memory into the psyco for the baby. python ~/cwm/snapshot/cwm1.82/cwm.py _yyparse-clean.n3 > _yyparse-cwm.n3 psyco: init: activated module __builtin__ psyco: init: activated module array psyco: init: activated module math psyco: running in debugging mode python: c/linuxmemchk.c:31: _na_find: Assertion `_na_start+4096 <= data && data < _na_start+4096*16384-4096' failed. Aborted I have increase the ram by 2 # define MALLOC_BIGBUFFER PAGESIZE*16384*2 and added in some diagnostics //MDUPONT assert(_na_start+PAGESIZE <= data && // data < _na_start+MALLOC_BIGBUFFER-PAGESIZE); if (!(_na_start+PAGESIZE <= data && data < _na_start+MALLOC_BIGBUFFER-PAGESIZE)) { fprintf(stderr, "DEBUG _na_start:%ld _pagesize:%ld data %ld bigbuffer %ld\n",_na_start,PAGESIZE,data,MALLOC_BIGBUFFER); assert(0); } ===== 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-09 17:29:31
|
Attached you will find a copy of the patent text for the interfaces that dotgnu is trying feverishly trying to implement, at the cost of losing any criticial thought and creativity in the project. One of the things in the mail that I mentioned, upon which rhys decided to ban me from pnet-developers was a criticism of his plan to develop non-standard components, the issue was with CodeDom. http://dotgnu.org/pipermail/pnet-developers/2003-August/000511.html CodeDom is not only patented, but also REALLY BAD. The introspector project that is will be providing free and creative competition to this SICK interafce is shunned by the dotgnu team for questionable reasons. Yet they are planning on implementing patented interfaces. No wonder they are trying to GAG and discriminate against anyone with critical and rational mind left in the project, who have not been driven off yet. But the current dotgnu competition is running to get WinForms implementations going. This is also under the patent application. I think is it strange that the leaders of dotgnu are putting so much pressure to implement these non-standard, patented parts of dotnet, when the most basic and needed parts are not even running correctly, The System.xml for example. I was repeated asked to help implement WindowsForms parts, again patented interfaces. The testing that I have done on the Webservices, and the pnet/C compiler that rhys does not appeciate where getting at least the dotgnu's own technology running, not copying patentend interfaces. I think that my banning was discrimination. I think that the leaders of dotgnu are trying to squeeze out any rational and critical minds left in the project. Driving out all creativity and people who question the bad judgement, leaving you with a bunch on yes men. ----------------------------------------------------------------------- ( 1 of 1 ) United States Patent Application 20030028685 Kind Code A1 Smith, Adam W. ; et al. February 6, 2003 Application program interface for network software platform Abstract An application program interface (API) provides a set of functions for application developers who build Web applications on Microsoft Corporation's .NET.TM. platform. Inventors: Smith, Adam W.; (Redmond, WA) ; Moore, Anthony J.; (Seattle, WA) ; Hejlsberg, Anders; (Seattle, WA) ; LaMacchia, Brian A.; (Bellevue, WA) ; Dockter, Blaine J.; (Bellevue, WA) ; Grunkemeyer, Brian M.; (Issaquah, WA) ; Pepin, Brian K.; (Seattle, WA) ; Doise, Caleb L.; (Bellevue, WA) ; Brumme, Christopher W.; (Mercer Island, WA) ; Royal, Chad W.; (Redmond, WA) ; Anderson, Christopher L.; (Issaquah, WA) ; Feuerstein, Corina E.; (Redmond, WA) ; Sinclair, Craig T.; (Sammamish, WA) ; Dedu-Constantin, Daniel; (Redmond, WA) ; Takacs, Daniel; (Bellevue, WA) ; Ebbo, David S.; (Redmond, WA) ; Mortenson, David S.; (Redmond, WA) ; Christensen, Erik B.; (Seattle, WA) ; Olson, Erik B.; (Sammamish, WA) ; Yeon, Fabio A.; (Mill Creek, WA) ; Della-Libera, Giovanni M.; (Seattle, WA) ; Kakivaya, Gopala Krishna R.; (Sammamish, WA) ; Fee, Gregory D.; (Seattle, WA) ; Ramadan, Hany E.; (Kirkland, WA) ; Rajan, Jayanth V.; (Bellevue, WA) ; Cooperstein, Jeffrey M.; (Bellevue, WA) ; Hawkins, Jonathan C.; (Seattle, WA) ; Hogg, James H.; (Bellevue, WA) ; Long, Joe D.; (Woodinville, WA) ; McConnell, John I.; (Kirkland, WA) ; Ruiz-Scougall, Jesus; (Redmond, WA) ; Miller, James S.; (Bellevue, WA) ; Bennett, Julie D.; (Medina, WA) ; Fang, Jun; (Sammamish, WA) ; Cwalina, Krzysztof J.; (Redmond, WA) ; Ballinger, Keith W.; (North Bend, WA) ; Olson, Lance E.; (Sammamish, WA) ; Kohnfelder, Loren M.; (Bellevue, WA) ; Bolognese, Luca; (Redmond, WA) ; Vasandani, Manu; (Bellevue, WA) ; Anders, Mark T.; (Bellevue, WA) ; Ashton, Mark P.; (Kent, WA) ; Boulter, Mark A.; (Redmond, WA) ; Fussell, Mark W.; (Sammamish, WA) ; Magruder, Michael M.; (Sammamish, WA) ; Prabhu, Manish S.; (Redmond, WA) ; Rajpal, Neetu; (Redmond, WA) ; Kothari, Nikhil; (Sammamish, WA) ; Sampathkumar, Nithyalakshmi; (Bellevue, WA) ; Kramer, Nicholas M.; (Seattle, WA) ; Gazitt, Omri; (Redmond, WA) ; Palanca, Radu Rares; (Redmond, WA) ; Krishnaswamy, Raja; (Bellevue, WA) ; Howard, Robert M.; (Snoqualmie, WA) ; Krishnaswamy, Ramasamy; (Redmond, WA) ; Burke, Shawn P.; (Kirkland, WA) ; Guthrie, Scott D.; (Bellevue, WA) ; Trowbridge, Sean E.; (Sammamish, WA) ; Demsey, Seth M.; (Kirkland, WA) ; Dasan, Shajan; (Sammamish, WA) ; Oak, Subhag P.; (Redmond, WA) ; Nivarthi, Sreeram; (Sammamish, WA) ; Pharies, Stefan H.; (Seattle, WA) ; Cook, Suzanne M.; (Redmond, WA) ; Warren, Susan M.; (Carnation, WA) ; Anand, Tarun; (US) ; Muhlestein, Travis J.; (Redmond, WA) ; Adams, William A.; (Bellevue, WA) ; Leshinsky, Yan; (Bellevue, WA) ; Christensen, Yann E.; (Seattle, WA) ; Lin, Yung-shin; (Sammamish, WA) ; Miller, Stephen J.; (Edmonds, WA) ; Roxe, Joseph; (Hanover, NH) ; Boshier, Alan; (Redmond, WA) ; Sanders, Henry L.; (Kirkland, WA) ; Bau, David; (Gladwyne, PA) Correspondence Name and Address: LEE & HAYES PLLC 421 W RIVERSIDE AVENUE SUITE 500 SPOKANE WA 99201 Serial No.: 087027 Series Code: 10 Filed: February 28, 2002 U.S. Current Class: 709/328 U.S. Class at Publication: 709/328 Intern'l Class: G06F 009/00; G06F 009/46 Claims 1. A software architecture for a distributed computing system comprising: an application configured to handle requests submitted by remote devices over a network; and an application program interface to present functions used by the application to access network and computing resources of the distributed computing system. 2. A software architecture as recited in claim 1, wherein the distributed computing system comprises client devices and server devices that handle requests from the client devices, the remote devices comprising at least one client device. 3. A software architecture as recited in claim 1, wherein the distributed computing system comprises client devices and server devices that handle requests from the client devices, the remote devices comprising at least one server device that is configured as a Web server. 4. A software architecture as recited in claim 1, wherein the application program interface comprises: a first group of services related to creating Web applications; a second group of services related to constructing client applications; a third group of services related to data and handling XML documents; and a fourth group of services related to base class libraries. 5. An application program interface embodied on one or more computer readable media, comprising: a first group of services related to creating Web applications; a second group of services related to constructing client applications; a third group of services related to data and handling XML documents; and a fourth group of services related to base class libraries. 6. An application program interface as recited in claim 5, wherein the first group of services comprises: first functions that enable construction and use of Web services; second functions that enable temporary caching of frequently used resources; third functions that enable initial configuration; fourth functions that enable creation of controls and Web pages; fifth functions that enable security in Web server applications; and sixth functions that enable access to session state values. 7. An application program interface as recited in claim 5, wherein the second group of services comprises: first functions that enable creation of windowing graphical user interface environments; and second functions that enable graphical functionality. 8. An application program interface as recited in claim 5, wherein the third group of services comprises: first functions that enable management of data from multiple data sources; and second functions that enable XML processing. 9. An application program interface as recited in claim 5, wherein the fourth group of services comprises: first functions that enable definitions of various collections of objects; second functions that enable programmatic access to configuration settings and handling of errors in configuration files; third functions that enable application debugging and code execution tracing; fourth functions that enable customization of data according to cultural s5 related information; fifth functions that enable input/output of data; sixth functions that enable a programming interface to network protocols; seventh functions that enable a managed view of types, methods, and fields; eighth functions that enable creation, storage and management of various culture-specific resources; ninth functions that enable system security and permissions; tenth functions that enable installation and running of services; eleventh functions that enable character encoding; twelfth functions that enable multi-threaded programming; and thirteenth functions that facilitate runtime operations. 10. A network software architecture comprising the application program interface as recited in claim 5. 11. A distributed computer software architecture, comprising: one or more applications configured to be executed on one or more computing devices, the applications handling requests submitted from remote computing devices; a networking platform to support the one or more applications; and an application programming interface to interface the one or more applications with the networking platform. 12. A distributed computer software architecture as recited in claim 11, further comprising a remote application configured to be executed on one of the remote computing devices, the remote application using the application programming interface to access the networking platform. 13. A distributed computer software architecture as recited in claim 11, wherein the application programming interface comprises: a first group of services related to creating Web applications; a second group of services related to constructing client applications; a third group of services related to data and handling XML documents; and a fourth group of services related to base class libraries. 14. A distributed computer software architecture as recited in claim 11, wherein the application programming interface exposes multiple functions comprising: first functions that enable construction and use of Web services; second functions that enable temporary caching of frequently used resources; third functions that enable initial configuration; fourth functions that enable creation of controls and Web pages; fifth functions that enable security in Web server applications; and sixth functions that enable access to session state values. 15. A distributed computer software architecture as recited in claim 11, wherein the application programming interface exposes multiple functions comprising: first functions that enable creation of windowing graphical user interface environments; and second functions that enable graphical functionality. 16. A distributed computer software architecture as recited in claim 11, wherein the application programming interface exposes multiple functions comprising: first functions that enable management of data from multiple data sources; and second functions that enable XML processing. 17. A distributed computer software architecture as recited in claim 11, wherein the application programming interface exposes multiple functions comprising: first functions that enable definitions of various collections of objects; second functions that enable programmatic access to configuration settings and handling of errors in configuration files; third functions that enable application debugging and code execution tracing; fourth functions that enable customization of data according to cultural related information; fifth functions that enable input/output of data; sixth functions that enable a programming interface to network protocols; seventh functions that enable a managed view of loaded types, methods, and fields; eighth functions that enable creation, storage and management of various culture-specific resources; ninth functions that enable system security and permissions; tenth functions that enable installation and running of services; eleventh functions that enable character encoding; twelfth functions that enable multi-threaded programming; and thirteenth functions that facilitate runtime operations. 18. A computer system including one or more microprocessors and one or more software programs, the one or more software programs utilizing an application program interface to request services from an operating system, the application program interface including separate commands to request services consisting of the following groups of services: A. a first group of services related to creating Web applications: constructing Web services; temporary caching resources; performing initial configuration; creating controls and Web pages; enabling security in Web server applications; accessing session state values; B. a second group of services related to constructing client applications: creating windowing graphical user interface environments; enabling graphical functionality; C. a third group of services related to data and handling XML documents: enabling management of data from multiple data sources; second functions that enable XML processing. D. a fourth group of services related to base class libraries: defining various collections of objects; accessing configuration settings and handling errors in configuration files; debugging and tracing code execution; customizing data according to cultural related information; inputting and outputting of data; enabling a programming interface to network protocols; viewing loaded types, methods, and fields; creating, storing and managing various culture-specific resources; enabling system security and permissions; installing and running services; enabling character encoding; enabling multi-threaded programming; and facilitating runtime operations. 19. A system comprising: means for exposing a first set of functions that enable browser/server communication; means for exposing a second set of functions that enable drawing and construction of client applications; means for exposing a third set of functions that enable connectivity to data sources and XML functionality; and means for exposing a fourth set of functions that enable system and runtime functionality. 20. A system as recited in claim 19, wherein the first set of functions comprises: first functions that enable construction and use of Web services; second functions that enable temporary caching of frequently used resources; third functions that enable initial configuration; fourth functions that enable creation of controls and Web pages; fifth functions that enable security in Web server applications; and sixth functions that enable access to session state values. 21. A system as recited in claim 19, wherein the second set of functions comprises: first functions that enable creation of windowing graphical user interface environments; and second functions that enable graphical functionality. 22. A system as recited in claim 19, wherein the third set of functions comprises: first functions that enable management of data from multiple data sources; and second functions that enable XML processing. 23. A system as recited in claim 19, wherein the fourth set of functions comprises: first functions that enable definitions of various collections of objects; second functions that enable programmatic access to configuration settings and handling of errors in configuration files; third functions that enable application debugging and code execution tracing; fourth functions that enable customization of data according to cultural related information; fifth functions that enable input/output of data; sixth functions that enable a programming interface to network protocols; seventh functions that enable a managed view of loaded types, methods, and fields; eighth functions that enable creation, storage and management of various culture-specific resources; ninth functions that enable system security and permissions; tenth functions that enable installation and running of services; eleventh functions that enable character encoding; twelfth functions that enable multi-threaded programming; and thirteenth functions that facilitate runtime operations. 24. A method, comprising: managing network and computing resources for a distributed computing system; and exposing a set of functions that enable developers to access the network and computing resources of the distributed computing system, the set of functions comprising first functions to facilitate browser/server communication, second functions to facilitate construction of client applications, third functions to facilitate connectivity to data sources and XML functionality, and fourth functions to access system and runtime resources. 25. A method as recited in claim 24, further comprising receiving a request from a remote computing device, the request containing a call to at least one of the first, second, third, and fourth functions. 26. A method, comprising: creating a first namespace with functions that enable browser/server communication; creating a second namespace with functions that enable drawing and construction of client applications; creating a third namespace with functions that enable connectivity to data sources and XML functionality; and creating a fourth namespace with functions that enable system and runtime functionality. 27. A method as recited in claim 26, wherein the first namespace defines classes that facilitate: construction and use of Web services; temporary caching of resources; initial configuration; creation of controls and Web pages; security in Web server applications; and access to session state values. 28. A method as recited in claim 26, wherein the second namespace defines classes that facilitate: creation of windowing graphical user interface environments; and graphical functionality. 29. A method as recited in claim 26, wherein the third namespace defines classes that facilitate: management of data from multiple data sources; and processing of XML documents. 30. A method as recited in claim 26, wherein the fourth namespace defines classes that facilitate: programmatic access to configuration settings and handling of errors in configuration files; application debugging and code execution tracing; customization of data according to cultural related information; inputting and outputting of data; interfacing to network protocols; viewing loaded types, methods, and fields; creation, storage and management of various culture-specific resources; system security and permissions; installation and running of services; character encoding; multi-threaded programming; and runtime operations. 31. A method, comprising: calling one or more first functions to facilitate browser/server communication; calling one or more second functions to facilitate construction of client applications; calling one or more third functions to facilitate connectivity to data sources and XML functionality; and calling one or more fourth functions to access system and runtime resources. 32. A method as recited in claim 36, wherein the first functions comprise functions for construction and use of Web services, temporary caching of resources, initial configuration, creation of controls and pages that will appear as user interfaces, securing Web server applications, and accessing session state values. 33. A method as recited in claim 36, wherein the second functions comprise functions for creation of windowing graphical user interface environments, and graphical functionality. 34. A method as recited in claim 36, wherein the third functions comprise functions for management of data from multiple data sources, and XML processing. 35. A method as recited in claim 36, wherein the fourth functions comprise functions for programmatic access to configuration settings, application debugging and code execution tracing, customization of text according to cultural related information, synchronous and asynchronous reading from and writing to data streams and files, creation and management of various culture-specific resources, system security and permissions, installation and running of services, character encoding, and multi-threaded programming. 36. A method, comprising: receiving one or more calls to one or more first functions to facilitate browser/server communication; receiving one or more calls to one or more second functions to facilitate construction of client applications; receiving one or more calls to one or more third functions to facilitate connectivity to data sources and XML functionality; and receiving one or more calls to one or more fourth functions to access system and runtime resources. 37. A method as recited in claim 31, wherein the first functions comprise functions for construction and use of Web services, temporary caching of resources, initial configuration, creation of controls and pages that will appear as user interfaces, securing Web server applications, and accessing session state values. 38. A method as recited in claim 31, wherein the second functions comprise functions for creation of windowing graphical user interface environments, and graphical functionality. 39. A method as recited in claim 31, wherein the third functions comprise functions for management of data from multiple data sources, and XML processing. 40. A method as recited in claim 31, wherein the fourth functions comprise functions for programmatic access to configuration settings, application debugging and code execution tracing, customization of text according to cultural related information, synchronous and asynchronous reading from and writing to data streams and files, creation and management of various culture-specific resources, system security and permissions, installation and running of services, character encoding, and multi-threaded programming. 41. A method for exposing resources using an application program interface, comprising: A. exposing a first group of services related to creating Web applications, including: constructing Web services; temporary caching resources; performing initial configuration; creating controls and Web pages; enabling security in Web server applications; accessing session state values; B. exposing a second group of services related to constructing client applications, including: creating windowing graphical user interface environments; enabling graphical functionality; C. exposing a third group of services related to data and handling XML documents, including: enabling management of data from multiple data sources; second functions that enable XML processing. D. exposing a fourth group of services related to base class libraries, including: defining various collections of objects; accessing configuration settings and handling errors in configuration files; debugging and tracing code execution; customizing data according to cultural related information; inputting and outputting of data; enabling a programming interface to network protocols; viewing loaded types, methods, and fields; creating, storing and managing various culture-specific resources; enabling system security and permissions; installing and running services; enabling character encoding; enabling multi-threaded programming; and facilitating runtime operations. 42. A method of organizing a set of types into a hierarchical namespace comprising: creating a plurality of groups from the set of types, each group containing at least one type that exposes logically related functionality; assigning a name to each group in the plurality; and selecting a top level identifier and prefixing the name of each group with the top level identifier so that the types in each group are referenced by a hierarchical name that includes the selected top level identifier prefixed to the name of the group containing the type. 43. A system comprising: a set of types, each type comprising one of a delegate, an enumeration, an interface, a class, and a structure; and a namespace defined by the set of types to provide access to logically related functionality of a computing system. Description RELATED APPLICATIONS [0001] This application is a continuation of application Ser. No. 09/902,936 entitled "Application Program Interface for Network Software Platform", filed Jul. 10, 2001 (now abandoned). [0002] This relates to the following six patents, all of which are incorporated herein by reference: [0003] U.S. Pat. No. ______, entitled "Application Program Interface for Network Software Platform", which issued ______ from application Ser. No. 09/902,811, filed Jul. 10, 2001. (Attorney's Docket No. MS1-862US) [0004] U.S. Pat. No. ______, entitled "Application Program Interface for Network Software Platform", which issued ______ from application Ser. No. 09/902,809, filed Jul. 10, 2001. (Attorney's Docket No. MS1-863US) [0005] U.S. Pat. No. ______, entitled "Application Program Interface for Network Software Platform", which issued ______ from application Ser. No. 09/902,560, filed Jul. 10, 2001. (Attorney's Docket No. MS1-864US) [0006] U.S. Pat. No. ______, entitled "Application Program Interface for Network Software Platform", which issued ______ from application Ser. No. 09/902,810, filed Jul. 10, 2001. (Attorney's Docket No. MS1-865US) [0007] U.S. Pat. No. ______, entitled "Application Program Interface for Network Software Platform", which issued ______ from application Ser. No. 09/902,812, filed Jul. 10, 2001. (Attorney's Docket No. MS1-866US) [0008] U.S. Pat. No. ______, entitled "Application Program Interface for Network Software Platform", which issued ______ from application Ser. No. 09/901,555, filed Jul. 10, 2001. (Attorney's Docket No. MS1-867US) TECHNICAL FIELD [0009] This invention relates to network software, such as Web applications, and to computer software development of such network software. More particularly, this i. invention relates to an application program interface (API) that facilitates use of a network software platform by application programs and computer hardware. BACKGROUND [0010] Very early on, computer software came to be categorized as "operating system" software or "application" software. Broadly speaking, an application is software meant to perform a specific task for the computer user such as solving a mathematical equation or supporting word processing. The operating system is the software that manages and controls the computer hardware. The goal of the operating system is to make the computer resources available to the application programmer while at the same time, hiding the complexity necessary to actually control the hardware. [0011] The operating system makes the resources available via functions that are collectively known as the Application Program Interface or API. The term API is also used in reference to a single one of these functions. The functions are often grouped in terms of what resource or service they provide to the application programmer. Application software requests resources by calling individual API functions. API functions also serve as the means by which messages and information provided by the operating system are relayed back to the application software. [0012] In addition to changes in hardware, another factor driving the evolution of operating system software has been the desire to simplify and speed application software development. Application software development can be a daunting task, sometimes requiring years of developer time to create a sophisticated program with millions of lines of code. For a popular operating system such as Microsoft Windows.RTM., application software developers write thousands of different applications each year that utilize the operating system. A coherent and usable operating system base is required to support so many diverse application developers. [0013] Often, development of application software can be made simpler by making the operating system more complex. That is, if a function may be useful to several different application programs, it may be better to write it once for inclusion in the operating system, than requiring dozens of software developers to write it dozens of times for inclusion in dozens of different applications. In this manner, if the operating system supports a wide range of common functionality required by a number of applications, significant savings in applications software development costs and time can be achieved. [0014] Regardless of where the line between operating system and application software is drawn, it is clear that for a useful operating system, the API between the operating system and the computer hardware and application software is as important as efficient internal operation of the operating system itself. [0015] Over the past few years, the universal adoption of the Internet, and networking technology in general, has changed the landscape for computer software developers. Traditionally, software developers focused on single-site software applications for standalone desktop computers, or LAN-based computers that were connected to a limited number of other computers via a local area network (LAN). Such software applications were typically referred to as "shrink wrapped" products because the software was marketed and sold in a shrink-wrapped package. The applications utilized well-defined APIs to access the underlying operating system of the computer. [0016] As the Internet evolved and gained widespread acceptance, the industry began to recognize the power of hosting applications at various sites on the World Wide Web (or simply the "Web"). In the networked world, clients from anywhere could submit requests to server-based applications hosted at diverse locations and receive responses back in fractions of a second. These Web applications, however, were typically developed using the same operating system platform that was originally developed for standalone computing machines or locally networked computers. Unfortunately, in some instances, these applications do not adequately transfer to the distributed computing regime. The underlying platform was simply not constructed with the idea of supporting limitless numbers of interconnected computers. [0017] To accommodate the shift to the distributed computing environment being ushered in by the Internet, Microsoft Corporation is developing a network software platform known as the ".NET" platform (read as "Dot Net"). The platform allows developers to create Web services that will execute over the Internet. Such a dynamic shift requires a new ground-up design of an entirely new API. [0018] In response to this challenge, the inventors developed a unique set of API functions for Microsoft's .NET.TM. platform. SUMMARY [0019] An application program interface (API) provides a set of functions for application developers who build Web applications on a network platform, such as Microsoft Corporation's .NET.TM. platform. BRIEF DESCRIPTION OF THE DRAWINGS [0020] The same numbers are used throughout the drawings to reference like features. [0021] FIG. 1 illustrates a network architecture in which clients access Web services over the Internet using conventional protocols. [0022] FIG. 2 is a block diagram of a software architecture for Microsoft's .NTM.TM. platform, which includes an application program interface (API). [0023] FIG. 3 is a block diagram of unique namespaces supported by the APT, as well as function classes of the various API functions. [0024] FIG. 4 is a block diagram of an exemplary computer that may execute all or part of the software architecture. BRIEF DESCRIPTION OF ACCOMPANYING COMPACT DISC [0025] Accompanying this specification is a duplicative set of compact discs, identified as "Copy 1" and "Copy 2". Each disc stores a compiled HTML help file identifying the API (application program interface) for Microsoft's .NET.TM. network platform. The file is named "cpref.chm" and was created on Jun. 8, 2001. It is 30.81 Mbytes in size. The file can be executed on a Windows.RTM.-based computing device (e.g., IBM-PC, or equivalent) that executes a Windows.RTM.-brand operating system (e.g., Windows.RTM. NT, Windows.RTM. 98, Windows.RTM. 2000, etc.). The compiled HTML help file stored on the compact disc is hereby incorporated by reference. The compact disc itself is a CD-ROM, and conforms to the ISO 9660 standard. [0026] Additionally, each compact disc stores 94 separate text files named "NamespaceName.txt" which contain the APIs listed in the compiled HTML help file. The text files comply with the ASCII format and may be read using a Windows.RTM.-based computing device (e.g., IBM-PC, or equivalent) that executes a Windows.RTM.-brand operating system (e.g., Windows.RTM. NT, Windows.RTM. 98, Windows.RTM. 2000, etc.). The text files stored on the compact disc are hereby incorporated by reference. 1 System.Windows.Forms.txt 2,463,923 Jul. 6, 2001 System.CodeDom.Compiler.txt 163,205 Jul. 6, 2001 System.ComponentModel.Design.txt 229,762 Jul. 6, 2001 System.Configuration.Assemblies.txt 6,457 Jul. 6, 2001 System.ComponentModel.txt 534,420 Jul. 6, 2001 System.ComponentModel.Design.Serialization. 56,951 Jul. 6, 2001 txt System.Configuration.txt 24,160 Jul. 6, 2001 System.txt 1,372,604 Jul. 6, 2001 System.Net.txt 284,291 Jul. 6, 2001 System.Collections.txt 177,639 Jul. 6, 2001 System.Globalization.txt 331,753 Jul. 6, 2001 System.Net.Sockets.txt 137,612 Jul. 6, 2001 System.Collections.Specialized.txt 99,154 Jul. 6, 2001 System.Xml.Schema.txt 122,405 Jul. 6, 2001 System.Xml.Serializatio- n.txt 224,452 Jul. 6, 2001 System.Xml.XPath.txt 56,553 Jul. 6, 2001 System.Xml.txt 416,578 Jul. 6, 2001 System.Xml.Xsl.txt 3,552 Jul. 6, 2001 System.Data.Common.txt 114,227 Jul. 7, 2001 System.Data.OleDb.txt 155,509 Jul. 7, 2001 System.Data.SqlClient.txt 121,455 Jul. 7, 2001 System.Data.SqlTypes.txt 352,862 Jul. 7, 2001 System.Diagnostics.txt 399,479 Jul. 7, 2001 System.DirectoryServices.txt 98,856 Jul. 7, 2001 System.Drawing.Design.txt 89,887 Jul. 7, 2001 System.Drawing.Drawing2D.txt 212,421 Jul. 7, 2001 System.Reflection.txt 298,065 Jul. 7, 2001 System.Drawing.txt 702,023 Jul. 7, 2001 System.Drawing.Imaging.txt 232,591 Jul. 7, 2001 System.Drawing.Printing.txt 142,134 Jul. 7, 2001 System.Drawing.Text.txt 8,501 Jul. 7, 2001 System.EnterpriseServic- es.txt 138,609 Jul. 8, 2001 System.IO.txt 308,389 Jul. 7, 2001 System.Resources.txt 70,121 Jul. 7, 2001 System.IO.IsolatedStora- ge.txt 56,779 Jul. 7, 2001 System.Messaging.txt 342,690 Jul. 7, 2001 System.Reflection.Emit.txt 352,613 Jul. 7, 2001 System.Runtime.CompilerServices.txt 20,020 Jul. 7, 2001 System.Runtime.InteropServices.Expando.txt 1,497 Jul. 7, 2001 System.Runtime.InteropServices.txt 389,509 Jul. 7, 2001 System.Runtime.Remoting.Activation.txt 12,595 Jul. 7, 2001 System.Runtime.Remoting.Channels.txt 116,351 Jul. 7, 2001 System.Runtime.Remoting.Channels.Http.txt 36,192 Jul. 7, 2001 System.Runtime.Remoting.Channels.Tcp.txt 24,032 Jul. 7, 2001 System.Runtime.Remoting.Contexts.txt 43,554 Jul. 7, 2001 System.Runtime.Remoting.txt 112,724 Jul. 7, 2001 System.Runtime.Remoting.Lifetime.txt 14,216 Jul. 7, 2001 System.Runtime.Remoting.Messaging.txt 69,733 Jul. 7, 2001 System.Runtime.Remoting.Metadata.txt 10,824 Jul. 7, 2001 System.Runtime.Remoting.Metadata. 58,782 Jul. 7, 2001 W3cXsd2001.txt System.Runtime.Remoting.MetadataServices. 15,165 Jul. 7, 2001 txt System.Runtime.Remoting.Proxies.txt 12,034 Jul. 7, 2001 System.Runtime.Remoting.Services.txt 13,600 Jul. 7, 2001 System.Runtime.Serialization.Formatters. 9,694 Jul. 7, 2001 Binary.txt System.Runtime.Serialization.Formatters.txt 16,288 Jul. 7, 2001 System.Runtime.Serialization.txt 122,559 Jul. 7, 2001 System.Runtime.Serialization.Formatters.Soap. 9,712 Jul. 7, 2001 txt System.Security.Cryptography.txt 250,786 Jul. 7, 2001 System.Security.Cryptography.X509 26,564 Jul. 7, 2001 Certificates.txt System.Configuration.Install.txt 57,485 Jul. 8, 2001 System.Security.Permissions.txt 206,364 Jul. 7, 2001 System.Security.txt 83,229 Jul. 7, 2001 System.Security.Policy.txt 162,414 Jul. 7, 2001 System.Text.txt 130,394 Jul. 7, 2001 System.Security.Principal.txt 27,479 Jul. 7, 2001 System.ServiceProcess.txt 77,072 Jul. 7, 2001 System.Text.RegularExpressions.txt 76,478 Jul. 7, 2001 System.Threading.txt 111,902 Jul. 7, 2001 System.Timers.txt 10,381 Jul. 7, 2001 System.Windows.Forms.Design.txt 168,099 Jul. 7, 2001 System.Web.txt 237,045 Jul. 9, 2001 System.Diagnostics.Symb- olStore.txt 51,472 Jul. 8, 2001 System.Management.txt 255,522 Jul. 8, 2001 System.Management.Instrumentation.txt 14,199 Jul. 8, 2001 System.Web.Caching.txt 26,389 Jul. 9, 2001 System.Web.Configuration.txt 7,820 Jul. 9, 2001 System.Web.Hosting.txt 13,234 Jul. 9, 2001 System.Web.Mail.txt 11,187 Jul. 9, 2001 System.Web.Security.txt 77,598 Jul. 9, 2001 System.Web.Services.txt 20,955 Jul. 9, 2001 System.Web.Services.Configuration.txt 8,242 Jul. 9, 2001 System.Web.Services.Description.txt 215,516 Jul. 9, 2001 System.Web.Services.Discovery.txt 80,061 Jul. 9, 2001 System.Web.Services.Protocols.txt 171,896 Jul. 9, 2001 System.Web.SessionState.txt 5,064 Jul. 9, 2001 System.Web.UI.txt 254,142 Jul. 9, 2001 System.Web.UI.Design.txt 120,182 Jul. 9, 2001 System.Web.UI.Design.WebControls.txt 77,222 Jul. 9, 2001 System.Web.UI.HtmlControls.txt 62,508 Jul. 9, 2001 System.Web.UI.WebControls.txt 607,903 Jul. 9, 2001 System.CodeDom.txt 233,760 Jul. 9, 2001 System.Data.txt 440,804 Jul. 9, 2001 System.EnterpriseServices.Compensating 24,077 Jul. 9, 2001 ResourceManager.txt System.Security.Cryptography.Xml.t- xt 86,585 Jul. 9, 2001 [0027] Also, each compact disc stores a file entitled "Common Language Runtime Specification" that contains the following Word.RTM. documents, their sizes, and date of creation: 2 Document Format Information 1 KB Jul. 9, 2001 Glossary 80 KB May 17, 2001 Partition I Architecture 3,350 KB May 17, 2001 Partition II Metadata 10,494 KB May 17, 2001 Partition III CIL 1,107 KB May 17, 2001 Partition IV Library 1,332 KB May 17, 2001 Partition V Annexes 1,036 KB May 17, 2001 WDO5-Review 4,690 KB May 17, 2001 [0028] The Common Language Runtime Specification (inclusive of all documents above) is incorporated by reference. DETAILED DESCRIPTION [0029] This disclosure addresses an application program interface (API) for a network platform upon which developers can build Web applications and services. More particularly, an exemplary API is described for the .NET.TM. platform created by Microsoft Corporation. The .NET.TM. platform is a software platform for Web services and Web applications implemented in the distributed computing environment. It represents the next generation of Internet computing, using open communication standards to communicate among loosely coupled Web services that are collaborating to perform a particular task. [0030] In the described implementation, the .NET.TM. platform utilizes XML (extensible markup language), an open standard for describing data. XML is managed by the World Wide Web Consortium (W3C). XML is used for defining data elements on a Web page and business-to-business documents. XML uses a similar tag structure as HTML; however, whereas HTML defines how elements are displayed, XML defines what those elements contain. HTML uses predefined tags, but XML allows tags to be defined by the developer of the page. Thus, virtually any data items can be identified, allowing Web pages to function like database records. Through the use of XML and other open protocols, such as Simple Object Access Protocol (SOAP), the .NET.TM. platform allows integration of a wide range of services that can be tailored to the needs of the user. Although the embodiments described herein are described in conjunction with XML and other open standards, such are not required for the operation of the claimed invention. Other equally viable technologies will suffice to implement the inventions described herein. [0031] As used herein, the phrase application program interface or API includes traditional interfaces that employ method or function calls, as well as remote calls (e.g., a proxy, stub relationship) and SOAP/XML invocations. [0032] Exemplary Network Environment [0033] FIG. 1 shows a network environment 100 in which a network platform, such as the .NET.TM. platform, may be implemented. The network environment 100 includes representative Web services 102(1), . . . , 102(N), which provide services that can be accessed over a network 104 (e.g., Internet). The Web services, referenced generally as number 102, are programmable application components that are reusable and interact programmatically over the network 104, typically through industry standard Web protocols, such as XML, SOAP, WAP (wireless application protocol), HTTP (hypertext transport protocol), and SMTP (simple mail transfer protocol) although other means of interacting with the Web services over the network may also be used, such as Remote Procedure Call (RPC) or object broker type technology. A Web service can be self-describing and is often defined in terms of formats and ordering of messages. [0034] Web services 102 are accessible directly by other services (as represented by communication link 106) or a software application, such as Web application 110 (as represented by communication links 112 and 114). Each Web service 102 is illustrated as including one or more servers that execute software to handle requests for particular services. Such services often maintain databases that store information to be served back to requesters. Web services may be configured to perform any one of a variety of different services. Examples of Web services include login verification, notification, database storage, stock quoting, location directories, mapping, music, electronic wallet, calendar/scheduler, telephone listings, news and information, games, ticketing, and so on. The Web services can be combined with each other and with other applications to build intelligent interactive experiences. [0035] The network environment 100 also includes representative client devices 120(1), 120(2), 120(3), 120(4), . . . , 120(M) that utilize the Web services 102 (as represented by communication link 122) and/or the Web application 110 (as represented by communication links 124, 126, and 128). The clients may communicate with one another using standard protocols as well, as represented by an exemplary XML link 130 between clients 120(3) and 120(4). [0036] The client devices, referenced generally as number 120, can be implemented many different ways. Examples of possible client implementations include, without limitation, portable computers, stationary computers, tablet PCs, televisions/set-top boxes, wireless communication devices, personal digital assistants, gaming consoles, printers, photocopiers, and other smart devices. [0037] The Web application 110 is an application designed to run on the network platform and may utilize the Web services 102 when handling and servicing requests from clients 120. The Web application 110 is composed of one or more software applications 130 that run atop a programming framework 132, which are executing on one or more servers 134 or other computer systems. Note that a portion of Web application 110 may actually reside on one or more of clients 120. Alternatively, Web application 110 may coordinate with other software on clients 120 to actually accomplish its tasks. [0038] The programming framework 132 is the structure that supports the applications and services developed by application developers. It permits multi-language development and seamless integration by supporting multiple languages. It supports open protocols, such as SOAP, and encapsulates the underlying operating system and object model services. The framework provides a robust and secure execution environment for the multiple programming languages and offers secure, integrated class libraries. [0039] The framework 132 is a multi-tiered architecture that includes an application program interface (API) layer 142, a common language runtime (CLR) layer 144, and an operating system/services layer 146. This layered architecture allows updates and modifications to various layers without impacting other portions of the framework. A common language specification (CLS) 140 allows designers of various languages to write code that is able to access underlying library functionality. The specification 140 functions as a contract between language designers and library designers that can be used to promote language interoperability. By adhering to the CLS, libraries written in one language can be directly accessible to code modules written in other languages to achieve seamless integration between code modules written in one language and code modules written in another language. One exemplary detailed implementation of a CLS is described in an ECMA standard created by participants in ECMA TC39/TG3. The reader is directed to the ECMA web site at www.ecma.ch. [0040] The API layer 142 presents groups of functions that the applications 130 can call to access the resources and services provided by layer 146. By exposing the API functions for a network platform, application developers can create Web applications for distributed computing systems that make full use of the network resources and other Web services, without needing to understand the complex interworkings of how those network resources actually operate or are made available. Moreover, the Web applications can be written in any number of programming languages, and translated into an intermediate language supported by the common language runtime 144 and included as part of the common language specification 140. In this way, the API layer 142 can provide methods for a wide and diverse variety of applications. [0041] Additionally, the framework 132 can be configured to support API calls placed by remote applications executing remotely from the servers 134 that host the framework. Representative applications 148(1) and 148(2) residing on clients 120(3) and 120(M), respectively, can use the API functions by making calls directly, or indirectly, to the API layer 142 over the network 104. [0042] The framework may also be implemented at the clients. Client 120(3) represents the situation where a framework 150 is implemented at the client. This framework may be identical to server-based framework 132, or modified for client purposes. Alternatively, the client-based framework may be condensed in the event that the client is a limited or dedicated function device, such as a cellular phone, personal digital assistant, handheld computer, or other communication/computing device. [0043] Developers' Programming Framework [0044] FIG. 2 shows the programming framework 132 in more detail. The common language specification (CLS) layer 140 supports applications written in a variety of languages 130(1), 130(2), 130(3), 130(4), . . . , 130(K). Such application languages include Visual Basic, C++, C#, COBOL, Jscript, Perl, Eiffel, Python, and so on. The common language specification 140 specifies a subset of features or rules about features that, if followed, allow the various languages to communicate. For example, some languages do not support a given type (e.g., an "int*" type) that might otherwise be supported by the common language runtime 144. In this case, the common language specification 140 does not include the type. On the other hand, types that are supported by all or most languages (e.g., the "int[ ]" type) is included in common language specification 140 so library developers are free to use it and are assured that the languages can handle it. This ability to communicate results in seamless integration between code modules written in one language and code modules written in another language. Since different languages are particularly well suited to particular tasks, the seamless integration between languages allows a developer to select a particular language for a particular code module with the ability to use that code module with modules written in different languages. The common language runtime 144 allow seamless multi-language development, with cross language inheritance, and provide a robust and secure execution environment for the multiple programming languages. For more information on the common language specification 140 and the common language runtime 144, the reader is directed to co-pending applications entitled "Method and System for Compiling Multiple Languages", filed Jun. 21, 2000 (Ser. No. 09/598,105) and "Unified Data Type System and Method" filed Jul. 10, 2000 (Ser. No. 09/613,289), which are incorporated by reference. [0045] The framework 132 encapsulates the operating system 146(1) (e.g., Windows.RTM.-brand operating systems) and object model services 146(2) (e.g., Component Object Model (COM) or Distributed COM). The operating system 146(1) provides conventional functions, such as file management, notification, event handling, user interfaces (e.g., windowing, menus, dialogs, etc.), security, authentication, verification, processes and threads, memory management, and so on. The object model services 146(2) provide interfacing with other objects to perform various tasks. Calls made to the API layer 142 are handed to the common language runtime layer 144 for local execution by the operating system 146(1) and/or object model services 146(2). [0046] The API 142 groups API functions into multiple namespaces. Namespaces essentially define a collection of classes, interfaces, delegates, enumerations, and structures, which are collectively called "types", that provide a specific set of related functionality. A class represents managed heap allocated data that has reference assignment semantics. A delegate is an object oriented function pointer. An enumeration is a special kind of value type that represents named constants. A structure represents static allocated data that has value assignment semantics. An interface defines a contract that other types can implement. [0047] By using namespaces, a designer can organize a set of types into a hierarchical namespace. The designer is able to create multiple groups from the set of types, with each group containing at least one type that exposes logically related functionality. In the exemplary implementation, the API 142 is organized into four root namespaces: a first namespace 200 for Web applications, a second namespace 202 for client applications, a third namespace 204 for data and XML, and a fourth namespace 206 for base class libraries (BCLs). Each group can then be assigned a name. For instance, types in the Web applications namespace 200 are assigned the name "Web", and types in the data and XML namespace 204 can be assigned names "Data" and "XML" respectively. The named groups can be organized under a single "global root" namespace for system level APIs, such as an overall System namespace. By selecting and prefixing a top level identifier, the types in each group can be easily referenced by a hierarchical name that includes the selected top level identifier prefixed to the name of the group containing the type. For instance, types in the Web applications namespace 200 can be referenced using the hierarchical name "System.Web". In this way, the individual namespaces 200, 202, 204, and 206 become major branches off of the System namespace and can carry a designation where the individual namespaces are prefixed with a designator, such as a "System." prefix. [0048] The Web applications namespace 200 pertains to Web based functionality, such as dynamically generated Web pages (e.g., Microsoft's Active Server Pages (ASP)). It supplies types that enable browser/server communication. The client applications namespace 202 pertains to drawing and client side UI functionality. It supplies types that enable drawing of two-dimensional (2D), imaging, and printing, as well as the ability to construct window forms, menus, boxes, and so on. [0049] The data and XML namespace 204 relates to connectivity to data sources and XML functionality. It supplies classes, interfaces, delegates, and enumerations that enable security, specify data types, and serialize objects into XML format documents or streams. The base class libraries (BCL) namespace 206 pertains to basic system and runtime functionality. It contains the fundamental types and base classes that define commonly-used value and reference data types, events and event handlers, interfaces, attributes, and processing exceptions. [0050] In addition to the framework 132, programming tools 210 are provided to assist the developer in building Web services and/or applications. One example of the programming tools 200 is Visual Studio.TM., a multi-language suite of programming tools offered by Microsoft Corporation. [0051] Root API Namespaces [0052] FIG. 3 shows the API 142 and its four root namespaces in more detail. In one embodiment, the namespaces are identified according to a hierarchical naming convention in which strings of names are concatenated with periods. For instance, the Web applications namespace 200 is identified by the root name "System.Web". Within the "Sytem.Web" namespace is another namespace for Web services, identified as "System.Web.Services", which further identifies another namespace for a description known as "System.Web.Services.Description". With this naming convention in mind, the ii following provides a general overview of selected namespaces of the API 142, although other naming conventions could be used with equal effect. [0053] The Web applications namespace 200 ("System.Web") defines additional namespaces, including: [0054] A services namespace 300 ("System.Web.Services") containing classes that enable a developer to build and use Web services. The services namespace 300 defines additional namespaces, including a description namespace 302 ("System.Web.Services.Description") containing classes that enable a developer to publicly describe a Web service via a service description language (such as WSDL, a specification available from the W3C), a discovery namespace 304 ("System.Web.Services.Discovery") containing classes that allow Web service consumers to locate available Web Services on a Web server, and a protocols namespace 306 ("System.Web.Services.Protocols") containing classes that define the protocols used to transmit data across a network during communication between Web service clients and the Web service itself. [0055] A caching namespace 308 ("System.Web.Caching") containing classes that enable developers to decrease Web application response time through temporarily caching frequently used resources on the server. This includes ASP.NET pages, web services, and user controls. (ASP.NET is the updated version of Microsoft's ASP technology.) Additionally, a cache dictionary is available for developers to store frequently used resources, such as hash tables and other data structures. [0056] A configuration namespace 310 ("System.Web.Configuration") containing classes that are used to read configuration data in for an application. [0057] A UI namespace 312 ("System.Web.UI") containing types that allow developers to create controls and pages that will appear in Web applications as user interfaces on a Web page. This namespace includes the control class, which provides all web based controls, whether those encapsulating HTML elements, higher level Web controls, or even custom User controls, with a common set of functionality. Also provided are classes which provide the web forms server controls data binding functionality, the ability to save the view state of a given control or page, as well as parsing functionality for both programmable and literal controls. Within the UI namespace 312 are two additional namespaces: an HTML controls namespace 314 ("System.Web.UI.HtmlControls") containing classes that permit developers to interact with types that encapsulates html 3.2 elemtents create HTML controls, and a Web controls namespace 316 ("System.Web.UI.WebIControls") containing classes that allow developers to create higher level Web controls. [0058] A security namespace 318 ("System.Web.Security") containing classes used to implement security in web server applications, such as basic authentication, challenge response authentication, and role based authentication. [0059] A session state namespace 320 ("System.Web.SessionState") containing classes used to access session state values (i.e., data that lives across requests for the lifetime of the session) as well as session-level settings and lifetime management methods. [0060] The client applications namespace 202 is composed of two namespaces: [0061] A windows forms namespace 322 ("System.Windows.Forms") containing classes for creating Windows.RTM.-based client applications that take full advantage of the rich user interface features available in the Microsoft Windows.RTM. operating system, such as the ability to drag and drop screen elements. Such classes may include wrapped APIs available in the Microsoft Windows.RTM. operating system that are used in a windowing UI environment. Within this namespace are a design namespace 324 ("System.Windows.Forms.Design") that contains classes to extend design-time support for Windows forms and a component model namespace 326 ("System.Windows.Forms.ComponentModel") that contains the windows form implementation of the general component model defined in System.ComponentModel. This namespace contains designer tools, such as Visual Studio, which offer a rich experience for developers at design time. [0062] A drawing namespace 328 ("System.Drawing") containing classes for graphics functionality. The drawing namespace 328 includes a 2D drawing namespace 330 ("System.Drawing.Drawing2D") that contains classes and enumerations to provide advanced 2-dimmensional and vector graphics functionality, an imaging namespace 332 ("System.Drawing.Imaging") that contains classes for advanced imaging functionality, a printing namespace 334 ("System.Drawing.Printing") that contains classes to permit developers to customize printing, and a text namespace 336 ("System.Drawing.Text") that contains classes for advanced typography functionality. [0063] The data and XML namespace 204 is composed of two namespaces: [0064] A data namespace 340 ("System.Data") containing classes that enable developers to build components that efficiently manage data from multiple data sources. It implements an architecture that, in a disconnected scenario (such as the Internet), provides tools to request, update, and reconcile data in multiple tier systems. The data namespace 340 includes a common namespace 342 that contains types shared by data providers. A data provider describes a collection of types used to access a data source, such as a database, in the managed space. The data namespace 340 also includes an OLE DB namespace 344 that contains types pertaining to data used in object-oriented databases (e.g., Microsoft's SQL Server), and a SQL client namespace 346 that contains types pertaining to data used by SQL clients. The data namespace also includes a SQL types namespace 348 ("System.Data.SqlTypes") that contains classes for native data types within Microsoft's SQL Server. The classes provide a safer, faster alternative to other data types. Using the objects within this namespace helps prevent type conversion errors caused in situations where loss of precision could occur. Because other data types are converted to and from SQL types behind the scenes, explicitly creating and using objects within this namespace results in faster code as well. [0065] An XML namespace 350 ("System.XML") containing classes that provide standards-based support for processing XML. The supported standards include XML (e.g., version 1.0), XML Namespaces (both stream level and DOM), XML Schemas, XPath expressions, XSL/T transformations, DOM Level 2 Core, and SOAP (e.g., version 1.1). The XML namespace 350 includes an XSLT namespace 352 ("System.XML.Xsl") that contains classes and enumerations to support XSLT (Extensible Stylesheet Language Transformations), an Xpath namespace 354 ("System.XML.Xpath") that contains an XPath parser and evaluation engine, and a serialization namespace 356 ("System.XML.Serialization") that contains classes used to serialize objects into XML format documents or streams. [0066] The base class library name... [truncated message content] |
From: James M. D. <mdu...@ya...> - 2003-09-05 08:50:16
|
Here is my latest mail to the DOTGNU trademark mongers --- James Michael DuPont <mdu...@ya...> wrote: > From: James Michael DuPont <mdu...@ya...> > Subject: Re: DOTGNU : Trademark(Intellectual Property) Mongering or > Self Defence? > To: James Michael DuPont <mdu...@ya...>, Norbert Bollow > <nb...@ci...> > CC: rm...@gn..., cor...@do... > I have been thinking about this issue of the dotgnu trademark > mongering. > > First of all : > > 1. Please show me you submission to the US trademark office so I can > file an offical complaint and rejection of it, as supported by law. > > 2. Your trademark assertions are not line with the GNU Manfesto. > > 3. Your attempt to assert what I see as non-free ownership over > dotgnu > and not play by the rules of the free . > > 4. Maybe you want to take your software out of the GPL and make > another > license such as the PHP license. : > http://opensource.org/licenses/php.php > > That would fit you mucht better. ===== 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-04 21:18:05
|
Dear Fellow hackers, I have been working on the dotgnu ILDASM code, trying to extract meaning from it, from the dump files of the introspector. Here are a set of rules that I have worked out and an example of the expression " fprintf(outstream, "// Start of method header: %lx\n", (unsigned long)(addr - code.headerSize)); " This is the start of the n3 expression of c code, and It going to be the basis for a new programming language based on c. You might think this is verbose, but we can introduce shorthands into the n3 notation. It looks like we can really express full programs concisly in n3 notation, that is very promising. well, here is the attachment, hope you can understand it ;) mike ############# @prefix : <http://introspector.sf.net/2003/08/16/introspector.owl#> . @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix log: <http://www.w3.org/2000/10/swap/log#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . this log:forAll <#id-string>, <#string-value> . [ a :list, :tree_list; :chan :id-201; :id :id-179; :valu [ :id :id-200 ] ]. [ a :call_expr, :printf-example; :args [ a :tree_list; :chan [ a :tree_list; :chan [ a :tree_list; :id :id-201; :valu [ a :minus_expr; :id :id-224; :op_0 :id-33; :op_1 :id-248; :type :id-43 ] ]; :id :id-179; :valu [ a :nop_expr; :id :id-200; :op_0 [ a :nop_expr; :id :id-223; :op_0 [ a :addr-of-string-expr, :addr_expr; :id :id-247; :op_0 :id-266; :type :id-265 ]; :type :id-189 ]; :type :id-187 ] ]; :id :id-160; :valu [ :id :id-168 ] ]; :fn [ a :addr_expr; :id :id-159; :op_0 [ :id :id-178; :name [ a :identifier_node; :id :id-199; :strg "fprintf" ] ] ]; :string """ fprintf(outstream, " // Start of method header: %lx ", (unsigned long)(addr - code.headerSize)); """; :type [ :id :id-40 ] ]. { <#id-string> :string <#string-value> . } a :rule . { :ptr-char-array-type a :built-in-type . } a :rule; rdf:comment "we need the concept of a char string to be well defined." . { this log:forAll <#decl> . { <#decl> :linenumber "0" . } log:implies {<#decl> a :built-in-declaration . } . } a :rule; :requires :linenumber; rdf:comment "a built-in has a zero line number"; = :built-ins-have-zero-line-numbers . { this log:forAll <#id-addr-expr>, <#id-string>, <#ptr-char-array-type> . { <#id-addr-expr> :op_0 <#id-string>; :type <#ptr-char-array-type> . <#ptr-char-array-type> a :ptr-char-array-type . } log:implies {<#id-addr-expr> :op_0 :addr-of-string-expr . } . } a :rule; :requires :ptr-char-array-type; rdf:comment "an address of a string is of type character pointer"; = :address-of-string-is-a-char-pointer . { this log:forAll <#id-some-id>, <#identifier-string-value>, <#some-length> . { <#id-some-id> a :identifier_node; :lngt <#some-length>; :strg <#identifier-string-value> . } log:implies {<#id-some-id> a :identifier_node; :strg <#identifier-string-value> . } . } a :rule; :removes-field :lngt; rdf:comment "filter out the string length"; = :string-length-is-irrelevant . ===== 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-02 19:07:53
|
--- James Michael DuPont <mdu...@ya...> wrote: > From James Michael DuPont Tue Sep 2 12:06:47 2003 > Received: from [80.128.236.88] by web41507.mail.yahoo.com via HTTP; > Tue, 02 Sep 2003 12:06:47 PDT > Date: Tue, 2 Sep 2003 12:06:47 -0700 (PDT) > From: James Michael DuPont <mdu...@ya...> > Subject: Re: DOTGNU : Intelletual Property Mongering or Self Defence? > To: Norbert Bollow <nb...@ci...> > CC: rm...@gn..., cor...@do... > In-Reply-To: <200...@qu...> > MIME-Version: 1.0 > Content-Type: text/plain; charset=us-ascii > Content-Length: 1803 > > Norbert, > > Your mail is basically an admission of an onesided power system, > built > up on intellectual property rights. > > You are grant rights to yourself that you take away from others, this > is breaking down the fundamental freedoms and sharing that is the > core > of the GNU philosophy. > > Basically you are creating a system where you are taking from the > users > and developers, but are not giving back to them the same rights that > you expect to get. > > If that is true, that this is against the spirit of the GNUManifesto > against the basic principles that make DOTGNU a GNU project to begin > with. > > think about that. > > mike > > --- Norbert Bollow <nb...@ci...> wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > > > > James Michael DuPont <mdu...@ya...> wrote: > > > > > > What I wrote in the section "What are the requirements for > > starting a > > > > DotGNU development project?" is in the context of someone who > > comes > > > > with a project that has a (possibly trademarked) name already > and > > > > suggests that project to become part of DotGNU. > > > > > > Yes, that is when dotgnu is the user of another software, but > what > > If I > > > want to use dotgnu in the same way. Are you being fair or not? > > > > When someone starts a DotGNU development project, that is supposed > > to be a form of mutually beneficial cooperation between that > > development project and the DotGNU meta-project. If we were > > interested in cooperating with you along the lines of your desire > > "to use dotgnu in the same way", it would definately be fair and > > just to offer you similar terms to what we ask of those who > > contribute code to DotGNU. But that is not the case. It would not > > be beneficial for the DotGNU project to join any umbrella projects > > besides the GNU project. In particular, DotGNU is definately not > > interested in joining any umbrella project run by you. As things > > are, both Rhys and I are no longer interested in any kind of > > cooperation with you. I'm totally fed up with your accusing DotGNU > > of being "unfair" and me of having "a double standard". Rhys has > > his own reasons for being fed up with you. > > > > One of my major concerns is to have clear and fair policies that > > make sure that multiple businesses can contribute to DotGNU without > > any need for any of them to be concerned that someone could hijack > > DotGNU or parts of it. > > > > I could explain in detail how the trademarks policy (to which you > > object) is a consequence of this concern, but I choose not to spend > > any more time on continuing this conversation with you. Don't > > bother to ask further questions, I'm not going to respond, I have > > other priorities than to continue this conversation. > > > > Greetings, Norbert. > > > > - -- > > Founder & Steering Committee member of > > http://gnu.org/projects/dotgnu/ > > Free Software Business Strategy Guide ---> > > http://FreeStrategy.info > > Norbert Bollow, Weidlistr.18, CH-8624 Gruet (near Zurich, > > Switzerland) > > Tel +41 1 972 20 59 Fax +41 1 972 20 69 > > http://norbert.ch > > -----BEGIN PGP SIGNATURE----- > > Version: GnuPG v1.2.2 (GNU/Linux) > > > > iD8DBQE/VOIaoYIVvXUl7DIRAgvEAJ90jgLO/Bddy8F0CnA14H+7OqqGnACeJJ9U > > XJXeeGNn1oyfK+NE/iyqPZ4= > > =ZJtw > > -----END PGP SIGNATURE----- > > > ===== > James Michael DuPont > http://introspector.sourceforge.net/ > > __________________________________ > Do you Yahoo!? > Yahoo! SiteBuilder - Free, easy-to-use web site design software > http://sitebuilder.yahoo.com > ===== 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-02 15:07:50
|
Here is my latest mail on the dotgnu front. --- James Michael DuPont <mdu...@ya...> wrote: > From James Michael DuPont Tue Sep 2 08:06:29 2003 > Received: from [212.202.111.3] by web41505.mail.yahoo.com via HTTP; > Tue, 02 Sep 2003 08:06:29 PDT > Date: Tue, 2 Sep 2003 08:06:29 -0700 (PDT) > From: James Michael DuPont <mdu...@ya...> > Subject: DOTGNU : Intelletual Property Mongering or Self Defence? > To: Norbert Bollow <nb...@ci...> > CC: rm...@gn..., cor...@do... > In-Reply-To: <200...@qu...> > MIME-Version: 1.0 > Content-Type: text/plain; charset=us-ascii > Content-Length: 1873 > > --- Norbert Bollow <nb...@ci...> wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > > > > >James Michael DuPont <mdu...@ya...> wrote: > > > > > I still dont understand one issue here : > > > so you are saying that you are granting me the same rights as > > described > > > as entry criteria to your project ? > > > http://dotgnu.org/join.html > > > "" For example, if you have a trademark or servicemark on the > name > > of > > > the program, then you need to give us a license which allows to > use > > > this mark in connection with this program and derivative works > > thereof, > > > which which also gives us the right to give these rights to > others. > > > "" > > > Please clarify. > > > > No.... > > > > The rights which we are granting to you, as well as also to > everyone > > else who accepts the terms of the GNU GPL, do not include any > > trademark > > rights. > > > > What I have been saying is that _you_don't_need_ any trademark > > rights > > in order to fully enjoy all the rights that the GNU GPL grants you. > > As long as you do what is required by section 2a of the GPL, and in > > > > addition you choose names for your competing projects which are not > > likely to give people the impression that the DotGNU crew is in > some > > way responsible for answering questions about your projects, there > is > > no problem whatsoever with trademark rights when forking a DotGNU > > development project. > > I dont want to make a competing project, you want to force me to do > that via your intellectual property mongering, and unfair tactics of > discrimination against my contributions. > > I just want to use the software and report bugs and submit patches. > > > What I wrote in the section "What are the requirements for starting > a > > DotGNU development project?" is in the context of someone who comes > > with a project that has a (possibly trademarked) name already and > > suggests that project to become part of DotGNU. > > Yes, that is when dotgnu is the user of another software, but what If > I > want to use dotgnu in the same way. Are you being fair or not? > > > That is a totally > > different situation. Accepting things into DotGNU that have names > > with trademark strings attached would be a recipe for serious > trouble > > later on, therefore we're not going to allow that to happen. > > OK. So I am right here that there is a double standard, you set a > different standard for those who use your software than the software > you use. > > 1. You require surrender of Intellectual Property rights from project > that will be used in dotgnu. > > 2. You force me out of your project and say I have to branch, I dont > want to branch. > > I just want to : > > 2.1. Maintain a patch, so that users can interface with my software. > 2.2. Report bugs and have them fixed. > > 3. You refuse to surrender these rights to a project that you dont > like. > > You say I dont need your IP, so you dont give it to me, > yet you require them from the contributors. > > I think that this is typical of the non-free-software-like > Intellectual-Property-mongering pattern that is emerging from dotgnu, > and I think that it is not in line at all with he GNU manifesto. > > I dont want to go away, and I dont want to branch. You are trying to > force both of those. > > Basically, you are using your Intellectual-Property to try and force > me > to go away, you dont want my bug reports in your code, you dont want > my > innovations it seems. > > Lack of competition is going to hurt your customers in the long term, > because it reduces bug fixing on a common code base, even if I am not > good at fixing bugs in your code, i am good at finding them. > > I think this stinks, big time. > > 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 > ===== 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-01 20:25:47
|
This is great, you can now extract an low-level ontology directly from the gcc introspector dump http://rdfig.xmlhack.com/2003/09/01/2003-09-01.html#1062446922.698216 ~/cwm/cwm.py ildasm-clean.n3 --filter=extract-structure.n3 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-01 19:43:56
|
--- Stephen Compall <s1...@me...> wrote: > James Michael DuPont <mdu...@ya...> writes: > > > BTW: just for your information, the microsoft shared source CLI > > implementation AKA rotor would also very well be a vicitm of > > introspector infection, as well as tools like GraphVIZ. > > > > The ideas that any open source program can be extended/infected to > > include an introspector import and export routine is very simple. > > Rotor is *not* an "open source" program, never mind free software. > So > you are saying that even proprietary software can be "infected" with > Introspector? I am saying that as far as I can tell, there is nothing that would stop that, now. The introspector is nothing more than an export routine in one way. And of course , any code that is published, regardless of its license can be introspector-enhanced. The distribution of that code is on issue. I use introspector-like techniques all the time at work, on non-free software. > > > This is the case that I see as happing in the gcc and the > > dotgnu(tm)/pnet(tm) itself. > > How is dotgnu and pnet trying to lock in anybody? They are applly IP laws to try and prevent users from having the introspector attached to the DotGnu(TM) system. http://www.advogato.org/article/696.html see my notes on trademark insanity. I was told not to use dotgnu,pnet or dotgnuwebservice. > now. But that's because most of the *good* language advocates, like > Peter Minten (GO SCHEME! :), are still doing design. Peter has been working with me on a new version of scheme that is introspector compatible. the dotgnu team are not crying about that. > And they are not trademarked. DotGNU may be [trademarked] RSN, but > probably not pnet, as that's just a system name anyway. That is not what I was told >Regardless, > sticking (tm) after those names does *not* have the same implications > that sticking it at the end of Java does. That is not what I was told. I am going to make a big issue about this IP mongering of dotgnu(TM) > > > > http://www.lrde.epita.fr/cgi-bin/twiki/view/Main/CompilationLectureLog > > I get "NOTE: This Wiki topic does not exist yet" when I view this > page, and would like to see the presentation. http://216.239.37.104/search?q=cache:-D2A-jzewHMJ:www.lrde.epita.fr/cgi-bin/twiki/view/Main/CompilationLectureLog+&hl=en&ie=UTF-8 Thank god for google . Here is my permanent copy http://introspector.sourceforge.net/2003/09/threat_to_gpl.html happy hacking, mike PS: stephan, please join the introspector project and help out! ===== 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-01 19:15:45
|
Is it not funny how dotgnu has become horders of IP? Send to : "Norbert Bollow" <nb...@ci...>, rm...@gn..., rwe...@zi..., cor...@do... > --- Norbert Bollow <nb...@ci...> wrote: > > We > > don't have any problem with that provided you make it very clear > that > > bug reports for the competing derivative work should go to your > > project and not to any bug-tracker or mailing list of the DotGNU > > project. Here you write : http://dotgnu.org/join.html """" You need to make a commitment to putting your code under the GNU General Public License, possibly with linking exceptions as appropriate. Also you need to make sure that there are no legal hooks on the software that would prevent it from being truly Free Software. For example, if you have a trademark or servicemark on the name of the program, then you need to give us a license which allows to use this mark in connection with this program and derivative works thereof, which which also gives us the right to give these rights to others. """" So you are saying that you do not grant me usage of your Trademarks? Are these the legal hooks that prevent dotgnu from being truly free software? You are saying that you do not grant me to use your trademarks in connection with my derived works? I have been reading up on trademark law, so you are now trying to assert your intellectual property rights under US trademark law that is going to try and reduce competition? Can you please show me your registration forms for this trademark and service mark? I have the feeling that what you are doing is against the spirit of the GNU manifesto. This is great : The dotgnu project is becoming IP hoarders to try and squash free software competition. 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: Stephen C. <s1...@me...> - 2003-09-01 19:00:34
|
James Michael DuPont <mdu...@ya...> writes: > BTW: just for your information, the microsoft shared source CLI > implementation AKA rotor would also very well be a vicitm of > introspector infection, as well as tools like GraphVIZ. > > The ideas that any open source program can be extended/infected to > include an introspector import and export routine is very simple. Rotor is *not* an "open source" program, never mind free software. So you are saying that even proprietary software can be "infected" with Introspector? > This is the case that I see as happing in the gcc and the > dotgnu(tm)/pnet(tm) itself. How is dotgnu and pnet trying to lock in anybody? If you are referring to the fact that much of the implementation of arch so far--such as DGEE--has focused on supporting pnet, then I wholeheartedly agree. developers is _filled_ with WinForms freaks now. But that's because most of the *good* language advocates, like Peter Minten (GO SCHEME! :), are still doing design. DGEE just does it the hard way right now, thanks to this focus, and it feels like there's no point in adapting more elegant languages to this system. Especially when *your* interpreter doesn't support WinForms :( I'm not saying design is a bad thing. While there's something to be said for actually releasing working code, sometimes what you get when you do that is ... Mono. ;) But there are going to be alot of programmers wasting time with inferior, longer-development-cycle languages, just because they "work" (by which I mean "have Winforms" or some stupid s*** like that), until the good languages conquer the bad. And they are not trademarked. DotGNU may be [trademarked] RSN, but probably not pnet, as that's just a system name anyway. Regardless, sticking (tm) after those names does *not* have the same implications that sticking it at the end of Java does. > http://www.lrde.epita.fr/cgi-bin/twiki/view/Main/CompilationLectureLog I get "NOTE: This Wiki topic does not exist yet" when I view this page, and would like to see the presentation. -- Stephen Compall or s11 or sirian Trying to be happy is like trying to build a machine for which the only specification is that it should run noiselessly. Arnett BCCI csystems supercomputer Echelon offensive information warfare Nazi Sundevil afsatcom embassy arrangements analyzer Fortezza Bellcore bullion |
From: James M. D. <mdu...@ya...> - 2003-09-01 13:25:56
|
Here are some more links to this topic --- James Michael DuPont <mdu...@ya...> wrote: > I have collected some links about this issue for review : > > TimBL on ont. > http://www.w3.org/DesignIssues/Toolbox.html > > Sowa : > http://users.bestweb.net/~sowa/peirce/ontometa.htm > > And here is a very good set of links > http://www.formalontology.it/onto_papers.htm > See also the collection of TUNES FUD against the w3c and semantic web : http://rdfig.xmlhack.com/2003/08/31/2003-08-31.html#1062351113.820505 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 |