[xwiki-users] Query Regarding Data Model
Hi There, I'm starting to explore use of XWiki for a project where we want to provide a domain-specific semi-structured wiki which seems like it ought to be a good fit to XWiki's intended usage. However, we're having a bit of trouble getting started understanding what can and can't easily be captured in the XWiki data model. Specifically: 1- What is the recommended way to specify object fields that contain references to other XWiki objects? 2- What is the recommended way to specify object fields that contain references to non-XWiki plain old Java objects? 3- Is there a standard way to define fields as holding ordered/unordered lists/sets of objects as opposed to single objects? 4- Assuming we can define models that allow for these sorts of things, are there easy/standard ways to display such fields contents, as well as ways for end-users to specify fillers (e.g. list/tree pickers of existing objects of the desired type)? --Eric ========================================================================= Eric Domeshek Phone: 617-902-2223 AI Project Manager Fax: 617-902-2225 Stottler Henke Associates, Inc. EMail: [email protected] 86 Sherman St., Cambridge, MA 02140 Web: www.stottlerhenke.com =========================================================================
On Fri, Oct 2, 2009 at 11:30 AM, Eric Domeshek <[email protected]>wrote:
I'm starting to explore use of XWiki for a project where we want to provide a domain-specific semi-structured wiki which seems like it ought to be a good fit to XWiki's intended usage.
Yes, it is. Xwiki is the best thing to hit open source since Linux and Emacs :-) . Xwiki is Emacs for the Web. All it's missing is Clojure via JSR223 to get the Lisp extension language...
However, we're having a bit of trouble getting started understanding what can and can't easily be captured in the XWiki data model. Specifically:
1- What is the recommended way to specify object fields that contain references to other XWiki objects?
This is being discussed over on the dev list right now: http://www.mail-archive.com/[email protected]/msg11295.html http://osdir.com/ml/web.wiki.xwiki.user/2008-02/msg00135.html [...] define the option lists is by using the fields: XWiki Class Name, Id Field Name, Value Field Name and Parent Field Name. Using those fields, the XWiki platform<http://osdir.com/ml/web.wiki.xwiki.user/2008-02/msg00135.html#> constructs the following hql queries: select idprop.value, valueprop.value, parentprop.value from XWikiDocument doc, BaseObject obj, StringProperty idprop, StringProperty valueprop, StringProperty parentprop.value where obj.name = doc.name and obj.className = "value entered in Class name" and idprop.id.id = obj.id and idprop.id.name = "value entered in Id Field Name" and valueprop.id.id = obj.id and valueprop.id.name = "value entered in Value Field Name" and parentprop.id.id = obj.id and parentprop.id.name = "value entered in Parent Field Name" So, it selects from objects of a given type (XWiki Class) 3 properties (of storage type String, read bellow what this means). As a special case, you can use "doc.<some doc property>" or "obj.<some object property>" instead of property names, and the query is adapted accordingly. In the case of DBList, only 2 columns are selected, as the Parent property is not used/defined. String storage type means: - either a property of type String - or a property of type StaticList, DBList or DBTreeList with multipleSelect = false If you want to use the DBTreeList, you must model your data so that they will allow these kind of queries.
2- What is the recommended way to specify object fields that contain references to non-XWiki plain old Java objects?
I'm going to let someone else answer what's recommended. This is one way: http://code.xwiki.org/xwiki/bin/view/Modules/PropertiesModule
3- Is there a standard way to define fields as holding ordered/unordered lists/sets of objects as opposed to single objects?
Check the "multiple select" option for List, DatabaseList or DatabaseTreeList? in the class editor (see /xwiki/bin/view/XWiki/XWikiClasses and http://dev.xwiki.org/xwiki/bin/view/Drafts/DatabaseListProperties )
4- Assuming we can define models that allow for these sorts of things, are there easy/standard ways to display such fields contents, as well as ways for end-users to specify fillers (e.g. list/tree pickers of existing objects of the desired type)?
Although not the Xwiki-officially-blessed technique, I like to use Exhibit for this purpose: http://simile-widgets.org/exhibit/ http://people.csail.mit.edu/dfhuynh/research/papers/www2007-exhibit.pdf Some examples of my own using Xwiki: http://nielsmayer.com/trainspodder-prototype.jpg (coming to the internets real soon now) http://nielsmayer.com/xwiki/bin/view/Exhibit/NPRpods3 (work in progress/old code) http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents4 (demo of Xwiki integration) http://nielsmayer.com/xwiki/bin/download/Exhibit/Presidents4/Presidents4Pkg.... including Exhibit&jQuery "Macros") -- Niels http://nielsmayer.com
participants (2)
-
Eric Domeshek -
Niels Mayer