From: Robert M. <mra...@gm...> - 2008-06-02 20:37:07
|
This is what we've done. I've actually had to install four additional extensions. Basically, I'm still griping because n-ary is handled with such difficulty. If the long n-ary data was passed individually then it could be handled with nothing more than Extension:Parser Functions. As it is, you need to learn Loops, StringFunctions (or RegexParserFunctions), Variables and CharacterEscapes. The development of these is in no way connected to SMW and none of them are documented on S-MW.org. I really think this is a bad idea, since those extension could fork or die at any time, and then SMW users would be up Poop Creek. Wouldn't it be better if you could just do something like this: {{#ask: [[Category:Educated Person]] |?Undergraduate degree |?Master's degree |?Doctorate degree |format = template |1 = New York University |N-ary = explode |template = Men of Letters }} An example person might be [[Michael F. Singer]] [[Undergraduate degree::Bachelor's of Arts; Mathematics; 1970; New York University]] [[Master's Degree::Master's of Arts; Mathematics; 1972; University of California at Berkeley]] [[Doctorate degree::Ph.D; Mathematics; 1974; University of California at Berkeley; Functions Satisfying Elementary Relations; Maxwell Rosenlicht]] [[Category:Educated Person]] When {{Template:Men_of_Letter}} is called, every time it is called, {{{1}}} is "New York University". When it comes to Dr. Singer, {{{2}}} will be his pagename, {{{3}}} will be Bachelor's of Arts, {{{4}}} will be Mathematics, etc. That way, it can be easily dwelt with, without the extra step of chopping up the n-ary data. Sergey, do you think this would be a good idea? -Robert On Mon, Jun 2, 2008 at 11:45 AM, Sergey Chernyshev <sem...@an...> wrote: > OK, so you're talking about formatting templates that transform the results > of the query, not the templates that just have queries within them. > > I didn't work that much with formatting templates, but in general, as I > understand, you get results as numbered parameters - then in there, you can > use them to trigger logic. If you need MW variables to be run in context of > specific page rather then default (which is meaningless since template is > called by ASK parser function and not just being inserted into the page), > then you might want to write your own parser functions or reuse existing > ones that match MW variables - here's the example: > http://www.mediawiki.org/wiki/Extension:PathFunctions > > Hope this helps. > > Sergey > > > On Fri, May 30, 2008 at 3:20 PM, Robert Murphy <mra...@gm...> > wrote: >> >> OK. I can't think of an example other than my own stuff, so here goes: >> >> Imagine a gazillion sentences made up of Greek words. Each word has a >> dictionary form and a particular way it's used in each instances. >> Each sentence has a page, full of [[Uses Parsed Greek::Greek:Word; >> Greek:Parsing]] (each word and each parsing have an individual page in >> the Greek namespace). If I want to query against my data for all the >> ways Greek:One is used in each sentence, I >> >> {{#ask: [[Category:Greek sentence]] [[Uses Parsed Greek::Greek:One; ?]] >> |?Uses Parsed Greek >> }} >> >> This, unfortunately, returns a huge swath of other data, namely, how >> each and every other word is used (it is, however, limited to >> sentences that use Greek:One). There's seems to be no easy way to >> limit what is returned. >> So, I made a monster-bloated template that parses over the n-ary data >> and finds the Greek:Parsing for Greek:One. This template is the >> template= from an #ask query. However, I didn't want to hard-code in >> "Greek:One", so I did the only variable I could think of >> {{BASEPAGENAME}}. Now, this template can only be called as part of an >> #ask from the Greek:Word page to find out how that word is used. >> If #ask when format=template could just pass an extra variable, then >> my elaborate template could look for usages of that word and not have >> to be bound to use {{MAGIC_WORDS}}. >> >> -Robert >> http://reformedword.org/Greek:One - example page >> http://reformedword.org/Template:Greek_Chopper - my twisted template >> >> On Fri, May 30, 2008 at 11:33 AM, Sergey Chernyshev >> <sem...@an...> wrote: >> > Hmm. I think I'll need to see an example of the problem you're trying to >> > solve to understand your question - it seems that there might be several >> > issues - some connected with passing parameters and some connected with >> > multi-value properties (they are not really n-ary relations). >> > >> > Sergey >> > >> > >> > On Fri, May 30, 2008 at 2:18 PM, Robert Murphy >> > <mra...@gm...> >> > wrote: >> >> >> >> So -is- there a way to pass an additional bit of data in a query? >> >> Sifting through n-ary data could be a lot easier if you could just >> >> pass even one value along with each template call in an #ask: >> >> >> >> >> >> On Fri, May 30, 2008 at 10:49 AM, Sergey Chernyshev >> >> <sem...@an...> wrote: >> >> > Actually, this problem went away once ASK was rewritten as parser >> >> > function >> >> > and you can use it all as with any other parser function. Basically, >> >> > that >> >> > was the main reason for parser function development. >> >> > >> >> > Sergey >> >> > >> >> > >> >> > On Fri, May 30, 2008 at 4:50 AM, Rolf Lampa <rol...@ri...> >> >> > wrote: >> >> >> >> >> >> The documentation says that parameters can NOT be used in queries, >> >> >> not in "any case. See this page >> >> >> >> >> >> >> >> >> >> >> >> http://semantic-mediawiki.org/wiki/Help:Semantic_search#Using_templates_and_variables >> >> >> >> >> >> The text doesn't seem to reveal the whole truth, though. The text >> >> >> says: >> >> >> >> >> >> >> == Using templates and variables == >> >> >> >> >> >> >> >> Within a query, arbitrary templates and variables can be used. >> >> >> >> This can be used to create a standard query that displays all >> >> >> >> future events (where "future" gets its meaning from the current >> >> >> date): >> >> >> >> >> >> <snip> It goes on to say: >> >> >> >> >> >> >> Many other uses are possible, especially when using queries >> >> >> inline. >> >> >> >> However, it is in *no case possible* to use template parameters >> >> >> (the >> >> >> >> things in {{{ }}}) within a query. *Sorry*. >> >> >> >> >> >> But, parameters /can/ be used in a query, although not directly. I >> >> >> suggest >> >> >> assigning parameter values to temporary variables, and then use the >> >> >> variables in the query instead, like so: >> >> >> >> >> >> // 1. Assign {{{param values}}} to temp variables : >> >> >> >> >> >> {{#vardefine: tmp_pageclass | {{{1|}}} }} >> >> >> {{#vardefine: tmp_property | {{{2|}}} }} >> >> >> >> >> >> // 2. In this way the variables (params) actually /can/ be used in >> >> >> the >> >> >> query: >> >> >> >> >> >> {{#ask: [[Category:{{#var:tmp_pageclass}}]] >> >> >> | [[{{#var:tmp_property}}::+]] [[{{#var:tmp_property}}::*]] >> >> >> }} >> >> >> >> >> >> Tested, and it works. Perhaps a hint to use "param-variables" like >> >> >> this >> >> >> should be added to the documentation as well. >> >> >> >> >> >> Regards, >> >> >> >> >> >> // Rolf Lampa >> >> >> >> >> >> >> >> >> >> >> >> ------------------------------------------------------------------------- >> >> >> This SF.net email is sponsored by: Microsoft >> >> >> Defy all challenges. Microsoft(R) Visual Studio 2008. >> >> >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> >> >> _______________________________________________ >> >> >> Semediawiki-user mailing list >> >> >> Sem...@li... >> >> >> https://lists.sourceforge.net/lists/listinfo/semediawiki-user >> >> > >> >> > >> >> > >> >> > -- >> >> > Sergey Chernyshev >> >> > http://www.sergeychernyshev.com/ >> >> > >> >> > >> >> > ------------------------------------------------------------------------- >> >> > This SF.net email is sponsored by: Microsoft >> >> > Defy all challenges. Microsoft(R) Visual Studio 2008. >> >> > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> >> > _______________________________________________ >> >> > Semediawiki-user mailing list >> >> > Sem...@li... >> >> > https://lists.sourceforge.net/lists/listinfo/semediawiki-user >> >> > >> >> > >> >> >> >> >> >> >> >> -- >> >> Roses are red,Violets are blue,I'm schizophrenic,and so am I. >> >> >> >> >> >> ------------------------------------------------------------------------- >> >> This SF.net email is sponsored by: Microsoft >> >> Defy all challenges. Microsoft(R) Visual Studio 2008. >> >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> >> _______________________________________________ >> >> Semediawiki-user mailing list >> >> Sem...@li... >> >> https://lists.sourceforge.net/lists/listinfo/semediawiki-user >> > >> > >> > >> > -- >> > Sergey Chernyshev >> > http://www.sergeychernyshev.com/ >> >> >> >> -- >> Roses are red,Violets are blue,I'm schizophrenic,and so am I. > -- Roses are red,Violets are blue,I'm schizophrenic,and so am I. |