Metafor: Translating Natural Language to Code
vivin writes "Computer programming is second nature to most of the Slashdot crowd. However, this is not true for the vast majority of people. Formal programming languages are not as expressive or flexible as natural languages. This becomes more evident when we try to translate user requirements into actual code. Researchers at MIT have come up with a program that bridges this gap. It's not so much a tool that turns English into code, as it is a program that translates requirements (in English) to code. When Metafor analyzes English, nouns phrases become objects, verbs become functions, and adjectives become object attributes (or properties). In addition to helping programmers visualize their program better, I think it also promotes writing concise (and therefore) requirements and descriptions. Metafor doesn't handle run-on sentences (or bad English) that well." Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.
Well, I doubt something like this would be used to write the next version of Gimp, but I can see its use in helping people to convey what they want a computer to do. Few people need to write programs and I don't know whether I'd want people who don't
understand computers to actually write them. But it would help when someone wants to make something like a 3D scene in Blender. It reminds me a lot of that episode of STTNG (Schizims) where Riker, Troy and Worf are telling the computer to replicate an alien room that they were in.
Of this, I think...
The Army reading list
While this is a cute concept, I don't think you'll be seeing computer programmers disappearing any time soon. The natural language bent was the original point of high level languages. Early languages like COBOL, SNOBOL, and BASIC were all designed to abstract programming to a level of natural language. Save for BASIC's success as a beginner's language, none of them accomplished their goal. In fact, the "natural language" design of COBOL only served to complicate the language and cause a variety of errors due to missing periods, improper spacing, and other common typing mistakes.
;-)
It wasn't long before it was reul languages actually broke away from English and relied more heavily on easily-parsable, special characters to define structure. We can see the results of this in today's C/C++, Java, LISP, PERL (bleh), and Python languages. This new interface does nothing but try to perform some of the structural thinking done by the programmer. (Although I have my doubts as to its current real world ability.)
So the question that then comes to bear is, "Who would use this natural language interface?" Sadly, the answer is most likely "programmers". But why would a programmer use this interface if he has to be trained in computer logic in the first place? It would seem like an unnecessary level of abstraction that would only serve to hinder a programmer's natural abilities.
Of course, there is the documentation issue. Supposedly this interface will be useful for producing requirements in addition to code. But who produces the requirements? Not the programmer. That's usually the job of the business analyst, someone who may not even have experience with coding logic. And for code documentation, nothing quite beats the JavaDoc style documentation that has become popular in the last few years.
I think that research like this is interesting, but I doubt it will have many uses until AI and voice recognition improves to a level similar to that seen in Star Trek. Only about 300 more years and counting.
Javascript + Nintendo DSi = DSiCade
Verbs translated to functions?? Nouns to variables??
int jerk_at_counter, hottie_in_accountancy, dork_at_it;
kill(boss);
send(intern,hell);
Yeah, that will work...
how long until
Now all we need is a tool that will take a user's brain and turn it into solid requirements.
It is quite simple
Haiku should not be funny
Try a Senryu
Forget it being a tool for this crowd then!
"Make it possible for programmers to write programs in English, and you will find that programmers can not write in English."
t er .html
http://www.murphys-laws.com/murphy/murphy-compu
How well would Metafor handle English like "nouns phrases become objects"?
Yeah, I know my neighbor with an IQ of 7 would rather be writing code that parses XML work orders and turns them into statistical graphs than watching NASCAR. It's just that complicated Java syntax kicks his ass so he's kicking back with a 6 pack of Black Label waiting for this technology to come out.
I'm Rick James with mod points biatch!
I'm sure we've all experimented with header files that define an english-like syntax for our code. We've dumped it for a reason - it's not as efficient.
Hiding what's going on "under the hood" is never a good thing. Good code, like good food, depends on good ingredients, and the knowledge of how to combine them.
Crap food, on the other hand, can be produced by anyone with a stove and delusions of cooking ability.
I don't mean to sound pessimistic, but remember who comes up with functional specs; managers. As a consequence, this poor program may well come up with a framework that matches exactly what was requested, but once it's put together, the suits will say "it doesn't do this". When it's pointed out that that wasn't in the spec, the inevitable response will be "but it was implied; it should be obvious that we'd need it to do that." This is just a core dump waiting to happen.
Computer programming is second nature to most of the Slashdot crowd.
Maybe back in 1998, but haughty sniping is second nature to most of the Slashdot crowd now.
One of the things that really bothers me about Linux is the pervasiveness of languages like C that make no attempt to model higher thought and instead force the developer to constantly re-learn old unusable APIs and shove ancient hacks that are unreadable just to get drivers working. Objects in code need their a[tt]ributes to mirror real-word equivalents, otherwise reading the code is impossible because no one else can make sense of all the confusing acronyms and variable names.
I actually think that .NET is the right step for us. Mono is really the first sensible language (Java doesn't count; it's not free) that has any mindshare for Linux, and let's face it the Linux world needs it. Until writing software for Linux can just be a simple translation of designs in our heads to GUI design and implementation, Linux will lag behind the rest of the world because of how long it takes to write software for it.
Slashdot: Where people pretend to be twice as smart as they really are by behaving like children.
I wish that people spoke mathematically rather than poor and ambiguous languages that can now (supposedly) turn into (ambiguous) code. Can one really rely on translated 'code' like this. That's like sending an E-mail from speech-to-text recognition without proof-reading.
My Linux - (L)ove (I)s (N)ever (U)tterly eXPensive
How hard is it to change rules of treating the sentences? Can Metaphor learn Chinese, for example?
In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
From Dijkstra's timeless "How do we tell truths that might hurt?":
Projects promoting programming in "natural language" are intrinsically doomed to fail.
He said that 30 years ago. People still don't listen.
A message from the system administrator: 'I've upped my priority. Now up yours.'
Shiver Me Timbers and Poke Me Other Eye Out! How would it handle this!?
waiting...
waiting...
waiting...
Stupid computer doesn't do anything I tell it
Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
What truth?
There is no dupe
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
nouns become objects, verbs become functions
Congratulations!!!
You've invented Smalltalk!
Welcome to 1980!
While the logic of the researchers' interpreter tackles only about 20 percent of the problem of full natural language programming, it achieves about 80 percent of the perceived rewards.
Ah, this old thing again.
The hard part about programming isn't turning basic English text in to half-assed code. If it were, then Google have built their company on just-out-of-college scripters and Visual Basic.
[Liu says] "Many subjects immediately identified the simplistic interpretation of the interpreter, and wanted the opportunity to rephrase their original wording to fix the error."
Yes, regular English is insufficient for programming. If a tool like this becomes popular, you'll need still need a special class of people to figure out what is needed and to figure out how to phrase the desire in the precise way that makes this guy's interpreter actually do what they want.
In other words, he hasn't invented a way to eliminate programming or programmers. He's figured out a way to make a programming language that is slightly easier to learn at first. But because it's removed from what computers actually do, much harder to use for anything serious. The hard part about programming isn't the month you spend learning Java syntax, it's the many years you spend learning to write code well.
Their theory appears to be that this will make programming easier to learn. I wish them the best of luck in that goal, but having seen over the years a number of graphical and natural-language programming tools vanish without a trace, I'm not holding my breath.
Now that I've seen that, I suddenly have to wrestle with the fundamental insanity of having FOND MEMORIES about COBOL.
Why couldn't you have just left well enough alone, so I could keep happily despising it?
Next thing you know, I'll be pining away for OS/390 JCL.
Microsoft cheerleader, blue flag waving, you got a problem with that?
If Metafor cannot handle bad spelling or grammer, then maybe using MS Word to do it for you will help. This is ment to be a joke, and not insightful.
Javascript + Nintendo DSi = DSiCade
This has been tried before, not successfully.
What I've noticed a lot of times is that Engineers can't write documentation and requirements worth crap. Ok, so I shouldn't make such a blanket statement. Some engineers can write well, but most can't. I think this will do two things:
a) Help computer engineers describe their program's requirements better so others can follow them better.
b) Help beginning computer programmers make the connection between a natural language description of their program and the program itself. For example, this can help them understand concepts of OOP programming (nouns->objects, verbs->functions, adjectives->properties).
It's not true that programmers don't always write requirements. One of the classes I had to take in college dealt with the Software Engineering/Development Lifecycle. One of the things we had to do was to create a requirements specification for our program. We had to write it in a concise manner so as to map it to actual parts of our code. From the requirements document, we went to a UML software (Rational Rose) and from there, to the (skeleton) code. That's what this software does, except it encourages us to write proper descriptions in the beginning itself, and then maps that to skeleton code.
Vivin Suresh Paliath
http://vivin.net
I like
Yes, this is not a new concept. And yes, it's been on every science fiction writer's radarscope since the concept of a calculating machine was considered.
And it's still science fiction because:
- Language is situational, societal, and emotional
- Most people doing this sort of work communicate in English. So they assume English is a good place to start from. Unfortunately, it's one seriously illogical language to start from.
There have been attempts to create 'natural language' programming languages. And in the main they HAVE been successful. Sure, they are inefficient. But so is human communication.
Every psuedo-code compiler / interpreter that I've ever seen (since the 1970's) has simply been a programming language. Sure, maybe they're a little nicer to look at, but they will always fail the Turing test.
Want TRUE natural language programming ?
Develop a computer that works linguistically, not logically.
The trick is to not have morons write the requirements OR code the actual software..
Its amazing how much this helps.
Firstly, people for whom programming is too complicated should not code at all. We need less programmers building better code, not more programmers adding to the crap heap that the software legacy is as of today.
Secondly, I think that what is needed is the other way around : automated analysis of code and production of natural language reports that designers could browse more easily than the code itself looking for bugs or designing extensions and additionnal feature. They would then intervene directly on the code itself.
Sort of a souped up version of Knuth's literate programming, only with a much more radical transformation of the code for its vizualisation, bringing up the essential and critical aspects.
Think of how a reasonably complicated mathematical proof, say within the formal set theory, would look like in a math paper or book meant to be read. Compare with how it would be coded in a theorem prover. Different. Yet the former can be automatically generated from the later.
The key to high quality software is controlling the complexity in the inter-function domain; the ordering of and the relationships between functions.
Converting natural language to software does NOT address this problem. Natural languages are not expressive or fluent at rigiourously addressing complexity issues. Rather, formal methods address this problem; even weak formal methods such as state machines produce enourmous benefits to code quality, since they force the author to consider all possible outcomes from all function calls and at the same time, by rigiously, logically and consistently exposing the behaviour of the program, permit far easier code modification by later authors.
--
Toby
No matter where you go... there you are.
Writing HTML is not programming. Drawing a stick figure with a smiley face is not art.
You are trying to imply that an artist should be able to write the next vector raytracing engine for HalfLife 3 with no knowledge of calculus. I claim BS. This is like giving the typical slashdotter with no art experience a contract to make a painting styled after a Rembrandt. "Its real simple! you just dip the paint brush in the paint, and drag across the paper"
In game development, there is a need for REAL programmers, REAL artists, and REAL musicians. Some people can pull off being two of these well enough, or even all three, but generally this is not the case.
Computer science is a science, mainly by the definition of "Methodological activity, discipline, or study".
Games are a work of art as much as a program. If you swap the personnel of the art department with the gaming engine department, the game will look like Duke Nukem Forever, and, uh... never mind.
Personally, the best programmers I know have graduated with degrees in electrical or computer engineering, not ComSci. ComSci folks seem to be too focused in the software realm. Yeah, this seems stereotypical, but based on observation. YMMV.
- Strydre
Is this perhaps an extreme example of building code from language, which is perhaps notoriously sloppy? I just gave my son an old copy of Code Complete so that he could learn to go from what he wants to do to code, all while developing documented code. He is in the introductory C++ programming class. He has a professor asking him to draw flow charts.
Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.
Unless you have an '*' next to your name, you don't pay for slashdot other than the electricity to run your box. Don't give me the "but the ads are there" tripe either. I know most of you either use Adblock or ignore them anyway.
The source is available. Start your own site.
Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.
Ah, yes! Duping words next to each other, that is the new fad. Because duping articles is so yesterday's news
Open Source Java Web Forum with LDAP authentication
I've never been one to complain about dupes. I figure I already get way more than I pay for from this site (which is zero). But if people are frustrated about dupes, maybe it's because it's an exceedingly simple problem to solve, and the Slashdot editors give every appearance of not bothering to lift a finger to solve it.
Patrick Doyle
I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
I prefer the format used by Cooking for Engineers.
Computer Go: Writing Software to Play the Ancient Game of Go
I would definately be skeptical with such technologies. SQL was an attempt to make database queries close to natural language. In my opinion, SQL is the most difficult language to do complex tasks with. True that it may be, SQL was originally designed for queries not stored procedures and such. The fact is that need was there and SQL had to try and support it.
The inherit problem with using a natural language, or something similar to a natural language for programming is that computers need exacting commands. While natural languages are more expressive, formal programming laguages are precise.
Which is the whole reason why there are often bugs. Computers are not smart, they can not guess what a user wants. They can only do exactly what a user specifies, whether it's right or wrong.
I mean, look at all the misunderstandings that occur between people. (Most) humans have a very sophisticated brain with a portion devoted to language. And still, we get things wrong very often when understanding others.
My point is I don't think there will be a replacement anytime soon for formal programming laguages. I know that is not what this tool is trying to do, but I think it's value is novel at best. There is a long way to go before someone can speak into a microphone and a computer can make the assumptions necessary to peform a task with a reasonable degree of success.
Since when did every artist have to draw realistic artwork? Some artists draw anime, some artists draw comics, and some artists do draw stick figures and it is art to a lot of people. Unless you are going to program the space shuttle or the new unmanned probe, you don't need calculus. I've never used calculus in any of my code, not even once. Sure if you need to do realistic modeling of physics for your rocket, you'll need calculus, but unless you are going to be a rocket scientist why should we require all programmers get the training and education of a rocket scientist and then expect to be able to say "Well we need millions of programmers!". You cannot have millions of rocket scientists, you can have millions of good programmers. Do we really need a new game engine for every game? Can we reuse one good engine made by one rocket scientist over and over again? In art you'd reuse, in science you'd keep reinventing the wheel over and over again. Which is more efficient? Open source is art, and in art you don't need to re-invent the wheel, its all about the expression of the code not the calculus, not the science, the expression. If you are working for the government on some top secret mission critical project or if you are working for NASA then I can understand why you'd need calculus and math. If you are going to get a degree in calculus and math just so you can sit in a cube and write simple C programs all day, you wasted your time learning bullshit you'll never use, and the school has filtered out millions of coders who may be able to write great code for portable mp3 players or great applications for windows but who may not have the skill level to write the code for the new smart bomb or unmanned drone technology. Just because I cannot write code for advanced robotics or aerospace does not mean I cannot write basic applications, and thats what most people need. Most of us are using basic applications and most applications which are profitable don't require any calculus or math at all to write. Look at the code to Enlightenment, theres no calculus in it. Look at the code to Gnutella, no calculus, so tell me how a calculus programmer is more valueable to the economy than an artist programmer when most of the good programmers arent made by the calculus programmers? Napster was designed by an artist, not a NASA scientist. When was the last time a NASA scientist designed anything for the masses?
Well, nothing else seems to improve their editing style, grammar or general editing skills, so I really don't see why they don't expect hate mail.
It certainly would help if there was some transparency in their processes.
When a Harvard natural language parser was given the phrase "Time flies like an arrow," in the 1960s it identified the following five parse trees in reponse.
1) Time proceeds as quickly as an arrow proceeds.
2) Measure the speed of flies in the same way that you measure the speed of an arrow.
3) Measure the speed of flies in the same way that an arrow measures the speed of flies.
4) Measure the speed of flies that resemble an arrow.
5) Flies of a particular kind, i.e. time-flies, are fond of an arrow.
I would guess the source code for those five different interpretations would be, well, different. (The fifth one is my favorite.)
Education is the silver bullet.
Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.
/. years ago.
Taco, you asshole, you've been duping stories for years. You've known about them and yet you've done nothing to fix the problem. Don't pull this sentimental BS about not "encouraging" improvement. If the fact that if Slashdot is your creation, and is your job, isn't enough "encouragement" for you to fix the problem of dupes, I don't think anything will be. From all appearances, it looks like you've given up on
-------
"Every artist is a cannibal, every poet is a thief."
"Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement."
/. anymore, and wouldn't be familiar with what's been posted).
At LWE in January, 2001, at a conference on Slashcode, someone asked us at Newsforge how our site had so few dupes compared to Slashdot. There were two reasons:
1) We had a smaller audience of people to see the dupes we did accidently post.
2) We searched our archives before posting any story. We searched by story URL, by story keyword. We also generally skimmed the site when we weren't working to be aware of what was being posted.
Clearly, #1 is something Slashdot doesn't have working in its immediate favour, but #2 is something that shouldn't be too hard. Zonk, Timothy, Cliff, Simonker, etc, don't post dupes nearly as frequently as CmdrTaco. Hemos doesn't post often, but he also seems to be pretty dupey (understandable as he's not really associated with
The worst example is something like the PSP dupe story: Taco didn't even check out the games section, which had that story right at the top! A simple search for "PSP" and "Browser" would've shown it even if he never reads sections.
CmdrTaco doesn't read his own site. What does this tell you about how he feels about it?
I don't read Kuro5hin much anymore for the same reason. Complaining about dupes will just drive him further away, even though he still has to work on it by contract.
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
Its possible to construct perfectly correct use cases for an elevator which strands everybody on the roof.
Its also possible to construct use cases which don't make any sense (by not requiring the holes in the floors.)
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
Right. But computer science isn't (necessarily) about programming. If you want to program, learn to program. If you want to know how programming languages work, and why they work that way, do computer science.
Graphics is a big field of computer science, and you cannot understand graphics algorithms without calculus, complex numbers, and algebra. If you can't do the maths, you're stuck writing 2D scrollers. The 1% of programmers who actually use that "useless" maths are the ones writing the game engines.
Computer science is indeed a science (arguably a branch of mathematics). Programming may or may not be an art, but it is firmly grounded in science.
Oh, and point-and-click game creation has been done several times. It was shit.
It really bugs me that /. editors treat dupes as a sort of charming fact of life, as if dupes are among those imperfections that make life worth living. Dupes suck, if for no other reason, because they fork discussion, confuse the archive and make searches less precise.
/. crowd is able to code by second nature. How f-ing hard is it to have a dupe checker (even a simple on like what FortKnox is proposing). Why is it that a website that proclaims itself the bastion of all things FOSS has languished in mediocrity while thousands of competent coders are practically begging to write this feature into the site's backend? Of course, nothing will come of this, except more shoulder-shrugging and gee whiz, golly nonsense. I'm not trying to flame, but this sort of unprofessional, "friendly fuckup" attitude is what holds the public image of FOSS back.
It's especially annoying when the dupe article proclaims that the
In addition to helping programmers visualize their program better, I think it also promotes writing concise (and therefore) requirements and descriptions.
Nope!.
We don't need a way to transform natural language to program... we need a way to take a program code and produce natural langauge.
I don't know any developer that actually likes writing documentation.
Bet this
But not all code is written for business apps. What about scientists who understand logic fairly well, but who have difficulty in C or C++? (There are a surprising number of such people.)
Would you prevent a mother with no medical training to put a band-aid on her son's skinned knee? Sure, a trained doctor would know more about exactly how much (if any!) antibiotics to apply to the wound before applying the bandage, but surely you agree that the mother should be forced to pay his fees for this fairly trivial service?
I agree that this might not be for everyone or every project, and this particular instantiation might not even be for anyone or any project, but surely you must understand the importance of allowing the casual/hobbyist programmer to increase the tools in his toolbox!
Ben Hocking
Need a professional organizer?
No, an url checker isn't needed. They need to actually do their fucking jobs. Hell, I just read the site, and I know when a story is a dupe, as do hundreds of other readers. For a few of these guys, their ONLY JOB is to maintain the site. If they can't recognize when a story is a duplicate, they aren't doing their job. It shouldn't require an URL checker. These guys should get off their lazy asses. The problem is that some of us just keep coming back, giving them more pageviews, etc. If people got really sick of it and just came to /. less, maybe management would wake up and can these guys posting the stories. Sure, I know they started it, but that doesn't mean they're inherently more competent than anybody else.
I don't respond to AC's.
Java has enums as of 1.5 (or 5.0 if you're Sun's marketing dept). For previous releases, something like this should work:
public class Direction
{
public static final LEFT = new Direction(1);
public static final RIGHT = new Direction(2);
public static final UP = new Direction(3);
public static final DOWN = new Direction(4);
private int dir;
private Direction(int dir)
{
this.dir = dir;
}
}
Then the changeDirection method is
public void changeDirection(Direction dir)
{
this.direction = dir;
}
It's official. Most of you are morons.
The use of special purpose languages is nothing new. They're used in mathematics, chemistry, music etc. ... pretty much anywhere where it is easier to use a special purpose language to express concepts than with a natural language. Sure there is a learning curve, but that is often the least of the hurdles in doing a reasonable job.
Take for example music: For the musically illiterate like myself, a music score means nothing. Yet, to someone who can read music it means a lot. I guess you could potentially write music in English: "Make a high pitches sound for a bit, then a lower pitched sound and then a highher pitched sound....". Reading that would be hell and it is imprecise as to what it means. The hard part to being competent at music is not how to read the score.
Likewise, computer languages are the least barrier to effective programming. What matters more are the concepts and being able to express them effectively. Sure, some languages are easier to use than others (eg. python might be simpler than C and just about everything is simpler then Brainfuck), but programming in a natural language would be damn difficult. We already have some simple programming languages like VBscripting and spread sheets for "soft tasks" like customising spreadsheets and wordporcessors etc.
Engineering is the art of compromise.
The private constructor ensures that only these 4 instances of this class will ever be instantiated.
Sounds like someone has a case of the Mondays. ;) Seriously, you appear to be speaking from your experience as someone who has to support idiots (AKA the general population). OTOH, I'm speaking from my experience in the sciences where the amount of time spent writing code is frequently larger than the amount of time spent running the code. In many instances (not all) bloat is less of a problem than time wasted tracking down the reasons behind a segfault. That's one reason why many scientists "code" in Mathematica and/or MATLAB. Again, I'm not saying that this particular solution is any good, just arguing for the value in making programming easier at the expense of making the programs less efficient in space/time.
Give a mother a band-aid, and everything's a boo-boo. I still remember that time when I had my legs and arms separated from my body - blood was spurting everywhere! - and my mother was trying to fix it with a band-aid (well, four band-aids). Luckily, I finally convinced her that this was a job for a surgeon.
Ben Hocking
Need a professional organizer?
Have Kylie stripped washed and brought to my tent
"It looks like you want to strip-wash Kylie. Now readying strip-washer, copper surfacer, and metal shearer. Thank you for using Metafor."
i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
By what metric? I've had a number of people tell me the same thing about English. As a native speaker of English, I've found Arabic much more daunting simply for the number of sounds that don't even approach anything in English, let alone the very complex grammar. Chinese by comparison was quite simple, with a grammar much closer to what I'd grown up with, and sounds I could at least approximate enough to be understood.
The problem with anyone saying "Language X is difficult" is that it has everything to do with where you're coming from. If you speak Samoan, then Mâori and possibly even Tagalog won't be too much of a stretch, as the languages are related. Coming from English and learning Mâori is a completely different ballgame.
By way of example, let's look at some simple sentences. "I am going to the store" in English works out to wö qù shângdiàn, literally "I go store" in Chinese. But try the same thing in Japanese, and it could come out umpteen different ways depending on who you're talking to. If you're amongst friends, you could say mise ni iku, lit. "store to go", with the subject of "I" only implied (implied subjects can make interpreting Japanese into English a real bitch, especially if you just missed the beginning of the conversation :). If you're talking to your boss, you might say watashi wa o-mise ni ikimasu, lit. "I (topic) (honorific)-store to go."
I'll be the first to admit this is a lame-ass example, but nonetheless, I hope it at least illuminates my main point -- what's difficult to learn depends on what you already know. :D
Cheers,
"What in the name of Fats Waller is that?"
"A four-foot prune."