Ideas organized to some extent for GSoC
See also: Akara/Ideas
For other sources of ideas, see:
A bit of clarification: What is the relationship between "Amara" and "Akara"?
Answer: Akara is the overall, umbrella project. Amara is a component of Akara, but can be used on its own, by developers who need core XML processing. Amara is the basic XML processing toolkit. Akara is Amara plus a lightweight Web server framework in order to make functions using Amara available on the Web.
Idea: implement DTLL as a tool for data modeling in Amara
DTLL is a section of Document Schema Definition Languages, an ISO standard framework for XML schemata. It allows developers to specify data types as a mapping from the lexical space of XML character data to the value space, expressed in XML structure, but in a way that's readily usable in e.g. a DBMS or programming language.
In plainer language, it allows you to define regular expressions, which can be matched against XML text nodes and attributes in the validation process, and used, e.g. to map "FF00FF" to the RGB triple for the color magenta. W3C XML Schema defines only one, rigid data type regime. See, for example "XML Class Warfare" and the broad debate (e.g. http://www.xmlhack.com/read.php?item=1853 ) provoked therefrom for example of why rigid data typing is not necessarily a good thing.
This project would expose the contributor to a much richer consideration of XML than provided by most courses and certifications. It would require moderate knowledge of XML as well as solid knowledge of Python.
Idea: implement a PubSubHubBub hub with Akara
PubSubHubBub - "PubSubHubbub is an open protocol for distributed Publish/subscribe communication on the internet. The protocol extends the Atom and RSS protocols for data feeds. The main purpose is to provide near-instant notifications of change updates, which would improve on the typical situation where a client periodically polls the feed server at some arbitrary interval."
Because of its support for simple, RESTful protocols, it would be quite straightforward to implement PubSubHubbub on Akara, and it would be a useful demo, and touchstone for other projects.
The contributor would need solid knowledge of Python, HTTP/REST, and some knowledge of XML.
Idea: Refactoring of Amara's markup printers
Amara inherited its output system from 4Suite, and it badly requires a lot of the refactoring and modernization that has gone into other components. The API and code organization needs to be improved, and the documentation updated accordingly.
Includes working on #23, "Canonical XML printer not complete" and "xmlwriter calls xmlprinter with 4 args, but it takes only 2"
The contributor would need solid knowledge of Python, HTTP/REST, and rudimentary knowledge of XML.
Idea: Initiating the port of Amara and Akara to Python 3.x
The roadmap plan has been to start the port to Python3 in late 2010, but earlier effort in that direction, on a branch, would be useful, and could help identify potential issues quickly.
Placeholder for this is: http://trac.xml3k.org/ticket/18
The contributor would need solid knowledge of Python and C.
Idea: Complete porting of EXSLT and other extensions from 4Suite
4Suite had a very rich library of XSLT extensions, not all of which have been ported to Amara 2.x. This project would involve completing this process.
See: "Finish port of EXSLT from 4Suite XML" and "Support XPath extensions from 4Suite XML"
This project would require moderate knowledge of XML and XSLT 1.0, as well as solid knowledge of Python.
