Owen's Ideas

if you are interested in doing any of these things or are already involved in a simliar project feel free to contact me.

many of these will have either been done or proposed before or may just be complete nonsense, if you have any comments please tell me.

This script is a simple bash/sed hack which reads stuff from a bunch of text files, source is available.
Title: Agent Nomic

Description: 

Nomic is a fabulous game, where the object of the game is to win the
game according to its rules, by making moves which typically involve
changing one or more rules of the game. 

I have always thought that it might be an interesting
gedankenexperiment to build a framework that would allow computer
programs to play the game in some guise. With some heavy restrictions
on the structures allowed, of course (which should be defined).
Certainly a system which could play (if not well) against people in
this context would be a fun experiment. 

References: 

Peter Super's (The inventor's) description of Nomic: 
     http://www.earlham.edu/~peters/nomic.htm
Idea Last modified : 2006-03-03 18:12:01.000000000 +0000

Title: Owen's Bike Helmet (not a computing project)

Description: 

I have a very large (65cm diameter) head, which is also quite long,
nobody seems to make bicycle helmets which actually fit me. Some
13,000 cyclists and motorcyclists are hit by cars on our roads every
year with several hundred of them being killed or seriously injured
and at the moment I don't wear a helmet which worries me and those who
care about me.

Construct a bicycle helmet using widely available techniques (like
fibreglass or carbon fibre moulding, vacuum bagging, foam moulding etc
etc) and materials (fibre glass, carbon fibre, expanding insulation
foam) which will be "better than nothing".


A plaster cast of my head will be made available on request. 

Idea Last modified : 2006-03-03 18:12:01.000000000 +0000

Comic strip project
-------------------

Everybody and their sister seems to make online comics nowaday a few
people even go to the effort of animating them. 

Online comics are cool. 

Multimedia scripting is not a new concept macromedia's flash and more
recently thingslike SMIL, are popular examples. 

I'm not really sure about the scope of background of this project but
i have an idea that it might involve capturing some notion of an
actor, as a visually embodied agent (probably in 2d, but possibly in
3d) with behaviours. 

The actor should try and capture the general artistic nature of a
character, which might be a flexible 3d description which can be
rendered into 3d or 3d using NPR techniques, or just a simple
composite sprite with a number of possible orientations or swapout
sub-sprites (south park) or a mixture of both. Given the difficulties
of 3d embodiement (both the physical modelling and the graphical
representation) it might be easier to focus on the 2d side of things.

One example might be a screensaver where characters can meet and
interract in a possibly comicy/comical way via some story board or
something. 
Idea Last modified : 2006-03-03 18:12:01.000000000 +0000

Distributed Busking
-------------------

The regulations controlling buskers typically limit the numbers and volumes
of performers in a given location. Given the disturbing tendancy for buskers
to use canned backing music to support their solo (or fake) performances i
thought it would be cool if you could assemble a distributed group of
buskers playing together without being in the same place.: 

each busker would have their instrument (and/or mouth) miked up and plugged
into some wireless capable computer from which they would broadcast the
signal they were playing, the output of the computer would be plugged into a
small amplifier, through which they would replay the signals of all of the
other buskers in the group.  

one could envisage the buskers playing all together or in smaller groups.

Another intersting idea might be to try to augment a solo busking
performance with 'intelligent' performers providing better backing etc.
Idea Last modified : 2006-03-03 18:12:02.000000000 +0000

Title: Emacs/Evince/Dbus integration for Latex parsing

Description: 

Facts: 
- PDF can contain hyperlinks, which can reference external URLS, or
  more importantnly internal relative URIs. 
- Latex can generate the correct magic to make these hyperlinks work
  for references and citations in latex documents.
- Several environments which can edit Latex (primarily Kile,LyX
  and Emacs (v22 or later)) support external input at run time for
  some definition of external input.
