Tabulator To-Do

There are plenty of things to improve or fix about the tabulator!  Patches gratefully received. This project is open source.

To Do

  1. Get over the problem that the script is only allowed to access content on the same server. One or more techniques
  2. Undo function for user input. May involve regenerating the display from the last refocus point. Don't bother with unloading documents, unless/until retract feature exists.
  3. Document content view for N3 documents.  Not actually not simple: It requires basically the cwm pretty-printing algorithm to mimimize the number of top level noes and bndoes which show up with names.
  4. Suppress back-pointers to the subject within which the property list is nested, as they are obvious.
  5. Better HTTP error handing: make all information including 403 and 404 messages available from "sources" list. Handle 301, 302 (not handled by Safari automatically, but done by Firefox) and 303 handling as per TAG finding HTTPRange-14
  6. In sources list, allow retract. Can still look at content of document, but it is not considered part of the kb.
  7. In sources list, allow retry for failed fetches, and maybe even refresh for successful ones.
  8. Local cache of remote files.
  9. Class-specific views. Or views which apply to any thing iff a given function is true. Extensible software architecture for this, to allow view contributions.
  10. Fresnel view language, if it applies?
  11. Localizatin: use language tags on labels, and also localization data for the program itself: read strings from an RDF file.
  12. Add N3 parser. (Eulermoz? Generate a parser from the N3 gammar work? Sean Palmer's n3p?)
  13. Parser: Track the provenence [done] or inference which led to a statment, to allow 'of yeah' button, and retraction. 
  14. Parser: clean up URIs
  15. Alternative UI architecture for buttons: Unicode symbols with style sheet swicthing to change color of symbols for each different source?
  16. Visit pages - option to open a new web page in another or the same window?
  17. "Printable version" or "Link to this page" which generates a URI which will deref to the whole view. Especially (only?) for table view.  URI could be encoded SPARQL or N3QL of the view.
  18. GRDDL. This is a technique for extracting the RDF data from XML pages which have not been marked up as RDF. Needs access to the host browsers's XSLT system, which I understand exists in Firefox. 
  19. Editing. The web should be a two-way thing between person and the community spaces
  20. Breadcrumbs using query servers. Use SPARQL. Eg: Request for file returns HTTP code 303 redirecting to RDF information about the documents saying that it is big and where the SPAQL interface is. The RDF mapping of WSDL might be handy if a SOAP interface is exported.
  21. Ontology sidebar. Outline view of ontologies (subset of sourcess, note) and properties and classes. Checkboxes for ontologies and individual properties and classes to mask them from the display. Optionally, mask from ontolgy outline view those properties which are not actually used in data.
  22. Saving state. Can one ever save the DOM state as an HTML file? If so, it would be useful to be able to save the state in such a way that it could be emailed as a report, for example, which would be live for the person reading it.
  23. Mouseover help. Toolbar tips. 
  24. Display of number of loaded triples? In log area.
  25. Automatic paging out of documents which are not needed for the current display, indexing them for what they mention, to know when they are needed again?
  26. Lists as lists. RDF Collections become internal datatype, as cwm.
  27. Tabbed format? variation of outliner operation in which one property/object statement is selected and on the right the whole vertical extent of the property list is used for the expansion of the object.  Right-click on property cell with multiple objects.-> tabs? Actually, a property cell with multiple objects has lots of space.. room for more icons.
  28. Bookmarking. Can use same bookmark system as the main browser?
  29. Ouline mode: should sort predicate/inverse by predicate first so forward and backward links appear together.
  30. Table view -- all the normal things one expects of a table browser:
    1. Ordering by clicking on column titles. Up or down, use arrows like mac mail etc etc. 
    2. Selecting a value field (or property table head field for the epanded node) constrains values to htat selected
    3. Drag and drop or other to rearrange columns
    4. Rename columns, delete.
    5. Add numerically derived extra columns.  This actually creates a rule. 
    6. Add new columns from browser rule
    7. Rename columns when corresponding ouline view is re-rooted.
  31. Value summary browser (mSpace, iTunes like)
    1. Click on eye icon in table colum header (or outline view) to add a column value to the value browser
    2. Each value column shows the set of values that field can take, with no duplicates, in itrs own order.
    3. Clicking on one value in the value browser constrains main matrix to lines with that value.
    4. Can have columns in value browser and not in matrix, and vice-versa.  Keep synch with outline mode.
  32. DataType awareness.  Especially dates and numerics such as money must be appropriately presented and justified.  Value browser allow range constraints for dates and numerics. Range constraints could be done in value bowser .. or maybe in matrix just below the column.
  33. Pluggable view system.  Views picked up by loading RDF or by a user making a web page whcih includes extra .js files which  register themselves with the main browser.

Views wishlist

A view requires a routine to return the representation of an object in a DOM tree; an icon with which to represent the option of view to be clicked on to get the view, and a filter for what things (by class? properties?) can be so displayed. 


  1. Automatically find ontological closure of data added (look up all predicates and types)
  2. Smush together nodes using [inverse] functional properties, and owl:sameAs
  3. List classes mentioned in a document: currently one gets document metadata but not contents.
  4. Document content view: distinguish between loading a document and looking at its contents, and just looking.
  5. Add why parameter to parser, put into each statement,currently the RDFSymbol for the source document.
  6. Query generation by example: Select cells in the table, select property cell meaning "for all of these", generat e a query for a table, for a rectangular tabe view.
  7. URI of the object in question - click on a cell and it is put in the URI bar.