On 09/11/12 13:34, Marcelo Chiaradía wrote:
> Thanks a lot for your answer. By the way, is there any extension needed
> to run sub-queries?

No, subqueries are a standard part of SMW's query language and all 
storage backends support them. There are also some forms of subqueries 
for which you don't need <q>s:

[[property1.property2::Value]]

is short for

[[property1::<q>[[property2::Value]]</q>]]

But this won't work if you have more conditions to check in the subquery 
(e.g.., categories in your case).

Markus


> 2012/11/9 Markus Krötzsch <mar...@semantic-mediawiki.org
> <mailto:mar...@semantic-mediawiki.org>>
>
>     On 09/11/12 09:37, Yury Katkov wrote:
>
>         Well you can also use template format if you don't like
>         subqueries... It
>         would also help you to use the intermediate results.
>
>
>     That would let you "see" the intermediate results (otherwise, there
>     is no way to find out which of, say, the "has C" values was
>     "responsible" for having a line in the result). If you really need
>     this, and the information cannot be retrieved later (e.g. if you
>     know that there is only one "has C" on any page anyway), then
>     templates might help.
>
>     However, using templates with queries to format other queries is
>     generally a bad approach that is extremely inefficient and will use
>     a lot of memory and CPU to display a page (results are fetched from
>     the database, rendered as wikitext, re-parsed as queries, which are
>     used to fetch more results, ...); it will only work at all of your
>     inner results are very limited in number.
>
>     Markus
>
>
>
>
>         On Wed, Nov 7, 2012 at 5:44 PM, Marcelo Chiaradía
>         <chiaradiamarc...@gmail.com <mailto:chiaradiamarc...@gmail.com>
>         <mailto:chiaradiamarcelo@__gmail.com
>         <mailto:chiaradiamarc...@gmail.com>>> wrote:
>
>              Hi everyone,
>
>              I'm trying to make an #ask query, using intermediates
>         results to do
>              more queries within.
>
>              I have this scenario:
>
>              I have several pages of a category A. Some of them are
>         related to
>              other pages of category B, through a "has B" property.
>         Then, my B
>              pages are related to pages of category C, through "has C"
>         property,
>              and finally my C pages have an attribute "att1", through
>         "has att1"
>              property, wich has defined a specific set of values.
>
>              I would like to make an "ask" query, asking for all my A pages,
>              whose must have at least one B page, which must have at
>         least one C
>              page, and which must have the "att1 = SOME_VALUE", where
>         some value
>              should be a parameter.
>
>              I read about subqueries, doing something like:
>
>              {{#ask: [[Category::A]] [[has B::<q>[[Category::B]] [[has C::
>
>                                  <q>[[Category::C]] [[has
>         att1::{{SOME_VALUE}}]]</q>]]
>                                                            </q>]]
>              |?att1
>              }}
>
>              Is this the right way to do this? is there a more elegant way?
>
>              One other thing, I would like that if the user doesn't
>         complete the
>              "SOME_VALUE" parameter, then return all the pages of
>         category A. I
>              tried this with the "+" and "*" characters, but didnt work.
>         How is
>              the best way to achieve this?
>
>              Thanks a lot in advance,
>
>              Marcelo.
>
>
>         
> ------------------------------__------------------------------__------------------
>              LogMeIn Central: Instant, anywhere, Remote PC access and
>         management.
>              Stay in control, update software, and manage PCs from one
>         command center
>              Diagnose problems and improve visibility into emerging IT
>         issues
>              Automate, monitor and manage. Do more in less time with Central
>         http://p.sf.net/sfu/__logmein12331_d2d
>         <http://p.sf.net/sfu/logmein12331_d2d>
>              _________________________________________________
>              Semediawiki-devel mailing list
>         Semediawiki-devel@lists.__sourceforge.net
>         <mailto:Semediawiki-devel@lists.sourceforge.net>
>              <mailto:Semediawiki-devel@__lists.sourceforge.net
>         <mailto:Semediawiki-devel@lists.sourceforge.net>>
>         https://lists.sourceforge.net/__lists/listinfo/semediawiki-__devel
>         <https://lists.sourceforge.net/lists/listinfo/semediawiki-devel>
>
>
>
>
>         
> ------------------------------__------------------------------__------------------
>         Everyone hates slow websites. So do we.
>         Make your web apps faster with AppDynamics
>         Download AppDynamics Lite for free today:
>         http://p.sf.net/sfu/appdyn___d2d_nov
>         <http://p.sf.net/sfu/appdyn_d2d_nov>
>
>
>
>
>         _________________________________________________
>         Semediawiki-devel mailing list
>         Semediawiki-devel@lists.__sourceforge.net
>         <mailto:Semediawiki-devel@lists.sourceforge.net>
>         https://lists.sourceforge.net/__lists/listinfo/semediawiki-__devel
>         <https://lists.sourceforge.net/lists/listinfo/semediawiki-devel>
>
>
>


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_nov
_______________________________________________
Semediawiki-devel mailing list
Semediawiki-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/semediawiki-devel

Reply via email to