Previous Entry Share Next Entry
Release 0.6.6 -- Querki Explorer
jducoeur wrote in querki_project
Today's release features the beginnings of a feature that has been planned for at least nine months now: Querki Explorer. In the long run, this should grow up into essentially a small-scale IDE built into Querki, with type inference and prompting to make it quicker and easier to create QL expressions. But for now, it's basically a little REPL for QL.

From any Thing, choose Actions -> Explore... to open Querki Explorer, pointing to that Thing by default. It has a big QL text-entry box: just enter some QL there, and hit Tab. The system will evaluate the expression, and show the results below. Using this, you can quickly try out some QL, tweaking it in realtime before placing it into an actual Property.

You can also change which Thing is being used as the context for the QL expression -- just start typing in the Thing Name field, and it will prompt you with Things whose Names match what you are typing. This way, you can try out your expression on several Things quickly, to sanity-check it.

Note that Querki Explorer potentially allows you to do an end-run around read security -- if you know what you're doing, you can see more or less anything in the Space. For the moment, I have therefore restricted use of it to Members of the Space. A bit down the road, we'll add a separate permission defining who is allowed to use it within a Space. (Yell if you find that you need this -- eg, if you have important information that only the Owner should be able to see.)

In the long run, we'll get into smarter permissioning in the QL language, with mechanisms so that access to a Thing is limited by its Read permissions combined with contextual overrides so that, eg, the Space's Owner can write expressions that display otherwise protected information, but in general QL will only show you what you're allowed to see. That's a bit of a complex research project, though, especially to make it usable by normal users, so I'm going to hold off on it until we start getting some more rights-sensitive use cases. (This is one of those areas where my eventual goal is *way* beyond the typical state of the art.)

As part of that, I also enhanced _foreachProperty. I mentioned this new Function recently: it receives a Thing, and has a code block as its parameter; it iterates over each Property of the Thing, passing it into the code block. This turns out to be a very convenient way of starting out in Querki Explorer, though, so I tweaked it so that, if you don't supply a code block to _foreachProperty, it simply produces a List of those Properties, for later stages to process or render. This is now the default behaviour in Explorer: if you simply hit Tab in the QL input, without entering anything there, it will display the results of running _foreachProperty over the current Thing. This shows you the available Properties, which is often helpful for figuring out what to do next.


Log in

No account? Create an account