- see also ~/simplesparql/immediate-todo
- x get AxpressTestCases working again
- x how to create a translation which works on all of the results together rather than one at a time. ex:
- define a function with multi_function and it will get passed in a list of bindings and should return a new list of bindings
- displayhtmlfilenames - say you want to see an html list of the filenames matching a pattern
- this could be something that is an optional setting in the translation, saying it takes all of the inputs, not just some.
- how does this effect graph traversal and search?
- normally the evaluator would call this function for each of the result sets.
- are there any other ways a translation might need to be coded other than the current method and this one?
- X~ infinite loops still possible ... Axpress.Design.Compiler.Infinite Loop Searches
- X work on string matching
- x theorize on string matching system
- =======> try getting "inverse of %color%" to work
- setup a basic set of string match translations
- don't run find_matches twice per matching query
- X create tests for the string matching
- X compiler
- X understand what a string match means, special case for property axpress.is
- see Axpress.Design.Compiler.String Matching
- ! optimal path of translations
- speed it up
- I think this is going to be where a lot of initial magic happens
- Axpress.Design.Compiler.Basic Types As Objects With Properties
- !!! make it easier to add translations
- web interface for them
- allow creating/searching translations (as simple text objects maybe even just in a file/directory/sqlite db)
- allow writing and saving queries (string and axpress)
- better syntax - perhaps [translation name line] input lines => output lines [option lines]
- web interface for them
- x a debugger Axpress.Debugger
- there is more work that could be done, but the MVP is in production
- allow a kind of front-end to easily pretty-display results
- !!! allow it to interact with freebase
- dragon naturally speaking! :P
- connect strange loop
- tell it to improve upon itself
overall
- make it super easy to interact with python/ruby/php/bash/etc
- demo
- live-demo on dwiel.net
- is it at all secure?
- some help/reference
- search/browse available translations
- show examples, use cases, block names
- remove dependency on Joseki (allow it as an option but fall back on rdflib or something)
- unfortunately, it doesn't seem like many other tools allow SPARQL/Update
- make easier to import axpress library (don't require creating compiler and evaluator individually, etc)
- better debugging
- bulk import/keep updated data
- plugin system (watching a data source/store for changes and reacting)
- real-time audio/video system for sampler/etc
- translations stored in triple store, not in python file
- translations saved in groups for import/exporting groups of them (file format for this?)
- seperate class for set of translations.
axpress
- x how to connect read translate to the rest?
- write translate ?
compiler
- allow translations to be defined by an axpress query
- x make it work
- precompile it
- !!! optional parts of a query/translation
- x 'True Unification' (see end of Axpress.Design.Examples
- x also, see examples at end of AxpressTestCases
- x re-allow query limit size of read translate
- make query limit size only evaluate as much as necessary (right now does full evaluation then doesnt return all of its results. This is ok for tiny fast queries - not for downloading the first of 100 10MB files)
- detect infinite recursion with two translations that go back and forth. Is this detectable in the general case? How hard?
- current solution is iterative deepening search
- x finish making it work !!!
- x get rid of unecessary bindings in compiled output (check for speed increase?)
- x Axpress.Design.Compiler.Write Unless Exists
- x Axpress.Design.Compiler.Multiline Queries
- x allow python blocks in multiline
- allow some imports?
- x return bindings of reqdoutputvars
- < > etc operators
- input variables?
- higher efficiency search by precomputing all possible paths?
- Axpress.Design.Compiler.Optimizations are they needed?
- allow javascript blocks in multiline
- allow some kind maybe you meant ...
evaluator
- How hard would reintroducing the cache again be?
- detect when a query should be evaluated one bidings at a time (when a bindings requires a lot of memory for example) and when all bindings should be evaluated at once for each translation. Or allow an option to be set to force this behavior.
- figure out how to evaluate one bindings at a time (seems like there was an issue with the logic of it being confusing before)
- inline freebase queries?
sparql
- add raw SPARQL query type (next to read sparql, write sparql, python, etc)
- optimize sparql generation (to avoid using so many prefixes)
- Axpress.Design.SPARQL.Multiple Values - howto say you want only one value, or a list of them, etc (like MQL)
wiki (the organizing my thoughts/data side of things)
- tagging
- arbitrary connection to other data
- arbitrary query interface
- mix into google search results (or make an optional search wiki too search keyword)
translations
- generic freebase
- time (time.now, time.uts, time.month, time.year, etc)
- x last.fm working with cache and timelimit
- write to amarok playlist
- mongodb
- read/watch music library
- read/watch video library
- read/watch/mirror delicious bookmarks
- mp3* -> wav
- splice out piece of mp3 file
- x yahoo search
- youtube search, download, video manipulation
- rss
- IP location
- mongodb/couchdb/mysql/etc
- personal data (aka, what is your twitter stream)
- what is your status
- these 'social' translations allow you to define a way to upgrade your method of data creation, while still allowing users of the 'old' existing ontology to get an understandable version. Also allows people to get whatever version of you they want ...
gui
- x &format=json
- x turn into web API (input variables bound on ?var=value or ?bindings=json)
- basic html version ... somehow ...
- for now, expand the interactive web version as incremental improvement. See what kinds of operations I want to do and how. Let it evolve.
- autogenerate greasemonkey scripts
- connect standard GUI elements with queries (send MIDI messages based on this knob turning)
- connect to sooperlooper
- create a context for actions to take place.
- webpage full of links
- new set of keyboard shortcuts
- what?