From: Markus K. <ma...@se...> - 2008-07-07 08:51:15
|
SMW 1.2 extends the options for controlling which queries users are allowed to ask, and it has a mechanism that can be used to let some users ask more than others ("permissions"). The detailed query control settings are achieved by the new configuration parameter $smwgQFeatures. This parameter defines which query features are allowed in #ask. The default is the following: $smwgQFeatures = SMW_PROPERTY_QUERY | SMW_CATEGORY_QUERY | SMW_CONCEPT_QUERY | SMW_NAMESPACE_QUERY | SMW_CONJUNCTION_QUERY | SMW_DISJUNCTION_QUERY; This allows all existing features to be used. Other possible settings could be: only category intersections: $smwgQFeatures = SMW_CATEGORY_QUERY | SMW_CONJUNCTION_QUERY; only single concepts: (see earlier mail on concepts) $smwgQFeatures = SMW_CONCEPT_QUERY; anything but disjunctions: $smwgQFeatures = SMW_ANY_QUERY & ~SMW_DISJUNCTION_QUERY; So you can very clearly customise SMW queries. This affects only the #ask queries. Queries stored as concepts have their own setting, called $smwgQConceptFeatures. For example, concepts currently are not allowed to refer to other concepts (recursion is not handled properly by SMW yet). This gives you a way to restrict query creation to some user group of the wiki: * set $smwgQFeatures = SMW_CONCEPT_QUERY; * configure MediaWiki to have the Concept: namespace being editable only by some user groups (there are extensions for that, I have no further details here, search the web). Then #ask queries can only use single concepts and not be used to invent any new queries. So you can have very complex queries, but have responsible people creating them and making sure they are fine and fast in the wiki. You can also set $smwgQFeatures = SMW_CONCEPT_QUERY | SMW_CONJUNCTION_QUERY; to allow for conjunctions of multiple concepts, if desired, or you can further include categories. This appears to be a good option especially for very large sites that cannot afford users toying around with arbitrary queries for reasons of performance. This restriction was not tested thoroughly yet (so do not rely on this performance safety). Restricting complex queries to concept will become even more useful as soon as SMW 1.3 offers concept-specific caching (e.g. some concepts being precomputed in the database so they can be recalled like categories). Category caching was originally planned for SMW 1.2 already, but we decided to first introduce concepts and then have a general caching mechanism for them. In this way, all queries will be cacheable and scale to any site that is able to display categories. Wikipedia comes to mind. But one more release is needed for that to be done properly. Cheers, Markus -- Markus Krötzsch Semantic MediaWiki http://semantic-mediawiki.org http://korrekt.org ma...@se... |