text:
Lisa: If you don't cheer up, I'll blow your face off.
Lisa: If you want be a party animal, you have to learn to live in the jungle.
[Chet finds out that the house is a mess and his room is snowing. He blasts the door to his sister's room where Wyatt are Hilly were sleeping]
Wyatt: Hi Chet.
Chet: [Grabs Wyatt] What the hell is going on around here?
Wyatt: It was an accident Chet.
Chet: An accident? An accident? Do you realize it's snowing in my room goddammit!
Wyatt: It's weird Chet. It's really weird Chet.
Chet: It doesn't take a genius to figure that out monkey dick. Start talking little man.
Wyatt: It's a really long story Chet. Gary and I were messing around with the computer Friday night. We decided to make a woman and we did and she went crazy and she messed up the whole house.
Chet: Don't smart mouth me you wormy little shit!
[Places Wyatt in a neck hold]
Hilly: Look just leave him alone!
Chet: Stay out of this bimbo! It's a family matter.
Wyatt: Look Chet. Find Lisa. She'll clear up everything.
[Chet tightens his grip on Wyatt]
Wyatt: You can have my college money. And my social security, Chet.
[Chet releases Wyatt]
[Gary and Wyatt are in the bathroom while Hilly and Deb are outside]
Hilly: What are you guys doing here?
Wyatt: [from inside the bathroom] Gary was just takin' a shit!
[Gary closes the door and slaps the grinning Wyatt hard across the face]
Wyatt: Gary, you're just as uptight as I am, all right?
Garry: Nobody could be as uptight as you! Nobody! Your middle name is tense. Wyatt "Tense Up" Donnelly.
Wyatt: All right, this is true, this is true.
Garry: It's true.
Wyatt: But it's not so bad. We can hear the music.
Garry: [sarcastically] We can hear the music, that's great. Maybe if we put our noses to the door, we can smell the food!
Wyatt: [referring to Lisa] Do you think she'll understand?
[Gary puts his arm around Wyatt's shoulders]
Garry: I'm sure she will. I mean, I sure as hell wouldn't wanna date you.
[Wyatt grins]
Garry: You're not my type, you know.
Wyatt: Gary, Gary, Gary! There are motorcycles in my house!
[Gary grabs Wyatt by the lapel and pulls him towards him]
Garry: Wyatt, there are killer mutants in your house, okay?
[the front wall of the house is suddenly torn down. Lord General and a biker girl enter the house through it]
Wyatt: Do you think Lisa's having a good time?
Garry: Lisa could have a good time at an insurance seminar, Wyatt.
[the woman that Gary and Wyatt created is looking for a name]
Garry: How about Lisa?
Lisa: Why Lisa?
Garry: Why not?
Wyatt: He used to like a girl named Lisa.
Lisa: [smiles] Oh yeah? Old girlfriend?
Wyatt: She kicked him in the nuts.
Garry: [annoyed] Will you shut the hell up?
Wyatt: [sympathetically] Look Gary, it wasn't your fault. All you said was hello to her.
Garry: [annoyed] Look Wyatt, shut up!
[Wyatt puts up his hands defensively, indicating that he will shut up. He looks slightly hurt by Gary's treatment of him as he was only trying to help]
[Gary is chanting incoherently. Wyatt seemed very confused by his best friend's odd behaviour. They are both wearing bras on their heads]
Wyatt: Gary?... By the way, why are we wearing bras on our heads?
Garry: [hesitates] Ceremonial.
[Gary and Wyatt have just returned home from a bar. Gary is very drunk but Wyatt is perfectly sober]
Chet: [to Wyatt] If he pukes, you die.
[the drunk Gary starts laughing and buries his face in Wyatt's shoulder]
Wyatt: [nervously] He's not laughing at you, Chet.
Garry: [still laughing; nods] Yes, I am.
Garry: You know, I can't believe this, Wyatt. I'm so disappointed in us. I mean, all our lives we've been saying how great it would be if we went to parties, right? And now it's our party and we're in the john. We're in the john!
Garry: Mom, I never toss off to anything!
Lucy Wallace: [crying] You told me you were combing your hair!
Garry: But I was! I was!
Lisa: So, what would you little maniacs like to do first?
Garry: Do you know what I would like to do?
Wyatt: Shower with them.
Garry: Then bang with the city baby, dead on! For a little drinks, a little night-life, dancing.
Wyatt: Dancing.
Garry: We'll throw a huge party. I mean huge party! Everybody's invited. Women everywhere. All these girls, they're all there. Naked bodies everywhere. They all know my name.
Wyatt: Gary, Gary.
Garry: What?
Wyatt: Nobody likes us. Nobody.
Garry: Maybe it was a dream, you know, a very weird, bizarre, vivid, erotic, wet, detailed dream. Maybe we have malaria.
Chet: How 'bout a nice greasy pork sandwich served in a dirty ashtray?
Chet: You two donkey-dicks couldn't get laid in a morgue.
Henry: I'm not going to stand here and listen to this baloney.
Carmen: He won't, you know. He doesn't stand for baloney.
Garry: Wyatt, your kitchen is blue...!
Lisa: What are you so nervous about? Everything's cool.
Garry: EVERYTHING'S COOL! Yeah yeah. My dad's gonna castrate me. And my mother almost had like cardiac arrest. My parents are not gonna let me in the house again and if they do I'm gonna be grounded till I'm about 45. But other than that everything's great. Everything's cool. In fact things can't get any better.
Wyatt: A missile! A MISSILE! A MISSILE IN MY HOUSE, GARY!
Max: [Banging on it] Yup, this puppy's for real all right.
Garry: It was an accident. You know it happens.
Wyatt: ACCIDENT MY ASS, GARY! MY PARENTS ARE COMING HOME. CHET'S COMING HOME. THEY'RE GONNA FREAK OUT!
Garry: They're gonna shit egg rolls.
Lisa: You had to be big shots didn't you. You had to show off. When are you gonna learn that people will like you for who you are, not for what you can give them. Well, in your race for power and glory, you forgot one small detail.
Wyatt: We forgot to hook up the doll.
Lisa: You forgot to hook up the doll.
Chet: Lady, I wanna get to the bottom of this. ASAFP.
Lisa: Oh, so do I.
Chet: But first I'd like to... butter your muffin.
Lisa: Why do you have to be such a wanker?
Chet: Because I get off on it!
Lisa: I can be a real serious bitch if I don't get what I want.
Mutant Biker: Can we keep this... between us? I'd hate to lose my teaching job...
Wyatt: Garry, don't you feel like a chicken?
Garry: Wyatt, if I could shoot an egg out my ass right now, I would! Look we can deal with shame, death is a much deeper issue.
Lisa: You guys created me, I didn't come from anywhere. Before you started messing around with your computer, I didn't even exist. By the way, you did an excelent job. Thank you.
Lisa: If we're going to have any fun together, you guys have better learn to loosen up.
Lisa: You know, there's going to be sex, drugs, rock-n-roll... chips, dips, chains, whips... You know, your basic high school orgy type of thing. I mean, uh, I'm not talking candlewax on the nipples, or witchcraft or anything like that, no, no, no. Just a couple of hundred kids running around in their underwear, acting like complete animals.
Chet: Like your panties!
Wyatt: It's a joke, Chet!
Chet: That's not a joke, that's a severe behavioral disorder. I mean, the next thing you know, you'll be wearing a bra on your head!
Chet: [pointing a rifle at Gary's face] Freeze!
Garry: Chet!
Chet: [Hits Gary in the head with the rifle] Where's my brother?
Garry: Ow... uh, I don't know.
Chet: [Hits Gary again] You're dead meat pilgrim!
[Points the rifle at Deb]
Garry: Chet, Chet, Chet, Chet, that's her nose. Come on, Chet she's got nothing to do with this!
Chet: Ok. You die, she walks out of here with a severe limp.
[Points the rifle at Gary and Deb repeately, then hits both in the head]
Chet: I'll be back.
[Leaves the room]
Garry: That's Wyatt's older brother Chet. He's kind of an asshole.
Dino: Tell me something. What's a beautiful broad like you doing with a malaka like this? Huh?
Lisa: It's purely sexual.
Dino: No shit.
Garry: She's into malakas, Dino!
Dino: "She's into malakas"! Do you believe that?
Chet: [opens a pantry door, his grandparents are in there, frozen] Hi Nanny, hi Grampy.
Chet: [closes door and turns to everyone else] I'm not a moron, you know. I...
Chet: [suddenly realizes] Was that my grandparents?
Chet: [Lisa nods, Chet opens the door again] Are they dead?
Lisa: Oh, no, they're just resting.
Chet: What are they doing in here?
Lisa: I put them in there. I didn't want to Garry and Wyatt to get into trouble. Quite frankly, they weren't having a very good time at the party.
Chet: Not having a good time? Do you think they're having a good time being catatonic in a closet?
Lisa: Have you ever wondered how sad it is, that your son's only sexual outlet is tossing off to magazines in the bathroom?
Lucy Wallace: Oh Garry! Oh my God!
Garry: Ma, I never tossed off to anything!
Lucy Wallace: You told me you were combing your hair!
Garry: I was! I was!
[Gary and Wyatt are about to go out with Lisa and they both are wearing dorky suits and hairstyles]
Wyatt: What are we going to do with her?
Garry: Look, we'll just go with the situation okay? And I'm sure by Sunday you'll think of something. You're a very bright guy. I have a lot of faith in you okay?
Wyatt: I'm just being practical.
Garry: I know you are and I apperciate it.
Wyatt: But what are we going to do about this mess?
Garry: Wyatt you have plenty of time to clean up tommorrow okay?
Wyatt: Ok but don't get any B.O. on Chet's suit, or he'd kill me.
[they walk out of the room and all of a sudden they are wearing nice suits]
Wyatt: Where are we going anyway?
Garry: I don't know she said we're going downtown and OH MY GOD! Whose stuff is this? Is this yours?
Wyatt: Oh shit!
Garry: What's going on here?
Wyatt: I don't know.
Garry: Wyatt, what's going on here?
Wyatt: GARY I DON'T KNOW! But you look good though all right?
Garry: Yeah?
Wyatt: Yeah.
[Gary and Wyatt are about to make another woman for Ian and Max are are showing them the blue print for the boobs]
Max: I feel like an asshole. This had better work.
Garry: This is just a blueprint guys, now how do you like it?
Max: Go! Go! Go!
Garry: Give em the knee shooters.
[Wyatt makes the boobs bigger]
Garry: That's not a bad idea.
Wyatt: What?
Garry: Making a girl. Actually making a girl. Like Frankenstein... except cuter.
Wyatt: [stands up] You're serious?
[Gary grabs Wyatt by the collar and pulls him towards him]
Garry: Look me in the eye. Do I look serious?
Wyatt: Gary Wallace, that's-that's gross! That's sick! I am not digging up dead girls!
[Gary puts his hand over Wyatt's mouth and sits him down on the bed]
Garry: No, I'm not talking about digging up dead girls, Wyatt. I'm talking about your system, idiot, your computer!
[Wyatt and Lisa are going downstairs. He looks very nervous and tense]
Lisa: Wyatt, you're going to have a heart attack by the time you're forty if you don't learn to relax. Have you tried inversion boots?
Garry: How's your stomach?
Wyatt: It's a little better.
Garry: [starts pacing] If you're going to float an air biscuit, let me know, okay?
Wyatt: [confused] Float a what?
Garry: [slightly annoyed] If you're gonna fart, if you're gonna squeeze cheese, let me know, okay? I'll hit the fan!
Wyatt: I'm sorry, Gary, it's just I suffer from pain and discomfort due to occasional stomach upset.
[Wyatt is driving himself, Gary and Lisa back to his home. Gary is very drunk]
Garry: Gimme de keys! Gimme de keys!
Wyatt: [to Lisa; concerned] Is he going to be okay?
Wyatt: Gary, where the hell do you get that thing?
Garry: It's a squirt gun, man.
[Suddenly, there's a loud bang and a chandelier crashes to the ground. Both Gary and Wyatt look terrified]
Susan, Perfume Salesgirl: You guys looking for something for your mom?
[Gary and Wyatt exchanged an amused look]
Garry: I really don't think so...
[reads her nametag]
Garry: Sue.
Susan, Perfume Salesgirl: [astonished] You guys have... girlfriends?
Garry: You know, I really wouldn't refer to a 23-year-old woman as a girlfriend... more of a lover...
Wyatt, Garry: Lover... mistress.
Wyatt: Sexpot.
Garry: Sexpot is what she is.
Susan, Perfume Salesgirl: You guys are the ones who got beat up at the homecoming game... right?
Garry: It can't be a dream! How can 2 people have the same dream. Ok lets analyse this. In the middle of the night... did I get up... and yack in your sink?
[Wyatt looks confused and, after a few seconds, shakes his head]
Garry: Didn't throw up? No? Maybe it was a dream then, you know... a very weird... bizarre... vivid... erotic... wet... detailed dream. Maybe we had malaria.
Lisa: Just for that I ought to give you a set of elephant balls!
Wyatt: You know Gary, for the first time in my life; I don't feel like a total dick.
Chet: I'm gonna tell Mom and Dad everything. I'm even considering makin' up some shit!"
Lisa: If you ever get the chance, shower with them. I did. Mmm, it's a mindscrambler. Hurts so good.
Garry: This isn't my car. This isn't my suit. Those weren't even my friends.
Deb: Why are you telling me this?
Garry: Because I want you to like me for what I am.
Deb: Whatever you are, I like it.
Lisa: Don't threaten me Al! You're out of shape, I'll kick your arse.
Garry: Why don't you just shut up, you bitch!
Garry: I can't believe you, I CANNOT belive you. You're dropping wolf-bait, and there are chicks outside!
Chet: This goes WAY beyond payment!
[Lisa kisses Wyatt]
Lisa: Are you sure you're only fifteen?
Wyatt: [smiles] I'll be sixteen in June.
Garry: [in the shower with Wyatt for a brief chat] I could be wrong, but I think these guys are stoked for us, Wyatt.
Wyatt: I got that feelin' myself.
Garry: What do we do?
Wyatt: I don't know.
Garry: Should we go for it?
Wyatt: What about Lisa?
Garry: She did say we should party.
Wyatt: Look, let's get on with these two, score points, and go back to Lisa. This is like a dream come true.
Garry: How about if we see if we can score the points with these two and deal with the McKays when we get to them later?
Wyatt: Sounds good.
Garry: Okay, but whatever happens, we've gotta give Lisa a shot. I don't wanna hurt her feelings. Maybe the girls are lookin' for a long, lean bone job from me. Ready to party now?
Wyatt: 10-4.
Garry: Let's break.
Chet: You're stewed, buttwad!
Wyatt: [looks around; nervously] Me?
Chet: Do you know what time it is?
Wyatt: [guessing] Two?
Chet: Time to play the fiddler.
Wyatt: I was kind-of counting on you to be human about this...
[Chet grabs him by his lapels and shoves him hard against the wall]
Garry: Where'd your parents go anyway?
Wyatt: Cincinnati. They're meeting the guy my sister wants to marry.
Garry: Chloe? Who the hell would want to marry Chloe?
Wyatt: He's studying to be a vet.
[He grimaces slightly, wondering if that has anything to do with it]
Lisa: [to Wyatt's grandfather] Stop hitting people with your Rex Harrison hat!
Chet: [to Wyatt] Boy, I wouldn't give a squirt of piss for your ass right now.
Garry: Wyatt, are you ready to die?
Wyatt: Gary, I can't wait to die.
Garry: Why don't you shut up, bitch?
[to Lord General]
Garry: And as for your ugly a$$, you don't come into my friend's house, with your faggot friends and your bikes, crashing through windows, making a mess, breaking his furniture, stinking up the place and believe me you do stink.
[One of the mutant bikers sniffs his armpit]
Garry: And here's what's gonna happen. You're gonna get on your bikes, and pedal your ugly asses outta here.
[All the killer mutants laugh]
Garry: We're gentlemen so we're going to give you a choice.
[Gary pulls out a gun and points it at Lord General's head]
Wyatt: Yeah, you can go in peace.
Garry: Or you can stay and die. The choice is yours.
Lisa: [smiles] That's my boys.
[Wyatt is dragging the very drunk Gary up the stairs where they meet Chet]
Chet: The boozehounds returns!... What a joke.
Garry: We're in.
Wyatt: We're in trouble Gary. This is highly illegal.
Garry: We need more input. We gotta fill this thing up with data. We gotta make her as real as possible, Wyatt. I want her to live. I want her to breathe. I want her to aerobicize.
Chet: It's time to pay the fiddler...
The Weenies: This Bud's for you.


text:
Tweet |
Follow Us on Facebook Get updates from FaveCrafts.com posted directly to your News Feed. |
Family Fun Crafts: 16 Craft Ideas for KidsBonus: Get our newsletter & special offers for free. We will not share or sell your email address. View our Privacy Policy |
Candy Corn Stick Arm CharactersBy: Kids will love helping create these funky candy corn stick arm characters. These "corny" characters would make a great addition to a Halloween spread, or can be displayed in a child's room year round. Materials:
Images from other craftersRelated Products to Buy from CutRateCrafts.com - save 15-30%Your Recently Viewed ProjectsLove these projects? Get MORE delivered to your Inbox – FREE Click Here! |
What's HotTop Halloween Kids Crafts ProjectsSomething worth saving?
Free eBooks

subset: commoncrawl


text:
Found 589 Recipes | Revise this Search New Search |
Smoky Chipotle Parmesan Fries
by cookingontheweekends One of my absolute favorite flavors in the world (right up there with ..Salted, Spiced Caramel Sauce
by cookingontheweekends The process of making caramel is truly beautiful. Watching the sugar g..Marinated Grilled Portabella Mushroom Recipe
by cookingontheweekends Portabella mushrooms are "meaty." Really, they are! Just ask my vege..Flank Steak with Chimichurri Sauce
by RickBakas Flank steak is a great cut of beef for not very much money. Local sto..Chocolate-Ancho Chile Cake
by krkapple With deep chocolate, warm ancho chile powder, and rich whipped cream, ..Easy Sausage Jambalaya
by jlindfors This is a fairly easy recipe that makes a very tasty red jambalaya. No..Fast and Easy Chili
by jlindfors This is a great fast recipe for chili that tastes great for people who..Fried Apple Pies
by Sweets Treats and More This recipe is one that my Grandmother taught me when I was growing up..Olive Deviled Eggs
by kimberly This is a tangy deviled egg recipe that used olives and spicy brown mu..Mexican Chocolate Brownies
by foodiebride These mexican chocolate brownies are a great combination of sweet and ..Exotic Spiced Lentil and Tomato Soup
by Healthful Pursuit As with all of my recipes, I began planning it weeks ago in my trusty ..Creole Shrimp Recipe
by HolidaysCentral Cajun and Creole flavors abound in the New Orleans and Louisiana regio..


text:
Jump to navigation
Call toll free: 1.800.667.1630
About the Country & People
Out to Sea
Belize Barrier Reef
Glover's Reef Atoll
Lighthouse Reef Atoll
Venture Inland
Venture Inland
Rainforest Rivers
Mayan Culture Past & Present
Caving in Belize
ATM Cave
Cave Tubing
Belize Fact Sheet
Maps of Belize
Where is Belize?
Detailed Maps of Belize
Maps of our Trips
Dive Sites
Maya Sites of Belize
Flora & Fauna
Belize Photo Gallery
Flora & Fauna Photo Gallery
Sea Kayaking Photo Gallery
Glovers Reef Photo Gallery
Belize Fishing Photo Gallery
Underwater Photo Gallery
Snorkelling Photo Gallery
Cayes and Barrier Reef Gallery
Lighthouse Reef Photo Gallery
Caves Photo Gallery
The Way
Who We Are
The Places We Stay
Your Trip Experience
Caving in Belize
Ecology and Marine Biology in Belize
Sea Kayaking in Belize
Sea Kayak Sailing in Belize
River Kayaking in Belize
Whitewater Kayaking in Belize
Snorkelling in Belize
Fishing in Belize
Scuba Diving in Belize
Explore the World of the Maya
Wildlife Viewing in Belize
Hiking in Belize
Birding in Belize
Photography in Belize
Yoga in Belize
Kids Kayak Gear in Belize
Stand-Up Paddle Board (SUP) in Belize
Trip Leaders
Trip Leaders
Employment with Island Expeditions
Conservation & Travel
Gear Up For Adventure
Our Trip Styles
Compare Trip Details
Combining Trips
Classic Trips
Classic Trips in Brief
Glover's Reef & River of Caves
Coral Atoll & Maya Rainforest
Maya Reef Explorer
Paradise Islands
Ultimate Adventure
Lighthouse Reef Adventure
Getaways & Extensions
Getaways & Extensions in Brief
Lighthouse Reef 5 Day
Trip Summary
Route & Setting
Dates & Prices
Photo Gallery
Lighthouse Reef 5 Day
Glovers Getaway
Lighthouse Getaway
Wild South
Maya World Extension
Rainforest Canopy Extension
Glover's Getaway & Kayak Rental Combo
Combining Trips
Self Guided Trips & Rentals
Self Guided Trips & Rentals in Brief
Glover's Getaway & Kayak Rental Combo
Kayak Rentals
Custom Itineraries
Custom Itineraries in Brief
Educational School Groups
Customized for Your Group
Private Trips
Combining Trips
Yoga & Fly-Fishing Trips
Belize Basecamp Yoga
Fly Fishing at Glovers Reef
Family Vacations & Pricing
Belize Trip Specials
The Leap
Book A Trip
Book A Trip!
Booking Forms for Regular Season Trips
Booking Forms for Holiday Season Trips
Belize Flight Information
Belize Travel Insurance
Common Questions
Cancellations & Refunds
& Packing
Planning & Packing For Our Trips
Paradise Islands
Lighthouse Reef Adventure
Glover's Reef & River of Caves
Ultimate Adventure
Maya Reef Explorer
Glover's Getaway
Lighthouse Getaway
Wild South
Maya World Extension
Rainforest Canopy Extension
Glover's Getaway & Rental Combo
Belize Kayak Rental
Costa Maya Explorer
Coral Atoll & Maya Rainforest
Lighthouse Reef 5 Day
With Us
Contact Us
Request A Brochure
Newsletter Sign-Up
Guest Group Photos
Social Media
Mobile Apps
Travel Agents Information
Partner Programs
Links & Associations
Belize Caves Photo Gallery
Flora & Fauna
Sea Kayaking
Glovers Reef
Under Water
Lighthouse Reef
Cayes and Barrier Reef
Caves of Belize
Printer-friendly version
PDF version
Interact with Us >
Contact Us
> Blog
> Social Media
> Mobile Apps
Copyright © 1987-2014 Island Expeditions Co. | All Rights Reserved


text:
- 01-22-2013, 10:19 PM Thread Author #1
HTC One X $ 0.99 on ATT site
I can't believe this phone has been so heavily discounted on ATT, so much that it really makes me think they will never update it to Jelly Bean. Samsung GS3 is still $199. And they started out with the same price. I am still glad I chose HOX and payed $200 for it but it's gotta hurt some.
Thanked by: - 01-22-2013, 10:35 PM #2
Re: HTC One X $ 0.99 on ATT site
I got mine at $99, but that is still quite saddening though. It's still one heck of a phone...
Re: HTC One X $ 0.99 on ATT site
the S3 was .99c on amazon for a day, a couple months ago... wanna say it was the week after thanksgiving
either way, the phone is almost a year old and HTC didn't advertise for the One X like Samsung did for the S3 (samsung spent a ridonkulous amount of money advertising)
I will always prefer HTC to any other android manufacturer, but I'm pretty sure I'm going with the Note 3 when it comes out... beastly phone from the sounds of it hahaVerizon Samsung Galaxy S4
Rooted, HyperDrive Rom
If I helped you out, hit the thanks button on this post! - 01-22-2013, 10:55 PM #4
Re: HTC One X $ 0.99 on ATT site
I actually like having the battery the way it is now... Having a removable battery is nice, but if you constantly replace the battery it wears on the connectors (after a long period of time) and having batteries just sit can cause the cells to die off faster. I've always had better battery life out of phones with nonremovable batteries compared to those that have the removable batteries.
The only thing I like about removable batteries is the option to get a larger capacity battery in there.Verizon Samsung Galaxy S4
Rooted, HyperDrive Rom
If I helped you out, hit the thanks button on this post! - 01-22-2013, 11:36 PM #6
Re: HTC One X $ 0.99 on ATT site
Got mine as well for .99 cents .................. but I'm thinking this will be my last HTC phone ( too long for updates) ---- my son got a GS3 and has already updated. I had an Inspire before this and it took almost a year before they updated to 4.0 ---- ended up rooting ..................which is where I'll prolly be going with this one :-)
Re: HTC One X $ 0.99 on ATT site
Heavy discounts appear when a new phone from same brand is coming out.
Similar Threads
HTC ONE X - WiFi Experience on 2 new phones - AT&T
By Movadoevo8 in forum HTC One XReplies: 50Last Post: 02-05-2013, 09:37 PM -
Anyone use HTC One V (GSM International) on Straight Talk?
By JBinden in forum HTC One VReplies: 0Last Post: 09-07-2012, 02:55 PM -
HTC One X software update on O2
By m13kyf in forum HTC One XReplies: 8Last Post: 05-28-2012, 12:09 PM -
HTC ONE S unlocked works on AT&T 3G network?
By deleonj in forum HTC One SReplies: 4Last Post: 04-18-2012, 05:35 PM -
Captivate froyo on ATT site.
By Jalarm in forum AT&T CaptivateReplies: 3Last Post: 02-04-2011, 07:15 AM


text:
Campground Activities
Jumping Pillow
There is nothing quite like taking off your shoes and climbing to the top of our big bouncer. Except of course actually bouncing on it and trying to touch the sky! How high can you jump?
You've all seen the courts. Strange numbered pyramids with no explanation. In our office though, these courts come to life with the addition of the right equipment. It's an old pastime or a newfound love!
Bike Rentals
Once you learn, you never forget right? Unless of course you try steering our awesome banana bikes for the first time. These fantastic rentals will let you 'peel' out in style and cruise the campground.
Miniature Golf
Not everyone possesses the same level of skill as Tiger Woods. For those people, there is miniature golf. Here at the Coloma / St Joseph KOA you can enjoy this treasured sport with all your friends.
Is it possible to go camping without playing horseshoes? The short answer is yes but why would you want too? Challenge your friends to an exciting game on your next visit to the Coloma / St Joseph KOA.
You've heard people say there is a kid in all of us right? There is no doubt your children will have a blast on our playground but, unfortunately, our playground equipment only comes in one size. Sorry parents.
Say what? For those more familiar with Bocce Ball, this game is quite similar. The only real difference is that you aren't restricted by a court. Play anywhere you want at the Coloma / St Joseph KOA.


text: is there any app that looks like keynote for ipad, that means, you click on a button and then a text box appears and you write on it and you can add pictures etc. But that you could also draw on the app, for example, arrows and circles ? instead of premade figures ? thanks !


text:
Speculative Grammarian is the premier scholarly journal featuring research in the neglected field of |
We have recently completed our transition from the real world to online: we have finally finished digitizing the tattered remains of our once glorious Archive, re-publishing each issue on the internet.
Our new mission is two-fold: |
I hope you enjoy your visit with us. We hope you'll come back again
soon. There are always several improvements in the works, and we
always appreciate your suggestions and ideas.
—Trey Jones |


text:
Originally posted by: papa_d on 4/25/2006 3:05:14 PM
Saw Blades painted as orders for local friends. The smaller on is 16" dia. ; and the larger one is a 26" mill blade. I have no limits as to what I paint on. POne blade I did was a Mill Blade of 44" dia. with a Northern Pike ; Name and Address for a Cabin Not far from here. Papa d


text:
Mavericks 82
(57-25, 28-13 away)
Trail Blazers 84
(48-34, 30-11 home)
Coverage: TNT
5:00 PM ET, April 23, 2011
Moda Center, Portland, OR
PORTLAND, OR - APRIL 23: DeShawn Stevenson #92 of the Dallas Mavericks reacts after hitting a three against the Portland Trail Blazers in Game Four of the Western Conference Quarterfinals in the 2011 NBA Playoffs on April 23, 2011 at the Rose Garden Arena in Portland, Oregon. NOTE TO USER: User expressly acknowledges and agrees that, by downloading and or using this photograph, User is consenting to the terms and conditions of the Getty Images License Agreement. Mandatory Copyright Notice: Copyright 2011 NBAE (Photo by Sam Forencich/NBAE via Getty Images)


text:
There was a LOD2 plenary meeting hosted by Chris Bizer from the University of Mannheim this week.
The plenary meeting was preceded by a Linked Open Data Meetup with talks from Springer, fluid Operations, and several LOD2 partners (Universität Leipzig, University of Mannheim, the Semantic Web Company, and Wolters Kluwer Deutschland GmbH (WKD)).
Wolters Kluwer Deutschland GmbH (WKD) gave a presentation on the content production pipeline of their legal publications and their experiences in incorporating LOD2 technologies for content enrichment. This is a very successful LOD2 use case and demonstrates the value of linked data for the information industry.
Springer gave a talk about their interest in linked data for enriching the Lecture Notes in Computer Science product. Also conference proceedings could be enhanced with structured metadata in RDF. I asked about nanopublications. The comment was that content authors might perceive nanopublications as an extra imposition. On the other hand, in the life sciences field there is a lot of enthusiasm for the idea. We will see; anyway, biology will likely lead the way for nanopublications. I referred Aliaksandr Birukou of Springer to the companies Euretos and its parent S&T in Delft, Netherlands, and to Barend Mons, scientific director of NBIC, the Netherlands Bioinformatics Centre. These are among the founding fathers of the Nano Republic, as they themselves put it.
Sebastian Hellman gave a talk on efforts to set up the DBpedia Foundation as a not-for-profit organization, hopefully in the next 10 days, to aid in the sustainability and growth of the DBpedia project. The Foundation would identify stakeholders, their interests, and ways to generate income to further improve DBpedia. Planned areas of improvement include the development of high-availability value-added DBpedia services with quality of service (QoS) agreements for enterprise users; additional tools in the DBpedia stack to support improved and cost-efficient data curation and internationalization; and improved documentation, tutorials, and support to speed uptake.
I had a word with Peter Haase of fluid Operations about the Optique project and their cloud management offerings. The claim is to do ontology-directed querying over thousands of terabytes of heterogenous data. This turns out to be a full-force attempt at large scale SQL federation with ontology-directed query rewriting for covering OWL 2 QL semantics. With Ian Horrocks of Oxford leading the ontology side, the matter is in good hands. Still the matter is not without its problems. Simple lookups can be directed to the data but if there are terabytes of it, it is more likely that aggregations are what is desired. Federated aggregation tends to move a lot of data. So the problems are as they ever were. However, if the analytics are already done and stored in the relational space, finding these based on ontologies is a worthwhile thing for streamlining end user access to information.
The LOD2 plenary itself was structured in the usual way, covering the work packages in two parallel tracks.
LOD2 Plenary Group Photo, Mannheim, February 2014
On the database side, the final victory will be won by going to adaptive schema for RDF. We brought the RDF penalty against relational to a factor of 2.5 for common analytics style queries, e.g., Star Schema Benchmark. This is a comparison to Virtuoso SQL, which offers very high performance in this workload, over 2x the speed of column store pioneer MonetDB and 300x MySQL. So this is where matters stand. To move them significantly forward, exploitation of structure for guiding physical storage will be needed. Also the project still has to deliver the 500 Gtriple results. The experiments around Christmas at CWI support the possibility, but they are not final. Putting triples into tables when the triples in fact form table-shaped structures, which is the case most of the time, may turn out to be necessary for this. At least, this will be a significant help.
Be the case as it may, using a table schema for regularly shaped data, while preserving the RDF quad flexibility, would essentially abolish the RDF tax and bring the LOD2 project to a glorious conclusion in August.
I took the poetic license to compare the data journey into RDF and back to the Egyptian myth of Osiris: The data gets shut in a silo and then gets cut into 14 pieces; and subsequently thrown into the Nile (i.e., the LOD cloud, or the CKAN catalog). Grief-stricken Isis sees what is become of her love: She patiently reassembles the pieces, reconstructing Osiris in fact so well that he sires her a child, hawk-headed Horus, who proceeds to reclaim his father's honor. (See, Isis means Intelligent Structured Information Storage.)
I had many interesting conversations with Chris Bizer about his research in data integration, working with the 150M HTML tables in the common crawl. The idea is to resolve references and combine data from the tables. Interestingly enough, the data model in these situations is basically triples, while these are generally not stored as RDF but in Lucene. This makes sense due to the string-matching nature of the task. There appears to be opportunity in bringing together the state of the art in database, meaning the very highly optimized column-store and vectored execution in Virtuoso with the search-style workload found in instance matching and other data integration tasks. The promise goes in the direction of very fast ETL and subsequent discovery of structural commonalities and enrichment possibilities. This is also not infinitely far from the schema discovery that one may do in order to adaptively optimize storage based on the data.
Volha Bryl gave a very good overview of the Mannheim work in the data integration domain. For example, learning data fusion rules from examples of successful conflict resolution seems very promising. Learning text extraction rules from examples is also interesting. The problem of data integration is that the tasks are very heterogenous and therefore data integration suites have very large numbers of distinct tools. This is labor intensive but there is progress in automation. An error-free, or near enough, data product remains case by case and has human curation but automatic methods seem, based on Volha's and Chris' presentation, to be in the ballpark for statistics.
Giovanni Tummarello of Insight/SindiceTech, always the life of the party, presented his Solr-based relational faceted browser. The idea is to show and drill down by facets over a set of related tables; in the demo, this was investments, investment targets, and investors. You can look at the data from any of the points and restrict the search based on attributes of any. Well, this is what a database does, right? That is so, but the Sindice tool is on top of Solr and actually materializes joins into a document. This blows up the data but has all the things colocated so it can even run from disk. We also talked about the Knowledge Graph package Sindice offers on the Google cloud, this time a Virtuoso application.
We hope that negotiations between SindiceTech and Insight (formerly DERI) around open sourcing the SPARQL editor and other items come to a successful conclusion. The SPARQL editor especially would be of general interest to the RDF community. It is noteworthy that there is no SPARQL query builder in common use out there (even OpenLink's own open source iSPARQL has been largely (but not entirely!) overlooked and misunderstood, though it's been available as part of the OpenLink Ajax Toolkit for several years). OK, a query builder is useful when there is schema. But if the schema is an SQL one, as will be the case if RDF is adaptively stored, then any SQL query builder can be applied to the regular portion of the data. 40 years of calendar time and millennia of person years have gone into making SQL front ends and these will become applicable overnight; Virtuoso does speak SQL, as you may know.
I had the breakout session about the database work in LOD2. What will be done is clear enough, the execution side is very good, and our coverage of the infinite space of query optimization continues to grow. One more revolution for storage may come about, as suggested above. There is not very much to discuss, just to execute. So I used the time to explain how you run
SELECT SUM ( l_extendedprice ) FROM lineitem , part WHERE l_partkey = p_partkey AND p_name LIKE '%green%'
Simple query, right? Sure, but application guys or sem-heads generally have no clue about how these in fact need to be done. I have the probably foolish belief that a little understanding of database, especially in the RDF space which does get hit by every query optimization problem, would be helpful. At least one would know what goes wrong. So I explained to Giovanni, who is in fact a good geek, that this is a hash join, and with only a little prompting he suggested that you should also put a Bloom filter in front of the hash. Good. So in the bar after dinner I was told I ought to teach. Maybe. But the students would have to be very fast and motivated. Anyway, the take-home message is that the DBMS must figure it out. In the SQL space this is easier, and of course, if most of RDF reduces to this, then RDF too will be more predictable in this department.
I talked with Martin Kaltenböck of the Semantic Web Company about his brilliant networking accomplishments around organizing the European Data Forum and other activities. Martin is a great ambassador and lobbyist for linked data across Europe. Great work, also in generating visibility for LOD2.
The EU in general, thanks in great part to Stefano Bertolo's long term push in this direction, is putting increasing emphasis on measuring progress in the research it funds. This is one of the messages from the LOD2 review also. Database is the domain of performance race par excellence; the matters on that side are well attended to by LDBC and, of course, the unimpeachably authoritative TPC, among others. In other domains, measurement is harder, as it involves a human-curated ground truth for any extraction, linking, or other integration. There is good work in both Mannheim and Leipzig in these areas, and I may at some point take a closer look, but for now it is appropriate to stick to core database.
The "file tables" feature first introduced in the TPC-H bulk load article is now available on the v7fasttrack clone of the Virtuoso repository on GitHub.
To check out —
$ git clone https://github.com/v7fasttrack/virtuoso-opensource.git v7fasttrack
The v7fasttrack tree compiles just like the main Virtuoso tree. Its content is substantially the same today, except for the file tables feature. There is a diff with the main tree which now consists mostly of white space, since the Fast Track tree is automatically indented with the Linux indent utility each time it is updated, and the Virtuoso tree is not.
Ongoing maintenance and previews of new features will be added to this tree as and when they become available.
Let's now look at the "file tables" feature.
You can use any CSV file like a table, as described in the documentation. The TPC-H data generator (complete source ZIP; ZIP of just the dbgen source) is a convenient place to start to try things out.
To generate the qualification database, run —
dbgen -s 1
This makes 8 CSV files called *.tbl. You can use these scripts to load them into Virtuoso —
To verify the load, do —
SELECT COUNT (*) FROM lineitem_f ; SELECT COUNT (*) FROM lineitem ;
To try different combinations of tables and CSV files, you can, for example, do —
SELECT COUNT (*) FROM lineitem, part_f WHERE l_partkey = p_partkey AND p_name LIKE '%green%' ;
This counts shipments of green parts, using the file as the part table. You can then replace the part_f with part to join against the database. The database will be a little faster but the file is also pretty fast since the smaller table (part) is on the build side of a hash join and the scan of lineitem is the same in either case.
You can now replace lineitem with lineitem_f and you will see a larger difference. This is still reasonably fast since the lineitem file is scanned in parallel.
You can try the different TPC-H queries against tables and files. To get the perfect plans you will need the analytics branch which will be made available shortly via this same GitHub channel.
You can also try RDFizing the files using the scripts in the Enterprise Linked Data article from earlier this year. The qualification database should go in about 15 minutes on a commodity server and make some 120M triples. In the article, the data came from another server, but it can just as well come from files. These two scripts from that article have been adapted for loading from files —
To try this, execute the following commands in iSQL —
LOAD sql_rdf.sql; RDF_VIEW_SYNC_TO_PHYSICAL ( 'http://example.com/tpcd' , 1 , , "urn:example.com:tpcd" , 2 , 0 ) ;
To verify the result —
sparql SELECT ?c COUNT (*) WHERE { ?s ?p ?o } GROUP BY ?p ORDER BY DESC 2 ;
I recall a couple of years back, in a LOD2 project review, one of the reviewers made a comment to the effect that OpenLink's open source strategy was in essence autistic. More precisely, that OpenLink made some things, released these at unanticipatable times, and lacked community engagement.
Since then the situation has improved somewhat with the code being on github and kept more or less up to date with maintenance.
There is no reason why users should not get bug fixes when they are made, nor why users should not get functionality previews.
Introducing v7fasttrack, a clone of the git repository, where maintenance goes real time, and where early releases of functionality are available for experimentation.
It is open kitchen, folks. You will see us slice the fish and mix the curry right in the dining room. You will see epic feats of pizza flipping -- something to regale your grandchildren with.
You will still have to place your orders with your waiter; we still won't have time to be on most lists and such but at least you will get the dish while it's hot.
In the immediate future, the "file-as-table" feature will be introduced via this channel. This is the capability to make CSV files look like tables, which was mentioned in the TPC-H bulk load article. This is key to bulk loading 100GB in 15 minutes on a single commodity server.
The query caching feature mentioned in the previous blog post is the next candidate for availability in this channel. If you have repeating long queries that do lookups with under a million triples or so, compile times will dominate and this will give significant acceleration.
The largest item to come is the availability of the analytics branch that has been discussed in the TPC-H series. It is basically complete, with implementations of most tricks discussed in the TPC TC paper, TPC-H Analyzed: Hidden Messages and Lessons Learned from an Influential Benchmark.
These are structured as branches, with safe maintenance to one side, and new features which potentially break things in their own branch. For example, with a much smarter optimizer in the analytics branch, it is conceivable some applications will get worse plans at first even if the benchmarks are good. Anyway, experimentation is safe.
These will be introduced in future blog posts, and the relevant documentation will be in the archive. The DocBook XML form will come later.
These features will migrate to the regular git in time. But you will not have to hold your breath waiting for this.
The next action is the publishing of the file table feature on the fast track. There will be a post on this next week.
Performance of RDF and other graph workloads may easily be limited by query compilation time. Query compilation time tends to increase as more complex optimizations are added, thus simply streamlining compilation is not the answer. All applications we have come across make queries by instantiating templates and plugging in different literals and different combinations of predefined search conditions. The DBMS will see a few hundred distinct queries, but they may come each time with different literals.
So reusing query plans between invocations is a natural optimization. This works especially well with lookup workloads, or when the data is small. Analytics tends to be dominated by run time, but lookups that touch at most a million or so triples will often be bound by compilation time, especially if these have tens of triple patterns.
Let's consider the following from Open PHACTS:
sparql PREFIX chembl: <http://rdf.ebi.ac.uk/terms/chembl#> PREFIX dcterms: <http://purl.org/dc/terms/> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX bibo: <http://purl.org/ontology/bibo/> PREFIX cheminf: <http://semanticscience.org/resource/> PREFIX obo: <http://purl.obolibrary.org/obo/> PREFIX qudt: <http://qudt.org/1.1/schema/qudt#> SELECT DISTINCT ?item WHERE { VALUES ?chembl_target_uri { <http://rdf.ebi.ac.uk/resource/chembl/target/CHEMBL5451> } GRAPH <http://www.ebi.ac.uk/chembl> { ?assay_uri chembl:hasTarget ?chembl_target_uri . ?assay_uri chembl:hasActivity ?item . ?item chembl:hasMolecule ?compound_chembl . ?chembl_target_uri a ?target_type . OPTIONAL { ?chembl_target_uri dcterms:title ?target_name_chembl } OPTIONAL { ?chembl_target_uri chembl:organismName ?target_organism } OPTIONAL { ?chembl_target_uri chembl:hasTargetComponent ?protein . GRAPH <http://www.conceptwiki.org> { ?cw_target skos:exactMatch ?protein ; skos:prefLabel ?protein_name } } OPTIONAL { ?assay_uri chembl:organismName ?assay_organism } OPTIONAL { ?assay_uri dcterms:description ?assay_description } OPTIONAL { ?assay_uri chembl:assayTestType ?assay_type } OPTIONAL { ?item chembl:publishedType ?published_type } OPTIONAL { ?item chembl:publishedRelation ?published_relation } OPTIONAL { ?item chembl:publishedValue ?published_value } OPTIONAL { ?item chembl:publishedUnits ?published_unit } OPTIONAL { ?item chembl:standardType ?activity_type } OPTIONAL { ?item chembl:standardRelation ?activity_relation } OPTIONAL { ?item chembl:standardValue ?standard_value . BIND ( xsd:decimal( ?standard_value ) AS ?activity_value ) } OPTIONAL { ?item chembl:standardUnits ?activity_unit } OPTIONAL { ?item chembl:hasQUDT ?qudt_uri } OPTIONAL { ?item chembl:pChembl ?pChembl } OPTIONAL { ?item chembl:activityComment ?act_comment } OPTIONAL { ?item chembl:hasDocument ?doc_uri . OPTIONAL { ?doc_uri owl:sameAs ?doi } OPTIONAL { ?doc_uri bibo:pmid ?pmid } } } GRAPH <http://ops.rsc.org> { ?compound_ocrs skos:exactMatch ?compound_chembl . ?compound_ocrs cheminf:CHEMINF_000396 ?inchi ; cheminf:CHEMINF_000399 ?inchi_key ; cheminf:CHEMINF_000018 ?smiles . OPTIONAL { [] obo:IAO_0000136 ?compound_ocrs ; a cheminf:CHEMINF_000484 ; qudt:numericValue ?molweight . } OPTIONAL { [] obo:IAO_0000136 ?compound_ocrs ; a cheminf:CHEMINF_000367 ; qudt:numericValue ?num_ro5_violations . } } ?compound_cw skos:exactMatch ?compound_ocrs ; skos:prefLabel ?compound_name } ORDER BY ?item LIMIT 10 OFFSET 0 ;
This is quite typical. More complex ones have been seen, with many unions on top.
We run this with profile on warm cache, no plan reuse in effect. The database is Open PHACTS OPS from this January.
profile ('sparql prefix ....'); ... 15 msec 4% cpu, 15688 rnd 9547 seq 91.8669% same seg 4.62107% same pg Compilation: 313 msec 0 reads 0% read 0 messages 0% clw
The compilation time is over 20x longer than the execution. We see from the top line that the execution did 15K random lookups and retrieved 9K rows sequentially.
We enable plan reuse and rerun:
14 msec 58% cpu, 15688 rnd 9547 seq 91.8669% same seg 4.62107% same pg Compilation: 0 msec 0 reads 0% read 0 messages 0% clw
The compile time is now gone. This is an especially large win. With a set of 31 queries from Open PHACTS, each repeated over many different parameter bindings, the gains from query caching are a speedup of 1.5x. More details may be published after VU Amsterdam, which does the data management for Open PHACTS, following publication of the benchmark data and queries. The present figures are an order of magnitude better than the figures from last fall, which will also be in the publication.
With query plan caching, the same plan will be reused as long as the literals in the new query have approximately the same selectivity as the ones which were present when the plan was first made. In this way, if a different plan is in fact needed, one will be made. The same query text can have many alternative plans for different selectivities of search conditions.
In this way, plan reuse may work better than prepared statements. Anyway, prepared statements do not exist in the SPARQL query language. In SQL they do, but then the optimizer does not know the values the parameters will have.
The overhead of plan reuse, as opposed to parameterized prepared statements, is relatively low. The cache remembers the sampling that was done when the plan was first made. The same samples are taken with the new literals plugged in. If the cardinalities are within a settable percentage (e.g., 20% of the original), the plan is assumed to be applicable. On the other hand, with prepared parameterized statements, there is no sampling at all, but then the plan might be worse due to less information being available to the optimizer.
Publishing is another type of workload where compile times easily form a large percentage of the total. The queries are shorter than in the biology case, since the modeling tends to be simpler and there are less distinct sources being queried. The frequency of the queries is higher though, and each might touch only some tens of triples.
The query caching feature will be included in forthcoming Virtuoso updates, and will not require operator intervention nor changes to configurations or applications. The feature will be controlled by a few settings in the configuration file, but the defaults will work for almost all cases.
A few blogs back, I was talking about the comeback of SQL (i.e., relational) federation. True, Virtuoso has always had that, but in the general perception, it is primarily known for RDF and Linked Data. Now these two areas of functionality are combined in a way that makes sense and can provide real performance, often surpassing the relational installed base while running SPARQL with no predefined schema.
So, we take our standard TPC-H 100 GB dataset and turn it into RDF. We adjust the schema a little, so that each customer, its orders, and the lineitems of those orders go into a per-customer graph. The part, partsupp, and other tables will all go into a public graph. The per-customer graph can be used as a security label; for example, if there is customer self-service access to the warehouse, or if the access is compartmentalized by areas of responsibility (e.g., customer countries or market segments).
We use two Virtuoso processes. The first contains the TPC-H 100G dataset, the same that was discussed in the TPC-H bulk load article. The second process attaches the tables from the first via SQL federation, and constructs an RDF translation into its RDF store. The mapping is made with an RDF view, also known as a Linked Data View. The initial RDF view can be generated from the relational schema, then edited for the selection of properties. If there are modeling or unit changes in the mapping, these are easiest done with SQL views, in which case the RDF mapping is made on top of the views, not the actual tables. The SQL views reside on the same server that has the RDF views, so no write access to the source database is needed.
The server configuration is found in virtuoso.ini. This is for 4 disks and 192 GB RAM, so if you try this, make sure you have at least this much or use an accordingly scaled down dataset.
The data is defined by loading the scripts:
SQL> LOAD att2.sql ; SQL> LOAD sql_rdf_rdfh11.sql ;
The first attaches the tables from the source server; the second defines the mapping from tables to triples. The final script (below) starts the actual ETL.
We set the default vector size to 200,000. Experience shows this is good for this sort of operation, and may save some 20% of time.
SQL> __dbf_set ('dc_batch_sz', 200000) ;
We run the transformation: The commands are in the rdb2rdf_rdfh11_1.sql script, discussed below. The ld_meter_run starts a thread to record the load rate every 30 seconds.
SQL> LOAD /mvi/te/suite/tpc-d/rdb2rdf_rdfh11_1.sql & SQL> ld_meter_run (30) & Done. -- 40686670 msec.
-- The load is non-transactional bulk load, so needs an explicit checkpoint to make the result durable.
SQL> checkpoint ; Done. -- 1858934 msec.
-- we check the result
SQL> sparql SELECT COUNT (*) WHERE { ?s ?p ?o } ; 11869611740 SQL> sparql SELECT ?p COUNT (*) WHERE { ?s ?p ?o } GROUP BY ?p ORDER BY DESC 2 LIMIT 200 ;
We calculate the ETL speed:
11.8 hours, at just under 280 Kt/s, end-to-end. Worse has been heard of. This is a small single-server speed, on the usual test system with dual Xeon E5 2630, 192G RAM. A single-server for double the price might get double throughput. Beyond this, scale out is clearly the better deal. An elastic cluster will get throughput linear to the count of machines for this type of workload.
This shows that deploying mid-size enterprise data as RDF is a job that goes easily overnight with a commodity box, reading directly from the source system; no file-system-based staging areas are needed.
The dataset is 600M order lines; 150M orders; 15M customers; 20M parts, each with 4 suppliers; 1M total suppliers. You can contrast this to what you have in-house to get a rough estimate of what your own DW would come to.
Later, we will use this dataset to illustrate how to scope queries to security categories with graph-level security. Of course, this dataset also provides a point of SQL-to-SPARQL comparison for the ongoing TPC-H series. There will be more installments in not too long.
Before Christmas, I wrote about a rerun of BSBM to check how it works before doing it on 500 Giga-triples ("Gt") at CWI. Now we can talk about the experiment with CWI's Scilens cluster. The specs are in the previous post. This is a cautionary tale about large data on one hand, and about high load speed on the other.
The BSBM generator and driver are an ever-fresh source of new terrors. The nature of the gig is that you have a window to do your experiment in, and that involves first generating the test data. It is somewhere around 3 TB of gzipped files. It took a whole week to make the files. During that time of course you want to anticipate what's going to break with the queries. So while the generator was going, we loaded 50 renamed replicas of the 10 Gt dataset. At partial capacity, we may add, because 4 boxes had half memory taken by the BSBM generator. We hate that program. Of course nobody gives a damn about it so it has been maintained in the worst way possible; for example, the way its cluster version generates slices of data is by having every instance actually generate the full data set, but only write 1 out of so many items to the output. So no amount of capacity will make it faster. As for BSBM itself, if you generate 10 Gt once and occasionally use this as test data, it does not inconvenience you so much. Then, of course, the test driver was patched to generate queries against renamed replicas of a dataset. But then the new driver would not read the dataset summary files made by the previous driver, because of Java class versions. 8 hours to regenerate 10 Gt. A real train wreck. This is by far not the end of it but we are out of space. So on with it; may that program be buried.
In the end, the 2000 gz files with the 500 Gt in them were complete. Then it turns out each file has tens of millions of namespace prefixes at the beginning. So, starting to load a file grows the process by some 9 GB just for the prefixes. So, out of 256 GB of RAM per box, there are about 72 GB taken by the prefixes, if you load 8 files in parallel on each. Well, one could do a sed script to unzip, expand the prefixes, and rezip, and the file would not be any bigger; but it would be a day to run.
So, anyway with 12 boxes, 24 processes, and (in principle) 384 threads, the load rate is between 3 and 4 million triples per second ("Mt/s"). With 2 boxes, it is 630 Kt/s, so you would say this is scalable. Near enough to linear; the 2 boxes have 12 cores and 2.3GHz, Scilens has 16 at 2.0GHz; close enough.
For the 3-4 Mt rate, there is an average of 200 threads running. This is not full platform, as there's the 2nd thread of each core idle for the most part. Adding the second thread usually adds some 30% throughput. A high of 5 Mt/s could be had if going to full CPU, but doubling the files being loaded would run out of memory because of the namespace prefixes. See, it is sheer luck that the BSBM thing, inept as it is, is still marginally usable, despite the prefixes and the horrible generator. A bit worse still, and it would have been a non-starter. It comes from the times when RDF just meant inept database, so scalability clearly was not in its design objectives.
With 96 files being loaded across the cluster, we got the run stats below for a couple of 4 minute windows. In each, the data size at time of the sample is between 50 Gt and 100 Gt. The long line is the cluster status summary; the tables below are load rates in the windows between timestamps, so, growth in triple count as triples per second (tps) since the previous sample.
Cluster 24 nodes, 240 s. 18866 m/s 692017 KB/s 21842% cpu 7% read 95% clw threads 356r 0w 114i buffers 99250961 97503789 d 2275 w 0 pfs
Some hours later --
Cluster 24 nodes, 240 s. 14601 m/s 506784 KB/s 19721% cpu 61% read 1310% clw threads 374r 0w 126i buffers 189886490 107378792 d 1983 w 18 pfs
Pretty good. I don't know of others coming even close.
Next we will look at query plans and scalability in query processing.
We regularly encounter user scenarios where there is a need for selective access to RDF and other graph-model data. In a schema-less situation, the graph is the natural unit of access control. A common design pattern is to put all the triples that represent one logical entity, possibly including immediately dependent entities, into the same graph. The application will then usually replace the whole graph when some part of it changes.
In this usage pattern, the graph is akin to a relational row, plus maybe items of one to many tables; for example, an order and its order lines would make a single graph. In a publishing setting, what goes into a graph is whatever is approved for publication as a unit. So, a graph is conceptually somewhere between a row and a document.
The access control situations further fall into two principal types.
OpenPHACTS, for example, would fall into the latter category. There the matter is not so much about charging for premium content but about keeping proprietary separate from public.
The graph is thus a combined provenance and security label. We sometimes hear about applications that would want quints (a quad with an extra field) for separating concerns, but so far no actionable need has materialized. One could do quints if necessary. We did also in past times talk to Systap, the vendor of the Bigdata® RDF store, about doing reification right, which would resolve many of these things in one go.
So anyway, it is time to do graph-level security right. The technical approaches depend on how many grantable objects one has, and how many distinct security principals ("grantees") there are. If the separately grantable objects are numerous (e.g., a billion distinct graphs), and if the typical principal has access to most, it makes sense to enumerate for each principal the items that are denied instead of enumerating the granted ones.
There is a related case of scoping queries to a variable set of graphs. This corresponds to cases like "give me information from sources with an over-average reliability rating." There is also the security-related special case of scoping to non-classified material. This has the special feature that one part of the query must know what the classified material is, so as to exclude that. However, since from the user's viewpoint the classified material does not exist, the query must run at two different access control levels and must prevent leakage between the two. This is routinely done with SQL views and SQL policy functions so there is nothing new here, but this is just not something the RDF people have thought much of.
In the hosted-application scenario there is a slowly-changing, relatively-small set of graphs that are in scope for a user session. Queries will only consider data where the graph is in this set. This set is typically different for each principal. The distinct end users are not extremely numerous; maybe in the thousands.
In a publishing setting, there is a small set of restricted content and a large number of principals; however, many principals will have exactly the same exclude list (e.g.: no special access; paid access to content class A or B or both; etc.). The number of access compartments is small relative to the number of principals, and many independent principals will share the same set of premium content. As a result, the number of distinct exclusion lists will not be extremely large, even if the lists may be mid-size.
How does one build this into the database? This is done by a selective hash join for granted lists, and a hash anti-join (NOT EXISTs operator) for the exclusion lists. From the TPC-H series, we recall that there is an invisible hash join operation that can be merged into a table scan/index lookup. This is the ideal building block for this task, except that it needs to be extended to also have a negative form. The negative form also occurs in TPC-H -- for example, in Q16, where one considers only stock from suppliers with no customer complaints.
NOT EXISTs
There are a few distinct cases of application behavior where the cost of enforcing graph-level access will be different. For example, in OpenPHACTS, a query is often a union/join between graph patterns where the graph is fixed. In this way, each triple pattern has exactly one named graph where it can be matched, but many named graphs are mentioned in the query. In this case, the access check has no cost, or the cost is a vanishingly small constant. In the case of the hosted application, where the named graph corresponds to a unit of update ("row" or "document," as discussed above), the query typically does not specify a named graph, so each triple pattern can match anywhere within the visible graphs. There the check is enforced at each triple pattern, but this is always against the same list (i.e., hash table), and the hash table will most often fit in CPU cache. Most of the accesses will find a match in the hash table.
In the publishing case, where relatively small premium content is to be excluded, the named graph will also generally not be specified; but it can happen that some parts of the query are required to match within the same named graph -- i.e., there is a pattern like
graph ?g { ?x xx:about <stuff> . ?x xx:date ?dt . filter ( ?dt > ... ) }
Here, the named graph needs to be checked only once for the two patterns. We also note that since most of the content is not restricted, the check against the restriction will nearly always fail -- i.e., the hash lookup will miss. Missing is cheaper than hitting, as mentioned in the TPC-H series. One can use a Bloom filter for low cost miss detection. So it follows that an exclusion list that seldom hits can be maybe 10x bigger than a near-always-hitting inclusion list with the same cost of checking.
So, if inclusion lists are in the 100,000-entry range and exclusion lists in the 1,000,000-item range, we are set. What if this is not so? In that case, we will rely on two-level tricks and encoding of application information into supposedly meaning-free identifiers. This is not sem-head material but is well within the domain of database science. For example, if the graph is a marker of provenance or update locality, then all graphs of the same owner or security classification may have an identifier in a certain range or ranges. Then we may only check for range, i.e., omit the low few bits from the hash lookup, knowing that any graph id in the range will have the same security behavior. This does introduce some more burden on the application, and will add some special cases when moving assets between security principals, but then life is like that. If there is a big-ticket application that depends on this, then such things can be provided as custom development.
I will here refer you to David Karger's immortal insight at the Semantic Big Data panel at ESWC 2013, where he said that "big data is very much about performance, and performance is usually obtained by sacrificing the general for the specific." So it is.
So far, I have made a summary where the many people with whom this matter has been touched upon may recognize their specific case. Next I will show some experiments. We use a copy of the URIBurner dataset, as this is a collection with large numbers of tiny graphs that can be assigned different security attributes.
To be continued.
We are getting ready to run BSBM benchmarks at a 500 billion triple scale over the holidays. This will be done on the Scilens cluster at CWI. The system has 16 nodes, each with 2x Xeon E5-2650, 256 GB RAM, and QDR InfiniBand. We will use 12 of these, for a total of 3 TB RAM. I will blog about the experiences in January, after the experiment is done. This is the final LOD2 (EU FP7 project) benchmarking piece.
I will here give results for practice runs on my desktop, with 1/50th the data and 1/8th the capacity. This is 10 billion triples on a system of two machines, each with 2x Xeon E5-2630, 192 GB RAM, and QDR InfiniBand.
We start with Explore with 16 clients. The clients are evenly divided over 4 server processes, with 2 processes per machine. We do a run of 100 --
% ./bibm/bsbmdriver -seed 1287654 -dg http://bsbm.org -t 300000 \ -idir /1d4/bsbm_10000/td_data -uqp query -uc bsbm/explore \ -mt 16 -runs 500 http://madras:8604/sparql \ http://madras:8605/sparql http://masala-i:8606/sparql \ http://masala-i:8607/sparql
The QMPH (query mixes per hour) is 12683.046. The run is 1500 query mixes; it takes 425s. The warmup is about 3000 query mixes with a different seed. The details are in 10gc16e.xml. The sample configurations are as in virtuoso.global.ini, cluster.global.ini, and virtuoso.ini.
We note that there is a total of 20M 8 KB buffer pages, and after running 1000 or so different query mixes, about 16M get used. So the working set is about 16M * 8 KB = 128 GB, for 10 Gt ("Gigatriples"). The quads themselves take less space than that, but the benchmark also accesses some literals. At 50x the size and at best 2.5 TB worth of buffers, there may be a problem.
The total database files are around 800K pages * 8 KB/slice * 48 slices = 272 GB. This times 50 is 15.3 TB. I do not think the system has that much SSD space, and it has about 3 TB per node in 3-way striped RAID 0 disk. There will be some disk access during the explore run. So we will report one number with steady state from disk, and another for a rerun of a set of queries where data is known to come from memory.
We note that there is speculative read, taking whole extents in when not all pages get used. Whether one reads 8 KB or 2 MB (the extent) makes little difference, so may as well do whole extents. Subtracting the speculatively-read pages that are not in fact accessed, we get 1.5M working set per box, which would indicate that we will make it into a RAM-based steady-state on the 500 Gt Scilens experiment. We shall see.
Loading may present some problems, since last time we had two boxes with significantly worse disk-write throughput than the rest. The Virtuoso I/O system is now different, with more emphasis on writing contiguous sequential ranges of pages, irrespective of the time the page became dirty. But there is nothing that a bad disk will not screw up.
We go to BI. First single user (power) run. This is preceded by one single user BI run with a different seed, for warmup. The power run has 4 consecutive query mixes; the throughput run has the same 4 query mixes concurrently.
Power query mix run time: 229 (arithmetic mean)
Throughput query mix run time: 269s (arithmetic mean)
The test driver output follows, the full result summaries are in 10gc-4pwer.xml and 10gc-4tp.xml.
% ./bibm/bsbmdriver -drill -t 300000 -dg http://bsbm.org -idir \ /1d4/bsbm_10000/td_data -uqp query -uc bsbm/bi -mt 1 -runs 4 \ http://madras:8604/sparql % java -Xmx256M com.openlinksw.bibm.bsbm.TestDriver -qrd ./bibm \ -dg http://bsbm/ -drill -t 300000 -dg http://bsbm.org -idir \ /1d4/bsbm_10000/td_data -uqp query -uc bsbm/bi -mt 1 -runs 4 \ http://madras:8604/sparql Thread 1: query mix: 0 255.074 s, total: 255.195 s Thread 1: query mix: 1 170.622 s, total: 170.667 s Thread 1: query mix: 2 295.642 s, total: 295.691 s Thread 1: query mix: 3 188.885 s, total: 188.935 s Benchmark run completed in 910.493 s
% ./bibm/bsbmdriver -drill -t 300000 -dg http://bsbm.org -idir \ /1d4/bsbm_10000/td_data -uqp query -uc bsbm/bi -mt 4 -runs 4 \ http://madras:8604/sparql http://madras:8605/sparql \ http://masala-i:8606/sparql http://masala-i:8607/sparql % java -Xmx256M com.openlinksw.bibm.bsbm.TestDriver -qrd ./bibm \ -dg http://bsbm/ -drill -t 300000 -dg http://bsbm.org -idir \ /1d4/bsbm_10000/td_data -uqp query -uc bsbm/bi -mt 4 -runs 4 \ http://madras:8604/sparql http://madras:8605/sparql \ http://masala-i:8606/sparql http://masala-i:8607/sparql Thread 2: query mix: 1 474.435 s, total: 474.498 s Thread 1: query mix: 0 669.552 s, total: 669.663 s Thread 3: query mix: 3 914.943 s, total: 915.009 s Thread 4: query mix: 2 1077.138 s, total: 1077.283 s Benchmark run completed in 1077.285 s %
We notice quite a bit of variability between the different query mixes. This comes from parameter choices, and runs with different seeds are therefore not comparable, unless they be very long.
What does this promise for the 500 Gt runs? The complexities are n·log(n), with the log pretty constant. There will be some loss of speed from less locality of reference. I expect run times that are 8x or so higher, 50x more data, and about 8x more CPU. The dataset does not scale that linearly throughout, as the product hierarchies may have different depth.
The working set will be OK; on each of the 4 processes, there are 3.1M buffers used, of which 2M are just read ahead, not really hit. When you read, read the whole extent of 256 pages while at it; costs the same and may prefetch. So actually, 4.4M buffers used is 34 GB, times 50 is 1.7 TB. Will fit.
In the interest of advancing standards of disclosure, I am also providing the test driver output for the runs, and an excerpt of the server query log for an interactive query mix and a BI query mix. The query texts and plans are there, with per operator time and cardinality.
OpenStreetMap (OSM) is one of the largest open datasets. The GeoKnow project of which OpenLink is a part is, among other things, drawing on this resource. The EU FP7 project LOD2 has developed a geospatial drill-down benchmark for RDF and here we will be applying it to PostGIS and Virtuoso in plain SQL.
Generic relational performance is the necessary predecessor of any graph performance, so we will talk SQL at first; the Linked Geodata RDFisms will come later.
In this article, we will look in detail at ETL> from PostGIS to Virtuoso via SQL federation. In the TPC-H series, we looked at bulk loading from files which are 1:1 shaped like the tables, but life is seldom this simple.
Here we will see how to change normalization in schemas, from a denormalized key-value pair-structure in PostGIS, to a normalized "triple table" in Virtuoso. We will also look at data type conversion, overall data transfer speed, and automatic parallelization.
ETL, even with medium data sizes, like with OSM at a little under 600 GB in PostgreSQL files, is a performance game, like everything in database. Data must move fast, expressing the transformation logic must be compact, and parallelism must be automatic. Next to nobody can write parallel code and the few that can are needed somewhere else.
I suppose, without insider knowledge, I would dump the data into CSV; do some sed scripts or the like for the transformation, maybe in Hadoop if the data were really large; and then I would use the target database's bulk load utility. This makes the steps so simple that they can be delegated with some possibility of success. This is what data integration tends to be like. As we saw with the TPC-H bulk load, CSV loading is foolproof, easy, and fast.
Further, I would not make a JDBC program to first read one database and write into another because this would have to be explicitly multithreaded, would have loops, would require use of array parameters in order not to get killed by client server latency, would be liable to run into oddities of JDBC implementations, and so forth. Plus, this could be a few hundred lines long, and the developer would come back with questions like, "Why is it slow?" Well, it is slow because of lock contention, because transactions are not turned off, or something of the sort. No. Shell scripts and bulk load anytime.
Now we will explore a third possibility: vectored stored procedures. It is true that nobody uses stored procedures. They are sooo nineties -- where's the client side Javascript? I will introduce a design pattern that runs table-to-table copy and normalization changes, with perfect parallelism and scale-out, in SQL procedures. This will work from the file system as well, since a CSV file can be accessed as a table. For number of code lines, time-to-solution, as well as run-time performance, this is unbeatable.
The LOD2 project developed a benchmark for geo retrieval in SPARQL. We have adapted the benchmark to work in SQL against the PostgreSQL OSM schema and a Virtuoso SQL equivalent.
The intent is to run the LOD2 geobench against the planet-wide OSM dataset in PostgreSQL and Virtuoso. With Virtuoso we will also compare scale-out and single server versions.
The PostgreSQL OSM implementation exists in both normalized and denormalized variants. The denormalized variant uses an H-Store column type, which is a built-in non-first-normal-form set of key-value pairs that can occur as a column value. In Virtuoso, the equivalent would be to use an array in a column value, but this is not very efficient. Rather, we will go the normalized route, getting outstanding JOIN performance and space efficiency from the column store. Since this is a freestyle race, we take the liberty of borrowing the IRI data type from the RDF side of Virtuoso. This offers a fast mapping between names and integer identifiers. This is especially handy for tags. PostgreSQL likely has some similar encoding as part of the H-Store implementation.
The geometry types are transferred as strings, and then re-parsed into the Virtuoso equivalents. The EWKT syntax is compatible between the systems. The potentially long geometries are stored in a LONG ANY column, and the always short ones (e.g., bounding boxes and points) into an ANY column. In both implementations, there is an R-tree index on the points but not on the linestrings.
We will later look at space consumption and access locality in more detail.
To ETL the PostgreSQL based dataset, we attach the OSM tables as remote tables using Virtuoso's SQL federation (VDB) feature. This is not in the Open Source Edition (VOS) but you can get the same effect by dumping the tables into files, and defining the files as tables with the file-table feature.
The tables which have no need of special transformation go with just an INSERT ... SELECT, like this:
log_enable (2); INSERT INTO users SELECT * FROM users1 &
The tables which have special datatypes (like geometries or H-Stores) need a little application logic, like this:
CREATE PROCEDURE copy_ways () { log_enable (2); RETURN ( SELECT COUNT (ins_ways ( id, version, user_id, tstamp, changeset_id, tags, linestring_wkt, bbox_wkt ) ) FROM ways1) ; }
The first line disables logging and makes inserts non-transactional. The rest does the copy. The scan of the remote table is automatically split by ranges of its primary key, so there is no need for explicit parallelism. The ins_ways function is called on each thread, on a whole vector of values for each column. In this way operations are batched together, gaining by locality, and eliminating interpretation overhead.
The ins_ways procedure follows:
CREATE PROCEDURE ins_ways ( IN id BIGINT, IN version INT, IN user_id INT, IN tstamp DATETIME, IN changeset_id BIGINT, IN tags ANY ARRAY, IN linestring VARCHAR, IN bbox VARCHAR ) {
-- The vectored declaration means that each statement is run on the full input before going to the next.
-- Thus, by default, the insert gets 10K consecutive rows to insert. The conversion functions like st_ewkt_read are also run in a tight loop over a large number of values.
VECTORED; INSERT INTO ways VALUES ( id, version, user_id, tstamp, changeset_id, st_ewkt_read ( charset_recode ( linestring, '_WIDE_', 'UTF-8' ) ), st_ewkt_read ( charset_recode ( bbox, '_WIDE_', 'UTF-8' ) ) ) ;
-- The tags is a vector of strings where each string is a serialization of the H-Store content. split_and_decode splits each string into an array at the delimiter.
tags := split_and_decode ( TRIM ( REPLACE ( REPLACE ( REPLACE ( REPLACE ( tags, '"=>"', '!!!' ), '&', '%26' ), '", "', '&' ), '=', '%3D' ), '"' ) ); NOT VECTORED { DECLARE a1, b1 VARCHAR ; DECLARE ws, vs, ts ANY ARRAY ; DECLARE n_sets, n_tags, set_no, wid, inx, pos, fill INT ;
-- We insert triples of the form tag, way_id, tag_value. For each of these, we reserve an array of 100K elements. We put the values into the array, and insert when full or when all rows of input are done. An insert of 100K values in one go is much faster than inserting 100K values singly, especially on a cluster.
tag, way_id, tag_value
ws := make_array (100000, 'ANY'); ts := make_array (100000, 'ANY'); vs := make_array (100000, 'ANY'); fill := 0; DECLARE tag_arr, str ANY ARRAY; n_sets := vec_length (tags);
-- For each row of input to the vectored function:
FOR ( set_no := 0 ; set_no < n_sets ; set_no := set_no + 1 ) { wid := vec_ref (id, set_no); tag_arr := vec_ref (tags, set_no); n_tags := LENGTH (tag_arr);
-- for each tag in the H-Store string:
FOR ( inx := 0; inx < n_tags; inx := inx + 2) {
-- split the tag into a key and a value at the !!! delimiter
str := tag_arr[inx]; pos := strstr(str, '!!!'); a1 := substring(str, 1, pos); b1 := subseq(str, pos + 3);
-- add to the array of key-value pairs to insert
way_tag_add (ws, ts, vs, fill, wid, a1, b1); } } way_tag_ins (ws, ts, vs); } }
Now we define the functions for adding a way, key, value triple into the batch, and for inserting the batch.
way, key, value
CREATE PROCEDURE way_tag_ins ( INOUT ws ANY ARRAY, INOUT ts ANY ARRAY, INOUT vs ANY ARRAY ) {
-- given an array of way ids, tag names, and tag values, insert all rows where the tag is not 0. If the tag is empty, call it unknown instead.
-- The __i2id function replaces the tag name with an IRI ID that is persistently mapped to the name. The insert and the tag name-to-id mapping are done as a single operation. This is a single network round trip for each in a cluster setting.
FOR VECTORED ( IN wid INT := ws, IN tag ANY := ts, IN val VARCHAR := vs ) { IF (tag <> 0) { IF ('' = tag) tag := 'unknown'; INSERT INTO ways_tags VALUES ( __i2id (tag), wid, val ); } } } CREATE PROCEDURE way_tag_add ( INOUT ws ANY ARRAY, INOUT ts ANY ARRAY, INOUT vs ANY ARRAY, INOUT fill INT, IN wid INT, INOUT tg VARCHAR, INOUT val VARCHAR ) {
-- Add at the end of the arrays; if full, insert the content and replace with fresh arrays.
-- The INOUT keyword means call by reference, which is important; you do not want to copy larger arrays, and you want to return new ones to the caller.
ws[fill] := wid; ts[fill] := tg; vs[fill] := val; fill := fill + 1; IF (100000 = fill) { way_tag_ins (ws, ts, vs); fill := 0; ws := make_array (100000, 'ANY'); ts := make_array (100000, 'ANY'); vs := make_array (100000, 'ANY'); } }
The same logic can be applied to any simple data transformation task. Vectoring and automatic parallelism make sure that there is full platform utilization without explicitly working with threads. The NOT VECTORED {} section allows the procedure to aggregate over all the values in a vector. The FOR VECTORED construct in the INSERT function switches back into running on a vector composed in the scalar part so as to get the insert throughput and cluster-friendly message pattern.
Because every non-1MF hack in every application is different, it is not possible to make this fully declarative. But the code is very repetitive and a skeleton could be easily generated from the schema.
In the next installment, we we will analyze the performance of copying the full Open Street Map dataset from PostgreSQL to Virtuoso. To be continued...
Last week the RDF and graph DB benchmarking project, LDBC, had its 3rd Technical User Community meeting in London, held in collaboration with the GraphConnect event. This meeting marks the official launch of the LDBC non-profit company which is the successor of the present EU FP7 project.
The meeting was very well attended, along with most of the new advisory board. Xavier Lopez from Oracle, Luis Ceze from the University of Washington, and Abraham Bernstein of the University of Zurich were present. Jans Aasman of Franz, Inc., and Karl Huppler, former chairman of the TPC, were not present but are signed up as advisory board members.
We had great talks by the new board members and invited graph and RDF DB users.
Nuno Carvalho of Fujitsu Labs presented on the Fujitsu RDF use cases and benchmarking requirements, based around analytics streaming on time series of streaming data. The technology platform is diverse, with anything from RDF stores to HBase. The challenge is integration. I pointed out that with Virtuoso column store, you could now efficiently host time series data alongside RDF. Sure, a relational format is more efficient with time series data, but it can be co-located with RDF, and queries can join between the two. This is especially so after our stellar bulk-load speed measured with the TPC-H dataset.
Luis Ceze of Washington University presented Grappa, a C++ graph programming framework that in his words would be like Cray XMT, later Yarc Data, in software. The idea is to have a graph algorithm divided into small executable steps, millions in number, and to have very efficient scheduling and switching between these, building latency tolerance into every step of the application. Commodity interconnects like InfiniBand deliver bad throughput with small messages, but with endless message combination opportunities from millions of mini work units, the overall throughput stays good. We know the same from all the Virtuoso scale-out work. Luis is presently working on GraphBench, a research project at Washington State funded by Oracle for graph algorithm benchmarking. The major interest for LDBC is in having a library of common graph analytics as a starting point. Having these, the data generation can further evolve so as to create challenges for the algorithms. One issue that came up is the question of validating graph algorithm results: Unlike in SQL queries, there is not necessarily a single correct answer. If the algorithm to use and the count of iterations to run is not fully specified, response times will vary widely. Random walks will anyway create variation between consecutive runs.
Abraham Bernstein presented about the work on his Signal/Collect graph programming framework and its applications in fraud detection. He also talked about the EU FP7 project ViSTA-TV which does massive stream processing around the real time behavior of internet TV users. Again, Abraham gave very direct suggestions for what to include in the LDBC graph analytics workload.
Andreas Both of Unister presented on RDF ontology-driven applications in an e-commerce context. Unister is Germany's leading e-commerce portal operator with a large number of properties ranging across travel to most B2C. The RDF use cases are many, in principle down to final content distribution but high online demand often calls for specialized solutions like bit field intersections for combining conditions. Sufficiently advanced database technology may also offer this but this is not a guarantee. Selecting travel destinations based on attributes like sports opportunities, culture, etc., can be made into efficient query plans, but this also requires perfect query plans for short queries. I expect to learn more about this when visiting on site. There is clear input for LDBC in these workloads.
There were three talks on semantic applications in cultural heritage. Robina Clayphan of Europeana talked about this pan-European digital museum and library, and the Europeana Data Model (EDM). C.E. Ore of the University of Oslo talked about the CIDOC CRM (Conceptual Reference Model) ontology (ISO standard 21127:2006) and its role in representing cultural, historic, and archaeological information. Atanas Kiryakov of Ontotext gave a talk on a possible benchmark around CIDOC CRM reasoning. In the present LDBC work, RDF inference plays a minor role, but reasoning would be emphasized with this CRM workload, in which the inference needed revolves around abbreviating unions between many traversal paths of different lengths between modeled objects. The data is not very large but the ontology has a lot of detail. This still is not the elusive use case which would really require all the OWL complexities. We will first see how the semantic publishing benchmark work led by Ontotext in LDBC plays out. There is anyhow work enough there.
The most concrete result was that the graph analytics part of the LDBC agenda starts to take shape. The LDBC organization is getting formed, and its processes and policies are getting defined. I visited Thomas Neumann's group in Munich just prior to the TUC meeting to work on this. Nowadays Peter Boncz, who was recently awarded the Humboldt Prize, goes to Munich on a weekly basis, so Munich is the favored destination for much LDBC-related work.
The first workload of the Social Network Benchmark is taking shape, and there is good advance also in the Semantic Publishing Benchmark. I will in a future post give more commentary on these workloads, now that the initial drafts from the respective task forces are out.


text:
Hollywood, California, United States of America (USA).
Interior of an aircraft. Stewardess chats to passengers. Nice shots of passengers. Pan American aircraft lands at Los Angeles airport. Various shots of sights of Hollywood. Includes Chinatown, hotels, shopping streets, Sunset Boulevard,...
We always welcome comments and more information about our films.
All posts are reactively checked. Libellous and abusive comments are forbidden.
"Stars in scene are Tony Curtis, Natalie Wood and Jack Lemmon" - Peter Falk is also in this scene.


text:
Radio personality Don Wade remembered as 'legend'
By MITCH DUDEK Staff Reporter September 9, 2013 5:32PM
Updated: September 9, 2013 6:45PM
Heavyweight politicians weighed in Monday on the death of Chicago radio personality Don Wade, praising him as a "legend in his own right" whose voice will resonate in Chicago for years to come.
U.S. Sen. Mark Kirk, Mayor Rahm Emanuel and Gov. Pat Quinn all issued statements commemorating Wade, who entertained and informed WLS-AM (890) listeners for nearly 30 years, most recently along side his wife on the "The Don Wade & Roma Show."
Wade, 72, died Friday after battling a brain tumor.
Statement from Sen. Mark Kirk:
During my tenure in Congress, Don and Roma were always gracious to allow me on their show to discuss some of the most important issues facing America. Don's depth of knowledge as to what was happening in Chicago and throughout the world was second to none. It was always fun going on the air with Don, not only because of his insight but also the sense of humor that only he could bring to whatever issue we were discussing. After becoming both an avid listener and regular guest on the show, I learned of Don and Roma's commitment to an issue near and dear to my heart – veterans. Soon I met their son, Hunter, a U.S. Marine, who flew with the Blue Angels. Don was a proud and devoted father, and he and Roma traveled all over the country to watch Hunter fly. Whenever they were in Washington, we would get together for a quick bite where Don and Hunter would bestow the virtues of the Army and Marines and I would remind them that were it not for the Navy they would never make it anywhere. In 2010, Don and Roma were the first to reach out and say they were coming to Washington to broadcast live at my U.S. Senate swearing-in ceremony. That was pretty spectacular. While recovering from my stroke, Don and Roma often sent heartfelt notes of encouragement. It was only a few weeks before my return to the senate that I learned of their retirement and of Don's diagnosis. I was saddened but also knew that Don was a fighter. I often tell people the one thing I learned from my stroke is to never ever give up and I knew Don wouldn't, nor did he. Don never gave up on the people of Illinois, fighting vociferously for a cleaner state government, fighting for what he knew was right, and he never gave up fighting the cancer that eventually took him. That's the Don I knew and loved – a legend in his own right.
Statement from Mayor Rahm Emanuel:
As a city, we are saddened to hear of the passing of Don Wade. For nearly three decades, Don entertained and enlightened his listeners and the lifetime of contributions he made to our city will be truly missed. Don's zeal for his job was matched only by his love for his wife Roma and though his voice has fallen silent, his influence will echo on in Chicago for years to come.
Don Wade wasn't only a legendary radio star, he was a devoted husband and father who knew the value of family. When you were on the air with Don, you could tell he and Roma were made for each other. Their partnership attracted millions of listeners over their historic career and set a high bar for success in Chicago radio. I admired not only their passion for family and compelling radio, but also their commitment to our nation's veterans. Don earned a place in Chicago's heart. My sincere sympathies and prayers are with Roma, Hunter, Heather and their entire family.


text:
Man Charged In Lewis County Slayings To Appear In Courtfrom Eyewitness News Online Reported by: Associated Press Web Producer: Jeff Morris Reported: Sep. 30, 2013 10:24 AM EDT Updated: Sep. 30, 2013 10:38 AM EDT
Weston. Lewis County
, West Virginia
A man charged with killing his mother and grandmother in 1999 is set to appear in court Monday. Joseph Metz, 39, of Horner is set to attend a probable-cause hearing with Special Magistrate Tammy Marple, who ordinarily sits in Harrison County. The two magistrates in Lewis County, where the crimes occurred, have been recused. Metz was charged last week with two counts each of murder, kidnapping and robbery. He was being held in jail without bond. Marcus Maxine Stalnaker and her daughter, Mary Friend disappeared Dec. 1, 1999, after leaving their Jane Lew home on a Christmas shopping trip. Their silver-gray station wagon was found five days later. Authorities have charged 58-year-David Martin Hughes and 51-year-old Charles S. Freeman with the same crimes. They are from Archbold, Ohio, and are in custody pending extradition. Copyright 2013 Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed. MORE NEWS FROM EYEWITNESS NEWS
Send email to email@example.com for information or comments concerning WCHS-TV Eyewitness News.
Copyright ©2014, WCHS-TV8. Portions are Copyright 2014 Associated Press. All rights reserved. This material may not be published, broadcast, rewritten, or distributed.
WCHS ABC 8 provides local news, weather forecasts, traffic updates, notices of events and items of interest in the community, sports and entertainment programming for Charleston and nearby towns and communities in the Tri-State area, including Huntington, Dunbar, Marmet, Montgomery, Nitro, South Charleston, St. Albans, Cedar Grove, Chesapeake, Clendenin, East Bank, Glasgow, Pratt, Cross Lanes, Elkview, Pinch, Sissonville, Big Chimney, Cabin Creek, Chelyan, Davis Creek, Institute, Jefferson, Loudendale, Mink Shoals, Pocatalico, Quick, Quincy, Rand, Buffalo, Eleanor, Hurricane, Nitro, Poca, Winfield, Culloden, Fraziers Bottom, Hometown, Red House, Scott Depot, Teays Valley, Danville, Madison, Hamlin, Logan, Chapmanville, Man, Delbarton, Kermit, Gilbert, Matewan, Williamson, Summersville, Richwood, Flatwoods, Gassaway, Sutton, Spencer, Ravenswood, Ripley, Mason, Point Pleasant, Ashland, Pikeville, Ironton, Portsmouth, Gallipolis, and Athens. |


text:
Clear Bulb Lights
Clear Bulb Lights
Currently Out of Stock. No Expected Ship Date.
Your Price: $19.99 each
Party Lights!
Add party lighting to your next party or event with these Clear Blub Lights. The Clear Bulb lights are surrounded by plastic globes and each strand is 15 feet long. Each strand features 15 light bulbs measuring approximately 2 inches in diameter. Use the the lights to accent decks, rails, stairways or hang them from the ceiling.
Please allow ample time for delivery. Our ship date for this product is noted in your shopping cart. Many items are shipped separately, so please allow extra time for these items to arrive. Shipping charges are based on the value of the merchandise and not the number of shipments. For additional shipping information, contact our Customer Service Department at (firstname.lastname@example.com or 1-800-314-8794).
Detailed shipping information
Detailed shipping information
Questions & Answers
Do you have questions about this product?(earn points for answers!)
get answers from real customers and in-house experts with AnswerBox.
4 Questions | 5 Answers
Displaying questions 1-4
Are the globes surrounding the bulb made from plastic or glass?Asked on 8/1/2012 by Amy2 answers
The globes are plastic.Answered on 8/7/2012 by csrA:
The globes are made of plastic.Answered on 8/7/2012 by csr
Do these have to be plugged in into an outlet? Or is it battery operated?Asked on 2/4/2012 by Stephanie1 answer
Yes, these lights need to be plugged in.Answered on 2/6/2012 by CSR
what size are the bulbs and how many come on a strand?Asked on 11/7/2011 by simple anne from Toledo Ohio1 answer
The Clear Blub lights are 15 ft long and make great party lights. Each strand features 15 light bulbs measuring approximately 2 inches in diameter.Answered on 11/11/2011 by csr
Are these attached end to end...if so how many can be used together???Asked on 3/27/2011 by Anonymous1 answer
Yes, the Clear Bulb Lights have a male/female end and we do not recommend that you connect more than 3 strands at one time.Answered on 3/28/2011 by CSR
Displaying questions 1-4
Recommended Products
People who viewed "Clear Bulb Lights" also viewed


text:
Air Seychelles appoints new CEOAir Seychelles, the national airline of Seychelles, has appointed Manoj Papa as its new chief executive officer. Papa joins from South Africa Airways, where he held the position of acting general manager (commercial) and succeeds More… |
Air Seychelles posts strong Q2 resultsAir Seychelles, which is partly owned by Abu Dhabi carrier Etihad Airways, recorded a strong second quarter and half-year financial performance, reflecting continued solid growth and success in its turnaround strategy. During the More… |
Air Seychelles, Etihad expand codeshare to KuwaitAir Seychelles, the national airline of the Republic of Seychelles, has expanded its codeshare partnership with UAE's Etihad Airways for travel to Kuwait over Abu Dhabi. The newly added codeshare destination will see A More… |
Etihad extends codeshare with Air SeychellesEtihad Airways, the national carrier of the UAE, has extended its codeshare agreement with equity alliance partner Air Seychelles to include new connections to Australia. The new codeshare flights offer seamless connections to Sey More… |
Etihad Cargo adds Washington DC to networkEtihad Cargo, the cargo division of UAE flag carrier Etihad Airways, has added Washington DC to its global cargo network, in addition to boosting frequency to Hong Kong with strategic partner Air Seychelles. The US capital is Etih More… |
Etihad, Air Seychelles ink Hong Kong codeshareEtihad Airways, the national airline of the United Arab Emirates, has added Hong Kong to its global network through a new codeshare with equity alliance partner, Air Seychelles. The inaugural Abu Dhabi to Hong Kong flight, operate More… |
Etihad equity partner returns to profitUAE national airline Etihad said its equity partner Air Seychelles, the flag carrier of Indian Ocean island country Seychelles, has posted its first net profit after three years of losses. A net profit of $1 million was achieved j More… |
Air Seychelles boosts ME frequenciesAir Seychelles has announced plans to increase its weekly flights to the Middle East region from 69 to 87 via Abu Dhabi starting from March 24 besides adding more frequencies to Johannesburg and Mauritius. Announcing key cha More… |
Etihad to launch HK codeshare serviceUAE national airline Etihad Airways said its new codeshare services to Hong Kong in deal with equity and partner Air Seychelles will begin from March 24. Hong Kong is Etihad Airways' fourt More… |
Etihad to offer codeshare service to Hong KongEtihad Airways, the national airline of the UAE, will commence codeshare services to Hong Kong in February, 2013 in partnership with Air Seychelles. The three return services per week between Abu Dhabi and Hong Kong will be operat More… |


text:
Tuesday, March 11, 2014
Follow us:
Mohawk Valley
BALLSTON SPA, N.Y. -- A man allegedly tried to rob a local Stewart's with a BB gun resembling a Beretta handgun. Saratoga County Sheriff's say it happened early Thursday morning at the Ballston Spa Stewart's on Route 67. They say a K-9 dog helped track down Kenneth Geel. Geel is charged with attempted robbery in the second degree.