- Evince is the new ps/pdf/dvi viewer for gnome.  
- Evince is "Dbus aware" (i.e. it uses dbus to open new documents in a
single process.
- Evince is pretty good a viewing PDF files. 

The problem: 

When i'm writing latex (in emacs ) , I often end up getting lost
looking up references and figures etc.  

I think it would be really cool if I could have evince open with the
latest version of my document, and have it such that when a given
option is turned on in emacs and i click a hyperlink in my PDF
document, emacs would jump to the definition (or the source, either or
both would be interesting) of the link in the document. 

In order for this to work I am assuming that there exists a relatively
quick and sensible way of mapping whatever PDF is calling the
link/target and the latex tag in the document, if you can't then there
is a larger problem.

If the above is possible, and evince supports hyperlinks, then: Evince
would have to be modified to generated a dbus signal which says
"Clicked on hyperlink XYZ in document URI"


Our chosen LaTeX interpretter would have to have the means
for listening for this type of event and performing an operation "Jump
to tag Map(XZY) in document URI", my feeling is that as you don't have
a concrete way of linking URI back to your source, a small ammount of
guesswork might be involved here (which i'm happpy to accept). 

However you do it, we assume that the relevant client is capable of
keeping track of all of the tags in LaTeX files it currently has open
(somehow).

In Kile implementing a DBUS listener would be fairly trivial, as would
 it be in LyX (both fairly extensible, C++ programs).  

In emacs (which i really care the most about) the problem is slightly
 harder -- as (as far as i know) there are no dbus-->elisp bindings
 (no big surprise there).

Four possible hacky or burdensome ideas spring to mind::

- Bypass Dbus and just get evince to notify your client (i.e. emacs
  via emacsclient) directly - pretty evil and i doubt it would make it
  into evince upstream.

- Implement some kind of DBUS support directly into emacs source
  technically the most ideal thing to do, but i don't see this being
  accepted upstream with any great amount of enthusiasm (although you
  never no). Upstream integration also assumes that it would make it
  into a version of emacs in time to keep up with any changes in Dbus,
  (or before the next ice age), given how slowly emacs turns
  over. There is the possibility of writing a dynamic library to
  support Dbus in emacs, but as far as i know emacs doesn't suport
  this at the moment (although xemacs does).

- Implement some kind of hacky dbus support directly in Elisp - given
  the complexity of the dbus protocol, this is no small order, for
  what would only be a marginally useful extension.

- Implement a seperate DBUS service, which when activated sat around
  and listened for the relevant messages and passed them along to
  emacs, by way of the the emacsclient protocol to inject the relevant
  (jump-to-LaTeX-tag "xyz" "uri"). into some stub code on the emacs
  side which did the updates. This has the downside of needing a
  permanent daemon sitting around, but would probably work.

Some other (related fixable) problems:

- As far as i can see Evince does not currently support PDF hyperlinks
  it /should/, 
- Evince (for me at least (on ubuntu breezy)) is pretty unstable, i
  hope this problem will fix itself....
- Emacs 22 isn't out yet, and will be having been going to be out for
  nearly six months now (ao 2/06).


Comments: 

5/3/06: Tristan ( http://www.pyrate.net ) pointed out that xdvi already
has an inverse search feature (which evince doesn't support ) which
has similar functionality (Ctrl + click on a document and then view
the location in an editor). This implies that at least for DVI there
is a nice way of solving the problem of finding out where you are in a
document (compiled with latex -src). It would be good if this could be
extended to PS and PDF (I typically use features like pstricks, which
don't display in the DVI). The DBUS approach still has potential
however as its more general, and could be mapped into dvi by changing
the editor command.
Idea Last modified : 2006-03-05 17:15:08.000000000 +0000

A platform for GL agent visualisation. 
--------------------------------------

See embodied agents, 

agent platforms (Jade,April) are typically programmed in such a way as
they can be deployed if not ubiquitously then across a broad range of
platforms,(windows/unix/PC/palmtop etc) methods for these agents
communicating with humans also exist, typically build on top of
existing graphics libraries (AWT/swing) or using their own internal
cross-platform systems (DialoX) however we are usually limited to
doing basic dialog type interractions due to the low watermark of
standardization across graphics systems. 

In some situations we would like to be able to use high-performance
hardware accelerated graphics to interract with users, specifically
when doing things like embodied agents, where using richer, possibly
3d models is actually easier than trying to build 2d analogous
systems.

specifically focussing on the April Agent platform, it would be useful
to create at least a bridging layer between agents and accelerated
2d/3d displays, different modes of interraction may be considered,
such as in-place models, and cursor driven graphics.

OpenGL provides a cross-platform, widely accepted standard for
accellerated graphics abstraction..

--------

you may wish to focus on just the abstraction layer, by creating an
agent-oriented interface to the underlying graphics abstraction. 

a much more interesting application whould be a system for the
creation of 3d embodied agents for communicating with humans, on a
basic level you should consider problems such as agent initiated
dialigical interraction, possibly using existing toolkits such as
dialox, where an embodied agent would be able to ask questions of the
user and provide a means for response based upon a template
library. At a higher level, you may wish to consider the expression of
things like emotion, urgency and gaining the users attention.

a number of aspects will need consideration: 

- the definition and description of an embodied agent
  - its shape, behaviours etc
  - abstractions and scripting of agent behaviours

- interraction spaces, intially you should consider individual agents
  interracting with a single user, however you may wish to extend your
  work into the visualisation of two or more embodied agents
  interracting or to include objects which model either dialogical
  entities that the user and the agent can interract with. you may
  wish to consider doing solid-body modelling .


Idea Last modified : 2006-03-03 18:12:02.000000000 +0000

Title: 'Helper' for electronic quiz machines

Description: 

Pub quiz machines have been around for some time and are very good at
stealing your money. Typically the machine poses a number of questions
in varying subjects including general knowledge and offers some reward
for correctly answering a sequence of questions correctly.

Questions are posed and a number of alternative answers are typically
given one of which must be chosen within a typically limited time
frame.

A number of directions are possible: 

Develop a vision capture system which is capable of reasonably
extracting text from captures of pub-quiz type machines from a web-cam
class camera (i.e. 640x480 or 1024x768) in REAL TIME under the
difficult circumstances one expects to see in a public house (i.e. low
light, smoke occlusion, non-direct screen angle, varying color
schemes, different fonts etc, beam interference from the monitor/TV
screen).

Investigate the feasiblity of determining correct response
reccomendations by generating queries to large, unstructured data sets
(like google) or similar sources and generating feedback to a
user. Consider situations where a certainty metric for a given answer
might be given such that the multiple choice answers can be ordered,
or such that alternative answers (such as "I don't know") can
reasonably be generated.

Combining the two systems above with a laptop with some wireless
internet capability (i.e. GPRS or 802.11b) to help somebody with pub
quiz machines.

Of course this system should probably not be used in the wild as it
may be illegal (i'm not sure, you should check this).

Requirements:

The ability to gather a reasonable sample set of captures.  
Some understanding of computer vision techniques (image processing).
Idea Last modified : 2006-03-03 18:12:03.000000000 +0000

Semantic web project ideas managment
------------------------------------

create a RDF schema & interface & knowledge base for managing these
ideas. 
Idea Last modified : 2006-03-03 18:12:03.000000000 +0000

Title: Instant Messaging for Agents

Description:
Instant messaging tech like MSN-messenger, Yahoo instant messenger,
ICQ, AIM and jabber have all taken off in a big way as media for
quick, casual interaction between humans. 

In general users can see whether the other party is online and
sometimes other information like whether or not they want to be
contacted. 

It would be interesting to see to what extent this can be integrated
as a user-interface mechanism for autonomous agents. 

Focusing particularly on jabber (which is the only technology
mentioned which is both standardised in a sensible way (based on
published XML schemas), with a number of open source implementations)
investigate different ways in which IM can be used for human-agent
interaction.

There are a number of possible applications from simple notifications
to user queries.

Related Reading: 

Agents (various things)
jabber: http://www.jabber.org/
Idea Last modified : 2006-03-03 18:12:03.000000000 +0000

Flat panel kitchen display
--------------------------------------------------------------------

Keywords: Linux, hardware 

Description: 

I have a relatively old laptop, which has just about completed all of
its laptoping (the battery has long since expired, and it fries memory
if you move it about). With a 14" XGA TFT display, i would like to
turn it into a stationary flat panel picture frame type device to sit
on my kitchen wall with the following functionality:

 - Playing music while i cook
 - Displaying recipes
 - Displaying movies/live TV (via mplayer/videolan for example) 
 - Possibly displaying email/web browsing etc. although less so. 

The plan is:

 - Dismantle the machine (partially done) 
 - Establish the best way of managing the user interface (a touch panel
   would be nice, but you can't buy overlays cheaply).
 - Design and build a case
 - Write/modify some software to assist some of the tasks

Some ideas had for user interface included re-using a cheap, small
PS/2 Keyboard with a touchpad, a USB game controller, the top of a
wheel mouse etc.


Idea Last modified : 2006-03-03 18:12:03.000000000 +0000

Title: Literature & reference meta-data embedding and access

Description: 

Researchers accumulate large bibliographies of read and related work
including their own, increasingly (especially in computer science)
reference material is becoming available in preprint form as PS/PDF
documents for free. These documents tend to accumulate on a
researchers file store with variying degrees of management.  The
management of personal bibliographical databases is typically
seperated from the documents which the entries actually reference,
several desktop systems support file meta-data which is either derived
from the contents of files, derived from external sources or simply
stored and edited in relation to files. Ignoring the troublesome
issues of meta-data management in general (i.e. where does the
meta-data go when a file is copied onto a device which doesn't support
it) it would be great to have a integrated system (primarily for
Gnome, which is what i use) for attaching bibliographical information
to files on the file system in such a way is to simplify its
management and use (i.e. generating bibtex files for bibliographies.

Nautilus (the Gnome file manager) has a passable system for storing
and file meta-data and editing it through the file manager interface
(see the nautilus notes system) write a plugin for editing/attaching
bibliographical information to papers in PS or PDF format. 


The idea here is to find a solution which doesn't rely on idealising
the world (i.e. standardizing on bib-data or referencing) but works
enough to be useful.

References: 

Nautilus: http://www.gnome.org/projects/nautilus/
BibTeX: http://www.ecst.csuchico.edu/~jacobsd/bib/formats/bibtex.html
The UKOLN Bib-man pages: http://www.ukoln.ac.uk/bib-man/
Idea Last modified : 2006-03-03 18:12:03.000000000 +0000

Title: Peer to Peer Massively Multiplayer Online Roleplaying Games

Description: 

3d environmental MMORPGS are all the rage at the moment, existing
systems operate using a set of trusted central services which pool
resources and maintain the legal state of the game, with players
operating operationally thin clients which on the whole are only
responsible for providing user interface functionality and rendering.


The purpose of this project is to investigate the prospect of
developing a distrubted environment for enforcing game logic 

Idea Last modified : 2006-03-03 18:12:03.000000000 +0000

Print Coding and recovery for backup. 
-------------------------------------

Fortunately nowadays people tend to care quite a bit about backing up
their data. Typically we burn stuff to CD or DVD or put it on magnetic
tape where it can be stored and retrieved at a later date.

Unfortunately both of these media are susceptible to degredation over
time, CD inks can expire even in the absence of UV light and magentic
tapes are suscpetible to corruption in the presence of large EMFs,
water or fire. 

Backup policies for large organisations typically involve off-site
storage and multiple redundance for very important data, solutions
which are typically not available for small organisations or personal
users. 

With the ongoing increase in integration of computers into everyday
life for normal people, it might be useful to develop a very low
volatility backup mechanism for relatively small amounts of data
(which may include digital certificates, encryption keys, personal
information etc). 

I propose the use of conventional wood-pulp paper as medium for
storage with the printer as a means for generating backups and a
conventional desktop scanner as a means for recovery. One could
visualise a situation where a chunk of backup data was encoded and
printed to one or more bits of paper, so that it  could be stored
safely and then recovered at a later date. 

One should consider: 
    - The coding necesary, at least including error
      checking and if possible error correction, also you may want to
      consider variable degress of redundancy. 

    - The optical representation of data on the page, considering
      likely corruption mechanisms (small ink blots, folds tears
      etc.). While also considering the resolution of the output
      printer and the properties of printing on different
      paper/printer types. 

    - Data recovery using an off-the shelf scanner at a resonable
      resoulution (say between 600 and 1200 DPI) and document
      reassembly. 

I expect the storage capacity to be very low, (possibly as low as a
few killobits per page)

Required equipement:
  - A printer 
  - A scanner

Prerequisite knowledge: 
  - Some knowledge of coding and information theory.
Idea Last modified : 2006-03-03 18:12:04.000000000 +0000

Pen-based Vector Graphics/Diagramming package
---------------------------------------------



Idea Last modified : 2006-03-03 18:12:04.000000000 +0000

Title:  Physical modelling of guitar fingerings and automatic
tabululature production

Description: 

Unlike many classical musical instruments, multi-stringed, two-handed
instruments like the guitar have many different ways of playing the
same note, or set of notes. 

For a given chord, some finger positions are impossible for a
performer, and others are difficult. Likewise, over time, some
transitions between notes and chords are difficult or impossible. 

Additionally a guitar can be tuned in many different ways which may in
turn affect, and different tunings can have a significant effect on
the "difficulty" of a scores performance. 

I'm interested in three things: Quantifying some notion of
"difficulty" of specific chords and movements over range of playing
abilities in relation to a phyiscal model of the hands playing the
guitar.  Applying this model to the automatic production of tabulature
from a musical score. Applying the same model to the investigation of
alternative guitar configurations and tuninings. 


References: 
 http://www.tml.tkk.fi/Research/DIVA/past/publications/ICMC96/rjh/posterpaper.html
 http://www.harmonics.com/lucy/lsd/frets.html
 http://www3.interscience.wiley.com/cgi-bin/abstract/108061990/ABSTRACT?CRETRY=1&SRETRY=0
Idea Last modified : 2006-03-15 20:23:21.000000000 +0000

A programming language reference documentation documentation system. 
-------------------------------------------------------------------

Keywords: 
RDF, Ontologies, Programming Languages. 


Programming languages typically come with a whole pile of Reference
documentation, unfortunatly for must of us, the last thing we want to
do when programming is read the documemtation.  This problem is
compounded by the fact that typically the last thing programming
language and API authors want to do is maintain documenation. This
problem is then multiplied by complex programming environments with
large run-time libraries, such as C++, Java and various dialects of
prolog, lisp and other languages (and APIs). It is often hard to find
out a) which feature it is you want to use for a particular task, and
b) how to exactly use that feature. It is often the case that another
programmers assistance will rapidly solve your problems with both
cases. 

The system proposed is aimed primarily at solving the second problem:

On the whole it is now common practice for programmers to include at
least basic documentation on the features provided. however fcr all
but the lucyest languages this documentation is usually fairly terse,
and lacking in things like examples, full documentation and quirks. 

+ design an ontology (probably in RDFS, as the target audience is
humans) for describing language documentation annotations and examples.

+ Using RDF create a meta-documentation system for annotating
programming language documentation such as javascript etc, the system
should be external to the actually documentation systems that the
annotations refer to, i.e. the knowledge base containing the
annotations should be completely seperate from the programming
documentation itself. you will also need a meens for viewing the
annontaions alongside the actual programming language documentation. 

the system should allow multiple authors to submit annotations to
multiple knowledge bases and allow annotations for a given language
article to be drawn from multiple knowledgebases.  

you may wish to consider rating systems to deal with the problem of
spurious submission and incompetancy (author competency rating is a
more interesting problem here) 

Initial targets for language documentation should include at least
JavaDoc and may also consider other documentation systems such as ciao
prolog LPdoc, gtk-doc, doxygen etc etc. 

See-also: 

javadoc: http://java.sun.com/j2se/javadoc/
alexandria: http://jakarta.apache.org/alexandria/index.html
gtk-doc: http://www.gtk.org/  (somewhere, not a great deal of public docs) 
yelp: http://www.gnome.org/softwaremap/projects/yelp
Idea Last modified : 2006-03-03 18:12:04.000000000 +0000

Real guitar hero
-------------------

Guitar hero is cool, unfortunately the one thing it isn't going to
teach you is how to play the guitar.

Two problems: 

Write a piece of software inspired by guitar hero which accepts real
guitar input (i.e. a stream of fret/pluck/chord combinations over
time) which aids in teaching people how to play the guitar. GH is
implicitly 2D (frets/over time) real guitars have more strings so
visualsing the current state is going to be a problem.

I have a Roland MIDI guitar pickup which extracts notes directly from
each string, this should provide sufficient level of detail to drive
the above program, however it would be much more interesting to try
and extract this information automatically from the single-line
acoustic output of the guitar.

Idea Last modified : 2008-05-21 14:35:30.000000000 +0100

Title: Semantic linking in PDA personal information management

Description: 

I have been involved in the GPE ( http://gpe.handhelds.org/ ) project
for a while now, it has struck me that in a closed (i.e. palmtop)
environment, where there is little scope for individual "way cool"
applications and (currently) scarce in the way of politics or
idealism, there might be reasonable scope for applying semantic web
technologies (or just ideas) like RDF, RDFS, DAML+OIL or OWL to create
an integrated system for creating and managing relationships between
objects of user data like contacts, events and other things like
bookmarks or more general things.

It may be that a single knowledge-based is the solution or a mechanism
for rationalising several different knowledge bases is applicable. 

There has been some work on RDF/sematic web-oriented storage and
management not limited to Jena ( http://www.hpl.hp.com/semweb/jena.htm
) , Joseki ( http://www.joseki.org/ ) and rdfdb ( http://rdfdb.sf.net/ ) .

The good/bad news is that most existing tools are java oriented, which
is wholly inappropriate (no really) for every day use on a PDA.

You may consider exposing the information in such a way as to make it
consumable by information/management agents.

You could consider more mundane problems such as synchronising the
information with existing services (i.e. evolution
http://www.ximian.com/evolution ) or more generally using syncml (
http://www.syncml.org ). 

Further Reading: 

The idea of general hypermedia is _old_ so there is a lot of backstory
(which is missing here)

RDF: http://www.w3.org/RDF/
RDFS: http://www.w3.org/TR/rdf-schema/
OWL: http://www.w3.org/2001/sw/WebOnt/
GPE: http://gpe.handhelds.org/
Idea Last modified : 2006-03-03 18:12:04.000000000 +0000

Title: Mob Instigated Semantic Annotation and Ontology definition, in a Large Knowledge representation Environment  

Description: 

Wikipedia, a Wiki oriented encyclopedia, is rapidly becoming one of
the largest single sources of human readable information relating to
the real world on the web. With well over 200,000 articles and
thousands of contributers.

Wikipedia (and other wiki systems) works by relaxing the
traditional constraints on write-access to information on the web, by
allowing pretty much anybody to modify the contents of the
encyclopedia pretty much all of the time(*). Govornance relies on a
mixture of the concience of authors and contributers: - not to submit
incorrect, offensive, or useless information or remove useful
information.  - to restore/fix entries where that has occured.

Entries in wikipedia are essentially human-readable with little
computer-readable information included, while this is fine for human
browsers, a lot of the information encoded within wikipedia may be
considered useful to electronic agents, and as such must be
represented in a form which they can understand. 

The puropose of this project is as follows: 

Assuming the target system is a content management system similar to
that of wikipedia (with the same norms about contributing content and
making edits) investigate the technical issues, and potential uses of
annotating entries using computer readable metadata. Additionally the
ontologies defining the types and semantics of those annotations may
also be considered as part of the wiki.  Additionally aspects such as
how agents actually access (in terms of protocols/interactions) this
information ay also be considered.

The problems of information duplication and inconsistency will present
themselves and must be considered. 

The use of existing standards for knowledge representation and
ontology definition should be considered (See references). 

Interesting starting points for content might be areas with either
well-defined ontologies (such as the taxonomic system)
(i.e. Llama), or areas where there tends to be a lot of RDF-like
fact data in entries already (such as geographical and political
information about towns, and countries)
(i.e. Conway%2C_South_Carolina and Costa_Rica).

Scope: 

This project is extremely broad, and can be seperated into two equally
broad problems: 

 - How the annotations themselves are defined, editied
and retrieved (and their relation to the corresponding textual
information) in a wiki style. 

 - How to go about the process of providing a definition of the
semantics of those annotations in terms of some kind of ontology
(which can be maintained in a similar fashion).

The latter problem is a difficult one for a number of reasons,
including that by nature the ontological information may not be
consistent or complete, and will be changing rapidly.


* There are a number of limited mechanism for preventing and limiting
  the affects of wiki vandalism, and active disputes like IP blocking
  and limiting the number of edits that can be made in a given time
  frame, but they are rarely used.


References: 

Wikipedia: http://www.wikipedia.org/
RDF: Resource_Description_Framework http://www.w3.org/RDF/
RDFS: http://www.w3.org/TR/rdf-schema/
OWL: http://www.w3.org/2001/sw/WebOnt/
Protege: http://protege.stanford.edu/
PHP: http:://www.php.org/
The Wiki Way
Idea Last modified : 2006-03-03 18:12:04.000000000 +0000