we switched this particular document to HTML just now. check out our new pdf - html converter -- I think it's the best pdf to html conversion available online right now.
The new command line is closer to a textual representation of the GUI: it rewards imprecision and ignorance, and trades intuitive correctness 95% of the time for impossible obscurity the other 5% of the time.
And it's verbose: "List all the files in my current directory that in in '.txt'" isn't nearly as nice as "ls \.txt". Do we really need ad-supported fluff from Google, Yahoo, and Microsoft, when we still have bash?
But... What if the command line interpreter gets smarter and understands concepts within your query. "Find all articles last week that mentioned Ycombinator" for example.
Machine conceptual awareness will be a big thing on the internet, but it is a HARD problem. We will then enter the world of Find engines instead of search engines.
Do you do math that way, too? "Consider a matrix with, like, a lot of elements. Okay? Now flip it around so this one element is where the other element was and the other element is where this other element was, and..."
There's nothing wrong with expressing a vague idea vaguely, but if you're definitely looking for definite information, you should use whatever method gets you exactly what you're after. If you chain together enough 90%-right assumptions, your probability of getting a wrong conclusion approaches 1.
I guess you're assuming extremely ambiguous english queries, and I'm assuming a good english query similar to my example. With a bad english query, you'll get bad results guaranteed. This is true for both humans trying to understand what you're saying, and for the poor computer trying to determine conceptual context. GIGO
For mathematical formulas and formal queries, the user would need to use formal notation.
Err... what does doing math have to do with it? If I have a good (human) assistant, I can ask him or her to find me all the Y Combinator articles and it just works. I don't need to write some formal mathematical description of the task.
It's true that it's all math/physics/chemistry underneath, due to how the brain works, but in practice we never worry about that, just as an engineer doesn't generally consider quantum and relativistic effects when he's designing a bridge, or an outfielder doesn't scribble down a bunch of differential equations before catching a fly ball.
Sure, any standard computer is equivalent to a bounded Turing machine, but Turing machines are a real pain in the ass to program.
Mathematical purity is one thing. Getting your work done is quite another.
'... What if the command line interpreter gets smarter and understands concepts within your query. ...'
Been taking precisely that approach for some time thinking through and trying to create a CLI with recognition. The novel approach consisted (I've since stopped working on this particular problem) of an interface that interacted with some known commands, applications and data.
The more you type into the machine, the more it recognises certain things related information names, associated projects, that appointment you have for next week, the document due next week. The crux was realising that meaning could be attained from small SMS like messages. A message could consist of peoples names, times, predefined commands. Then trying to weave some sort of context within related messages.
The big problem is the contextual awareness. NLP is one way to go, but recognition without having to annoy the user with confirmation is difficult. Recognising language is a big ball of string. One promising approach is to add a Adventure like shell interface onto the front, pre-describe (or dynamically build) the space you can navigate. This means your using a human brain to augment the system offsetting having to use the brute force approach. Then integrate with back-end applications.
We're working on the problem too. The key is to have the machine understand context in the same way humans do, which means building a model of human conceptualization in the computer. We're putting a simple version of our conceptual hierarchy system in our StreamFocus product.
Once we launch StreamFocus and have the system streamlined, we'll get back to that HARD problem. We're pretty close to a solution though, and it involves making a new conceptual language as a subset of lisp. Pattern matching never works, you have to have the actual conceptual hierarchical structure as well as the links between concepts, etc. (We've been working on the underlying epistemology and programming for this since 1998.) We plan to launch a product that creates a conceptual index on top of a standard database, creating effectively a database with conceptual retrieval. The system is multi-lingual as we model the concepts in the same way humans do, independent of the language used to express the concepts.
A couple of years ago my mom, who is not very computer literate at all, asked me "why can't someone just invent a computer where you type in what program to run instead of hunting for menus and little pictures all the time?"
There was a movement for several decades that assumed that _everyone_ is visually oriented, but there are many people who are still language oriented. Not everyone likes just picture-books.
Do many people (outside of geekdom) use the Google commands, though? I use the calculator and units of measure, but generally don't know or bother with the others. My family doesn't know they exist, nor do most of my friends (except a couple who fall into the "geekdom" category).
I'd postulate that it was the adoption of the GUI that let the PC spread into the mainstream. Most people just don't have the patience to look up commands. Periodically, there are nostalgic pronouncements that the command-line will reign supreme again, but mostly this seems to be because the tech pundit population largely overlaps with the comfortable-with-computer-before-they-became-mainstream population.
The point of the article as I understand it, is that Google itself even without special commands is a "command-line" tool in a sense that you more often enter text rather than click.
This kind of "cmdline" tools win in some specific areas because they work perfectly with thin clients and via thin communication channels. All you need is to send a couple of words to the server using some relatively simple standard local application - be it a browser or your console client.
15 comments
[ 1.8 ms ] story [ 65.1 ms ] threadIf you download it you can then use Foxit Reader or this online viewer: http://view.samurajdata.se/
And it's verbose: "List all the files in my current directory that in in '.txt'" isn't nearly as nice as "ls \.txt". Do we really need ad-supported fluff from Google, Yahoo, and Microsoft, when we still have bash?
Machine conceptual awareness will be a big thing on the internet, but it is a HARD problem. We will then enter the world of Find engines instead of search engines.
There's nothing wrong with expressing a vague idea vaguely, but if you're definitely looking for definite information, you should use whatever method gets you exactly what you're after. If you chain together enough 90%-right assumptions, your probability of getting a wrong conclusion approaches 1.
For mathematical formulas and formal queries, the user would need to use formal notation.
It's true that it's all math/physics/chemistry underneath, due to how the brain works, but in practice we never worry about that, just as an engineer doesn't generally consider quantum and relativistic effects when he's designing a bridge, or an outfielder doesn't scribble down a bunch of differential equations before catching a fly ball.
Sure, any standard computer is equivalent to a bounded Turing machine, but Turing machines are a real pain in the ass to program.
Mathematical purity is one thing. Getting your work done is quite another.
Over-mathematization is what killed AI (IMO).
Been taking precisely that approach for some time thinking through and trying to create a CLI with recognition. The novel approach consisted (I've since stopped working on this particular problem) of an interface that interacted with some known commands, applications and data.
The more you type into the machine, the more it recognises certain things related information names, associated projects, that appointment you have for next week, the document due next week. The crux was realising that meaning could be attained from small SMS like messages. A message could consist of peoples names, times, predefined commands. Then trying to weave some sort of context within related messages.
The big problem is the contextual awareness. NLP is one way to go, but recognition without having to annoy the user with confirmation is difficult. Recognising language is a big ball of string. One promising approach is to add a Adventure like shell interface onto the front, pre-describe (or dynamically build) the space you can navigate. This means your using a human brain to augment the system offsetting having to use the brute force approach. Then integrate with back-end applications.
Sounds good in theory but I agree it is HARD.
Once we launch StreamFocus and have the system streamlined, we'll get back to that HARD problem. We're pretty close to a solution though, and it involves making a new conceptual language as a subset of lisp. Pattern matching never works, you have to have the actual conceptual hierarchical structure as well as the links between concepts, etc. (We've been working on the underlying epistemology and programming for this since 1998.) We plan to launch a product that creates a conceptual index on top of a standard database, creating effectively a database with conceptual retrieval. The system is multi-lingual as we model the concepts in the same way humans do, independent of the language used to express the concepts.
There was a movement for several decades that assumed that _everyone_ is visually oriented, but there are many people who are still language oriented. Not everyone likes just picture-books.
I'd postulate that it was the adoption of the GUI that let the PC spread into the mainstream. Most people just don't have the patience to look up commands. Periodically, there are nostalgic pronouncements that the command-line will reign supreme again, but mostly this seems to be because the tech pundit population largely overlaps with the comfortable-with-computer-before-they-became-mainstream population.
This kind of "cmdline" tools win in some specific areas because they work perfectly with thin clients and via thin communication channels. All you need is to send a couple of words to the server using some relatively simple standard local application - be it a browser or your console client.