From: James T. <jam...@gm...> - 2008-04-17 04:22:04
|
Hi. I'm wondering if anyone knows how to make nested asks. Essentially I would like make a nested set of queries such that: 1) The first query obtains a set of pages (this is standard using an 'ask'), and 2) the second query obtained a different set of pages that used the page names from the first set of pages. So for example: 1) Obtain a set of pages: Pages1Set = {{#ask:[[Category::Category1]] [[MyProperty::P1]]}} 2) Obtain a second set of pages that depend of the first: for all elements of PagesSet Pages2Set = {{#ask:[[Category::Category2]] [[MyProperty2::Page1Set(index).pageName]]}} Page2SetTotal = Page2SetTotal + Pages2Set 3) Display the results in some table I bet the syntax could be something like below, but this doesn't work: {{#ask:[[Category::Category2]] [[MyProperty2::{{#ask:[[Category::Category1]] [[MyProperty::P1]]}}]]}} -James |
From: Nathan Y. <na...@cr...> - 2008-04-17 15:29:05
|
We're doing something like this (ie, "get a list of users that are in a category, then get a list of open tasks for the user") using Templates. Doesn't work for all situations but does for ours. On Wed, Apr 16, 2008 at 9:21 PM, James Taylor <jam...@gm...> wrote: > Hi. I'm wondering if anyone knows how to make nested asks. Essentially I > would like make a nested set of queries such that: 1) The first query > obtains a set of pages (this is standard using an 'ask'), and 2) the second > query obtained a different set of pages that used the page names from the > first set of pages. So for example: > > > 1) Obtain a set of pages: > Pages1Set = {{#ask:[[Category::Category1]] [[MyProperty::P1]]}} > > > > 2) Obtain a second set of pages that depend of the first: > > for all elements of PagesSet > Pages2Set = {{#ask:[[Category::Category2]] > [[MyProperty2::Page1Set(index).pageName]]}} > Page2SetTotal = Page2SetTotal + Pages2Set > > > 3) Display the results in some table > > I bet the syntax could be something like below, but this doesn't work: > {{#ask:[[Category::Category2]] [[MyProperty2::{{#ask:[[Category::Category1]] > [[MyProperty::P1]]}}]]}} > > > -James > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save $100. > Use priority code J8TL2D2. > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > > |
From: Nathan Y. <na...@cr...> - 2008-04-18 19:10:51
|
Sorry I didn't include my templates/queries previously... here's a brief overview: We're using SMW for Task/Project tracking where you have a project grouping that has some set of staff members attached to it. On the project group page we want to show the staff member's tasks. So our {{Template:Project_Group}} has this in it: <ask format=template template=Project_User_Tasks link=none> [[Category::Staff]] [[Category::{{PAGENAME}}]] </ask> to get the list of staff members in the given category. The {{Template:Project_User_Tasks}} template then contains the following: {{#ask: [[Category:Task]] [[Assigned to::{{{1|{{PAGENAME}}}}}]] [[Status::New||In Progress||Deferred]] [[Status::*]] [[Target date::*]] | sort=Target_date }} This may be slightly different than sub-queries; we could use something like that if we wanted a single list of all the tasks for all the staff members for the project group in a single list. The fact that we wanted separate lists (that could be turned into tabs with HeaderTabs) meant we effectively wanted to "loop" over the staff members. On Thu, Apr 17, 2008 at 8:28 AM, Nathan Yergler <na...@cr...> wrote: > We're doing something like this (ie, "get a list of users that are in > a category, then get a list of open tasks for the user") using > Templates. Doesn't work for all situations but does for ours. > > > > On Wed, Apr 16, 2008 at 9:21 PM, James Taylor <jam...@gm...> wrote: > > Hi. I'm wondering if anyone knows how to make nested asks. Essentially I > > would like make a nested set of queries such that: 1) The first query > > obtains a set of pages (this is standard using an 'ask'), and 2) the second > > query obtained a different set of pages that used the page names from the > > first set of pages. So for example: > > > > > > 1) Obtain a set of pages: > > Pages1Set = {{#ask:[[Category::Category1]] [[MyProperty::P1]]}} > > > > > > > > 2) Obtain a second set of pages that depend of the first: > > > > for all elements of PagesSet > > Pages2Set = {{#ask:[[Category::Category2]] > > [[MyProperty2::Page1Set(index).pageName]]}} > > Page2SetTotal = Page2SetTotal + Pages2Set > > > > > > 3) Display the results in some table > > > > I bet the syntax could be something like below, but this doesn't work: > > {{#ask:[[Category::Category2]] [[MyProperty2::{{#ask:[[Category::Category1]] > > [[MyProperty::P1]]}}]]}} > > > > > > -James > > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > > Don't miss this year's exciting event. There's still time to save $100. > > Use priority code J8TL2D2. > > > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > > _______________________________________________ > > Semediawiki-user mailing list > > Sem...@li... > > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > > > > > |
From: S P. <in...@sk...> - 2008-04-17 22:53:18
|
James Taylor wrote: > Hi. I'm wondering if anyone knows how to make nested asks. No, and I would love explanation or examples. But subqueries do what you want, http://semantic-mediawiki.org/wiki/Help:Semantic_search#Subqueries > Essentially > I would like make a nested set of queries such that: 1) The first query > obtains a set of pages (this is standard using an 'ask'), and 2) the > second query obtained a different set of pages that used the page names > from the first set of pages. {{#ask: [[MyProperty2::<q>[[Category::Category1]] [[MyProperty::P1]]</q>]] }} should do what you want. Here's an example from semanticweb.org. You want to list all participants of semantic web conferences. Every there are new conferences but you don't want to hardcode ISWC2002||ASWC2006||...||ISWC2008. So 1) the first query obtains the set of pages [[events in series::ISWC||ASWC]], and 2) the second query obtains pages in a relationship with this set. {{#ask: [[Participant of::<q>[[events in series::ISWC||ASWC]]</q>]] }} You can nest subqueries deeper, e.g. you could query to find the event series on the topic "semantic web". There are limitations to subqueries but I have a hard time expressing them. a) you can't display additional properties from the subquery b) you can't get the objects of page relationships from the subquery to provide subjects of this query. The classic example of b) that I can't crack is Drew Barrymore is [[child of::J. D. Barrymore]] who in turn is [[child of::John Barrymore]]. But there's no way I can get Drew Barrymore's page to show that she's a grandchild of John Barrymore. If there's a way to do this with nested asks, please say how! (Try it on http://semanticweb.org/wiki/Drew_Barrymore or http://sandbox.semantic-mediawiki.org/wiki/Drew_Barrymore , the latter wiki is running more recent code that might be unstable). Nathan Yergler wrote: > We're doing something like this (ie, "get a list of users that are in > a category, then get a list of open tasks for the user") using > Templates. Doesn't work for all situations but does for ours. If you start with tasks, nested subqueries should work: {{#ask: [[Task status::Open]] [[Assigned to::<q>[[Category:Programmers]]</q>]] |?Assigned to }} However, starting with programmers may be impossible due to the limitations I express badly above. Can you share your queries or templates? -- =S Page |
From: Robert M. <mra...@gm...> - 2008-04-18 03:03:13
|
As always, I have trouble extrapolating this into an N-array context! :-( I made a sample quary that generates the first things I want: {{#ask: [[Category:Greek Parsing]] [[Uses number::Plural]] [[Uses person::2]] }} (This is a list of all the ways of parsing a verb that involve the 2nd person in the plural) I tried hardcoding an example of what I meant to see if it worked before I did a sub-query: {{#ask: [[Category:Greek verse]] [[Uses Parsed Greek::?;Greek:2PAIA]] |?Sort name }} (This produces a table of all verses that use any Greek word (the ?) in the 2nd-person Plural Aorist Indicative Active) It works great. However, when I combine the two: {{#ask: [[Category:Greek verse]] [[Uses Parsed Greek::?;<q>[[Category:Greek Parsing]] [[Uses number::Plural]] [[Uses person::2]]</q>]] |?sort name }} I get what I think is every member of Category:Greek_verse, including ones that obviously don't use any 2nd-person Plural verbs. I tried changing the sub-query to use all double-colons (i.e. [[Category::Greek Parsing]]) but that didn't do anything. You can see all this queries at http://reformedword.org/User:Aquatiki/2pp Any suggestions? -Robert Murphy |