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

Re: Eureka! Quizzer Item Types



> Eureka!

Way cool, Bruno :D  EDUML is beginning to look powerful.

<purist mood>

<devil's advocate>

 Introducing a second^H^H^H^H^Hhort form for the grammer specification
 may be a Bad Thing (tm), because it introduces many compatibility
 problems.

 Then we'd have to worry about a third mutila^H^H^H^H^Huch shorter
 form, and a fourth, and a fifth... just to make it easier for the
 user.

 It'd end up being no better that the graphics format business, with
 101 formats, convertors, etc. and everybody using some
 near-proprietary form that's different from the rest!

 IMHO, it could be a better idea to keep the language specification
 elegantly powerful and general right from conception, but rely on the
 (eventual) EDUML writing tools to do their own simplifications.

 These may present the information to the users in whatever
 proprietary shortforms they want, e.g. we might even end up with a
 visual EDUML IDE; as long as all save crisp, clean, pure EDUML :)

 A Golden Key (tm) to standardization is to provide e.g. a C library 
 with an API for EDUML development, so developers can use EDUML
 without bothering to write a parser.

</devil's advocate>

I like the nesting support, e.g. we could do things like

    <rpc>
     <methodCall xmlns="some url">
      <methodName/edu.essay>
      <params>
       <param name="question">
        <value type="text"> Briefly discuss the LPF's argument against 
			    software patents
	</value>
       <param name="editor_spawn_method">
        <value type="methodCall">

	 <methodCall xmlns="some (possibly different) url">
	  <methodName/edu.multichoice>
	  <params>
	   <param>
	    <value type="list"> 

	     <methodCall xmlns="yet another url">
	      <methodName/editors.methodCalls.list>
	     </methodCall>

	    </value>
	  </params>
	 </methodCall>

      </params>
     </methodCall>
    </rpc>

So, the second edu.essay parameter is the result of choosing a
methodCall from a list of methodCalls, which is obtained through
another rpc methodCall.

(OK, maybe it's a bad idea to try to edu.multichoice() a list of
methodCalls unless they have <label>s, but you get the idea.) 

The proposed short form forces the parser to know about the edu.whatever
method calls; maybe this compromise is better (like I know anything about
XML yet :P Massive corrections probably required):

  <rpc> call("rpc://rpc.seul.edu", "edu.essay", 

	     "Briefly discuss the
		       LPF's argument against software patents",

	     call("rpc://rpc.seul.edu", "edu.multichoice",
		  call("rpc://editors.seul.edu",
		       "editors.methodCalls.list")))
  </rpc>

To further Mutilate (tm) the language, maybe it would be less
laborious for the typist if we could allow some fields, e.g. the URL,
to carry forward like so:

  <rpc> <url/"rpc://rpc.seul.edu">

	call("edu.essay", "Briefly discuss...", 
	     call("edu.multichoice",

		  callurl("rpc://editors.seul.edu",
			  "editors.methodCalls.list")))
  </rpc>

Then again, all these shortening should perhaps best be done within
the EDUML editors and what-not applications yet to be born.

</purist mood>

Just my 2 1/2 cents :-)

---
Rhandeev Singh                      rhandeev@comp.nus.edu.sg
Linux User Group                    http://linux.comp.nus.edu.sg
School of Computing                 http://www.comp.nus.edu.sg/~rhandeev
National University of Singapore