Tabulator To-Do
There are plenty of things to improve or fix about the
tabulator!
Patches gratefully received. This project is open source.
See also the tabulator issue tracker, which is set up to accomodate participation more easily than this page.
To Do
- Get over the problem that the script is only allowed to
access content on the same server. One or more techniques
- Have the user set the Firefox browser to do codebase
principals. This works. It is not ideal. [done,
See Help file.]
- Hack around the problem using alternative HTTP access
code. This would normally rely on some less secure Firefox extension.
- Establish a local gateway on the user's machine. This
would not be easy to do portably, but an Apache config file would be a
start
- Establish a general gateway for all users, at
something.w3.org. This would make sense only if it could be used for
other purposes, such as caching, (Ontaria connecetion? Swoogle service)
- 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.
- 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.
- Suppress back-pointers to the subject within which the
property list is nested, as they are obvious.
- 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
- In sources list, allow retract. Can still look at content
of document, but it is not considered part of the kb.
- In sources list, allow retry for failed fetches, and maybe
even refresh for successful ones.
- Local cache of remote files.
- 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.
- Fresnel view language, if it applies?
- Localizatin: use language tags on labels, and also
localization data for the program itself: read strings from an RDF file.
- Add N3 parser. (Eulermoz? Generate a parser from the N3
gammar work? Sean Palmer's n3p?)
- Parser: Track the provenence [done] or inference which led
to a statment, to allow 'of yeah' button, and retraction.
- Parser: clean up URIs
- Alternative UI architecture for buttons: Unicode symbols
with style sheet swicthing to change color of symbols for each
different source?
- Visit pages - option to open a new web page in
another or the same window?
- "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.
- 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.
- GRDDL Spec
- Use built-in browser XSLT or XSLT implementation in Javascript?
- Editing. The web should be a two-way thing between person
and the community spaces
- Allow new data to be added, sending the result as some
kind of form I guess - posting RDF.. Needs RDF or N3 serializer.
NTriples serialiser exists.
- Allow existing data to be changed, sending diffs [qv] to a
server.
- Storage: HTML form like server POST, or annotation
server protocol maybe.
- Add a new statement with same s and p or same s. Or
make new one. Select p from list. Include "new...} in the list which in
fact then goes to a form for a new property in a new or existing
ontology.
- Make links betwen S and O by: Select S; "Mark"; select
O; "Link to marked"; select P from popup. (like enquire)
- Make sure you get from the user the access policy which
the new information will be subject to.
- Protocol for posting new data: Just post new data? Post
N3
diff? Post SPARQL expanded to have DELETe ...INSERT ... WHERE
....
- 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.
- 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.
- 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.
- Mouseover help. Toolbar tips.
- Display of number of loaded triples? In log area.
- 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?
- Lists as lists. RDF Collections become internal datatype,
as cwm.
- 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.
- Bookmarking. Can use same bookmark system as the main
browser?
- Ouline mode: should sort predicate/inverse by predicate
first so forward and backward links appear together.
- Table view -- all the normal things one expects of a table
browser:
- Ordering by clicking on column titles. Up or down, use
arrows like mac mail etc etc.
- Selecting a value field (or property table head field for
the epanded node) constrains values to htat selected
- Drag and drop or other to rearrange columns
- Rename columns, delete.
- Add numerically derived extra columns. This
actually creates a rule.
- Add new columns from browser rule
- Rename columns when corresponding ouline view is
re-rooted.
- Value summary browser (mSpace, iTunes like)
- Click on eye icon in table colum header (or outline view)
to add a column value to the value browser
- Each value column shows the set of values that field can
take, with no duplicates, in itrs own order.
- Clicking on one value in the value browser constrains
main matrix to lines with that value.
- Can have columns in value browser and not in matrix, and
vice-versa. Keep synch with outline mode.
- 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.
- 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.
- Business card (name, phone number,...)
- Calendar (date)
- Map (location, lat, long)
- Organizational chart (part)
- Photo album (anything whose range is Image)
- Slide show... not just of pictures but of any set of
objects or list, or multi-valued property.
Done
- Automatically find ontological closure of data added (look
up all predicates and types)
- Smush together nodes using [inverse] functional properties,
and owl:sameAs
- List classes mentioned in a document: currently one gets
document metadata but not contents.
- Document content view: distinguish between loading a
document and looking at its contents, and just looking.
- Add why parameter to parser, put into each
statement,currently the RDFSymbol for the source document.
- 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.
- URI of the object in question - click on a cell and it is
put in the URI bar.