Version 25 (modified by kiesel, 15 years ago) (diff) |
---|
Random ideas
- Refactoring
- Syncer should implement and use ModelListener
- pro: less resource consumption, proper diff handling
- needs lots of rewriting
- One Model per Skipforward webapp (new). Many users per Skipforward webapp (done). Use TDB? Use named graphs for what facet?
- pro: Less resource consumption (memory/filetransfers)
- con: Syncer needs to know with whom to sync. Not trivial (what if one user moves from SF server A to SF server B?). Privacy issues (FactsDb needs to check resources it accesses against namespaces that are supposed to be visible to the user - has to trust XMPP server).
- use Beans instead of JSON for ST models (fix String vs. HTML escaping ugliness in the process)
- Syncer should implement and use ModelListener
- User interface
- use ST pages for linked data HTML view
- overview ST page for user
- ST navigation bar
- ST annotation wizard
- allow some simple HTML in comments (<i>,<a href=... skip=bool>)
- Bugs
- viewing a feature pointing at another "thing" gives you no way to open this thing.
- having to click on a thing before it can be added as a feature value is not really intuitive, and never explained.
- Annotating items
- Rules for deducing features (per-user basis, let user confirm generated feature instances)
- Filter negative features in view
- Adaptation for music domain
- simplify entering song/band information - 1 week
- download/cache songs - 1-4 weeks
- generate/play playlists, possibly with changing style over time (AutoDJ) - 2-6 weeks
- Book domain ontology
- Metadata sharing
- optimize synchronization - 2-3 weeks
- cache and forward data on intermediate nodes in a secure fashion - 3-8 weeks
- superpeer nodes? Possibly represented within the network? (superpeer3-hasFeature-IsHubForMusic) - 3-8 weeks
- detect 'hot topics'
- Trust network - trust as in "peer is competent/peer's metadata is important")
- Spreading Activation Models for Trust Propagation
- explicit representation of trust (see Skippies ontology) - 2-5 weeks
- user interface changes for that
- trust metric changes for that
- Ontology evolution
- simple skipinions ontology editor - 2 weeks
- update and synchronize ontologies (and facts!) on peers - 3-8 weeks
Implementation details
- Facts/graph synchronization idea
- every peer implements
- String getDiffForNamespace(String namespace, String haveHash, String wantHash)
- String getMostCurrentHash()
- String isValid(String hash)
- String getPubkey()
- ? subscribe(?)
- logic: once a day, every machine dumps its 'own' facts to an NTriples file along with a timestamp and the data's hash
- when peers call getDiffForNamespace(), a diff from haveHash.dat to wantHash.dat is calculated and sent
- Distributed Storage
- simple distributed storage (without signatures) with trust can be implemented usind getMostCurrentHash and isValid
- distributed storage with signatures can be implemented with getPubkey (using a true keyserver might be desirable though)
- optimized push synchronization could use some subscription mechanism. Integrate with XMPP pubsub?
- Ontology evolution/rules
- rules that upgrade existing facts could be added to the diff file
- every peer implements
Done
- Internal namespaces for ontologies (xmpp://schwarz@xmpp.km.opendfki.de/ont/ludopinions#UsesDice)
- this way people can create own ontologies, and ontology management/evolution can be done similar to facts synchronization
- Play sounds from JavaScript: http://www.schillmania.com/projects/soundmanager/
- show number of (existing) feature instances for each item (in ItemPane) - metadata certificates
- show number of feature instances for each feature class (in FeaturePane) and arithmetic mean/standard deviation for applicability - metadata certificates
- red/green blobs
- RDF importer that changes namespaces
- FloriansDiplomaThesis topics (Jul-Dec 2008)
- related work: Semantic audio - List of publications
- finish skiptrax ontology (see Music Ontology)
- metadata importers/exporters (ID3, LastFM, etc.)
- expert recommender (ask friends about people having knowledge about X/interests in Y)
- scalable trust metric
- fast computation of feature summaries
- User interface
- Plain HTML pages for item/feature instances, just for browsing and linked data
- For Person instances: Trust, feature(types) I (dis)agree with, last annotations, list of annotated items (by date/...)
- For Item instances: Review stats, list of annotators (by degree of agreement), list of feature instances (by date/...)
- For Feature types: Comment, example positive/negative item instances (by number of annotations), experts for this type, dispute list (for the current item), list of instances (for the current item)
- Plain HTML pages for item/feature instances, just for browsing and linked data