Changes between Version 3 and Version 4 of DocumentationForDevelopers
- Timestamp:
- 03/05/12 12:36:22 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DocumentationForDevelopers
v3 v4 5 5 * Threading model 6 6 * There is just one big lock per user (the user's [source:trunk/skipforward/src/de/opendfki/skipforward/FactsDatabase.java FactsDatabase] instance); it's acquired immediately in [source:trunk/skipforward/src/de/opendfki/skipforward/ui/web de.opendfki.skipforward.ui.web] servlets. 7 * If you create a background thread or something similar, make sure you get the lock 7 * If you add a new servlet, create a background thread, or something similar, make sure you get the lock. 8 * Authentication 9 * An HTTP cookie is given to the user after authentication. The user's session is fetched using the magic contained in that cookie. 10 * For RSS, a hash (based on the user's password) contained in the URL is used to get the user session. That hash should not be used anywhere else. 8 11 * MVC 9 12 * [source:trunk/skipforward/src/de/opendfki/skipforward/ui/web de.opendfki.skipforward.ui.web] servlets call [source:trunk/skipforward/src/de/opendfki/skipforward/ui de.opendfki.skipforward.ui] class methods; these build views (using custom beans, typically), build HTML using StringTemplate, and return the HTML … … 17 20 * beans are throwaway objects and do not have any internal state - every change using their setters is immediately persisted in RDF 18 21 * beans are associated with their corresponding FactsDatabase so you cannot pass one bean instance to another user 22 * skipinions:FeatureType 23 * be aware that a Feature Type may have multiple supertypes. Also, while there should be no loops in the hierarchy, algorithms traversing the hierarchy should not get stuck if loops are present (due to bugs or something). 19 24 * non-binary features 20 25 * nb features are feature types such as "Name" or "Written by" - the full type is defined by the value(s) a feature instance uses then … … 24 29 * same for getting labels: feature123.getFeatureType().getLabel() is not very helpful (again, "Name") - use feature123.getFeatureTypeLabel() instead. 25 30 * thus, writing code that uses something like Map<FeatureType, ...> is most likely a mistake. 31 * skipinions:Items 32 * each user has a copy of all items he has commented on in his namespace, even if the Item he commented on was initially created by someone else. 33 * copied Items are linked to each other using owl:sameAs. 34 * Item.getFeatures...() does NOT take owl:sameAs links into consideration; FactsDb.getFeaturesForItem() DOES. 35 * be aware there are no persistent 'canonical' item URIs for any given item (as all item copies are equivalent) - for use in algorithms you can get canonical URIs that are valid at the moment though. 26 36 27 37