Entry tags:
A Few Minutes of Querki
There's a lot of grand vision to this project, and almost too many ideas and features to absorb. So rather than drowning folks in all of those details, let me describe a few minutes of what Querki is supposed to be like in practice. Keep in mind, nothing at all has been written yet, and it'll probably take a year for us to get all of the main pieces in place. But it's important to know where we're going. So here's a scenario showing what this system is supposed to feel like once it's all up and running.
I open up Querki, which presents me with all of my Spaces: the Comic Book database, my Contact List, my Blog, and my Cookbook. I choose the latter, and it opens up. I didn't build the format of the Cookbook myself -- one of my friends did it a couple of months ago, and shared it as an App. I picked that up for myself, getting my own Cookbook, and have been moving all my recipes into it ever since.
I select "new Recipe", and get presented with a form. I fill in the fields that the Recipe model knows about: the name, how many it serves, and so on. It asks me for ingredients, one at a time, with the quantity of each. I give it a narrative of how to make the Pico, and hit "Save"; it shows me the newly-created Recipe, all neatly formatted. (My friend who built the Cookbook app did a good job with the formatting, so that the ingredients show up as two columns; I like that touch.)
Since Recipes have a Rating property, I can say how much I like this one. I give it four stars out of five: solid, but could use some tweaking yet.
I realize, though, that the Cookbook app is actually missing something I care about. I'm all about attribution and documentation (comes with being a Laurel), so I really want to track where I got this recipe from. No problem, though: I just tell Querki to add a Sources property to my Cookbook, and to add that property to Recipes. I edit my Pico recipe again, which now shows the Sources property -- I add a few links to the web pages I used, and save it again. I tweak the Recipe format to show Sources down at the bottom, and *voila*: a list of links, which I can refer back to or query later. I go over to the Cookbook app itself, click on the Ideas and Suggestions page, and suggest that my changes get lifted into the common app so that everybody else can use it.
I've set up my Cookbook to automatically publish new entries, so a post shows up a few minutes later on my Facebook Timeline, with a pointer to the entry. It also shows up as an RSS feed in LiveJournal -- I mixed in the What's New app, so new entries basically get turned into blog posts automatically.
My friend Ailish likes the sound of it, but being Canadian she prefers things in metric units. No problem: she right-clicks on one of the ingredients, chooses "Convert to...", picks Metric, and it all shows the way she wants. (Personally, I don't use that much, except with the medieval recipes I've been working with -- I enter those with the ancient Arabic units, and then convert them to US for actual cooking.)
While I'm in my Cookbook, I remember that my friend Anna has asked me for an index of my medieval recipes. Easy enough: I pull up Querki Explorer, and build a quick filter. I tell it to list my Recipes, then filter for just the ones that are tagged "medieval", group those by the TimePeriod property that I added in, and for each one list the name of the recipe. The results look right, so I tell Querki Explorer to save that as a new "Period Recipes" page, and I send the URL over to Anna. That'll now automatically update whenever I add new Recipes, so she can get an up-to-date view any time.
Keep in mind, none of the above is rocket science. If you're a professional programmer, it's not hard to build the sort of Cookbook application I describe above. If you know all the APIs and are good with Rails, it would probably only take a couple of days to slap together.
But seriously -- why would I want to spend a couple of days on this? All we're doing here is keeping track of a little data, saying how to display that data, and tweaking it as we go. This should be *easy*, not just for the computer pros but for anybody. The Cookbook app is built by end users, not by high-priced programmers, and tweaked by others.
So that's where Querki comes in. It builds in all the boilerplate, everything from working with the social networks to managing the database to doing the fiddly page rendering. It gives me powerful tools for exploring and collating my data, with wizards to make that easy. All I do, as an end user, is say what I want to keep track of, what it consists of, and how to display it. That's not trivial, but it should be a matter of minutes or hours, not days. Moreover, the system should cope with me changing as I go, letting me add new concepts and ideas as I learn more, so that building this stuff becomes quick, fun and low-risk.
A Few Minutes: My Cookbook
Last night's dinner was good -- I made soft tacos, and experimentally decided to make my own Pico de Gallo. It was tasty enough that it's worth writing down.I open up Querki, which presents me with all of my Spaces: the Comic Book database, my Contact List, my Blog, and my Cookbook. I choose the latter, and it opens up. I didn't build the format of the Cookbook myself -- one of my friends did it a couple of months ago, and shared it as an App. I picked that up for myself, getting my own Cookbook, and have been moving all my recipes into it ever since.
I select "new Recipe", and get presented with a form. I fill in the fields that the Recipe model knows about: the name, how many it serves, and so on. It asks me for ingredients, one at a time, with the quantity of each. I give it a narrative of how to make the Pico, and hit "Save"; it shows me the newly-created Recipe, all neatly formatted. (My friend who built the Cookbook app did a good job with the formatting, so that the ingredients show up as two columns; I like that touch.)
Since Recipes have a Rating property, I can say how much I like this one. I give it four stars out of five: solid, but could use some tweaking yet.
I realize, though, that the Cookbook app is actually missing something I care about. I'm all about attribution and documentation (comes with being a Laurel), so I really want to track where I got this recipe from. No problem, though: I just tell Querki to add a Sources property to my Cookbook, and to add that property to Recipes. I edit my Pico recipe again, which now shows the Sources property -- I add a few links to the web pages I used, and save it again. I tweak the Recipe format to show Sources down at the bottom, and *voila*: a list of links, which I can refer back to or query later. I go over to the Cookbook app itself, click on the Ideas and Suggestions page, and suggest that my changes get lifted into the common app so that everybody else can use it.
I've set up my Cookbook to automatically publish new entries, so a post shows up a few minutes later on my Facebook Timeline, with a pointer to the entry. It also shows up as an RSS feed in LiveJournal -- I mixed in the What's New app, so new entries basically get turned into blog posts automatically.
My friend Ailish likes the sound of it, but being Canadian she prefers things in metric units. No problem: she right-clicks on one of the ingredients, chooses "Convert to...", picks Metric, and it all shows the way she wants. (Personally, I don't use that much, except with the medieval recipes I've been working with -- I enter those with the ancient Arabic units, and then convert them to US for actual cooking.)
While I'm in my Cookbook, I remember that my friend Anna has asked me for an index of my medieval recipes. Easy enough: I pull up Querki Explorer, and build a quick filter. I tell it to list my Recipes, then filter for just the ones that are tagged "medieval", group those by the TimePeriod property that I added in, and for each one list the name of the recipe. The results look right, so I tell Querki Explorer to save that as a new "Period Recipes" page, and I send the URL over to Anna. That'll now automatically update whenever I add new Recipes, so she can get an up-to-date view any time.
What's Going on Here
The Cookbook isn't the point above, but is kind of needed to illustrate the point. Querki is a *platform*. In and of itself, it doesn't do anything. Instead, it is designed to make it easy to build apps that are useful and personalized.Keep in mind, none of the above is rocket science. If you're a professional programmer, it's not hard to build the sort of Cookbook application I describe above. If you know all the APIs and are good with Rails, it would probably only take a couple of days to slap together.
But seriously -- why would I want to spend a couple of days on this? All we're doing here is keeping track of a little data, saying how to display that data, and tweaking it as we go. This should be *easy*, not just for the computer pros but for anybody. The Cookbook app is built by end users, not by high-priced programmers, and tweaked by others.
So that's where Querki comes in. It builds in all the boilerplate, everything from working with the social networks to managing the database to doing the fiddly page rendering. It gives me powerful tools for exploring and collating my data, with wizards to make that easy. All I do, as an end user, is say what I want to keep track of, what it consists of, and how to display it. That's not trivial, but it should be a matter of minutes or hours, not days. Moreover, the system should cope with me changing as I go, letting me add new concepts and ideas as I learn more, so that building this stuff becomes quick, fun and low-risk.
no subject
Did you want to include unusual phrasing like "I'm a Laurel" and that sort of thing?
no subject
As the project grows, I'm going to make it less so -- there's going to be a point (possibly within just a couple of months) when I need to take the word "I" out of most of the online documentation. But for now, it's a bit more honest to leave it in, and I need that honesty. (And yes, I'm *well* aware of the social interactions here, and paying attention to them.)
no subject
no subject
no subject
Huh. Wikipedia says that Ward Cunningham was thinking about a HyperCard system when he built the first wiki.
no subject
no subject
The language was clunky, yes, but it was very approachable; it was one of those languages that try to look like English, so non-programmers don't get scared off. Google for HyperTalk; you won't want to imitate too much of it, but you can get some ideas.
Come to think of it, I've still got an old Mac that's got Hypercard on it; if you want to experiment, I could see if it still runs. It's been boxed up since 1998 or so, so the odds aren't great...
no subject
Will do, although part of my goal is that most end users won't work with the language at all.
Much of the design is built around the idea of Querki Explorer, an interactive wizard that lets you interact with your data step-by-step, and the idea is that, by a year from now, most non-programmers will usually use that. That outputs the underlying language, and the language (Querki Query Language, AKA QL, pronounced "cool") is designed specifically to map 1-to-1 to the wizard.
I have high hopes there. My experience from ProWiki is that you mostly care about data transformation for the sorts of problems I'm aiming at, so I've wound up with a pipeline-styled functional language that is pretty simple and elegant. We'll see how well it flies when it confronts a variety of real-world problems.
I suspect I don't care too much about kicking the tires of Hypercard. But you're correct that I should at least know what they did, and what people liked about it...
no subject
no subject
no subject
no subject
no subject
no subject
(The failure mode would be if it never got unpacked after we moved to MA...)
no subject
no subject
no subject
no subject
I start typing in my recipe. This isn't the first time I've played around with pico de gallo, so when I type the name the system pops up a list of the others that match. I take a quick look, conclude that no I'm not about to duplicate work I've already done, take note of my prior 1-star effort that involved canned tomatoes instead of fresh, and proceed. Later, when I give it my 4-star rating, the system helpfully offers that when I used these ingredients in another recipe, I added a splash of habenero and rated that 5 stars.
The next time I want to make tacos I come back to my app, and in addition to asking it what I've done before (search my recipes), I have it search the recipes from people I've subscribed to (using the handy "subscribe" link from some previous query, or because when you published one of your entries to LJ I subscribed that way). Still seeking inspiration, I ask to see all public five-star pico-de-gallo recipes that include cilantro, and one of the results is from someone I know but didn't know was on Querki. So I add him to my subscription list.
That's pretty rough, especially the stuff about subscriptions, but it's where my brain went so I thought I'd share. The "helpfully tell me stuff from my own data before I know to ask for it" part would be pretty helpful. (Think of it like the list of existing questions you get on Stack Exchange when you start to type a title.)
no subject
Where my brain went when you said that was pulling in data from non-Querki sources, like an API for BoardGameGeek (I don't know that one exists, but I think so, since there are multiple Android apps).
no subject
We'll need to define some Use Cases where that functionality is crucial, and then we can figure out how much effort it would be, and when it's going to be worthwhile to do it. I'm pretty sure it doesn't go into the first year (there's plenty that is clearly more important), but I'm not sure when after that it gets to the top of the stack...
no subject
(I'm totally speculating about BGG having a web service. It's just an example.)
no subject
And having said yesterday that I don't know *why* we would use that, I've come up with two concrete Use Cases for it in the past 18 hours. So this might make it into the medium-term stack yet...
no subject
no subject
no subject
Or an oenophile who's cloned your wine list might want to augment it with pointers to books that mention particular wines.
no subject
(Some imply a lot of knowledge of the semantics of the problem, which I'm initially *specifically* not worrying about. Since I'm focused on the platform, the question becomes, how do we provide a platform for *describing* those sorts of semantics in a way that end users can actually deal with? Or if this is really a data-mining problem, which it might be, how do we build the system to extract and extrapolate that sort of information automatically?)
Still, that's a fascinating exploration, especially for a ways down the road, after I've dealt with the easy problems. One of the problems with platform plays like this is that they tend to get stale after doing the easy stuff, so it's good to have some higher-level goals to aim for afterwards. Thanks, and I'll add this to my Use Case list, if that's okay with you...
no subject
Seriously, I know some of that is really pie-in-the-sky, some is doable but probably not a priority, and some maybe is helpful. You have a way better handle on which fits into what category than I do. You are certainly welcome to turn anything I comment about on these posts into use cases if that helps you!
no subject