Um... wow. That's pretty amazing, to the extent that I understand it. :)

Perhaps it makes sense to add a "tips and tricks" page type on the SMW
community wiki (smw.referata.com), with an accompanying form and template,
to handle tips such as this one, given that semantic-mediawiki.org will
probably stay closed off for the foreseeable future; it might not even make
sense to put tips like this on the SMW site in the first place, since it
requires Semantic Forms (for #arraymap) in addition to just SMW, and it
might be too esoteric for a general user's guide.

Conversely, you could just ask Markus or Denny for an account on
semantic-mediawiki.org - they say they'll give one to anyone who asks.

-Yaron


On Sat, Oct 4, 2008 at 4:27 PM, Rob Challen <[EMAIL PROTECTED]> wrote:

>
> If you put this in a property page
>
> [[has type::page]]
> {{#arraymap:{{#ask: [[Category:RANGE]]|format=list|link=none|sep=,}}|,|
> @@|[[allows value::@@]]}}
>
> then it expands to define the range of that property as the members of
> category RANGE, you could add more conditions to the #ask query to get
> any more complex range definition. and you could have multiple queries
> unioned together if you seperate them by commas {{#ask...query1}},
> {{#ask...query2}}. No implementation of Domain yet but I feel like
> that is less important. - I did try halo extension and they have a
> partial implementation of domain and range but you can't use semantic
> forms with it, I don't think.
>
>
> I am also using this kind of technique to allow for property inversion
> (see Template:inverse below), but you have to define it on the
> instance page where you are assigning the property, and not the
> property page and it is not 100% stateless but seems to depend on
> whether you have edited and saved the page recently...
>
> <Template:inverse:start/>
> <noinclude><pre>
> USAGE
> put on a page (or in a template) where a property is defined to also
> add the inverted property
> {{inverse|p = property|p' = inverse|display = none/inline/list}}
> (defaults to list)
>
> e.g.
> {{inverse
> |p =has child
> |p' =has parent
> }}
>
> then if x [[has child::y]], and you place this template in page y,
> then y is defined [[has parent::x]]
> </pre></noinclude>
> <includeonly>{{#ifeq:{{{display}}}|none|<div
> style="display:none">{{#arraymap:{{#ask: [[{{{p}}}::{{FULLPAGENAME}}]]
> | format=list | link=none | sep=,}}|,|@@|[[{{{p'}}}::@@]]|}}</div>|
> {{#ifeq:{{{display}}}|inline|{{#arraymap:{{#ask: [[{{{p}}}::
> {{FULLPAGENAME}}]] | format=list | link=none | sep=,}}|,|@@|
> [[{{{p'}}}::@@]]|, }}|<ul>{{#arraymap:{{#ask: [[{{{p}}}::
> {{FULLPAGENAME}}]] | format=list | link=none | sep=,}}|,|@@|
> <li>[[{{{p'}}}::@@]]</li>|}}</ul>}}}}</includeonly>
> <Template:inverse:end/>
> In terms of illegibility and incomprehensibility this is currently my
> favourite template :-)
>
>
> I was going to try and contribute this knowledge to the semantic
> mediawiki user guide but I couldn't work out how to get contributors
> rights. Anyone know where I should put this kind of thing?
>
> Cheers,
>
> Rob.
>
> On Sep 30, 6:51 pm, Patrick Nagel <[EMAIL PROTECTED]> wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Hi Guy,
> >
> > > Is there a way of populating 'Allows Value' lists dynamically, from the
> > > result of a query?  I've come accross a number of situations where such
> > > functionality would be useful, but have so far not found any way of
> > > achieving it.
> >
> > This is more a SMW question, I think... Perhaps this helps you (I started
> the
> > thread a few weeks ago):
> >
> > http://www.nabble.com/Share-an-%27Allows-value%27-list-between-proper...
> >
> > Patrick.
> >
> > - --
> > Key ID: 0x86E346D4            http://patrick-nagel.net/key.asc
> > Fingerprint: 7745 E1BE FA8B FBAD 76AB 2BFC C981 E686 86E3 46D4
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v2.0.9 (GNU/Linux)
> > Comment: Using GnuPG with Mozilla -http://enigmail.mozdev.org
> >
> > iEYEARECAAYFAkjiZyEACgkQyYHmhobjRtQ/vgCeOezAZ+Gq2cSXxOj9Fi/ngwlS
> > uBwAoIb8vylMsqX1bgBH27HlZUOzxNvg
> > =dtyJ
> > -----END PGP SIGNATURE-----
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Semantic Forms" group.
To post to this group, send email to semantic-forms@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/semantic-forms?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to