Add Chess world. Nice graphics.
Add "AI player" into the World using an open source Java chess player found online.
This becomes part of the World.
Then it is a good testbed for writing new AI players.
Could use another open source Java chess player as a Mind to play the built-in one.
Add chatbot.
Have to think about this one.
Start offline.
Then plug in to our new system where humans can interact with it.
Link fixer
- DONE BEFORE, WOULD NEED SOME NEW IDEAS
This would be more than just a program to tell you
that links on your web page were broken.
It would go out and, using a variety of heuristics,
attempt to actually fix the links.
Input would be a web page.
First it would find broken links.
Then it would search to see if the missing page
had moved somewhere,
e.g. hacking off bits from the RHS
and then reconstructing the URL.
If it could not reconstruct the URL,
it would turn to search engines
using linkto: and other techniques.
If it still could not find the URL,
it might suggest an alternative based on keywords.
Finally, it should actually output a copy of the web page
with the links fixed,
that the user may simply copy it over the old one,
or selectively cut and paste.
Possible enhancements:
Take as input an entire website.
Run overnight. Generate a report of the broken links
listed in order of the site with the most broken links to it.
Because often a change must be made globally through many of your pages.
e.g.
"http://akebono.stanford.edu/yahoo/" has moved to "http://www.yahoo.com/"
- change needed throughout the following 53 of your web pages.
Build a script that, when run, makes these changes.
Nice user interface output, showing old page, new page,
and selective buttons to press to "Fix link" on disk.
User in control at all times.
Use archive.org to find old page.
Then search in Google to find where it has gone to.
Suggest alternative links. e.g. Page on Shakespeare has gone.
Suggest wiki/Shakespeare instead.
"Click this to make change".
User always in control.
"Who links to me?" Web agent
- DONE BEFORE, WOULD NEED SOME NEW IDEAS
Search engines have a linkto: facility,
so you can see who links to you,
but it takes forever to browse the list
so you don't bother.
This would be a
standalone program to
find all pages that link to the user or reference them,
download all these pages (will take a long time),
perhaps sort them by the topic or page referenced,
and present them all in a nice readable output,
with all the references highlighted (as in Google's cache).
How to highlight a phrase using
the font tag
View Source
to see how this is done.
How to highlight a phrase using
the bold tag
View Source
to see how this is done.
Extract keywords from page. (How? Need idea of dictionary frequency.)
Use search engines to find similar pages on Web.
Implement as CGI script
so that I can automatically add a "What is like this?" link
at the top of every URL.
Web page enhancer - DONE BEFORE, WOULD NEED SOME NEW IDEAS
Web page enhancer - Links
CGI script. Input is a web page.
Extracts all proper nouns
(perhaps words that are not in the UNIX dictionary
- see "man spell"
and /usr/share/lib/dict/).
For all these proper nouns, link them to a search engine
so you can just click on the word
to search for it on the web.
Output is this new web page with all these words linked.
Enhancement - Perhaps check first to see if you can find a
Yahoo category
for the word.
If so, link to it.
If not, link to a search engine.
Perhaps the CGI script just functions as a spell-checker.
The basic enhancements of this and the other CGI scripts below
is that images should still display from the original page.
Also when links are followed, the new page
should be put through the CGI script as well.
Web page enhancer - Locations and Maps
CGI script. Input is web page.
Tries to extract all the locations on the page
and link them to some online map.
Output is this new web page with all these words linked.
Difficult bit is identifying the place names
(as opposed to just any proper nouns).
Perhaps can identify Irish and UK locations
by the presence of a trailing Co.--- (one of the 32 counties)
or --Shire (one of the UK counties).
Enhancement might be to actually include the map on the page
(make sure no copyright infringement!).
Alternatively, link to a choice
of online maps.
Also see basic CGI enhancements above.
Web page enhancer - Dates
As above. Identify all dates on the page,
in any format, and, using "cal" program,
convert them all to format showing the day of the week,
like: "Sun 1st Nov 1818".
Enhancement - Link each month to a second CGI script
which displays calendar for that month.
Also see basic CGI enhancements above.
For all of these CGI scripts, I have many web pages
with proper nouns, locations and dates,
that could be used as test cases.
Leo van de Pas
(Australia)
(ID no. 00000007 for Victoria)
The program:
The user selects Hull or Australia.
The user inputs the ID number of the person whose ancestry they want to check.
Up to the user to find this ID number.
The program searches the relevant database for lines from this person to any of n
pre-defined English
and
British
monarchs.
It returns the shortest such line found (least number of generations).
It displays the line like
this
with HTML links on the names back to their entry in the database.
Notes:
To restrict the search (e.g. Victoria would have over 10,000 ancestors)
we proceed as follows. First do an indefinite-length search on ancestors until one Royal descent is found.
Let us say this is at 12 generations back.
From now, on, search no more than 12 generations back.
Let us say we then find a further Royal descent at 6 generations back.
From now, on, search no more than 6 generations back.
And so on.
So with Victoria we would find a Royal descent at 2 generations
and would then search no line longer than 2 generations, and the search would end quickly.
HTTP requests should be spaced out. Say 2 per second.
Information should be cached
so don't have to repeat the HTTP if did it before.
Need to parse the returned page in order to find link to father and mother.
Australia database has
"Ancestors"
mode
which downloads multiple generations in one HTTP request.
This could be used to speed things up.
However, hard to parse to see someone's parents.
Enter name (not ID number).
Searches remote site for name.
Presents you with list of choices. Click on one.
Program extracts ID no.
Tree matcher.
Takes trees which are in a structured HTML format
(e.g. GEDCOM 2 HTML),
and tries to match up fragments of them with other trees
in structured HTML format on the Web,
looking for overlaps.
Start with matching surname lists.
Then look for overlaps round each individual.
Similar to "What is like this?" above.
"GEDCOM 2 narrative" family tree converter
- DONE BEFORE, BUT I HAVE SOME NEW IDEAS
The standard format for computerised family trees
is the
GEDCOM format.
Historically, the standard format for paper family trees
has been the Burke's Peerage narrative format.
The aim of the project is to write a
converter between the two.
The converter would take as input a family tree
in GEDCOM format (there are many sample GEDCOM trees on the Web)
and output the information in the
Burke's narrative format in HTML (which is illustrated on my own Web pages).
One of the main challenges for the software
would be to automatically detect where to break
the narrative and start a new narrative, something Burke's
(and I) currently do by hand.
The result would be a more flexible output than the databases provide.
Perhaps to be done in cooperation with Tompsett at Hull.
Debugged offline on separate data.
End product is a script Tompsett could add to his site,
so that we can see all of Tompsett's data in
condensed Hypertext Narrative format.