Daffodil:Ideas/Use Cases
From Wiki
This page is part of the Daffodil Wiki.
Main Page | User Guide | Programming Guide | Protocol | FAQs
This page is dedicated to new ideas, use cases, and strategies. Feel free to discuss the future of DAFFODIL!
Contents |
Use Cases and Strategies
Ideas
New User Concept
Users and Groups
- We need a new concept for users and groups that allows groups to independently administer their needs within the Daffodil system. I suggest a four-tiered user hierarchy consisting of visitors, normal users, group admins and bureaucrats.
- Bureaucrats can create new groups and add new users to the system. They can delete users and groups, and change groups memberships. Bureacrats also have access to all log files for the log viewer. Bureaucrats see all users, and can send broadcast messages to all users of the system.
- Admins can add new users to the system and can remove or add users to the group(s) for which they are admin. They also have access to all member log files for the groups they administer. Admins see all members of all groups they are part of. They can send broadcast messages to all members of the groups they administer.
- Users cannot add or remove groups or users. They can leave any group in which they are a member. They only have access to their own log files. Users can change their password, and are able to request a password reminder by email. Users see all members of all groups they are part of. They can only send messages to single users within their group(s).
- Visitors cannot affect any changes in group memberships, they cannot add or remove groups or users. They are not able to view any log files and can't change the visitor password. They see only special accounts (e.g. librarians, search experts, bots) and can only send messages to these accounts.
Necessary Changes
- Implement user hierarchy in database
- Change logvis tool to account for admins and bureaucrats instead of using hard coded user names
- Move AdminTool into Daffodil
- Change AdminTool to take into account the user hierarchy and behave according to the user level
- Allow for changing of passwords - and use encryption to store and transmit passwords
- Allow for email reminders
- Fix ChatTool, add useable group support to chat and allow for group and system broadcasts
Possible Timeline for Implementation
- add new data to database; this will not affect the program
- designate bureacrats and admins
- fetch user level information at login
- change logvis tool
- change admin tool to use user hierarchy
- move admin tool to Daffodil and activate the correct view for the user's level
- add password encryption
- add possibility for password change
- add possibility for password reminder
- rework chat tool
Integrated Personal Library
Maybe a new project group with Kommedias?
UseCases
- I want to work with my collegues on a paper and need a facility for this. I want to search all needed articles and informations with Daffodil, store it in my personal library and also work with the whiteboard tool within Daffodil, to structure the paper with my collegues in a collaborative way. We all want to work on the source (latex,doc) file, which should underlay a version control and is also placed in the personal library. It would be enough, if every upload creates a new version.
Functionality
The new personal library should have the following feature (is this a filesystem?):
- Maybe a BSCW like access can be created through servlet technology, which would give access to the PLib objects.
- Offline/Online storage of any object or file
- Must be always synchronized with a server side storage, in order to use different devices
- Group functionality
- P2P functionality (search)
- Implement a filesystem for easy access to objects.
- Open an editor and edit a file on the personal library
The GUI must support:
- Multiple Views
- Trees (as we have)
- Categories (as we want)
Henrik: What we really want to have an ontology, so that we assign each PLib object to one or more categories. The ontology induces a hierarchy, which of course can be presented in a tree (actually, this should be one presentation option). More on this in my Diss-Stadl slot (2005-11-23)
How does BSCW work?
- One can upload a file to the BSCW
- One can download/edit a file from the BSCW, either by direct click, if the Mime-Type of the file is supported by the browser, otherwise it will be
stored as usual.
- I guess, because i can not try, one can upload then a changed version of the file and a new version (CVS) is created. I do not know if BCSW also supports locking mechanisms, but WebDav does.
Current status of possible solutions/ideas/properties
- What functionality is needed:
- Offline/Online use including synchronization!
- This can be done with an sql db on server and client site. On the client side a solution like HSQLDB is needed, so that when the program is offline running, HSQLDB is used to store, retrieve stuff from local site. When the program ends, it serializes the stuff onto the harddisk (maybe on the fly, also during run). If the program gets online, all offline transactions need to be synchronized with the server side.
- Synchronization is not a trivial problem, but i guess we can differentiate the list of cases, so that we and the user does not get into trouble.
- Visualize plib through Webbrowser
- In order to have read access on the plib, we would setup a special webserver, with no webdav, just a plain webserver, where the HTML/Bibtex/Endnode version of all metadata entries, or other stored stuff can be read or downloaded or exported, also with authentification.
- What table to we need for handling the PLib:
- dl_objects: store all digital objects along with attributes and content
- plib hierachy/classification/classification-hierarchy: store the structure/classifier of the plib
Links
http://www.ieee-tcdl.org/Bulletin/current/alvarez_cavazos/alvarez_cavazos.html
OpenURL
- Idea: Provide OpenURLs for documents
- Background: Resolvers for OpenURL find the appropriate location for fulltexts based on the institution of the the user
- Links:
- Problem: Finding the appropriate link resolver, current registries provide only a spotty coverage
Performance Measuring and Profiling for Daffodil
We want to implement a performance measuring and profiling toolkit to answer the following questions:
- How much time takes a certain algorithm?
- How much time takes a certain functionality?
- Where are the bottlenecks within Daffodil?
- If we identified a bottleneck and reprogrammed the part, how much faster are we then?
The toolkit should be based on a profiling toolkit, maybe like jrat or others. The timings should be stored in a database with timestamps and identifiers, to document, proof or show, that a new functionality take less time.
Beispiel: Metadatenanfrage
- agent.properties: Variable zum Ein-/Ausschalten von der Effizienzmessung
GUI -> UserAgent -> DocumentAgent -> Wrapper GUI <- UserAgent <- DocumentAgent <- Wrapper
- DB Schema
- Run: Datum & Zeit
- Testcase: z.B. Metadatenanfrage
- Agent: Agentenname
- Methode:
- Startzeit
- Stopzeit
- Die Lognachricht wird verschickt an den LogSchemaAgent.
- Methoden
Nachricht rein: UserRequest.handleMetadataQuery() Nachricht raus: Nachricht rein: DocumentRequest.handleAskMetadataQuery() Nachricht raus: DocumentRequest.sendResult() Nachricht rein: de/unido/daffodil/wrapper/net/Wrapper.askMetadata()
Desktop Search
- Tool: Welche Pfade beobachtet
- Wenn man sucht, werden diese Pfade mitgesucht: Dateien (PDF; PS; TEX; ...)
- Aus Dokumenten Zitationen extrahieren
- PLib: Einhängen von Plattenverzeichnissen: Annotation; Tagging von Dateien
- Ansichtssurrogate extrahiert
Local file folders in PLib
Within the personal folder in the PLib we want to add hard disk file folders. (Done Bug #1636)
Functionality:
- If parent folder is opened, check availability and mark folder as inaccessible, if so.
- Copy & Move between local folders should be possible
- Importing metadata (bibtex, endnote, ..) from local folder to webdav folder
- Exporting metadata, URLs and full text from webdav to local folder (possible download)
- Annotation and Tagging of all objects
- Sharing of local folders within P2P PLib
TEL Wrapper
Some of the national libraries only deliver information about a book, but no other data. I would suggest to fetch this data e.g. via ISBN number from amazon, or any other source. Amazon has the advantage that it provides a API tro access their data. So we need a amazon wrapper.
Desktop Search
I implemented a alpha version of a desktop search to search for files on your hard disk. This version can - index your latex files - search for the files in a special desktop search tool
Plans are on the way, to integrate it with the normal search, to extend the file types, etc, etc...
Do test it you have to do the following:
- Checkout of CVS Modul DesktopSearch
- sudo apt-get install untex
- Prepare ScanDirectory.java:
- change variable: indexDirectory = new File("/home/klas/tmp/lucene_files"); //
- change variable: String path = "/home/klas/"; //from where the filesystem is scanned!
- run ScanDirectory
- Prepare desktopsearch.SearchPanel:
- change variable: String indexDirectory = "/home/klas/tmp/lucene_files"; // the same as before to access lucene
- Enable DesktopSearch in e.g. DefaultPerspektive
Have fun!
Tagging Tool for Daffodil
We want both a tagging tool and the folder structure to remain in the PLib.
TagView
- right frame all objects selected by tags
- left frame above: list of: private .. groups
- left frame below tabbed pane to select
- by attributes: author, year, terms, journals, conferences
- by tag(s)-ontology
Multiple selection of different attributes and tags should be possible either by selecting different attributes and tags from each tab, or by searching for attr and tags like in thunderbird
Rights
The user should be able to set different rights: private, group, public
- Right by tags: A user can set a personal tag to each of the three right values.
- Right by object: A user can set an object to each of the three right values.
Object rights overrule tag rights
