Input: Why is it important for the sides of the fuselage to be sloped (tumbled home)?

Context:
Probably one of the most frustrating things about building experimental aircraft, especially when starting with a minimum of pre-fabricated parts, is to start building and ending up with an unexpected result. Every builder starts a new project by wanting it to go "perfectly." So when things aren't going well, especially at the beginning, the frustration can lead to an unfinished airplane.
This is the first article in a series dedicated to helping builders of the Rand Robinson KR series planes build a straight and true fuselage -- the first part of the construction process. Borrowing from modern boatbuliding techniques, focus will be on the KR-2S, but the principles apply to the entire lineup of KR-1 & KR-2 series planes.
While building the KR-2(s) a common surprise is encountered by builders when the completed fuselage sides are laid into position to form the fuselage box section. With many hours spent building the sides flat, finding the once straight longerons that now bow up from the building surface, form a most dissatisfying "banana" shape. Especially when using the preformed fiberglass parts, this curve in the top longeron is not acceptable. The builder is left wondering what went wrong and no amount of clamping or brute force forming will solve the problem to any degree of satisfaction. The problem is not the builder's fault. The solution starts by understanding the three dimensional relationship of the assembled parts being built.
First understand that the plans show the finished form of the plane. They show the "projected" form as you would expect to see it if viewing an actual plane from the top, ends and from the side. Since the sides are sloped (flared) outward, looking from the side, the distances given by measuring the profile drawing are "foreshortened" and don't give the proper shape for building the fuselage with a flat top longeron. What needs to be done is to "develop" the "true" distances and shape of the flat panel so that when it is curved into position, the longerons lay flat.
Second, understand that the dimensions called for in the plans put a twist in the sides that tends to work the panel in two directions of curvature. This twist makes the panel "undevelopable" meaning that that shape cannot be unrolled into an equivalent flat shape. This is important when laying out the side and bottom panels onto flat plywood. To illustrate this, try forming a piece of paper around a soda can. The paper can be formed flat around the can either straight or at a diagonal to it's length. It has only one direction of curvature and is by definition "developable". Now try to form the same piece of paper around a baseball. It won't lie flat on the surface without some deformation (folding, wrinkling or tearing) of the paper. The ball has curvature in more that one direction and is a "compounded" shape. Paper (or plywood) can only be readily formed in developable shapes as opposed to aluminum or other metal which can accept in plane deformation. A developable surface is needed to lay out a curved surface when the materials used can't be deformed with any degree of in-plane strain.
Initially, the fuselage sides are laid out flat with reference to the top longeron measured to a straight chalk line. The bowing problem starts when the side panels are bent and sloped to form the fuselage box section. If the sides were not sloped (tumbled home), the section formed would be cylindrical and the longerons would lie flat. Since the sides are tumbled home, the section formed is now conical. When a conical shape is cut with a plane (building surface) not perpendicular to it's axis, the shape formed is elliptical -- exactly what happens with the top longeron. When it's built flat, bent to form a cylindrical section, and sloped to form a conical section, it takes on an elliptical shape firewall to tailstock.
This method borrows heavily from proven techniques used in the marine trades. It should be stressed at this point that although the layout procedure is not complicated, it is important to take your time. If the layout is not going well initially, start over! Better to erase layout errors now than to have them built it and cause surprises later.
Layout to ensure a fair and true fuselage starts by drawing a reference line (baseline) on the building surface. Refer to figures 2 & 3 and use a wire guide to draw a very straight baseline. About 500 lbs. Of tension should be adequate. One could use a chalk line, but we're talking airplanes here, not house framing.
The main layout difference is that the baseline isn't used as a reference for the top longeron. The baseline references the mid point of the firewall for the developed (and true dimensioned) side panel. Although the baseline will still be the reference, the top and bottom longerons will be laid separately.
Layout differences don't end there. Each of the stations (vertical members) will be laid out with a calculated separation so that when the panels are formed into position, they land on the spacing called for in the plans. Another major difference is that the bottom & side panels are applied after forming the fuselage box section. This is mainly to obtain the ability to "fair" the side and bottom surfaces and insure a straight and true shape.
Refer to figure 1 for the layout of the new developed side panel. The firewall (station a) is layed out perpendicular to the baseline. Longitudinal (station) measurements are given along the length of the baseline from the firewall. Vertical dimensions are given to reference the angle and breadths of the station at the baseline.
Notice that the top longeron is bowed outward and that the stations are spaced slightly greater than called out in the plans. When the panels are formed into the box frame section ,they will work into the dimensions specified in the plans.
Strike a centerline, longer than is needed on the building surface using a wire guide. Draw off the firewall line perpendicular to the centerline at one end.
Using the distances listed in the balloons, mark them off on the centerline. Distances are measured to the nearest sixteenth of an inch. Take time to mark them off carefully. Don't mark off the distances in a cumulative fashion. Use the firewall as a common reference.
Using the angles listed at each station, mark off a station line longer than is needed. The angles are measured to the nearest hundredth of a degree. Take time to mark them off carefully.
At each station, start by marking off each short (bottom longeron) line distance from the centerline. Use your set of trammels or beam compass for doing this. Mark the intersection of the short line with the station line.
At each station, mark off each long (top longeron) line distance from the intersection of the short line distance and the station line. Again the trammels or beam compass is best for completing this step. Mark the intersection of the long line distance with the station line.
Using the longeron as a batten, trace out the inside and outside curves of the longeron. After the batten is secure, in between each station, fasten a keeper block inside and outside to preserve the shape of the longeron taking care to avoid potential future interference with the diagonal members to be installed later. The fairing blocks can be removed or left in place if they won't interfere with building. The vertical station members and their diagonals can now be measured and positioned. Remember to refer to the plans for the material thickness direction.
After vertical and diagonal members are cut and fitted, take time to draw their outlines on the building surface to cut down on time and confusion when laying out the opposite side.
Finishing the side panel is accomplished in a manner similar to that called for in the handbook with the exception that the side and bottom skin panels will be attached later.
The next article in the series will discuss jigging and building techniques to ensure alignment and straightness of the flat built side panels. Also covered will be building a "strongback" jig to assure alignment of the side panels when they are formed into their final shape.
Part 3 in the series will cover assembly of the side panels using the jigs. Some joint details will be discussed that will ensure a stronger and more fair fuselage assembly. Also covered will be the layout & attachment of the side and bottom ply skins.
U.S. Mail: Densmore Associates, inc.
ANSI "D" size, computer generated plots of all the layout drawings in this series are available from the author for $30 plus postage & handling. Full (true size) scale plots may be made available depending on demand.
"Scarfing" is the practice of splicing plywood so that short pieces of plywood can be used to span long distances. On the KR, it is required on both the fuselage skins and spar webs. The angle of the splice should be 10 to 12 degrees to maintain strength across the joint. Also, joints should coincide with structural members, such as spar webs or fuselage truss members.
This scarfer is made by mating a regular plunge router (this one costs about $50) to a table saw. Obviously, you really only need a table saw to cut the chamfer, but it does make a nice heavy table for scarfing. You could just as easily use a large work table as the base.First, set the table saw for a 5.5 degree cut (for a 1:12 joint, or 6.5 degree cut for a 10:1 joint), and run a 1 x 6 through on edge to chamfer a corner on the board. Then drill the board for three router mounting holes (two are countersunk) and connect the assembly to the table saw with two 1/4 inch bolts. Use a long (2-3 inch) straight cutting bit to do the cutting. Adjust the bit so it doesn't interfere with your table top, and go to town. Keep pressure on the plywood to ensure contact with the table while you're scarfing. Make sure you feed your material from the same end as you would if you were sawing, or the router will take your plywood away from you and put a big dent in your garage door.
In the late 60's Ken Rand and Stuart Robinson were working as flight system engineers for Douglas Avionics. Ken was working as an electrical engineer, having previously worked for Sperry as an autopilots project engineer, while Stu's degree was in aeronautical engineering from Northrop University. They were two of the guys at the end of the DC-8,9, and 10 assembly lines responsible for correcting some of the nits and picks in various systems before delivery to the customer.
They both wanted to build a fast, inexpensive airplane which was also economical to maintain. Several designs were considered, and plans were bought first for the Jeanie's Teenie and then the Taylor Monoplane. The Monoplane was more to their liking, but would require some modification to fit their needs. A cooperative redesign effort ensued, with virtually no dimensions left untouched. Only the basic fuselage structure, airfoil, and powerplant were retained. The tail shape was Stu's, and came directly from the big DC-8s parked on the ramp outside his office window. The landing gear was designed by Ken, after seeing the gear on a Dewey Bird at Santa Paula airport.
Ken was killed in his KR2 a short time later while flying over Cajon Pass in what was apparently a bad weather / low fuel accident. Ken's wife Jeanette became owner of RR overnight, and stepped up to keep the plans and parts coming. Much of the engineering needs are handled by Bill Marcy of Denver, who's been helping out since early '79.
To date, almost 6000 KR1, 9200 KR2, and 760 KR2S plan sets have been sold. 1200 KR2s are estimated to be flying, with 5 KR2Ss now in the air. Much of the development work done on KR's is now done by the builders themselves. KR builders tend to be innovative, which leads to some interesting modifications. Some of the mods that work eventually creep into the plans. The KR2S is a case in point. Many builders who'd heard of the pitch sensitivity and tight cabin of the KR2 began to build an enlarged version, with the length determined by the most commonly available longeron material. The result is a KR2 that is stretched 2" between firewall and main spar, and 14" behind the main spar. Higher gross weights dictated more wing area, with the new standard becoming the Diehl wing skin. Those who plan to carry passengers commonly stretch the cabin width a few inches, although 1.5 inches is the limit if you still want to use RR's premolded parts.
Mike Stearns addresses the KR Forum crowd.
This year's KR Forum featured guest speakers Mike Stearns, Steve Trentman, and Bill Marcey. Mike Stearns spoke on several topics, including the many sources for KR and homebuilding information available on the Internet. He also mentioned KRNet, the list server devoted entirely to KR aircraft, as well as several notable World Wide Web home pages. He also brought a sample of the new Rand Robinson wing skins with him, and discussed their high temperature core prepreg construction. His KR2S will receive the first set, which is currently being installed at Hinson Composites.
Steve Trentman spoke on his turbine installation. It uses a turbine engine which saw duty as an A7 attack jet starter engine. Total weight is about 85 pounds, while putting out around 90 horsepower. There is a small stockpile of these engines available from government surplus. sources. This engine can only be throttled back to 52% power, which leads to some pretty interesting landings. One inflight failure has been logged so far, with very little damage to the aircraft. More on this exciting development in next month's issue of KROnline.
Les Palmer's KR2 N202LP won Best KR2, Best Engine Installation, and People's Choice awards at the 1995 KR Gathering at Columbia, TN. After researching the KR series, and reading Neil Bingham's "A Critical Analysis of the KR2" (Jan 88 Sport Aviation), Les decided to build his as a single seater, stretched 24" in the tail, while maintaining a stock width firewall. His fuselage is made from Douglas fir, which weighs in at 4 lbs heavier than if constructed from spruce. It is skinned with 1/8" birch plywood. Spars are covered with plywoood on both fore and aft sides, ala KR2S. Diehl wing skins provide the lift. Horizontal stabilizer and elevator were stretched 7" longer on each side, while the vertical stabilizer and rudder were stretched 8" taller. . The fuselage to cowling junction was made more graceful by adding 1.5 inches to the height of the firewall end of the fuselage sides.
Les's canopy is a Dragonfly, using a four linkage system to swing forward when opening. The canopy frame fits snugly into a recess in the foward deck, providing an excellent wind and water seal. The fiberglass work is exemplary.
Seating is luxurious for one.
The cowling is also a work of art, and uses NACA ducts for efficiency. Female molds were made for all the fiberglass parts on Les's plane, so he could proabably be persuaded to make more, if demand dictates. Les also machines a multitude of KR aluminum and steel parts which he now offers for sale.
The firewall was reinforced with aluminum brackets and angles bolted between the longerons in anticipation of the 200 lb Subaru EA-81 engine installation. His 100 HP Asian version is outfitted with an American Holley 5200 caburetor and manifold. It uses a PSRU of Les's own design, featuring two spur gears with a 1.69:1 reduction ratio and a toothed belt. Other than tapping the crank for larger bolts to mount the redrive, no other engine modifications were required. Also, this is probably the only air conditioned KR2 on the planet. The prop is a 60/63 Hegy.
Originally built as a taildragger, the fixed gear is made from 4130 steel tubing. Custom cast 6.00x6 aluminum wheels and steel rotors are mated with 6" Cleveland calipers for braking. An early taxi test accident damaged the main gear, and prompted Les to change to tricycle gear. Again, he designed his own fiberglass main gear, and uses a Diehl nose wheel fork with a 4130 strut and 6" wheel up front.
Early tests revealed cooling problems, which prompted a radiator move from the firewall to a lower cowling location.
The first flight was almost a disaster, as test pilot Randy Smith lost power right after takeoff. He managed a 180 with a safe downwind landing with only minor nosewheel pant damage. The culprit proved to be a spark plug with too much reach, which was quickly remedied. Subsequent flights have shown water temp to be about 210 degrees, oil temp is 220-230, and airspeed is about 180 mph.
Shopping for the Partially Built KR.
This story starts about twenty years ago when I first started looking at the KR-2 as the plane I'd like to build. The only problem at that time was a lack of money, lack of knowledge, and a lack of job stability. I liked the design, except for the low ground clearance of the retractable gear and that a KR was going to be a tight fit for me to fly.
Over the past twenty years I've owned a number of planes, but still always wanted to build my own. I needed one that would fit me, my budget requirements, and have the speed and performance that I wanted. When "KITPLANES" published the article featuring Roy Marsh's new KR-2S, it was the first I had heard of any major modifications or improvements to the same old KR design. I believe that article and Roy Marsh's workmanship have probably been the greatest boon to Rand Robinson (RR) in the last twenty years. It certainly caught my eye! Here was the same design I had decided I wanted to build twenty years ago, with all of the improvements I wanted. It was sitting on fixed gear with some reasonable ground clearance. It had the capability to be built large enough to accommodate me. It has enough prefab parts available that it didn't have to be 100% scratch built if I decided to hurry the project along. And it had the speed I wanted. I knew that Roy's published speeds were probably not realistic expectations for the average KR, but after knocking around for the last three years in my Champ, anything over 90 mph seems pretty fast to me.
After purchasing the info kit and the sales video from Rand Robinson, the next step after deciding for sure to build this plane was to order the KR-2 plans and the KR-2S addendum. I finally got my plans and was putting together my first order to start the plane, when my partner in the Champ pointed out that there was a partially completed KR-2S for sale in Trade-a-plane. My initial answer was "No, I don't even want to look at it. I want to build my own from scratch." My partner insisted that for the advertised price and the fact that it wasn't too far away, I ought to at least give the guy a call and investigate it. "No, I don't think I want to buy someone else's problems," I persisted. That night I went home and crunched up some numbers on the calculator and finally came to the conclusion that for the sake of my budget for the next several years, I really should give this guy a call.
Three days later, I flew to his place about 400 miles away to take a look at his project. At this point I should probably mention that I consider myself to be fairly knowledgeable about airplane construction, although the vast majority of my experience is with tube and fabric. The rest of this article deals with what I looked for and more importantly what I missed and have had to repair in the last year since I purchased the project.
When we went to the seller's house, I found that the left wing was built using the Dan Diehl wing skins and the right wing skins were leaning against the wall inside the house. Also the canopy was in the house with the canopy covered with paper and tape. I wanted to inspect the fuselage first, so off we went to the shop.
There I found a fuselage sitting on it's gear painted in primer gray. The first step was to inspect the quality of workmanship of what could be seen as it sat. The interior of the fuselage looked as if it had been built with a great deal of care. The fit and finish of all of the interior wood was very nice. Even the gussets looked like they had been painstakingly perfectly fitted. The glass work on the turtle back also looked very precise and clean. It was evenly faired into the vertical and horizontal stabs. The tail also appeared to be well built with the exception of a depression directly over the front and rear spars in the horizontal stabs. He explained that when he moved recently, that he had shot the plane with gray primer to protect it from the weather since he wouldn't have ready access to a shop to put it in right away. It ended up sitting out in the hot south Texas summer sun for a few weeks before he got a shop rented to work in. That caused the glass (or possibly the foam inside the horizontal stab) to swell, except that it held onto the spar, so it was slightly ballooned in front of and behind the spars. His recommendation was to fill it back smooth with micro.
I also found a small linear crack in the lower left wing spar cap on the left wing stub. It appeared to be from over tightening the rear spar wing attach fitting bolts. His explanation was that the crack wasn't important because the rear spars only job is to keep the wings from folding back. I also noticed that the holes for attaching the outer wing to the wing stub were badly rounded out on the rear spar. He explained that the Diehl wing skins require the rear spar to be swept slightly more forward than the stock wings. This won't allow you to use the rear spar attach fittings from RR and that I would need to fabricate a new set of rear spar attach fittings.
I also found that the aileron bellcranks were not built or installed as per plans, but found that they looked professional. I couldn't check for function since the right bellcrank and sheeve wasn't installed, the left wing also wasn't installed, and the right wing didn't exist yet.
Next we pulled the inspection panels off of the fuselage and tail and looked at everything I could see with a good flashlight. I didn't find anything else that might be questionable about the fuselage except for a cracked elevator trim tab that was damaged when it fell off it's hanging place on the wall.
Next we spent some time going over his builders log and builders photo album. I still hadn't seen anything that would dissuade me from buying this project.
At this point it was starting to get late and my ride down needed to get airborne for the flight home. I needed to make a decision about whether I wanted this project or not, but I hadn't inspected the wings and canopy yet. I took a cursory look at the left wing and saw lots on micro built up on it and some bubbles in the leading edge, but nothing that looked seriously wrong to my amateur eye. The right wing was only a set of spars in the shop and the Diehl wing skins in the house, so there wasn't much to look at there. The canopy was wrapped in paper and tape, so there wasn't much to look at there either. I decided that even if there were serious problems in the wing that was built, I would be money ahead to go ahead and buy the project. For the advertised price, I could build a new set of wings and still be way ahead financially. We negotiated a final price, shook hands, took my ride to the airport, and started off in search of a U-haul to haul the project home.
Now, at this point, some of you are thinking about what I surely must have forgotten to inspect and why didn't I take a local A & P or EAA member along for the ride. First of all, I don't know any mechanics locally that have any experience with glass and our EAA chapter of which I am VP is woefully lacking in fiberglass knowledge. Secondly, as you will see, I missed plenty. Some by ignorance, some by just not looking close enough.
Now for a list of the problems that I found over the last year and a few of the fixes that I came up with.
I found that the lower set of rear spar attach fittings on the left rear spar were installed backwards with the longer spaced hole towards the fuselage. Since this is the same place that also had the cracked spar cap, it required a major change. Also in the same area he had drilled through the rear spar with a hole saw to create a place for the aileron cable to pass through and managed to cut out the second from the outside vertical brace in the spar. Then he chose to install the aileron bellcranks in front of the rear spar, and cut another hole through the rear spar for the aileron push rod. He also managed to cut out the outside vertical brace in the spar. Since the holes were already drilled through the spar, the choices were to either cut out that section of spar cap and scarf a new piece in, cut the whole rear spar carrythrough out of the fuselage including ruining the left lower wing skin, or do something else creative to reinforce the spar cap and install a custom built set of attach fittings.
I also found that after I built and installed the right side wing stub ribs and skin that the aileron bellcrank setup would not work as installed. The cable that crosses between the two bellcranks had a sharp uphill from the sheeve to the bellcrank in the last 12 inches on either side. This combined with the radius that the bellcranks turn caused the cross cable to pull up tight when the ailerons were pushed to either end of their travel, but allowed the cables to go very slack when the ailerons were centered. Also the Aileron pushrods needed to pass directly through the lower set of rear wing attach fittings to attach to the aileron. This whole rear spar and aileron bellcrank setup was going to either have to be redesigned or cut out and built to plans. The bottom line is that the problems I observed when I inspected this part were much more serious than expected when I had to fix it.
I decided that I had to remove the rear fittings from the left wing to be replaced with the new set that my neighborhood machinist was cutting out for me. When I put the wing on the work bench to start removing the rear fittings, I thought I had better take a closer look at the bubbles in the leading edge. I found that as I pushed on the leading edge, it delaminated between the glass lay-up on top and the upper and lower wing skin edges that were floxed together underneath. I concluded that that area had to come apart and took a belt sander to the leading edge. What I found was that the leading edge had been floxed together and glassed over, but the mold release had never been scrubbed off the leading edge of the wing. It peeled apart for rebuild quite easily.
When I got back to removing the rear spar attach fittings, I noticed that the woodwork inside the wing looked awfully dull. The reason was that the wing had been closed up without varnishing any of the woodwork. This was rectified with a small hole saw, a number of extensions and a modified undercoating sprayer.
I also found that the aluminum drain fitting in the bottom of the left wing tank had been glassed into place upside down. The tapered pipe threads were tapered the wrong way to install the draincock into the tank. Retapping the fitting the right direction seemed to be a good fix for that problem.
When I finally got around to attaching the wing to the fuselage, I found that the front spar attach fittings were badly misaligned. Although they could be forced into alignment, I didn't think I needed that kind of preload on the main spar fittings. This problem was fixed by calling on my local neighborhood machinist to build me an aligning fixture and reaming the attach holes to the next larger size and ordering the new sized bolts.
On the fuselage I found that although it had new Cleveland wheels and brakes on it, one of the brakes had a severe wobble to it. I must complement the manufacturers for taking care of that problem. One call to the Cleveland factory and they shipped me a new set of wheels and brakes even though the receipt for this set was over four years old and in the original builders name. Their only concern was that this set had never been placed in service yet.
I chose to sand the load of micro off the left wing to see what it was covering. When I got down to the glass, I found that there was no glass for the aft inch and a half of the underside of the wing in front of the aileron hinge. With the Diehl wing skins, you build the wings, then cut the ailerons out of trailing edge of the wing. He had mismeasured and cut too much material off the bottom side of the trailing edge in front of the aileron. It was filled by floxing a piece of spruce into the gap to fill the space between the back edge of the fiberglass and the aileron mount. I chose to wrap the trailing edge of that wing, and the other wing to match with a couple of lay-ups of glass.
When I sanded the primer off the aforementioned damaged trim tab, I found that the hinge was floxed to the leading edge of the foam insides of the tab, but not the glass. I also chose to wrap the front of the trim tab with a lay-up of glass.
I decided to pull the paper off the canopy and take a look at it before I'm ready to bolt it on and fly. The original builder had blown his own canopy and after some of the previous problems, I was beginning to have some concerns about not having looked it over closely enough. The canopy turned out to have been blow a little too large. It ended up with a little larger bubble for headroom, which I didn't object to. However, it had more headroom on the right side than the left. Yes, it was just a little bit lopsided. The main problem was that the canopy is stretched thin enough that it can be easily pushed in with one hand when the weather is warm.. My fear was that this is just thin enough that it may decide to lay on my head or in my lap when flying on a warm day. It will have to be replaced.
I'm sure that many that are reading this could see several of the potential problems before I mentioned them, but some others may not have and I'm sure that there could have been many other problems that didn't but could have existed on this project. This is also not intended to be critical of the gentleman that started this project as many parts of it, especially the wood work are better than I could have done and much of his work is outstanding. I prefer to think that I'll end up with a better plane with his woodwork combined with my glasswork. This article is intended to feature some of the problems that you may run into in buying someone else's project.
The final question is, knowing what I have found over the past year, would I have still purchased this project. The answer is yes, but primarily because the price was right in that I am still money and work ahead of where I would be if I had started the project from scratch. There are a few things that I would have done differently, but nothing that I can't live with. Although I won't be able to say that I built it all from scratch, I have built and rebuild enough of the plane that I should have no problem qualifying under the 51% rule.
You can send comments directly to the author via e-mail at "jscott@LANL.GOV".
Here is an brief explanation of how I built my turtledecks. The jig was constructed from scrap plywood and a few 1x4s that I ripped into stringers. I made two temporary bulkheads from the plywood, one for each end. Remember the forward bulkhead needs to be shaped in a way that will closely match the aft end of your canopy frame. Make an aft bulkhead by placing a straight edge at the top of your forward bulkhead and the trailing edge of your horizontal stabilizer. This will give you an idea of how tall your aft bulkhead needs to be. As far as location, I placed my aft bulkhead just forward of the lower/front of my vertical fin. I constructed the jig on the fuselage, it is glued together with automotive bondo.
After the bulkheads were bondoed to the fuselage I used the stringers that I ripped from the 1x4s and bondoed them to the bulkheads. This gave me a male form to cover with thin plastic or posterboard. I stapled two layers of posterboard to the jig(thin plastic would work better). The posterboard wraps down two inches onto the fuselage. After I was satisfied with the way it looked, I then covered the entire thing with duct tape (fiberglass will not stick to duct tape) On top of this I wetout one layer of tri-ply cloth (22oz) that I had left over from an earlier project, and one layer of 8oz. bid. Remember to mask off your fuselage so you don't get epoxy on it. If you are not familiar with composite lay-ups, you should plan on razor cutting your lay-ups 4 to 6 hours after wetout while the lay-up is still soft enough to cut with a razorblade.
After the lay-up cured (2 or 3 days) it was removed from the jig, and the jig was removed from the fuselage and discarded. (be careful, the bondo sticks very well to the spruce, you could splinter your wood during removal) I now have a fiberglass skin that tends to hold the shape of the jig but is still flexible enough to work with. I made two bulkheads out of 1/4 last-a-foam (AS&S) using the plywood formers from the jig as a guide. I covered these foam bulkheads with one 8oz layer of glass on each side, with a glass to glass edge on the bottom. After cure these bulkheads were bondoed into place (to the fuselage)and the fiberglass skin was pulled down tight and floxed to the bulkheads. When the flox cured the bondo joints were broken, again being careful not to harm the wood. The turtledeck was removed from the fuselage and 2 inch tapes added to the bulkheads inside and out.
At this point the turtledeck looked great and only weighed about 5lbs. but I noticed you could deform the skin by pushing hard on the outside. So I flipped the turtledeck over and from 1/4 inch last-a-foam, I cut two inch wide strips that would run the entire length, forward and aft inside the turtledeck. In effect these would act as composite stringers, I made enough of these two inch wide strips to make up three stringers. One down the center (sort of a backbone) and one on each side of the "backbone" half the distance to the edge of the turtledeck. I sanded the edge of the foam so that when covered with a layer of bid @ 45degrees there would be a nice transition from the turtledeck skin up onto the foam and then back onto the turtledeck I scuff sanded and glued the foam stringers in with micro. I covered the foam stringers with one layer of 8oz bid @ 45degrees.

Answer: The sides of the fuselage are sloped to create a conical section when the fuselage is formed.


Input: How does the scoring engine generate a stream of content for the channel?

Context:
A system and method for generating a stream of content for a channel. The channel application includes a content categorizer, a scoring engine and a channel engine. The content categorizer categorizes new content items received from heterogeneous data sources. The channel engine identifies a channel category for a user based at least in part on at least one of a historical trend and a user activity. The scoring engine queries the new content items based on the channel category and at least one other channel attribute. The scoring engine retrieves candidate content items that include the channel category and the other channel attribute. The scoring engine then generates a stream of content from the candidate content items for the channel.
This application claims priority under 35 USC §120 to U.S. application Ser. No. 13/225,209, entitled, “Generating a Stream of Content for a Channel,” filed on Sep. 2, 2011, and claims priority under 35 USC §119(e) to U.S. Application No. 61/424,636, entitled “Scoring Stream Items with Models Based on User Interests” filed Dec. 18, 2010, the entireties of which are herein incorporated by reference.
The specification relates to a system and method for generating a stream of content for a channel. In particular, the specification relates to generating a stream of content for a channel based on user interests and historical trends.
Many consumers of digital media have two somewhat contradictory goals: keep apprised of information in the areas they already find interesting and discover new content that is also enjoyable. Keeping apprised of information can become burdensome in the digital age because there is so much information. Hence, there is a need to present the best and most relevant information, without overwhelming the consumer. Furthermore, consumers have varied interests depending on the time of a year or a day. As a result, there is also a need to cater to the time dependent changes in the consumer's interests while presenting information. Similarly, discovering new content is difficult when the consumer is overburdened with existing content.
Prior attempts to solve these problems allow consumers to create personalized sections in feed aggregation websites that are defined by keywords. Often, these personalized sections present any item that includes the keywords even though the item is not of interest to the consumer, per se. In another method, consumers are allowed to manually subscribe to Really Simple Syndication (RSS) feeds from multiple websites. This method often leads to the consumer viewing multiple items which contain redundant information.
In some examples, the specification describes a system and method for generating a stream of content for a channel using a channel application. The channel application includes a processing unit, a model generation engine, a scoring engine, a collaborative filtering engine, a content categorizer, a channel engine, and a user interface engine. The model generation engine generates a model that is used to determine suggestions for channels. The content categorizer categorizes new content items received from heterogeneous data sources. The channel engine identifies a channel category for a user based on at least one of a historical trend and a user activity. The historical trend is at least one of an increase in a number of new content items for a content category, an increase in a number of times one of the new content items is accessed and an event. A scoring engine queries the new content items based on the channel category and at least one other channel attribute. The scoring engine receives candidate content items that include the channel category and the at least one other channel attribute. The scoring engine then generates a stream of content from the candidate content items for the channel. The scoring engine transmits the stream of content to the channel engine, which generates a channel.
In one embodiment, the user interface engine generates a user interface for the user to define the channel category and the channel attribute. The scoring engine queries the new content items based on the user defined channel category and channel attribute and then generates the stream of content. In another embodiment, the channel engine enables the user to subscribe to an existing channel.
In one embodiment, the channel engine enables the user to share the channel with at least one of a friend of the user, a community, a group, and an internet user.
The specification is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals are used to refer to similar elements.
FIG. 1A is a high-level block diagram illustrating one embodiment of a system for generating a stream of content for a channel.
FIG. 1B is a block diagram illustrating one embodiment of a channel application.
FIG. 2 is a high-level block diagram illustrating another embodiment of a system for generating a stream of content for a channel.
FIG. 3A is a block diagram of one embodiment of the channel engine in more detail.
FIG. 3B is a block diagram of one embodiment of the scoring engine in more detail.
FIG. 4 is a graphic representation of a user interface that displays the stream of content of a channel.
FIG. 5 is a graphic representation of a user interface that allows a user to define or customize a channel.
FIG. 6 is a flow diagram of one embodiment of a method for generating a stream of content for a channel.
FIG. 7 is a flow diagram of another embodiment of a method for generating a stream of content for a channel.
A system and method for generating a stream of content for a channel is described below. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the specification. It will be apparent, however, to one skilled in the art that the embodiments can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the specification. For example, the specification is described in one embodiment below with reference to user interfaces and particular hardware. However, the description applies to any type of computing device that can receive data and commands, and any peripheral devices providing services.
Some portions of the detailed descriptions that follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” “displaying,” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The specification also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memories including USB keys with non-volatile memory, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
An embodiment can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. A preferred embodiment is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, an embodiment can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
FIG. 1A illustrates a block diagram of a system 100 for generating a stream of content for a channel according to one embodiment. The system 100 includes user devices 115 a, 115 n that are accessed by users 125 a, 125 n, a social network server 101, a third party server 107, a ratings server 139, an email server 141, an entertainment server 137, and a search server 135. The ratings server 139 includes websites for rating places, people or objects (e.g. Google Hotpot). The entertainment server 137 includes websites with entertaining information, such as news articles. In FIG. 1A and the remaining figures, a letter after a reference number, such as “115 a” is a reference to the element having that particular reference number. A reference number in the text without a following letter, such as “115,” is a general reference to any or all instances of the element bearing that reference number. In the illustrated embodiment, these entities are communicatively coupled via a network 105.
In one embodiment, the channel application 103 a is operable on the social network server 101, which is coupled to the network via signal line 104. The social network server 101 also contains a social network application 109 and a social graph 179. Although only one social network server 101 is shown, persons of ordinary skill in the art will recognize that multiple social network servers 101 may be present. A social network is any type of social structure where the users are connected by a common feature, for example, Google+. The common feature includes friendship, family, work, an interest, etc. The common features are provided by one or more social networking systems, such as those included in the system 100, including explicitly-defined relationships and relationships implied by social connections with other online users, where the relationships form a social graph 179. In some examples, the social graph 179 reflects a mapping of these users and how they are related.
In another embodiment, the channel application 103 b is stored on a third-party server 107, which is connected to the network via signal line 106. The third-party server 107 includes software for generating a website (not shown). In one embodiment, the notifying application generates a user interface that is incorporated into the website. Although only one third-party server 107 is shown, persons of ordinary skill in the art will recognize that multiple third-party servers 107 may be present.
In yet another embodiment, the channel application 103 c is stored on a user device 115 a, which is connected to the network via signal line 108. The user device 115 a is any computing device that includes a memory and a processor, such as a personal computer, a laptop, a smartphone, a cellular phone, a personal digital assistant (PDA), etc. The user 125 a interacts with the user device 115 a via signal line 110. Although only two user devices 115 a, 115 n are illustrated, persons of ordinary skill in the art will recognize that any number of user devices 115 n are available to any number of users 125 n.
The network 105 is a conventional type, wired or wireless, and may have any number of configurations such as a star configuration, token ring configuration or other configurations known to those skilled in the art. Furthermore, the network 105 may comprise a local area network (LAN), a wide area network (WAN) (e.g., the Internet), and/or any other interconnected data path across which multiple devices may communicate. In yet another embodiment, the network 105 may be a peer-to-peer network. The network 105 may also be coupled to or includes portions of a telecommunications network for sending data in a variety of different communication protocols. In yet another embodiment, the network 105 includes Bluetooth communication networks or a cellular communications network for sending and receiving data such as via short messaging service (SMS), multimedia messaging service (MMS), hypertext transfer protocol (HTTP), direct data connection, WAP, email, etc. While only one network 105 is coupled to the user devices 115 a, 115 n, the social network server 101, and the third party server 107, in practice any number of networks 105 can be connected to the entities.
The channel application 103 receives data for generating a stream of content for a channel from heterogeneous data sources. In one embodiment, the channel application 103 receives data from a third-party server 107, a social network server 101, user devices 115 a, 115 n, a search server 135 that is coupled to the network 105 via signal line 136, an entertainment server 137 that is coupled to the network 105 via signal line 138, a ratings server 139 that is coupled to the network 105 via signal line 140 and an email server 141 that is coupled to the network 105 via signal line 142. In one embodiment, the search server 135 includes a search engine 143 for retrieving results that match search terms from the Internet. In one embodiment, the search engine 143 is powered by Google®. In one embodiment, the channel application 103 generates a model based on the data from the heterogeneous data sources, identifies a channel category based on a user's activities and historical trends, receives candidate content items that include the channel category from heterogeneous data sources, scores the candidate content items by comparing them to the model, and generates a stream of content for the channel.
Referring now to FIG. 1B, the channel application 103 is shown in detail. FIG. 1B is a block diagram of a computing device 200 that includes the channel application 103, a memory 237 and a processor 235. In one embodiment, the computing 200 device is a social network server 101. In another embodiment, the computing device 200 is a third party server 107. In yet another embodiment, the computing device 200 is a user device 115 a.
The processor 235 comprises an arithmetic logic unit, a microprocessor, a general purpose controller, or some other processor array to perform computations and provide electronic display signals to a display device. The processor 235 is coupled to the bus 220 for communication with the other components via signal line 236. Processor 235 processes data signals and may comprise various computing architectures including a complex instruction set computer (CISC) architecture, a reduced instruction set computer (RISC) architecture, or an architecture implementing a combination of instruction sets. Although only a single processor is shown in FIG. 1B, multiple processors may be included. The processing capability may be limited to supporting the display of images and the capture and transmission of images. The processing capability might be enough to perform more complex tasks, including various types of feature extraction and sampling. It will be obvious to one skilled in the art that other processors, operating systems, sensors, displays, and physical configurations are possible.
The memory 237 stores instructions and/or data that may be executed by processor 235. The memory 237 is coupled to the bus 220 for communication with the other components via signal line 238. The instructions and/or data may comprise code for performing any and/or all of the techniques described herein. The memory 237 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, flash memory, or some other memory device known in the art. In one embodiment, the memory 237 also includes a non-volatile memory or similar permanent storage device and media such as a hard disk drive, a floppy disk drive, a CD-ROM device, a DVD-ROM device, a DVD-RAM device, a DVD-RW device, a flash memory device, or some other mass storage device known in the art for storing information on a more permanent basis.
In one embodiment, the channel application 103 comprises a processing unit 202, a model generation engine 207, a scoring engine 211, a collaborative filtering engine 217, a content categorizer 250, a channel engine 240, and a user interface engine 260 that are coupled to a bus 220.
The processing unit 202 is software including routines for receiving information about a user's interests, activities and social connections and for storing the information in the memory 237. In one embodiment, the processing unit 202 is a set of instructions executable by the processor 235 to provide the functionality described below for processing the information. In another embodiment, the processing unit 202 is stored in the memory 237 of the computing device 200 and is accessible and executable by the processor 235. In either embodiment, the processing unit 202 is adapted for cooperation and communication with the processor 235, the model generation engine 207, and other components of the computing device 200 via signal line 222.
The processing unit 202 obtains information about users from user input and/or prior actions of a user across a range of heterogeneous data sources including search (such as web, video, news, maps, alerts), entertainment (such as news, video, a personalized homepage, blogs, a reader, gadget subscriptions), social activity (such as interactions through email, profile information, text messaging such as short message service (SMS), microblogs, geographical locations, comments on photos, a social graph and other social networking information), and activity on third-party sites (such as websites that provide ratings, reviews and social networks where users indicate that they approve of content). This information is obtained, for example, from a user's search history, browsing history and other interactions with the Internet. The processing unit 202 stores the information with a designation of the source of the information.
In one embodiment, there are multiple processing units 202 that each receive data from a different heterogeneous data source. In another embodiment, the user information is received by the same processing unit 202. The processing unit 202 transmits the user information to memory 237 for storage. In one embodiment, the memory 237 partitions the user information from each heterogeneous data source in a separate data storage location. In another embodiment, the user information from heterogeneous data sources is stored in the same location in the memory 237. In yet another embodiment, the memory 237 partitions the model and the stream of content into separate storage locations as well.
The model generation engine 207 is software including routines for retrieving the user information from the memory 237 and generating a model based on the user information. In one embodiment, the model generation engine 207 is a set of instructions executable by the processor 235 to provide the functionality described below for generating the model. In another embodiment, the model generation engine 207 is stored in the memory 237 of the computing device 200 and is accessible and executable by the processor 235. In either embodiment, the model generation engine 207 is adapted for cooperation and communication with the processor 235, the processing unit 202, the scoring engine 211, the channel engine 240 and other components of the computing device 200 via signal line 224.
The model generation engine 207 receives user information from a variety of sources including, for example, queries, clicks, news clicks, gadgets, email interactions, etc., extracts features from the information and generates a model based on the extracted features. The model determines the relevance of items to users, along with floating point values to indicate the extent to which the relevance holds. Examples include liking a source, a primary location and a list of interests. The interests are generated from explicit information and inferred information. Explicit information is derived, for example, from a user's list of interests on a social network or indicating that they liked a particular content item. Inferred information takes into account a user's activities.
The model generation engine 207 will infer that a user is interested in a particular subject, for example, if the subject matter appears in search terms. For example, the model generation engine 207 infers that a user who searches for information about different types of butterflies is interested in butterflies. The model generation engine 207 can even infer information based on the user's friends' activities. For example, content items that interest the user's friends might also interest the user. As a result, in one embodiment, the model includes the user's friends' interests.
In one embodiment, the model generation engine 207 also generates a model that contains several pieces of global meta-information about the user's consumption patterns including how frequently the user consumes the stream of content of a channel and global statistics on how likely the user is to reshare various types of items. Lastly, the model includes a sequence of weights and multipliers that are used to make predictions about the user's likelihood of clicking on, sharing or otherwise engaging with stream items.
The model generation engine 207 generates the model from the user information across the heterogeneous data sources. In one embodiment, the model generation engine 207 builds extensions to the model that employ the patterns of behavior of other users. For example, the model predicts the user's behavior based on the reaction of similar users. All the data that is derived from other users is anonymized before it is incorporated into the model.
In one embodiment, the model generation engine 207 generates a model based on user information, for example, based on the user's search history or third-party accounts. Alternatively, the model generation engine 207 receives periodic updates (one hour, one day, one week, etc.) from the heterogeneous data sources and in turn updates the model.
In yet another embodiment, the model generation engine 207 generates a model each time it receives a request for generating a stream of content for a channel. The advantage of this method is that the newest updates are included and the model is current. The disadvantage is that generating the model and then comparing the candidate content items to the model to generate the stream of content takes more time than comparing the candidate content items to a pre-existing model. The model generation engine 207 transmits the model to memory 237 for storage.
The content categorizer 250 is software including routines for receiving and categorizing new content items from heterogeneous sources according to at least one category and other features. In one embodiment, the content categorizer 250 is a set of instructions executable by the processor 235 to provide the functionality described below for receiving and categorizing new content items. In another embodiment, the content categorizer 250 is stored in the memory 237 of the computing device 200 and is accessible and executable by the processor 235. In either embodiment, the content categorizer 250 is adapted for cooperation and communication with the processor 235, the scoring engine 211 and other components of the computing device 200 via signal line 227.
The content categorizer 250 receives new content items from heterogeneous data sources and annotates them with specific tags, such as features, global scores, etc. In this embodiment, the heterogeneous data sources include a search engine 143, an entertainment server 137, an email server 141, a ratings server 139, a social network server 101, and a third-party server 107. Once the items are annotated, the content categorizer 250 indexes each new content item based on the features and stores the content items in the memory 237. The new content items, in one embodiment, are indexed according to an identification format (MediaType#UniqueItemID, for example, “YOUTUBE#video_id” and “NEWS#doc_id”), an item static feature column that holds an item's static features (title, content, content classification, context, etc.), an item dynamic feature column that holds an item's dynamic features (global_score, number of clicks, number of following, etc.), a source (src) static feature column where the source is a publisher of an item (magazine in news, video uploading in YouTube, etc.) and a src dynamic feature column that holds the source's dynamic features. The content categorizer 250 categorizes the new content items to make their retrieval more efficient and fast.
The channel engine 240 is software including routines for generating a channel for a user. In one embodiment, the channel engine 240 is a set of instructions executable by the processor 235 to provide the functionality described below for generating a channel for a user. In another embodiment, the channel engine 240 is stored in the memory 237 of the computing device 200 and is accessible and executable by the processor 235. In either embodiment, the channel engine 240 is adapted for cooperation and communication with the processor 235, the scoring engine 211, the model generation engine 207, the user interface engine 240, and other components of the computing device 200 via signal line 230.
In one embodiment, the channel engine 240 identifies a channel category for a user based on historical trends and the user's activities, interests and social connections. The channel engine 240 submits a request for a stream of content that includes the channel category and channel attributes to the scoring engine 211. The channel engine 240 then receives a stream of content from the scoring engine 211 and generates the channel. The generated channel is either public or private depending on the user's settings. The channel engine 240 is explained in greater detail below with regard to FIG. 3A.
The scoring engine 211 is software including routines for generating a stream of content for a channel. In one embodiment, the scoring engine 211 is a set of instructions executable by the processor 235 to provide the functionality described below for globally scoring content items and for generating a stream of content for a channel. In another embodiment, the scoring engine 211 is stored in the memory 237 of the computing device 200 and is accessible and executable by the processor 235. In either embodiment, the scoring engine 211 is adapted for cooperation and communication with the processor 235, the processing unit 202, the collaborative filtering engine 217, the model generation engine 207, the channel engine 240 and other components of the computing device 200 via signal line 228.
In one embodiment, the scoring engine 211 receives the request from the channel engine 240 and queries the new content items stored in memory 237. In another embodiment, the scoring engine 211 directly queries the heterogeneous data sources. The scoring engine 211 receives candidate content items that include the channel category and the channel attributes. The scoring engine 211 then compares the candidate content items to the model to determine whether the user would find the candidate content items interesting.
In one embodiment, the scoring engine 211 first performs the query and then compares the results to the model to determine whether the user would find them interesting. In another embodiment, these steps are performed simultaneously. In yet another embodiment, the scoring engine 211 compares candidate content items to the model and then filters the results according to the subject matter of the queries. The scoring engine 211 is explained in greater detail below with regard to FIG. 3B.
The collaborative filtering engine 217 is software including routines for generating additional candidate content items for the channel through collaborative filtering and transmitting the additional candidate content items to the scoring engine 211 that were derived from collaborative filtering. In one embodiment, the collaborative filtering engine 217 is a set of instructions executable by the processor 235 to provide the functionality described below for generating additional candidate content items for the channel. In another embodiment, the collaborative filtering engine 217 is stored in the memory 237 of the computing device 200 and is accessible and executable by the processor 235. In either embodiment, the collaborative filtering engine 217 is adapted for cooperation and communication with the processor 235, the scoring engine 211 and other components of the computing device via signal line 226.
The collaborative filtering engine 217 obtains additional candidate content items that are socially relevant from a stream of content derived from people with whom the user has a relationship and transmits them to the scoring engine 211. For example, the stream of content is derived from friends in a social network such as the social network application 109 or people that the user frequently emails. The more important that the person appears to be to the user, the more likely that the user will be interested in the candidate content item. Thus, in one embodiment, the collaborative filtering engine 217 applies a weight to candidate content items based on the social relationship of the user to the friend. For example, users that are friends receive higher weights than candidate content items from second generation friends of the user (i.e., a friend of a friend). In one embodiment, the collaborative filtering engine 217 receives information about relationships between users from the social graph 179.
The collaborative filtering engine 217 increases the weights applied to candidate content items from friends when the user positively responds to the items. For example, if the user comments on the item or indicates that the user found the item interesting, the collaborative filtering engine 217 increase the weight so that more candidate content items from the friend become part of the stream of content.
The user interface engine 260 is software including routines for generating a user interface that, when rendered on a browser, displays a channel generated for a user and enables the user to customize the channel. In one embodiment, the user interface engine 260 is a set of instructions executable by the processor 235 to provide the functionality described below for generating a user interface. In another embodiment, the user interface engine 260 is stored in the memory 237 of the computing device 200 and is accessible and executable by the processor 235. In either embodiment, the user interface engine 260 is adapted for cooperation and communication with the processor 235, the channel engine 240 and other components of the computing device 200 via signal line 232.
The user interface engine 260 receives instructions from the channel engine 240 for generating a display. The user interface includes options for viewing a channel, requesting a new channel, modifying the user interests, and following suggested channels.
FIG. 2 is a high-level block diagram illustrating another embodiment of a system for generating a stream of content for a channel. In this embodiment, the components of the channel application 103 are divided among various servers so that the information is efficiently processed. The system includes a search server 135, an entertainment server 137, a ratings server 139, an email server 141, a content categorizer 250, a data storage server 265, a model server 255, a scoring server 262, a social network server 101, a user device 115, and a channel application 103.
A content categorizer 250 crawls the heterogeneous data sources (search server 135, entertainment server 137, ratings server 139, and email server 141) are crawled for new content items by the content categorizer 250 or the new content items are directly transmitted to the content categorizer 250.
The content categorizer 250 categorizes the new content items as mentioned above with regards to FIG. 1B and stores them in the database 267 of the data storage server 265. The content categorizer 240 also includes a processing unit 202 for processing user information (activities, interests and social connections). In one embodiment, the processing unit 202 stores the database 267.
In one embodiment, the data storage server 265 dynamically phases out the old content items. For example, news items expire after 24 hours, videos expire after 48 hours and feeds are kept for 24 hours or only the 10 most recent items, whichever is larger, etc.
The content categorizer 250 also transmits the new content items to the scoring server 262 for a global user ranking. The global scores are transmitted from the scoring server 262 to the data storage server 265, which stores the global scores in association with the new content items. The global scores are helpful for organizing the new content items in the data storage server 265 according to the more popular items.
Turning now to the model server 255, the model server 255 receives the user's activity, interests and social connections from the processing unit 202 or the data storage server 265. The model generation engine 207 generates a model based on user input and/or prior actions. The model server 255 transmits a model to the scoring server 262 and the channel application 103 periodically or upon request.
The channel application 103 includes a channel engine 240 and a user interface engine 260. In one embodiment, the channel engine 240 requests the model from the model server 255 and identifies a channel category that a user would find interesting. The channel engine 240 then transmits a request for a stream of content to the scoring server 262. The channel engine 240 receives the stream of content from the scoring server 262 and generates the channel. The user interface engine 260 generates a user interface for displaying a user interface that includes the channel and transmits it to the user device 115. In addition, the user interface engine 260 generates a user interface to allow the user to customize the channel or define a new channel. These user interfaces are explained in greater detail below with regard to FIGS. 4-5.
In one embodiment, the channel engine 240 transmits a query based on the channel category to the scoring server 262. The scoring server 262 queries and receives candidate content items from the data storage server 265. The scoring server 262 also queries and receives candidate content items from the social network server 101. The candidate content items from the social network server 101 are pre-scored by the collaborative filtering engine 217 and, in one embodiment, the unread candidate content items are saved to a cache on the social network server 101. These items are saved to a cache because the quantity of social updates can be large enough that performing the scoring during write time enables faster reads.
In one embodiment, the scoring engine 211 requests the model from the model server 255. The scoring server 262 then compares the candidate content items to the model and scores the candidate content items. The scoring engine 211 compares the candidate content items received from the social network server 101 to the model and rescores them according to the model. In another embodiment, the scoring engine 211 scores the candidate content items according to the category and any keywords associated with a channel. In either embodiment, the scoring engine 211 generates a stream of content based on the scored candidate content items and transmits the stream of content to the channel application 103.
Referring now to FIG. 3A, one embodiment of a channel engine 240 is shown in more detail. The channel engine 240 includes a historical analyzer 372, a category identifier 374, a subscription module 376 and a channel generator 378 that are each coupled to signal line 230.
The historical analyzer 372 is used to identify when a user will be interested in a particular category. The historical analyzer 372 identifies, for example, a time of the day or a year that a user will be interested in a category by analyzing historical trends associated with the category. In one embodiment, the historical analyzer 372 performs such analyses by measuring the increase or decrease in the number of new content items that are categorized under a content category or by measuring an increase or decrease in the number of times a new content item is accessed. For example, the number of times a tutorial on filing taxes is accessed would be very high during February-April. In another embodiment, the historical analyzer 372 also keeps track of events such as holidays, festivals, etc. Tracking such events is advantageous as, for example, many users might be interested in costume rentals during Halloween or camping during the Memorial Day and July 4th weekends.
The category identifier 374 identifies a channel category for a user based on the user's interests, activities and social connections. In one embodiment, the category identifier 374 requests the model generated by the model generation engine 207 to identify the channel category. For example, the category identifier 374 identifies sports cars as a channel category because it is an explicit interest of the user. The category identifier 374 suggests channels including a source, a category, keywords, a media type, a size of a content item, and a location for a channel. For example, for a user that is interested in foreign politics, especially relations between the United States and China, the category identifier 374 suggests the category of U.S. and Chinese relations (e.g., entity=“us_china_relations”), keywords such as trade and deficit because the user is particularly interested in the economic aspect of the relationship between China and the United States, a source such as The Economist (source=“economist.com”) because the user prefers The Economist over U.S. media outlets and the media being news articles because the user does not enjoy viewing videos.
In one embodiment, the category identifier 374 uses the analyses of the historical analyzer 374 for identifying a channel category for the user. This is advantageous as a user who has searched for US taxes might not be interested in knowing about it throughout the year, but it is beneficial for the user to have a separate channel for US taxes during the tax filing season. In yet another embodiment, the category identifier 374 uses contextual cues of the user for identifying channel categories. For example, the category identifier 374 identifies skiing in Switzerland as a channel category because winter sports is listed as an interest of the user and the user's current IP address is in Switzerland.
The subscription module 376 enables a user to subscribe to existing channels that are public. In one embodiment, the subscription module 376 enables a user to subscribe to a pre-defined channel (such as breaking news, most popular videos, updates from a social group, etc.). The channel application 103 generates the stream of content for pre-defined channels based on global scores of the new content items. Subscribing to pre-defined channels such as breaking news is advantageous as it helps the user to keep apprised of current information and discover new interests. Furthermore, because in one embodiment the breaking news channel is personalized since the content items are compared to a model for the user, the breaking news channel is more relevant than simply a list of popular or recent news items.
In another embodiment, the subscription module 376 enables a user to subscribe to another user's channel (a friend, a famous person, etc.) that is public. Subscribing to another user's channel is advantageous because, for example, a user who is interested in the stock market will benefit by viewing the stream of content that is viewed by a famous stock market analyst. In yet another embodiment, the subscription module 376 enables the user to search for channels that are public using the search engine 143. The subscription module 376, suggests such channels that are viewed by other users based on the interests of the user. In another embodiment, the subscription module 376 communicates with the collaborative filtering engine 217 to suggest channels viewed by other users with whom the user has a relationship.
The channel generator 378 submits a request for a stream of content for a channel to the scoring engine 211. The request includes the channel category identified by the category identifier 374 and channel attributes. The channel attributes include any attribute known to a person with ordinary skill in the art such as a source, presence of keywords, absence of keywords, a media type, a location, a time, a size of a content item, a date, etc. In one embodiment, the channel category and the channel attributes are defined by the user. In another embodiment, channel generator 378 defines the channel attributes for the channel category based on the user's preferences and activities. For example, if a user always reads news articles and seldom watches news videos, the channel generator 378 would define the media type for the channel as text based articles. At any point in time, the user can customize both the channel category and the channel attributes. The channel generator 378 then resubmits the request based on the changes made by the user.
In response to the request, the channel generator 378 receives a stream of content from the scoring engine 211 and generates the channel for the user. The generated channel is either public or private depending upon the user's preferences. In one embodiment, the user shares the channel to a community, a group of people or any internet user. The channel is then displayed to the user with an interface generated by the user interface engine 260.
Referring now to FIG. 3B, one embodiment of a scoring engine 211 is shown in more detail. The scoring engine 211 includes a query generator 301, a global scorer 302 and a content stream generator 304 that are each coupled to signal line 228.
The global scorer 302 is used to rank new content items that are stored in the data storage server 265 or memory 237 (depending upon the embodiment). The global scorer 302 uses signals from the different verticals to compute a global user-independent score for each item to approximate its popularity or importance within the stream that produced it. The global scorer 302 normalizes the score across streams so that items from various streams are comparable to aid in generating a quick yet reasonable ranking of items. The global score is a combination of its quality specific to the source stream (depending on the rank of the source, number of known followers of a source, etc.) and its global popularity (trigger rate on universal search, relevance to trending queries, number of clicks, long clicks received, etc.).
The global scorer 302 transmits the global score to storage where it is associated with the item. The global score helps rank the items for faster retrieval. For example, if the query generated by the query generator 301 includes a request for the top ten items about skiing, those items are already organized in the data storage server 265 or memory 237 according to the global score.
The query generator 301 receives a request for a stream of content for a channel from the channel engine 240. The query generator 301 generates a query based on the channel attributes that are included in the request. The query generator 301 queries the data storage server 265 or memory 237 depending upon the embodiment. The following is an example query generated by the query generator 301: ((Category: Politics) AND (global_score>80) AND (source: NewsWebsite) AND (media type: Text)).
The content stream generator 304 receives candidate content items that include the channel attributes. The content stream generator 304, for the above mentioned query, receives text based articles that include the channel category politics and have a global score greater than 80. Additionally, the text based articles are from the source NewsWebsite. In one embodiment, the content stream generator 304 generates the stream by ordering the content items in order of their scores. In another embodiment, the content stream generator 304 determines an interestingness of each candidate content item to the user. The content stream generator 304 determines the interestingness by comparing the candidate content items with a model generated for the user by the model generation engine 207 and scoring them.
where p is a property, that is, a setting A=a of the attributes. The latter quantity, Pr(p|user) is approximated from the user's history of interactions with content items as well as the user's search history and other opt-in data. Similarly, the former quantity, Pr(item|p) is approximated by the (suitably weighted) reciprocal of the number of items with property p (e.g., if it is expected that p=((Politics) AND (global_score>80) AND (source: NewsWebsite) AND (media type: Text)) to generate 300 items, take Pr(item|p) to be 1/300).
where the properties p are summed over single-attribute properties (as opposed to all possible settings of an entire collection of attributes), and G is an exponential function of the form G(x)=2(100 x), so that when applied in this form, if there are several values of p for which Pr(item|p) Pr(p|user) is large, the sum of their G-values slowly increases.
Once the scores are calculated, the content stream generator 304 generates a stream of content for the channel that is ordered according to the candidate content item scores. In one embodiment, only the candidate content items that exceed a certain threshold are included in the stream of content for the channel.
Turning now to the user interface engine 260, FIG. 4 is a graphic representation 400 of a user interface generated by the user interface engine 260 for displaying the stream of content of a channel. In this example, the user interface 400 also includes channels 405 that are pre-defined, channels 410 that are suggested for the user and channels 415 that are subscribed to by the user. The user can also define new channels and attributes by clicking the link 420.
The example includes the stream of content for the user's soccer channel 425. The stream of content includes news items 445, videos 450 and social network news feeds 455 from the content sources 440 defined by the user. The candidate content items are listed in decreasing order of their scores. The user interface engine 260 lists five candidate content items with the highest scores in the hot items section 430. The remaining candidate content items are listed in the other items section 435. In another embodiment, the entire stream of content is listed in a single section.
FIG. 5 is a graphic representation 500 of a user interface that is generated by the user interface engine 260 for a user to define a new channel or customize an existing channel. In this example, the user interface includes all the channel categories 505 that have been either pre-defined, suggested to the user, or subscribed by the user, and the content sources 510 for each channel category. The user customizes a channel by adding or removing content sources for the channel. In one embodiment, the user edits more advanced channel attributes such as media type, size of the content items, etc. by clicking on the link 515. The user makes the channel public, private or restricts it to a group of people by clicking on link 520. Additionally, the user can also define a new channel by adding a new channel category.
Referring now to FIGS. 6-7, various embodiments of the method of the specification will be described. FIG. 6 is a flow diagram 600 of one embodiment of a method for generating a stream of content for a channel. The channel engine 240 defines 602 a channel category and submits a request for a stream of content. The request includes channel attributes including any of a category, a source, keywords, a media type, a location, a size of a content item, and a date. The channel category is defined based on a model for a user that is generated by the model generation engine 207 or the channel is defined by a user. The scoring engine 211 receives 604 the request including the channel category and generates 606 a stream of content based on the channel category. The channel engine 240 generates 608 a channel with the stream of content and transmits it to the user.
FIG. 7 is a flow diagram 700 of another embodiment of a method for generating a stream of content for a channel. The content categorizer 250 categorizes 702 new content items that are received from heterogeneous data sources. The new content items that are received from heterogeneous data sources include, for example, news articles, microblogs, blogs, videos, photos, etc. The content categorizer 250 categorizes the content according to a category and other features. The content categorizer 250 also stores 704 the new content items in a data storage server 265 or a memory 237, depending upon the embodiment. The global scorer 302 generates 706 a global score for each new content item. The category identifier 374 identifies 708 a channel category for a user based on the user's activities and a historical trend identified by the historical analyzer 372. The user's activity includes a search (such as web, video, news, maps, alerts), entertainment (such as news, video, a personalized homepage, blogs, a reader, gadget subscriptions), social activity (such as interactions through email, profile information, text messaging such as short message service (SMS), microblog, comments on photos, a social graph, and other social networking information), and activity on third-party sites (such as websites that provide ratings, reviews and social networks where users indicate that they approve of content) In one embodiment, the category identifier 374 also uses contextual information of the user to identify the channel category.
The query generator 301 generates a query based on the channel category and the channel attributes and queries 710 the new content items stored on the data storage server 265. The content stream generator 304 receives 712 candidate content items that include the channel category and channel attributes. In one embodiment, the content stream generator 304 receives additional candidate content items from the collaborative filtering engine 217.
The content stream generator 304 scores 714 each candidate content item by comparing it to a model generated by the model generation engine 207. The score is calculated by determining an interestingness of the candidate content item to the user. The content stream generator 304 then generates 716 the stream of content based on the scores for each candidate content item. The channel engine 240 then generates 718 a channel with the stream of content and transmits it to the user.
The foregoing description of the embodiments has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the specification to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the embodiments be limited not by this detailed description, but rather by the claims of this application. As will be understood by those familiar with the art, the examples may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, routines, features, attributes, methodologies, and other aspects are not mandatory or significant, and the mechanisms that implement the description or its features may have different names, divisions and/or formats. Furthermore, as will be apparent to one of ordinary skill in the relevant art, the modules, routines, features, attributes, methodologies, and other aspects of the specification can be implemented as software, hardware, firmware, or any combination of the three. Also, wherever a component, an example of which is a module, of the specification is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future to those of ordinary skill in the art of computer programming. Additionally, the specification is in no way limited to implementation in any specific programming language, or for any specific operating system or environment. Accordingly, the disclosure is intended to be illustrative, but not limiting, of the scope of the specification, which is set forth in the following claims.
providing, with the one or more processors, the customized stream of content.
2. The computer-implemented method of claim 1 comprising removing pre-existing content items included in the customized stream of content for the channel.
3. The computer-implemented method of claim 1 wherein the historical trend is one of an increase in a number of the new content items for a content category and an increase in a number of times one of the new content items is accessed.
categorizing the new content items.
5. The computer-implemented method of claim 3 wherein the heterogeneous data sources include at least two from the group of a news article post, a news feed, a social feed, a blog post, a micro-blog post, a photo, a video, an audio, an email message, and a text based message.
6. The computer-implemented method of claim 1 comprising receiving a request from the user to subscribe to an existing channel.
7. The computer-implemented method of claim 1 wherein the channel category is also based on an interest of the user and a connection of the user.
8. The computer-implemented method of claim 1 wherein the user activity is an interaction of the user with an application, wherein the interaction of the user with the application includes providing at least one of a user preference, a user interest, a comment, a tag, and a search.
provide the customized stream of content.
10. The computer program product of claim 9, wherein the computer readable program when executed on the computer also causes the computer to remove pre-existing content items included in the customized stream of content for the channel.
11. The computer program product of claim 9, wherein the historical trend is one of an increase in a number of the new content items for a content category and an increase in a number of times one of the new content items is accessed.
categorize the new content items.
13. The computer program product of claim 12, wherein the heterogeneous data sources include at least two from the group of a news article post, a news feed, a social feed, a blog post, a micro-blog post, a photo, a video, an audio, an email message, and a text based message.
14. The computer program product of claim 9, wherein the computer readable program when executed on the computer also causes the computer to receive a request from the user to subscribe to an existing channel.
15. The computer program product of claim 9, wherein the channel category is also based on an interest of the user and a connection of the user.
16. The computer program product of claim 9, wherein the user activity is an interaction of the user with an application, wherein the interaction of the user with the application includes providing at least one of a user preference, a user interest, a comment, a tag, and a search.
18. The system of claim 17 wherein the system is further configured to remove pre-existing content items included in the customized stream of content for the channel.
19. The system of claim 17 wherein the historical trend is one of an increase in a number of the new content items for a content category and an increase in a number of times one of the new content items is accessed.
21. The system of claim 20 wherein the heterogeneous data sources include at least two from the group of a news article post, a news feed, a social feed, a blog post, a micro-blog post, a photo, a video, an audio, an email message, and a text based message.
22. The system of claim 17 wherein the system is further configured to receive a request from the user to subscribe to an existing channel.
23. The system of claim 17 wherein the channel category is also based on an interest of the user and a connection of the user.
24. The system of claim 17 wherein the user activity is an interaction of the user with an application, wherein the interaction of the user with the application includes providing at least one of a user preference, a user interest, a comment, a tag, and a search.
Adamic et al., "Search in power-law networks," Physical Review E, 2001, vol. 64, HP Labs/Stanford University, The American Physical Society.
Boyd, et al., "Social Network Sites: Definition, History, and Scholarship," Journal of Computer-Mediated Communication, International Communication Association, 2008, pp. 210-230. 8.
MediaSift Ltd., DataSift: Realtime Social Data Mining Platform, Curate and Data Mine the Real Time Web with DataSift, Dedipower, Managed Hosting, May 13, 2011, 1 pg.
Ring Central, Inc., Internet, retrieved at http://www.ringcentral.com, Apr. 19, 2007, 1 pg. 28.
Singh et al., "CINEMA: Columbia InterNet Extensible Multimedia Architecture," Department of Computer Science, Columbia University, May 2002 pp. 1-83.
Yu et al., "It Takes Variety to Make a World: Diversification in Recommender Systems," 2009, pp. 1-11, downloaded from https://openproceedings.org/2009/conf/edbt/YuLA09.pdf.

Answer: By comparing candidate content items to a model and scoring them.