text:
Click to expand
What do you think? Give us your opinion. Anonymous comments allowed.
Reply+20#63 - vycanismajoris (12/08/2012) [-]
Reply+1#88 to #63 - CrazyPsycho (12/08/2012) [-]
**CrazyPsycho rolled a random image posted in comment #2075539 at MLP Friendly Board ** you're one in a million.. because i guarentee your friends will laugh their asses off when you get hurt...


text:
18 Awesome Dad Hacks
A handy compendium of clever camping, lawn and home tricks.
Get pumped with Coach T. Mud. Just don't blame us if you wake up incredibly sore tomorrow.
Find where you've fallen off the get-fit train, and get back on it!
We team up with Today Show's Al Roker and Josh Turner to help a family man professionally record his own song.
The NFL star grew up with two devoted parents; Dr. Arica Johnson works wonders for those who aren't so lucky…
Inspiring profiles, handy gift guides, funny videos and more!
After a change of custody, a tormented teen finds a real role model...
A handy compendium of clever camping, lawn and home tricks.
How Tom Roach bred a Derby winner—and helped a writer find his voice.
The legendary detective lost his own dad early, then mentored more young cops and showbiz types than you can count.
As San Andreas star Alexandra Daddario proves with her cool baby blues, it's a powerful social tool from office to bar.
This Memorial Day, century-old photos remind us freedom isn't free.
Even in the modern age, there are bedrock skills no gentleman should lack. Here's how to mas …
What to think when sunlight streams in on that entrancing princess.
To make ladies swoon or at least not cringe, master these skills. (Yes, grilling is one of t …
How to chisel the body (double) of Avengers' hammer-wielding Norse god.
If your prospective fitness shaman drops any of these flawed phrases, keep shopping.
A direct response to last week's highly controversial list, of course.
The fittest season of your life starts here.
We are getting bigger and looking for assistance. No joke.
Next time you're trying to snag a lady, try curbing these unattractive tendencies in the pro …
Because when you think about it, a lot of what they get derided for is pretty cool...
The founder of a mobile personal training company shares his wisdom.
Expert tips! Stay trim while you (pretend to) work.
Funny how it goes hand in hand with "quiet."
Why having endless options is not always a good thing.
Message submitted. Thanks!

subset: commoncrawl


text:
VEHICLE SELLS WITH CURRENT TITLE!!! All original, very solid body, great restoration project. It has a new brake master cylinder and all 4 wheel... More
1936 Ford Model 68-730 De Lux Sedan With A Ford Flat Head V-8 and a Three Speed Transmission This Is A All Original Sedan... More
302 CID V-8 ... C4 automatic transmission ... Power steering ... Front disc brakes ... Power windows ... Power seat ... Vintage A/C ... If... More
- All steel body- One family owned for the last 50 years- Believed to be the only 1938 convertible sent from factory to Brunn... More
This desirable 1940 Ford Deluxe convertible really has the look, but is also a reliable cruiser you can drive all night. This car came... More
All steel 2-door Sedan in Red ... Beige tweed & leather interior ... '49 Merc Flathead V-8 ... Vintage A/C ... Top shelf build... More
1939 Ford Deluxe Four Door Convertible Sedan #12 of 3,000 made This car was perviously owned by Don Garlits All original, never apart Engine Turns over (Will run... More
More Information To Follow Soon "OWNER" Rates the Following * ENGINE VERY GOOD BODY VERY GOOD CHASSIS/FRAME VERY GOOD TIRES VERY GOOD COACHWORK/INTERIOR VERY GOOD ELECTRICAL VERY GOOD TRANSMISSION VERY GOOD PAINT VERY GOOD OVERALL CONDITION VERY GOOD * The consignor rates the following... More
Suicide doors, nice paint, good solid body, gauges and radio, good chrome, flathead V8, 3spd, runs good ... More
GR Auto Gallery is pleased to present this 1937 Ford Slantback Sedan for purchase. The pre-WWIIcoupes are really difficult to beat when it comes... More
1940 Ford Deluxe Coupe, All Steel Body, No Rust, Fresh Paint, Complete New Restoration. 350/350 8" Ford rear (3.25), Mustang 2 Tubular front end,... More
Beautiful restoration 1190 miles ago, this striking classic is ready for road trips or car shows. Restoration included a complete engine rebuild as well... More
47 Ford Deluxe Coupe. Feather (light) Grey. Dearborn winner. Fresh flathead V-8 with merc crank and cam, heads, dual carbs and headers. New tires and... More
Chassis: 113" wheel base, professionally installed Mustang II front suspension with TGI 2" drop spindles, Granada rotors and springs, mid 70s GM calipers, Ford... More
1941 Ford 11C Pickup For the 1941 model year, with apprehension building about an impending war, Ford trucks were left to carry on with the... More


text:
Chabad of Camarillo celebrates decade of service
Chabad of Camarillo celebrates service
Since its founding a decade ago, Chabad of Camarillo has offered a nurturing place for every Jew regardless of background or affiliation, according to its director Rabbi Aryeh Lang.
Subscribe to the Ventura County Star
Ready to subscribe to the Ventura County Star? Choose between a Premium or Digital subscription below.
Need Help? Call us at 1-877-710-6182.
Monday-Friday: 6am-3pm / Saturday: 6:30am-10:30am / Sunday: 7am-11am


text:
Cavaliers Tickets
You can purchase Cavaliers Tickets with No Service Fees or Hidden Charges on any tickets! All Cavaliers Tickets come with a 100% Guarantee to Legitimate and delivered on time.
We currently have no Cleveland Cavaliers Tickets available, but we'll send you an email when we do!
Your private information will not be shared with third party vendors.
We do not store credit card information.
Tickets are currently not available online for one of the following reasons. Please check back for availability.
1.Tickets may not be on sale yet.
2.Tickets may not be available at this time. More tickets may become available later.
3.Tickets may not be available online just hours before an event occurs.
Barry's Tickets is about customer satisfaction which starts with making sure all your transactions are 100% secure. The Barry's Tickets Checkout has a verified SSL certificate which means all your data is completely safe and encrypted when ordering from either your PC, mobile device or tablet.
Online Ordering: Use our Interactive Cavaliers Seating Chart to do things like sort Cavs Tickets by Price, Section or Zone and you can even compare multiple sections at one time. At Barry's we offer our customers two convenient methods of purchase: credit card or PayPal.
Call our Office: Call our office at (866)708-8499 and speak to a real, live Barry's Tickets employee who can help purchase tickets over the phone, acquire parking, provide venue information and some useful event tips!
Delivery of your tickets: Many Cavaliers Tickets ordered online or over the phone can be delivered electronically! Take advantage of our tickets eligible for E-Download and print your tickets at your convenience. Prefer traditional delivery? Select Federal Express to deliver your tickets to your credit card billing address at checkout.
Barry's Tickets, for over 25 years, has ensured all ticket orders are not only 100% guaranteed safe and secure, but also guaranteed to be authentic. At Barry's, we work hard to make sure all Cleveland Cavaliers vs Philadelphia 76ers Tickets are delivered to on time...even last minute purchases! Our team strives to make sure every customer receives the seats ordered, with a 100% refund for a cancelled Cavaliers game that isn't rescheduled.
More Cavaliers Information:
Lebron is back and with the addition of Kevin Love the Cavaliers are one of if not the favorite to win the NBA Championship. The Cavs open their home schedule Oct 30th against the New York Knicks and Carmelo Anthony at The Q. The Cavaliers will play on Christmas Day against the Miami Heat and the Spurs make one appearance in Cleveland at the The Q on Nov 19th a game sure not to be missed. New Years eve will see the Cavaliers and the Bucks tip off. Lob City and the Clippers come into town on Feb 5th and the Lakers with hopefully Kobe Bryant on Feb 8th.
You can view the Cavaliers Schedule on this page or click Cavaliers Schedule to see another version of their NBA regular season schedule and playoff schedule when available. If for any reason a game on the Cavaliers Schedule is cancelled and not rescheduled or your unable to make the new scheduled date Barry's Tickets offers a 100% refund on your tickets.
Quicken Loans Arena - The Quicken Loans Arena is located at 1 Center Court
Cleveland, Ohio 44115-4001
Quicken Loans Arena
Cleveland Cavaliers Game: 20,562
Hockey: 20,056
Also Seached: Lakers vs Cavaliers Tickets
Clippers vs Cavaliers Tickets
Blazers vs Cavaliers Tickets
Barry's Tickets is a full-service national event ticket marketplace. We are not affiliated with any box office, venue, sponsor, team, performer or other organization.
Any trademarked terms or images that may appear on this page are used for descriptive purposes only. © 2015 Barry's Tickets All rights reserved.


text:
Microfluidics Is On a Roll and...
The New Frontline of Infectious Disease...
The Best Conceptual Framework for Improving...
GBSI Is Taking Action to Reduce...
Scientists recently reported that the use of next-generation sequencing may help improve the treatment strategies for advanced cancer patients with progressing tumors. The study highlighted some challenges that could be holding clinical genomics back. What do you think is the biggest obstacle?
Do you think parents should have predictive testing carried out on their children and adolescents?
Be sure to add email@example.com
to your Address Book or Safe Senders List.
here for instructions.
If you have any questions about your subscription, click
here to email us or call at (914) 740-2189.
You may also be interested in subscribing to the GEN magazine, an indispensable
resource for everyone involved in the business of translating discoveries at the
bench into solutions that fight disease and improve health, agriculture, and the
environment. Subscribe
today to see why over 60,000 biotech professionals read GEN to
keep current in the areas of genomics, proteomics, drug discovery, biomarker discovery,
bioprocessing, molecular diagnostics, collaborations, biotech business trends, and
© 2015 Genetic Engineering & Biotechnology News All Rights Reserved


text:
July 6th 2015
Blek Le Rat 'Faces In The Mirror' at White Walls Gallery
April 15th 2010
Blek Le Rat is opening his new show entitled 'Faces In The Mirror' at San Francisco's White Walls Gallery on May 1st 2010. Showcasing all the usual suspects of Blek Le Rat's iconic images; rats, sheep and beggar's, 'Face In The Mirror' also reveals the new and never seen before, Mona Lisa image.
See video below of Blek Le Rat 'Faces In The Mirror' at White Walls Gallery.
Blek le Rat at White Walls | May 1, 2010 from White Walls Gallery on Vimeo.


text:
VIEWS: 34 PAGES: 12 CATEGORY: Software POSTED ON: 3/23/2010 Public Domain
Structural Joins: A Primitive for Efficient XML Query Pattern Matching Shurug Al-Khalifa H. V. Jagadish Nick Koudas Univ of Michigan Univ of Michigan AT&T Labs–Research firstname.lastname@example.com email@example.com firstname.lastname@example.com Jignesh M. Patel Divesh Srivastava Yuqing Wu Univ of Michigan AT&T Labs–Research Univ of Michigan firstname.lastname@example.com email@example.com email@example.com Abstract This XQuery path expression can be represented as a node-labeled tree pattern with elements and string values as node labels. XML queries typically specify patterns of selection pred- Such a complex query tree pattern can be naturally decom- icates on multiple elements that have some specified tree posed into a set of basic parent-child and ancestor-descendant rela- structured relationships. The primitive tree structured re- tionships between pairs of nodes. For example, the basic structural relationships corresponding to the above query are the ancestor- lationships are parent-child and ancestor-descendant, and descendant relationship (book, author) and the parent-child finding all occurrences of these relationships in an XML relationships (book, title), (title, XML) and (author, database is a core operation for XML query processing. jane). The query pattern can then be matched by (i) match- In this paper, we develop two families of structural join ing each of the binary structural relationships against the XML algorithms for this task: tree-merge and stack-tree. The database, and (ii) "stitching" together these basic matches. tree-merge algorithms are a natural extension of traditional Finding all occurrences of these basic structural relationships merge joins and the recently proposed multi-predicate in an XML database is clearly a core operation in XML query merge joins, while the stack-tree algorithms have no coun- processing, both in relational implementations of XML databases, terpart in traditional relational join processing. We present and in native XML databases. There has been a great deal of work experimental results on a range of data and queries us- done on how to find occurrences of such structural relationships ing the T IMBER native XML query engine built on top of (as well as the query tree patterns in which they are embedded) using relational database systems (see, e.g., [14, 27, 26]), as well SHORE. We show that while, in some cases, tree-merge al- as using native XML query engines (see, e.g., [21, 23, 22]). These gorithms can have performance comparable to stack-tree works typically use some combination of indexes on elements and algorithms, in many cases they are considerably worse. string values, tree traversal algorithms, and join algorithms on the This behavior is explained by analytical results that demon- edge relationships between nodes in the XML data tree. strate that, on sorted inputs, the stack-tree algorithms have More recently, Zhang et al. [29] proposed a variation of the worst-case I/O and CPU complexities linear in the sum of traditional merge join algorithm, called the multi-predicate merge the sizes of inputs and output, while the tree-merge algo- join (MPMGJN) algorithm, for finding all occurrences of the ba- rithms do not have the same guarantee. sic structural relationships (they refer to them as containment queries). They compared the implementation of containment queries using native support in two commercial database systems, and a special purpose inverted list engine based on the MPMGJN 1 Introduction algorithm. Their results showed that the MPMGJN algorithm could outperform standard RDBMS join algorithms by more than XML employs a tree-structured model for representing data. an order of magnitude on containment queries. The key to the ef- Quite naturally, queries in XML query languages (see, e.g., [10, 7, ficiency of the MPMGJN algorithm is the (DocId, StartPos 6]) typically specify patterns of selection predicates on multiple el- : EndPos, LevelNum) representation of positions of XML ements that have some specified tree structured relationships. For elements, and the (DocId, StartPos, LevelNum) repre- example, the XQuery path expression: sentation of positions of string values, that succinctly capture the structural relationships between elements (and string values) in book[title = 'XML']//author[. = 'jane'] the XML database (see Section 2.3 for details about this rep- matches author elements that (i) have as content the string value resentation). Checking that structural relationships in the XML "jane", and (ii) are descendants of book elements that have a tree, like ancestor-descendant and parent-child (corresponding to child title element whose content is the string value "XML". containment and direct containment relationships, respectively, in the XML document representation), are present between elements 2 Background and Overview amounts to checking that certain inequality conditions hold be- tween the components of the positions of these elements. 2.1 Data Model and Query Patterns While the MPMGJN algorithm outperforms standard RDBMS join algorithms, we show in this paper that it can perform a lot of unnecessary computation and I/O for matching basic structural re- An XML database is a forest of rooted, ordered, labeled trees, lationships, especially in the case of parent-child relationships (or, each node corresponding to an element and the edges represent- direct containment queries). In this paper, we take advantage of ing (direct) element-subelement relationships. Node labels consist the (DocId, StartPos : EndPos, LevelNum) repre- of a set of (attribute, value) pairs, which suffices to model tags, sentation of positions of XML elements and string values to devise PCDATA content, etc. For the sample XML document of Fig- novel I/O and CPU optimal join algorithms for matching struc- ure 1(a), its tree representation is shown in Figure 1(b). (The util- tural relationships against an XML database. ity of the numbers associated with the tree nodes will be explained Since a great deal of XML data is expected to be stored in re- in Section 2.3.) lational database systems (all the major DBMS vendors including Queries in XML query languages like XQuery [6], Quilt [7], Oracle, IBM and Microsoft are providing system support for XML and XML-QL [10] make fundamental use of (node labeled) data), our study provides evidence that RDBMS systems need to tree patterns for matching relevant portions of data in the XML augment their suite of physical join algorithms to include struc- database. The query pattern node labels include element tags, tural joins to be competitive on XML query processing. Our study attribute-value comparisons, and string values, and the query pat- is equally relevant for native XML query engines, since structural tern edges are either parent-child edges (depicted using single line) joins provide for an efficient set-at-a-time strategy for matching or ancestor-descendant edges (depicted using a double line). For XML query patterns, in contrast to the node-at-a-time approach of example, the XQuery path expression in the introduction can be using tree traversals. represented as the rooted tree pattern in Figure 2(a). This query pattern would match the document in Figure 1. In general, at each node in the query tree pattern, there is a node 1.1 Outline and Contributions predicate that specifies some predicate on the attributes (e.g., tag, content) of the node in question. For the purposes of this paper, ex- We begin by presenting background material in Section 2. Our actly what is permitted in this predicate is not material. It suffices main contributions are as follows: for our purposes that there be the possibility of constructing effi- We develop two families of join algorithms to perform cient access mechanisms (such as index structures) to identify the matching of the parent-child and ancestor-descendant struc- nodes in the XML database that satisfy any given node predicate. tural relationships efficiently: tree-merge and stack-tree (Section 3). Given two input lists of tree nodes, each sorted 2.2 Matching Basic Structural Relationships by (DocId, StartPos), the algorithms compute an out- put list of sorted results joined according to the desired struc- A complex query tree pattern can be decomposed into a set tural relationship. The tree-merge algorithms are a natu- of basic binary structural relationships such as parent-child and ral extension of merge joins and the recently proposed MP- ancestor-descendant between pairs of nodes. The query pattern MGJN algorithm [29], while the stack-tree algorithms have can then be matched by (i) matching each of the binary structural no counterpart in traditional relational join processing. relationships against the XML database, and (ii) "stitching" to- We present an analysis of the tree-merge and the stack-tree gether these basic matches. For example, the basic structural re- algorithms (Section 3). The stack-tree algorithms are I/O lationships corresponding to the query tree pattern of Figure 2(a) and CPU optimal (in an asymptotic sense), and have worst- are shown in Figure 2(b). case I/O and CPU complexities linear in the sum of sizes A straightforward approach to matching structural relation- of the two input lists and the output list for both ancestor- ships against an XML database is to use traversal-style algorithms descendant (or, containment) and parent-child (or, direct by using child-pointers or parent-pointers. Such "tuple-at-a-time" containment) structural relationships. The tree-merge algo- processing strategies are known to be inefficient compared to the rithms have worst-case quadratic I/O and CPU complexities, set-at-a-time strategies used in database systems. Pointer-based but on some natural classes of structural relationships and joins [28] have been suggested as a solution to this problem in XML data, they have linear complexity as well. object-oriented databases, and shown to be quite efficient. We show experimental results on a range of data and queries In the context of XML databases, nodes may have a large number of children, and the query pattern often requires match- using the T IMBER native XML query engine built on top of ing ancestor-descendant structural relationships (for example, the SHORE (Section 4). We show that while, in some cases, the performance of tree-merge algorithms can be comparable to (book, author) edge in the query pattern of Figure 2(a)), in addition to parent-child structural relationships. In this case, that of stack-tree algorithms, in many cases they are consid- there are two options: (i) explicitly maintaining only (parent, erably worse. This is consistent with the analysis presented in Section 3. child) node pairs and identifying (ancestor, descendant) node pairs through repeated joins; or (ii) explicitly maintaining (ancestor, de- We describe related work in Section 5, and discuss ongoing and scendant) node pairs. The former approach would take too much future work in Section 6. query processing time, while the latter approach would use too <book> <title> XML < =title> <allauthors> book <author> jane < =author> (1,1:70,1) <author> john < =author> < =allauthors> <year> 2000 < =year> title allauthors year chapter chapter <chapter> (1,2:4,2) (1,5:12,2) (1,13:15,2) (1,16:40,2) (1,41:69,2) <head> Origins < =head> <section> (1,3,3) XML author author 2000 head section section <head> ...< =head> <section> ...< =section> (1,6:8,3) (1,9:11,3) (1,14,3) (1,17:19,3) (1,20:29,3) (1,30:39,3) < =section> <section> ...< =section> jane john Origins head section < =chapter> (1,7,4) (1,10,4) (1,18,4) (1,21:23,4) (1,24:28,4) <chapter> ...< =chapter> < =book> (a) (b) Figure 1. (a) A sample XML document fragment, (b) Tree representation book (D1 S1 : iff D1 = D2 S1 < S2 and E2 < E1 ;1 E 1 L1 ) book title book author (ii) parent-child: a tree node n2 whose position in the XML database is encoded as (D 2 S2 : E2 L2 ) is a child of a tree title author node n 1 whose position is encoded as (D 1 S1 : E1 L1 ) iff title XML author jane D1 = D2 S1 < S2 E2 < E1 ,and L 1 + 1 = L2 . XML jane For example, in Figure 1(b), the author node with position (a) (b) (1 6 : 8 3) is a descendant of the book node with position (1 1 : 70 1), and the string "jane" with position (1 7 4) is a Figure 2. (a) Tree pattern, (b) Structural relationships child of the author node with position (1 6 : 8 3). A key point worth noting about this representation of node much (quadratic) space. In either case, using pointer-based joins positions in the XML data tree is that checking an ancestor- is likely to be infeasible. descendant structural relationship is as easy as checking a parent- child structural relationship. The reason is that one can check for 2.3 Representing Positions of Elements and String an ancestor-descendant structural relationship without knowledge Values in an XML Database of the intermediate nodes on the path. Also worth noting is that this representation of positions of elements and string values allow for checking order and proximity relationships between elements The key to an efficient, uniform mechanism for set-at-a-time and/or string values; this issue is not explored further in our paper. (join-based) matching of structural relationships is a positional representation of occurrences of XML elements and string values in the XML database (see, e.g., [8, 9, 29]), which extends the clas- 2.4 An Overview sic inverted index data structure in information retrieval [25]. The position of an element occurrence in the XML database can be represented as the 3-tuple (DocId, StartPos : In the rest of this paper, we take advantage of the (DocId, EndPos, LevelNum), and the position of a string occurrence StartPos : EndPos, LevelNum) representation of po- in the XML database can be represented as the 3-tuple (DocId, sitions of XML elements and string values to (i) devise novel, StartPos, LevelNum), where (i) DocId is the identifier of I/O and CPU optimal (in an asymptotic sense) join algorithms for the document; (ii) StartPos and EndPos can be generated by matching basic structural relationships (or, containment queries) counting word numbers from the beginning of the document with against an XML database; (ii) present an analysis of these algo- identifier DocId until the start of the element and end of the ele- rithms; and (iii) show their behavior in practice using a variety of ment, respectively; and (iii) LevelNum is the nesting depth of the experiments. element (or string value) in the document. Figure 1(b) depicts a 3- The task of matching a complex XML query pattern then re- tuple with each tree node, based on this representation of position. duces to that of evaluating a join expression with one join operator (The DocId for each of these nodes is chosen to be 1.) for each binary structural relationship in the query pattern. Differ- Structural relationships between tree nodes (elements or string ent join orderings may result in different evaluation costs, as usual. values) whose positions are recorded in this fashion can be de- Finding the optimal join ordering is outside the scope of this paper, termined easily: (i) ancestor-descendant: a tree node n 2 whose and is the subject of future work in this area. position in the XML database is encoded as (D 2 S2 : E2 L2 ) is a descendant of a tree node n 1 whose position is encoded as 1 For leaf strings, EndPos is the same as StartPos. Algorithm Tree-Merge-Anc (AList, DList) /* Assume that all nodes in AList and DList have the same DocId */ /* AList is the list of potential ancestors, in sorted order of StartPos */ /* DList is the list of potential descendants in sorted order of StartPos */ begin-desc = DList->firstNode; OutputList = NULL; for (a = AList->firstNode; a ! = NULL; a = a->nextNode) f for (d = begin-desc; (d ! = NULL && d.StartPos < a.StartPos); d = d->nextNode) f /* skipping over unmatchable d's */ g begin-desc = d; for (d = begin-desc; (d ! = NULL && d.EndPos < a.EndPos); d = d->nextNode) f if ((a.StartPos < d.StartPos) && (d.EndPos a.EndPos) < [&& (d.LevelNum = a.LevelNum + 1)]) f /* the optional condition is for parent-child relationships */ append (a,d) to OutputList; g g g Figure 3. Algorithm Tree-Merge-Anc with output in sorted ancestor/parent order 3 Structural Join Algorithms EndPos, LevelNum) representation. The recently proposed multi-predicate merge join (MPMGJN) algorithm [29] is also a member of this family. In this section, we develop two families of join algorithms for matching parent-child and ancestor-descendant structural relation- The basic idea here is to perform a modified merge-join, possi- ships efficiently: tree-merge and stack-tree, and present an analy- bly performing multiple scans through the "inner" join operand to sis of these algorithms. the extent necessary. Either AList or DList can be used as the inner (resp., outer) operand for the join: the results are produced Consider an ancestor-descendant (or, parent-child) struc- sorted (primarily) by the outer operand. In Figure 3, we present the tural relationship (e1 e2 ), for example, (book, author) (or, tree-merge algorithm for the case when the outer join operand is (author, jane)) in our running example. Let AList = the ancestor; this is similar to the MPMGJN algorithm. Similarly, a1 a2 : : :] and DList = d 1 d2 : : :] be the lists of tree nodes Figure 4 deals with the case when the outer join operand is the de- that match the node predicates e 1 and e2 , respectively, each list scendant. For ease of understanding, both algorithms assume that sorted by the (DocId, StartPos) values of its elements. There all nodes in the two lists have the same value of DocId, their pri- are a number of ways in which the AList and the DList could mary sort attribute. Dealing with nodes from multiple documents be generated from the database that stores the XML data. For is straightforward, requiring the comparison of DocId values and example, a native XML database system could store each ele- the advancement of node pointers as in the traditional merge join. ment node in the XML data tree as an object with the attributes: ElementTag, DocId, StartPos, EndPos, and LevelNum. An index could be built across all the element tags, which could 3.1.1 An Analysis of the Tree-Merge Algorithms then be used to find the set of nodes that match a given element tag. The set of nodes could then be sorted by (DocId, StartPos) to Traditional merge joins that use a single equality condition be- produce the lists that serve as input to our join algorithms. tween two attributes as the join predicate can be shown to have time and space complexities O(jinputj + joutputj), on sorted Given these two input lists, AList of potential ances- tors (or parents) and DList of potential descendants (resp., inputs, while producing a sorted output. In general, one cannot establish the same time complexity when the join predicate in- children), the algorithms in each family can output a list volves multiple equality and/or inequality conditions. In this sec- OutputList = (ai dj )] of join results, sorted either by (DocId, ai .StartPos, dj .StartPos) or by (DocId, tion, we identify the criteria under which tree-merge algorithms have asymptotically optimal time complexity. dj .StartPos, ai .StartPos). Both variants are useful, and the variant chosen may depend on the order in which an opti- mizer chooses to compose the structural joins to match the com- Algorithm Tree-Merge-Anc for ancestor-descendant plex XML query pattern. Structural Relationship: Theorem 3.1 The space and time complexities of Algorithm 3.1 Tree-Merge Join Algorithms Tree-Merge-Anc are O(jAListj + jDListj + jOutputListj), for the ancestor-descendant structural relationship. The algorithms in the tree-merge family are a natural exten- sion of traditional relational merge joins (which use an equal- The intuition is as follows. Consider first the case where ity join condition) to deal with the multiple inequality condi- no two nodes in AList are themselves related by an ancestor- tions that characterize the ancestor-descendant or the parent-child descendant relationship. In this case, the size of OutputList is structural relationships, based on the (DocId, StartPos : O (jAListj + jDListj). Algorithm Tree-Merge-Anc makes a Algorithm Tree-Merge-Desc (AList, DList) /* Assume that all nodes in AList and DList have the same DocId */ /* AList is the list of potential ancestors, in sorted order of StartPos */ /* DList is the list of potential descendants in sorted order of StartPos */ begin-anc = AList->firstNode; OutputList = NULL; for (d = DList->firstNode; d ! = NULL; d = d->nextNode) f for (a = begin-anc; (a ! = NULL && a.EndPos < d.StartPos); a = a->nextNode) f /* skipping over unmatchable a's */ g begin-anc = a; for (a = begin-anc; (a ! = NULL && a.StartPos < a.StartPos); a = a->nextNode) f if ((a.StartPos < d.StartPos) && (d.EndPos a.EndPos) < [&& (d.LevelNum = a.LevelNum + 1)]) f /* the optional condition is for parent-child relationships */ append (a,d) to OutputList; g g g Figure 4. Algorithm Tree-Merge-Desc with output in sorted descendant/child order single pass over the input AList and at most two passes over the complexity of the algorithm can be O((jAListj + jDListj + input DList.2 Thus, the above theorem is satisfied in this case. jOutputListj)2 ) in the worst case. This happens, for example, in Consider next the case where multiple nodes in AList are the case shown in Figure 5(c), when the first node in AList is an themselves related by an ancestor-descendant relationship. This ancestor of each node in DList. In this case, each node in DList can happen, for example, in the (section, head) structural rela- has only two ancestors in AList, so the size of OutputList is tionship for the XML data in Figure 1. In this case, multiple passes O (jAListj + jDListj), but AList is repeatedly scanned, result- may be made over the same set of descendant nodes in DList, ing in a time complexity of O(jAListj jDListj); the evaluation is and the size of OutputList may be O(jAListj jDListj), depicted in Figure 5(d), where each node in DList is associated which is quadratic in the size of the input lists. However, we with the sublist of AList that needs to be scanned. can show that the algorithm still has optimal time complexity, i.e., While the worst case behavior of many members of the tree- O (jAListj + jDListj + jOutputListj). merge family is quite bad, on some data sets and queries they One cannot establish the I/O optimality of Algorithm perform quite well in practice. We shall investigate the behav- Tree-Merge-Anc. In fact, repeated paging can cause its I/O ior of Algorithms Tree-Merge-Anc and Tree-Merge-Desc behavior to degrade in practice, as we shall see in Section 4. experimentally in Section 4. Algorithm Tree-Merge-Anc for parent-child 3.2 Stack-Tree Join Algorithms Structural Relationship: When evaluating a parent- child structural relationship, the time complexity of Algo- We observe that a depth-first traversal of a tree can be per- rithm Tree-Merge-Anc is the same as if one were performing formed in linear time using a stack of size as large as the height of an ancestor-descendant structural relationship match between the the tree. In the course of this traversal, every ancestor-descendant same two input lists. However, the size of OutputList for the relationship in the tree is manifested by the descendant node ap- parent-child structural relationship can be much smaller than the pearing somewhere higher on the stack than the ancestor node. We size of the OutputList for the ancestor-descendant structural use this observation to motivate our search for a family of stack- relationship. In particular, consider the case when all the nodes based structural join algorithms, with better worst-case I/O and in AList form a (long) chain of length n, and each node in CPU complexity than the tree-merge family, for both parent-child AList has two children in DList, one on either side of its child and ancestor-descendant structural relationships. in AList; this is shown in Figure 5(a). In this case, it is easy to Unfortunately, the depth-first traversal idea, even though ap- verify that the size of OutputList is O(jAListj + jDListj), pealing at first glance, cannot be used directly since it requires but the time complexity of Algorithm Tree-Merge-Anc is traversal of the whole database. We would like to traverse only the 2 O ((jAListj + jDListj) ); the evaluation is pictorially depicted candidate nodes provided to us as part of the input lists. We now in Figure 5(b), where each node in AList is associated with the describe our stack-tree family of structural join algorithms; these sublist of DList that needs to be scanned. The I/O complexity is algorithms have no counterpart in traditional join processing. also quadratic in the input size in this case. 3.2.1 Stack-Tree-Desc Algorithm Tree-Merge-Desc: There is no analog to Consider an ancestor-descendant structural relationship (e 1 e2 ). Theorem 3.1 for Algorithm Tree-Merge-Desc, since the time Let AList = a1 a2 : : :] and DList = d1 d2 : : :] be the lists 2 A clever implementation that uses a one node lookahead in AList of tree nodes that match node predicates e 1 and e2 , respectively, can reduce the number of passes over DList to just one. sorted by the (DocId, StartPos) values of its elements. DList AList AList d1 DList a 0 d a a 2 d1 a 1 1 d3 1 a d1 a d 2n a 0 d a 2 2 2 2 d a d a d3 a 2 3 2n-1 3 a a a a 3 dn 1 2 3 n d3 d 2n-2 d n+1 d d d d 1 2 3 n a a dn a n n n dn d n+1 d 2n-2 (a) (b) d (c) (d) 2n-1 d 2n Figure 5. (a), (b) Worst case for Tree-Merge-Anc and (c), (d) Worst case for Tree-Merge-Desc We first discuss the stack-tree algorithm for the case when relationship, on the dataset of Figure 7(a), are shown in Fig- the output list (ai dj )] is sorted by (DocId, d j .StartPos, ures 7(b)–(e). The ai 's are the nodes in AList and the d j 's ai .StartPos). This is both simpler to understand and ex- are the nodes in DList. Initially, the stack is empty, and the tremely efficient in practice. The algorithm is presented in Fig- conceptual merge of AList and DList is shown in Figure 7(b). ure 6 for the ancestor-descendant case. In Figure 7(c), a1 has been put on the stack, and the first new The basic idea is to take the two input operand lists, AList and element of the merged list, d1 , is compared with the stack top (at DList, both sorted on their (DocId, StartPos) values and this point (a1 d1 ) is output). Figure 7(d) illustrates the state of the conceptually merge (interleave) them. As the merge proceeds, we execution several steps later, when a 1 a2 : : : an are all on the determine the ancestor-descendant relationship, if any, between stack, and d n is being compared with the stack top (after this point, the current top of stack and the next node in the merge, i.e., the the OutputList includes (a 1 d1 ) (a2 d2 ) : : : (an dn )). node with the smallest value of StartPos. Based on this com- Finally, Figure 7(e) shows the state of the execution when the parison, we manipulate the stack, and produce output. entire input has almost been processed. Only a 1 remains on the The stack at all times has a sequence of ancestor nodes, each stack (all the other ai 's have been popped from the stack), and node in the stack being a descendant of the node below it. When d2n is compared with a 1 . Note that all the desired matches have a new node from the AList is found to be a descendant of the been produced while making only a single pass through the entire current top of stack, it is simply pushed on to the stack. When input. Recall that this is the same dataset of Figure 5(a), which a new node from the DList is found to be a descendant of the illustrated the sub-optimality of Algorithm Tree-Merge-Anc, current top of stack, we know that it is a descendant of all the nodes for the case of parent-child structural relationships. in the stack. Also, it is guaranteed that it won't be a descendant of any other node in AList. Hence, the join results involving this DList node with each of the AList nodes in the stack are 3.2.2 Stack-Tree-Anc output. If the new node in the merge list is not a descendant of the We next discuss the stack-tree algorithm for the case when current top of stack, then we are guaranteed that no future node the output list (ai dj )] needs to be sorted by (DocId, in the merge list is a descendant of the current top of stack, so we ai .StartPos, dj .StartPos). may pop stack, and repeat our test with the new top of stack. No output is generated when any element in the stack is popped. It is not straightforward to modify Algo- The parent-child case of Algorithm Stack-Tree-Desc is rithm Stack-Tree-Desc to produce results sorted by even simpler since a DList node can join only (if at all) with the ancestor because of the following: if node a from AList on the top node on the stack. In this case, the "for loop" inside the "else" stack is found to be an ancestor of some node d in the DList, case of Figure 6 needs to be replaced with: then every node a 0 from AList that is an ancestor of a (and hence below a on the stack) is also an ancestor of d. Since the if (d.LevelNum = stack->top.LevelNum + 1) StartPos of a0 precedes the start position of a, we must delay append (stack->top,d) to OutputList output of the join pair (a d) until after (a0 d) has been output. But there remains the possibility of a new element d 0 after d in the Example 3.1 [Algorithm Stack-Tree-Desc] DList joining with a0 as long a 0 is on stack, so we cannot output Some steps during an example evaluation of Algo- the pair (a d) until the ancestor node a 0 is popped from stack. rithm Stack-Tree-Desc, for a parent-child structural Meanwhile, we can build up large join results that cannot yet be Algorithm Stack-Tree-Desc (AList, DList) /* Assume that all nodes in AList and DList have the same DocId */ /* AList is the list of potential ancestors, in sorted order of StartPos */ /* DList is the list of potential descendants in sorted order of StartPos */ a = AList->firstNode; d = DList->firstNode; OutputList = NULL; while (the input lists are not empty or the stack is not empty) f if ((a.StartPos > stack->top.EndPos) && (d.StartPos > stack->top.EndPos)) f /* time to pop the top element in the stack */ tuple = stack->pop(); g else if (a.StartPos < d.StartPos) f stack->push(a) a = a->nextNode g else f for (a1 = stack->bottom; a1 ! = NULL; a1 = a1->up) f append (a1,d) to OutputList g d = d->nextNode g g Figure 6. Algorithm Stack-Tree-Desc with output in sorted descendant order output. Our solution to this problem is described in Figure 8 for DList element is compared against the top element in stack, then the ancestor-descendant case. it either joins with all elements on stack or none of them; all join As with Algorithm Stack-Tree-Desc, the stack at all times results are immediately output. In other words, the time required has a sequence of ancestor nodes, each node in the stack being a for this part is directly proportional to the output size. Thus, the descendant of the node below it. Now, we associate two lists with time required for this algorithm is O(jinputj + joutputj) in the each node on the stack: the first, called self-list is a list of result worst case. Putting all this together, we get the following result: elements from the join of this node with appropriate DList ele- ments; the second, called inherit-list is a list of join results involv- Theorem 3.2 The space and time complexities of Algorithm ing AList elements that were descendants of the current node on Stack-Tree-Desc are O(jAListj+jDListj+jOutputListj), the stack. As before, when a new node from the AList is found for both ancestor-descendant and parent-child structural relation- to be a descendant of the current top of stack, it is simply pushed ships. on to the stack. When a new node from the DList is found to Further, Algorithm Stack-Tree-Desc is a non-blocking al- be a descendant of the current top of stack, it is simply added to gorithm. the self-lists of the nodes in the stack. Again, as before, if no new node (from either list) is a descendant of the current top of stack, Clearly, no competing join algorithm that has the same input then we are guaranteed that no future node in the merge list is a lists, and is required to compute the same output list, could have descendant of the current top of stack, so we may pop stack, and better asymptotic complexity. repeat our test with the new top of stack. When the bottom ele- The I/O complexity analysis is straightforward as well. Each ment in stack is popped, we output its self-list first and then its page of the input lists is read once, and the result is output as soon inherit-list. When any other element in stack is popped, no output as it is computed. Since the maximum size of stack is proportional is generated. Instead, we append its inherit-list to its self-list, and to the height of the XML database tree, it is quite reasonable to append the result to the inherit-list of the new top of stack. assume that all of stack fits in memory at all time. Hence, we have An optimization to the algorithm (incorporated in Figure 8) is the following result: as follows: no self-list is maintained for the bottom node in the Theorem 3.3 The I/O complexity of Algorithm stack. Instead, join results with the bottom of the stack are output Stack-Tree-Desc is O( jAList j + jDListj + jOutputList j ), B B B immediately. This results in a small space savings, and renders the for ancestor-descendant and parent-child structural relationships, stack-tree algorithm partially non-blocking. where B is the blocking factor. 3.2.3 An Analysis of Algorithm Stack-Tree-Desc 3.2.4 An Analysis of Algorithm Stack-Tree-Anc Algorithm Stack-Tree-Desc is easy to analyze. Each AList The key difference between the analyses of Algo- element in the input may be examined multiple times, but these can rithms Stack-Tree-Anc and Stack-Tree-Desc is be amortized to the element on DList, or the element at the top that join results are associated with nodes in the stack in Algo- of stack, against which it is examined. Each element on the stack rithm Stack-Tree-Anc. Obviously, the list of join results at is popped at most once, and when popped, causes examination of any node in the stack is linear in the output size. What remains to the new top of stack with the current new element. Finally, when a be analyzed is the appending of lists each time the stack is popped. a 1 d1 d1 a a a 2 2 1 d d a 2 2 d1 d 2n 2 d a d a a a 2 3 2n-1 n n n dn d3 d 2n-2 dn dn d d d n+1 n+1 n+1 a a n 2 dn d d d d n+1 2n-1 a 2n-1 a 2n-1 a d 2n 1 1 1 d 2n d 2n d 2n (a) (b) (c) (d) (e) Figure 7. (a) Dataset (b)–(e) Steps during evaluation of Stack-Tree-Desc If the lists are implemented as linked lists (with start and end 4 Experimental Evaluation pointers), these append operations can be carried out in unit time, and require no copying. Thus one comparison per AList input In this section, we present the results of an actual implemen- and one per output are all that are performed to manipulate stack. tation of the various join algorithms for XML data sets. Due to Combined with the analysis of Algorithm Stack-Tree-Desc, space limitations, we evaluate only the structural join algorithms we can see that the time required for this algorithm is still we introduce in this paper, namely, T REE -M ERGE J OIN(TMJ) and O (jinputj + joutputj) in the worst case. S TACK -T REE J OIN (STJ). Once more, the output can be sorted in The I/O complexity analysis is a little more involved. Certainly, two ways, based on the "ancestor" node or the "descendant" node one cannot assume that all the lists of results not yet output fit in the join. Correspondingly, we consider two flavors of these al- in memory. Careful buffer management is required. It turns out gorithms, and use the suffix "-A" and "-D" to differentiate between that the only operation we ever perform on a list is to append to these. The four algorithms are thus labeled: TMJ-A, TMJ-D, STJ- it (except for the final read out). As such, we only need to have A and STJ-D. access to the tail of each list in memory as computation proceeds. For reasons of space, we omit detailed comparison of our struc- The rest of the list can be paged out. When list x is appended to tural join algorithms with traversal-style algorithms, and with tra- list y, it is not necessary that the head of list x be in memory, the ditional relational join algorithms in a commercial database. As append operation only establishes a link to this head in the tail of y. expected, the performance of the traversal-style algorithms de- So all we need is to know the pointer for the head of each list, even grades considerably with the size of the dataset, and yields very if it is paged out. Each list page is thus paged out at most once, poor performance compared with our structural join algorithms. and paged back in again only when the list is ready for output. Also, consistent with the results of [29], structural join algorithms Since the total number of entries in the lists is exactly equal to the (implemented outside the database) perform significantly better number of entries in the output, we thus have that the I/O required than native relational DBMS join algorithms, even in the presence on account of maintaining lists of results is proportional to the size of indexes. of output (provided that there is enough memory to hold in buffer the tail of each list: requiring two pages of memory per stack entry 4.1 Experimental Testbed — still a requirement within reason). All other I/O activity is for the input and output. This leads to the desired linearity result. We implemented the join algorithms in the T IMBER XML query engine. T IMBER is an native XML query engine that is built on top of SHORE [5]. Since the goal of T IMBER is to efficiently handle complex XML queries on large data sets, we implemented Theorem 3.4 The space and time complexities of Algorithm our algorithms so that they could participate in complex query Stack-Tree-Anc are O(jAListj + jDListj + jOutputListj), evaluation plans with pipelining. All experiments using T IMBER for both ancestor-descendant and parent-child structural relation- were run on a 500MHz Intel Pentium III processor running Win- ships. dowsNT Workstation v4.0. SHORE was compiled for a 8KB page size. SHORE buffer pool size was set to 32MB, and the container The I/O complexity of Algorithm Stack-Tree-Anc is size in our implementation was 8000 bytes. jAList j jDList j jOutputList j O( B + B + B ), for both ancestor-descendant All numbers presented here are produced by running the exper- and parent-child structural relationships, where B is the blocking iments multiple times and averaging all the execution times except factor. for the first run (i.e., these are warm cache numbers). Algorithm Stack-Tree-Anc (AList, DList) /* Assume that all nodes in AList and DList have the same DocId */ /* AList is the list of potential ancestors, in sorted order of StartPos */ /* DList is the list of potential descendants in sorted order of StartPos */ a = AList->firstNode; d = DList->firstNode; OutputList = NULL; while (the input lists are not empty or the stack is not empty) f if ((a.StartPos > stack->top.EndPos) && (d.StartPos > stack->top.EndPos)) f /* time to pop the top element in the stack */ tuple = stack->pop(); if (stack->size == 0) f /* we just popped the bottom element */ append tuple.inherit-list to OutputList g else f append tuple.inherit-list to tuple.self-list append the resulting tuple.self-list to stack->top.inherit-list g g else if (a.StartPos < d.StartPos) f stack->push(a) a = a->nextNode g else f for (a1 = stack->bottom; a1 ! = NULL; a1 = a1->up) f if (a1 == stack->bottom) append (a1,d) to OutputList else append (a1,d) to the self-list of a1 g d = d->nextNode g g Figure 8. Algorithm Stack-Tree-Anc with output in sorted ancestor order 4.2 Workload plementation, on top of SHORE and T IMBER, was driven purely by the need for sufficient control — the algorithms themselves For our workload, we used the IBM XML data generator to could just as well have been implemented on many other plat- generate a number of data sets, of varying sizes and other data forms, including (as new join methods) on relational databases. characteristics, such as the fanout (MaxRepeats) and the maxi- All join algorithms were implemented using the operator itera- mum depth, using the Organization DTD presented in Figure 9. tor model [15]. In this model, each operator provides an open, next We also used the XMach-1 [1] and XMark [2] benchmarks, and and close interface to other operators, and allows the database en- some real XML data. The results obtained were very similar in all gine to construct an operator tree with an arbitrary mix of query cases, and in the interest of space we present results only for the operations (different join algorithms or algorithms for other op- largest organization data set that we generated. This data set con- erations such as aggregation) and naturally allows for a pipelined sists of 6.3 million element nodes, corresponding to approximately operator evaluation. To support this iterator model, we pay careful 800MB of XML documents in text format. The characteristics of attention to the manner in which results are passed from one oper- this data set in terms of the number of occurrences of element tags ator to another. Algorithms such as the TMJ algorithms may need are summarized in Table 1. to repeatedly scan over one of the inputs. Such repeated scans are We evaluated the various join algorithms using the set of feasible if the input to a TMJ operator is a stream from a disk file, queries shown in Table 1. The queries are broken up into two but is not feasible if the input stream originates from another join classes. QS1 to QS6 are simple structural relationship queries, operator (in the pipeline below it). We implemented the TMJ al- and have an equal mix of parent-child queries and ancestor- gorithms so that the nodes in a current sweep are stored in a tem- descendant queries. QC1 and QC2 are complex chain queries, and porary SHORE file. On the next sweep, this temporary SHORE are used to demonstrate the performance of the algorithms when file is scanned. This solution allows us to limit the memory used evaluating complex queries with multiple joins in a pipeline. by TMJ implementation, as the only memory used is managed by the SHORE buffer manager, which takes care of evicting pages 4.3 Detailed Implementation of the temporary file from the buffer pool if required. Similarly for the STJ-A algorithm, the inherit- and self-lists are stored in The focus in the experiments is to characterize the performance a temporary SHORE file, again limiting the memory used by the of the four structural join algorithms, and understand their differ- algorithm. In both cases, our implementation turns logging and ences. Before doing so in the following subsections, we present locking off for the temporary SHORE files. Note that STJ-D can here some additional detail regarding the manner in which these join the two inputs in a single pass over both inputs, and, never has were implemented for the experiments reported. Our choice of im- to spool any nodes to a temporary file. <!ELEMENT manager (name,(manager|department|employee)+)> <!ATTLIST manager id CDATA #FIXED "1"> <!ELEMENT department (name, email?, employee+, department*)> <!ATTLIST department id CDATA #FIXED "2"> <!ELEMENT employee (name+,email?)> <!ATTLIST employee id CDATA #FIXED "3"> <!ELEMENT name (#PCDATA)> <!ATTLIST name id CDATA #FIXED "4"> <!ELEMENT email (#PCDATA)> <!ATTLIST email id CDATA #FIXED "5"> Figure 9. DTD used in our experiments Query XQuery Path Expression Result Cardinality QS1 employee/email 140,700 Node Count QS2 employee//email 142,958 manager 25,880 QS3 manager/department 16,855 department 342,450 QS4 manager//department 587,137 employee 574,530 QS5 manager/employee 17,259 email 250,530 QS6 manager//employee 990,774 QC1 manager/employee/email 7,990 QC2 manager//employee/email 232,406 Table 1. Description of queries and characteristics of the data set To amortize the storage and access overhead associated with that we use are large, after applying the predicates, the candidate each SHORE object, in our implementation we group nodes into lists that we join are not very large. Furthermore, the effect of a large container object, and create a SHORE object for each con- buffer pool size is likely to be critical when one of the inputs has tainer. The join algorithms write nodes to containers and when nodes that are deeply nested amongst themselves, and the node a container is full it is written to the temporary SHORE file as that is higher up in the XML tree has many nodes that it joins a SHORE record. The performance benefits of this approach are with. For example, consider the TMJ-A algorithms, and the query substantial; we do not go into details for lack of space. "manager/employee". If many manager nodes are nested be- low a manager node that is higher up in the XML tree, then after 4.4 STJ and TMJ, Simple Structural Join Queries the join of the manager node at the top is done, repeated scans of the descendant nodes will be required for the manager nodes that Here, we compare the performance of the STJ and the TMJ al- are descendants of the manager node at the top. Such scenarios gorithms using all the six simple queries, QS1–QS6, shown in Ta- are rare in our data set, and, consequently, the buffer pool size has ble 1. Figure 10 plots the performance of the four algorithms. As only a marginal impact on the performance of the algorithms. shown in the Figure, STJ-D outperforms the remaining algorithms in all cases. The reason for the superior performance of STJ-D is because of its ability to join the two data sets in a single pass over the input nodes, and it never has to write any nodes to intermediate 4.5 Complex Queries files on disk. From Figure 10, we can also see that STJ-A usually has better performance than both TMJ-A and TMJ-D. For queries QS4 and QS6, the STJ-A algorithms and the two TMJ algorithms have comparable performance. These queries have large result sizes (approximately 600K and 1M tuples respectively as shown Here, we evaluate the performance of the algorithms using the in Table 1). Since STJ-A keeps the results in the lists associated two complex chain queries, QC1 and QC2, from Table 1. Each with the stack, and can output the results only when the bottom- query has two joins and for this experiment, both join operations most element of the stack is popped, it has to perform many writes are evaluated in a pipeline. For each complex query one can evalu- and transfers of the lists associated with the stack elements (in our ate the query by using only ancestor-based join algorithms or using implementation, these lists are maintained in temporary SHORE only descendant-based join algorithms. These two approaches are files). With larger result sizes this list management slows down labeled with suffixes "-A2" and "-D2" for the ancestor-based and the performance of STJ-A in practice. Figure 10 also shows that descendant-based approaches respectively. The performance com- the two TMJ algorithms have comparable performance. parison of the STJ and TMJ algorithms for both query evaluation We also ran these experiments with reduced buffer sizes, but approaches (A2 and D2) is shown in Figure 11. From the figure found that for this data set the execution time of all the algo- we see that STJ-D2 has the highest performance once again, since rithms remained fairly constant. Even though the XML data sets it is never has to spool nodes to intermediate files. Response Time (in seconds) 16 STJ-D STJ-A 12 TMJ-D 8 TMJ-A 4 0 QS1 QS2 QS3 QS4 QS5 QS6 Figure 10. STJ and TMJ, simple queries: QS1–QS6 STJ-D2 ditions, band join [11] algorithms are applicable when there exists Response Time (in seconds) a fixed arithmetic difference between the values of join attributes. 24 STJ-A2 Such algorithms are not applicable in our domain as there is no TMJ-D2 notion of fixed arithmetic difference. In the context of spatial and TMJ-A2 multimedia databases, the problem of computing joins between 16 pairs of spatial entities has been considered, where commonly the predicate of interest is overlap between spatial entities [18, 24, 19] 8 in multiple dimensions. The techniques developed in this paper are related to such join operations. However, the predicates con- sidered as well as the techniques we develop are special to the 0 nature of our structural join problem. QC1 QC2 In the context of semistructured and XML databases, the is- sue of query evaluation and optimization has attracted a lot of re- Figure 11. STJ and TMJ, complex queries: QC1, QC2 search attention. In particular, work done in the context of the Lore database management system [20, 21], and the Niagara sys- tem [23], has considered various aspects of query processing on 5 Related Work such data. XML data and various issues in their storage as well as query processing using relational database systems have recently been considered in [14, 27, 26, 4, 12, 13]. In [14, 27, 13], the map- Matchings between pairs of trees in memory has been a topic ping of XML data to a number of relations was considered along of study in the algorithms community for a long time (e.g., see [3] with translation of a select subset of XML queries to relational and references therein). The algorithms developed deal with many queries. In subsequent work [26, 4, 12], the authors considered the variations of the problem but unfortunately are of high complexity problem of publishing XML documents from relational databases. and always assume that trees are entirely memory resident. The Our work is complementary to all of these since our focus is on the problem also has been considered in the programming language join algorithms for the primitive (ancestor-descendant and parent- community, as it arises in various type checking scenarios but once child) structural relationships. Our join algorithms can be used by again solutions developed are geared towards small data collec- these previous works to advantage. tions processed entirely in main memory. Many algorithms are known to be very efficient over tree struc- The representation of positions of XML elements used by us, tures. Most relevant to us in this literature are algorithms for (DocId, StartPos : EndPos, LevelNum), is essen- checking the presence of sets of edges and paths. Jacobson et tially that of Consens and Milo, who considered a fragment of the al. [16] present linear time merging-style algorithms for comput- PAT text searching operators for indexing text databases [8, 9], ing the elements of a list that are descendants/ancestors of some el- and discussed optimization techniques for the algebra. This repre- ements in a second list, in the context of focusing keyword-based sentation was used to compute containment relationships between searches on the Web and in UNIX-style file systems. Jagadish "text regions" in the text databases. The focus of that work was et al. [17] present linear time stack-based algorithms for comput- solely on theoretical issues, without elaborating on efficient algo- ing elements of a list that satisfy a hierarchical aggregate selec- rithms for computing these relationships. tion condition wrt elements in a second list, for the directory data Finally, the recent work of Zhang et al. [29] is closely re- model. However, none of these algorithms compute join results, lated to ours. They proposed the multi predicate merge join (MP- which is the focus of our work. MGJN) algorithm for evaluating containment queries, using the Join processing is central to database implementation and there (DocId, StartPos : EndPos, LevelNum) represen- is a vast amount of work in this area [15]. For inequality join con- tation. The MPMGJN algorithm is a member of our Tree-Merge family. Our analytical and experimental results demonstrate that [9] M. P. Consens and T. Milo. Algebras for querying text re- the Stack-Tree family is considerably superior to the Tree-Merge gions. In Proceedings of PODS, 1995. family for evaluating containment queries. [10] A. Deutsch, M. Fernandez, D. Florescu, A. Levy, and D. Su- ciu. XML-QL: A query language for XML. Submission to 6 Conclusions the World Wide Web Consortium 19-August-1998. Available from http://www.w3.org/TR/NOTE-xml-ql., 1998. In this paper, our focus has been the development of new join [11] D. DeWitt, J. Naughton, and D. Schneider. An evaluation of non equijoin algorithms. Proceedings of SIGMOD, 1991. algorithms for dealing with a core operation central to much of XML query processing, both for native XML query processor im- [12] M. Fernandez and D. Suciu. SilkRoute: Trading between plementations as well for relational XML query processors. In relations and XML. WWW9, 2000. particular, the Stack-Tree family of structural join algorithms was [13] T. Fiebig and G. Moerkotte. Evaluating queries on structure shown to be both I/O and CPU optimal, and practically efficient. with access support relations. Proceedings of WebDB, 2000. There is a great deal more to efficient XML query processing [14] D. Florescu and D. Kossman. Storing and querying XML than is within the scope of this paper. For example, XML per- data using an RDMBS. IEEE Data Engineering Bulletin, mits links across documents, and such "pointer-based joins" are 22(3):27–34, 1999. frequently useful in querying. We do not consider such joins in [15] G. Graefe. Query evaluation techniques for large databases. this paper, since we believe that they can be adequately addressed ACM Computing Surveys, 25(2), 1993. using traditional value-based join methods. There are many issues yet to be explored, and we currently have initiated efforts to ad- [16] G. Jacobson, B. Krishnamurthy, D. Srivastava, and D. Suciu. dress some of these, including the piecing together of structural Focusing search in hierarchical structures with directory sets. joins and value-based joins to build effective query plans. In Proceedings of CIKM, 1998. [17] H. V. Jagadish, L. V. S. Lakshmanan, T. Milo, D. Srivastava, and D. Vista. Querying network directories. In Proceedings Acknowledgements of SIGMOD, 1999. [18] N. Koudas and K. C. Sevcik. Size separation spatial join. We would like to thank Chun Zhang for her helpful comments Proceedings of SIGMOD, 1997. on an early version of this paper. [19] M.-L. Lo and C. V. Ravishankar. Spatial hash-joins. Pro- ceedings of SIGMOD, 1996. References [20] J. McHugh, S. Abiteboul, R. Goldman, D. Quass, and J. Widom. Lore: A database management system for [1] XMach-1. Available from http://dbs.uni- semistructured data. SIGMOD Record, 26(3), 1997. leipzig.de/en/projekte/XML/XmlBenchmarking.html. [21] J. McHugh and J. Widom. Query optimization for XML. In [2] The XML benchmark project. Available from Proceedings of VLDB, 1999. http://www.xml-benchmark.org. [22] U. of Washington. The Tukwila system. Available from [3] A. Apostolico and Z. Galil. Pattern matching algorithms. http://data.cs.washington.edu/integration/tukwila/. Oxford University Press, 1997. [23] U. of Wisconsin. The Niagara system. Available from http://www.cs.wisc.edu/niagara/. [4] M. Carey, J. Kiernan, J. Shanmugasundaram, E. Shekita, and S. Subramanian. XPERANTO: Middleware for publishing [24] J. M. Patel and D. J. DeWitt. Partition based spatial-merge object relational data as XML documents. Proceedings of join. Proceedings of SIGMOD, 1996. VLDB, 2000. [25] G. Salton and M. J. McGill. Introduction to modern infor- [5] M. J. Carey, D. J. DeWitt, M. J. Franklin, N. E. Hall, M. L. mation retrieval. McGraw-Hill, New York, 1983. McAuliffe, J. F. Naughton, D. T. Schuh, M. H. Solomon, [26] J. Shanmugasundaram, E. J. Shekita, R. Barr, M. J. Carey, C. K. Tan, O. G. Tsatalos, S. J. White, and M. J. Zwilling. B. G. Lindsay, H. Pirahesh, and B. Reinwald. Efficiently Shoring up persistent applications. In Proceedings of SIG- publishing relational data as XML documents. In Proceed- MOD, 1994. ings of VLDB, 2000. [6] D. Chamberlin, D. Florescu, J. Robie, J. Simeon, and M. Ste- [27] J. Shanmugasundaram, K. Tufte, C. Zhang, G. He, D. J. De- fanescu. XQuery: A query language for XML. W3C Work- Witt, and J. F. Naughton. Relational databases for query- ing Draft. Available from http://www.w3.org/TR/xquery, ing XML documents: Limitations and opportunities. In Pro- Feb. 2001. ceedings of VLDB, 1999. [7] D. D. Chamberlin, J. Robie, and D. Florescu. Quilt: An [28] E. Shekita and M. Carey. A performance evaluation of XML query language for heterogeneous data sources. In pointer based joins. Proceedings of SIGMOD, 1990. Proceedings of WebDB, 2000. [29] C. Zhang, J. Naughton, D. Dewitt, Q. Luo, and G. Lohman. On supporting containment queries in relational database [8] M. P. Consens and T. Milo. Optimizing queries on files. In management systems. In Proceedings of SIGMOD, 2001. Proceedings of SIGMOD, 1994.
Pages to are hidden for
"algorithm for DB joins"Please download to view full document


text:
I've given this hotel two stars- one for the front desk staff who were really friendly and the second for the breakfast.
What I didn't like was how old the hotel was... it looked worn and desperately needs an update. The carpet is old and the beds could be replaced. The bathroom sink is outside of the tub and toilet. I don't know why this design was approved but its horrible. The faucet leaked and shot water out to the side so everything on the right side of the sink got wet.
There are a lot of places to stay in Ruidoso, I'd recommend looking somewhere else, especially for what they charge in relation to what you get.
- Official Description (provided by the hotel):
- Welcome to the Holiday Inn Express Hotel Ruidoso, New Mexico. While visiting the Playground of the Southwest, whether skiing at Ski Apache, trying your luck at three nearby Casinos, or playing the odds at Ruidoso Downs Racetrack & Billy the Kid Casino, home of the worlds richest Quarterhorse Race, The All American Futurity. Enjoy the nearby Spencer Theater. Come discover New Mexico's best kept secret, with a year round moderate climate. Ruidoso offers an abundance of real estate, great restaurants, cabins, shopping and beautiful mountain scenery in southern New Mexico. Our hotel features 104 guestrooms with 6 suites. We have an outdoor seasonal pool as well as an outdoor hot tub that stays open year around. We have 3 floors with an interior corridor and an elevator. Join us every morning for a Smart Start Complimentary Continental Breakfast. We can also host meetings with a maximum of 30 occupants. Let the Holiday Inn Express Hotel be your home away from home with the quality and comfort you expect, and deserve. Allow us to accommodate your needs while visiting Ruidoso, New Mexico. ... more less
- Reservation Options:
- TripAdvisor is proud to partner with Booking.com, Hotels.com, Expedia, Travelocity, Odigeo and Priceline so you can book your Ruidoso Mountain Inn reservations with confidence. We help millions of travelers each month to find the perfect hotel for both vacation and business trips, always with the best discounts and special offers.
- Also Known As:
- Holiday Inn Express Ruidoso Hotel Ruidoso
- Holiday Inn Ruidoso


text:
Updated 02/02/2015
With 1,908 rooms and suites, this is the largest hotel in California—and sometimes the lobby feels like downtown at rush hour, but there is a positive side to all that size: many handsome rooms in the silvery tower that rises 46 floors to a penthouse event space enjoy awe-inspiring 360-degree panoramic views that rank among the finest in San Francisco. Rooms in the original building offer soundproof windows and sleek earth-tone furnishings, many boast glass shower stalls; 35 executive cabana-style rooms surround a sheltered courtyard by an outdoor heated swimming pool and whirlpool. Urban Tavern is a place to enjoy a community table, charcuterie, and a simple dining menu. As the hotel borders the sometimes-dicey Tenderloin area, guests are directed east toward Union Square (two blocks away) when venturing out on foot after dark.
333 O'Farrell St., San Francisco, California, 94102, United States
Website: www.hiltonsanfranciscohotel.com
Hotel Details:
Updated 02/02/2015
By jahlie
May 30, 2012
What a humongous hotel! The lobby is like Grand Central Station, very active and lively. My husband and I spent four nights there recently and because I booked ahead we got a decent rate including breakfast and wifi - around $350 per night, which for our dates was pretty decent. Our room was small but mostly what you'd expect of a Hilton - nice bedding and a good night's sleep. Housekeeping wasn't as on the ball as I've come to expect from a Hilton.
The newspaper was just left on the floor from the morning and it didn't always look like anything was done except make the bed? The bathroom door definitely needed to be repainted, or better yet, replaced. On the other hand, the breakfast buffet was amazing, with a great selection of Asian and Western choices, always replenished, warm dishes kept perfectly warm and cold dishes fresh. There wasn't an omelette station but if you ask the waiter they will make one for you. Service in the restaurant was superb and everything runs like a NASA countdown. Precise. Hilton parking is expensive so we parked in the parking garage across the street for $32 per night. I noticed a lot of others did as well. I like the area because it's so lively but it's best not to turn left outside the front door as the neighborhood deteriorates pretty quickly. Just a couple of blocks to the right is Union Square and the cable car terminal and BART station close as well. Certainly a good location for shopping, restaurants and easy access to the rest of the city.
No Thanks


text:
Get Instant Pricing with Edmunds Price Promise℠
1Look for "Special Offers" on a specific car
2Get your upfront, locked-in price from the dealer
3Go to the dealership to buy your car with no haggle
Total Reviews
Write a
Sort by
2012 Dodge Challenger R/T 2dr Coupe (5.7L 8cyl 6M)
Moved from 4 cyl honda accord to SRT Classic, Automatic, fully loaded.
I drive highway, I'm getting about 20 miles to the gallon, again 1 year 25K miles into ownership.
Faster than old Honda Accord.
Very comfortable on the highway for long drives (~200 mile trips).
Only changes I'd make, not sure about the window opening when you open the door.
Chicago..parked outside...winter...bad idea.
Learned lesson.
Also, windows go down automatically but not up?
Blinds spots, but not as bad as a Camaro.
To date, I have owned twelve vehicles.
My first, a 1964 Mercury Comet to my current 2012 Dodge Challenger RT Classic.
The worst car I have owned is a 2009 Mazda 5 Wagon.
The 2012 Dodge Challenger is by far the best vehicle we have ever purchased.
This vehicle has the Super Trak Pack, 6-speed, sunroof, amazing leather and a rocking sound system that can play movies, blu tooth audio and read music from a thumb drive.
Modifications made thus far; Magnaflow X pipe, Pettys Garage Strut tower brace, LMI cold air intake and skip shift eliminator.
Do want a car that handles corners with ease, has amazing acceleration and looks great?
If so, this is the car for you.
We love it!
Super Trak Pack, 5.7 Hemi, Tremec 6 speed transmission, color, handling, acceleration, style, leather seats, 403N audio system.
Everything is amazing on this car!
2012 Dodge Challenger SRT8 392 2dr Coupe (6.4L 8cyl 6M)
05/12/13: Traded a 2012 Hyundai Gen Coupe, which definitely was not my cup of tea, for this. In comparison, the Challenger is a huge car, but pleasantly so. Needless, to say, the 392 is a torque monster, which puts a constant smile on my face, and the Yellowjacket paint is a real head turner. Gonna flush and fill all the lubes with Amsoil synthetics this week at about 300 miles or so to protect the investment. I'll review reliability at the end of summer. In the meantime, gonna have one fun summer getting to know this BEAST of a car.
392 Hemi and 6 spd Manual Trans. Torque, torque, torque(!) and AWESOME exhaust note! Seats are firm and supportive, and Harmon Kardon stereo is as big as the motor. THIS is the car that every red-blooded American boy wanted back in the day. Interior, in general, is executed well and the instrument cluster is BY FAR the best of all the American retro muscle cars. Tires and wheels also stand out in a crowd.
None yet. I suppose the Challenger could stand to lose some weight/size, but I'm not so sure that wouldn't detract from the whole experience. Personally, I like it just fine the way it is and so does everyone I know who's ridden in it.
2012 Dodge Challenger SXT 2dr Coupe (3.6L 6cyl 5A)
Having owned a 1973 Challenger at 19 yrs old, it was my favorite for many reasons. But after owning the 2012 SXT Plus for nearly 2 years - its now my all time favorite.
Like the original, its coke bottle shape is timeless. Add today's quality standards, reliability, comfort, driving characteristics, and modern features like NAV, handsfree phone, heated seats, etc. - its awesome.
This Challenger is trouble free, quiet, and smooth despite our sometimes rough midwestern roads.
The touchscreen entertainment system is so much more than a "radio". Over a hundred channels plus built in hardrive allows one to download CD collections from a PC thumbdrive in minutes.
Acceleration is seemingly endless due to the engine's variable valve timing and over 300 horsepower.
Four wheel independent suspension, huge disk brakes, and 20-inch tires keep this big boy in complete and effortless control.
Thanks to this Dodge, airport TSAs & packed flights are history.
Optional factory perforated heated and cooled white leather seats with a bit more leg support.
Optional woodgrain interior accents.
I LOVE my 2012 Rallye Redline.
She's a show stopper and a pleasure to drive.
Since I cruise in her and will take her cross country, it was important to me when selecting a sports car to find one that looked fabulous, drove well, and didn't rattle my teeth out with every single bump in the road.
Comfort is a key component of my Challenger, along with the strong look of a muscle car (no mistaking what a Challenger is), and muscle car action.
I drove a Mustang and a Camaro before choosing the Challenger.
Okay, the Challenger is not as fast, but how could it be with it's size and weight?
However, it sure the heck rides and looks a LOT better!!!
The looks of this car are unbeatable to me.
Love the mean classic muscle car look.
I did add a mopar cold air intake that increased her torque and rumble which I like a lot.
The black and red interior is great. . .and it's comfortable.
The only improvement I can think of will occur in two years when I get a HEMI!!!
Write a review and rate your own car.
See which cars and trucks our editors recommend
Help |
About Us |
Contact Us |
Careers |
Affiliate Program |
Dealer Center |
Privacy Statement |
Visitor Agreement |
Membership Agreement
Your Ad Choices
| Site Map
| Glossary
| Mobile
| Developers
Follow Edmunds
© Edmunds.com, Inc.


text:
21st Annual Kyle Petty Charity Ride Across America Underway
Rider Magazine Staff
May 4, 2015
The 21st Anniversary Kyle Petty Charity Ride Across America started Saturday, May 2, in Santa Cruz, California. Nearly 200 motorcyclists are riding to raise funds for Victory Junction – a camp created by NASCAR's Petty family to enrich the lives of children with chronic or life-threatening... Read more »
AMA Get Women Riding Campaign Launches
Rider Magazine Staff
May 4, 2015
The American Motorcyclist Association is launching the AMA Get Women Riding campaign to promote motorcycling to women and girls. The campain will include a series of videos, expanded online content and an event for new riders at its Ohio headquarters. "Although motorcycling is a fun and accessible... Read more »
Over $200K Raised in a Weekend Through Ride for Kids Events
Rider Magazine
April 27, 2015
Motorcyclists who attended the Albuquerque, New Mexico, and Houston, Texas, Ride for Kids events over the weekend raised $204,491 for the Pediatric Brain Tumor Foundation. More than 450 motorcyclists gathered on April 26 to honor local brain tumor survivors, who served as the event's Ride for Kids... Read more »
New Website Offers Downloadable New York Route Maps, Trip Options and Event Info
Rider Magazine
April 22, 2015
The Adirondack and 1000 Islands Regions in New York recently launched a new motorcycling touring website www.gotourny.com featuring bilingual suggested trip routes and travel information in both English and French. The website features 25 routes and scenic byways that connect the Adirondack Mountains... Read more »
Prep Your Battery for Spring
Rider Magazine Staff
April 20, 2015
Spring is here and it's time to get your motorcycle ready for some fun. Yuasa Battery Inc., the worldwide leader in powersports batteries, recommends that owners take the steps below to ensure their battery is fresh and ready for 2015. (Note: Whenever working around batteries, it is important to use... Read more »
BMW Motorrad Achieves Best Quarterly Results of All Time
Rider Magazine Staff
April 20, 2015
In the first three months of the year, BMW Motorrad achieved its best quarterly sales figures of all time. As per March sales increased to 31,370 vehicles (previous year: 28,719 units). This is an increase in sales of 9.2 percent as compared to the equivalent period last year. In March, BMW Motorrad... Read more »
2015 American Victory Rally Comes to Colorado Springs in June
Rider Magazine Staff
April 20, 2015
The 2015 American Victory Rally (AVR) will be held in Colorado Springs on June 25-28, 2015. Registration for the event can be found online here. The new location was chosen so riders can enjoy the power and performance of their motorcycles alongside other Victory owners as they ride on some of the world's... Read more »
'Legendary Experiences' Tours Now Offered By Harley-Davidson Museum
Rider Magazine Staff
April 20, 2015
The Harley-Davidson Museum is now offering Legendary Experiences, two signature Harley-Davidson tours featuring top-notch hotel and dining accommodations, behind-the-scenes experiences, VIP exhibit access and more. The Legends & Lakes Road Tour is a Detroit-to-Milwaukee motorcycle ride featuring... Read more »
Where Would Jesus Ride?
Tod Rafferty
April 17, 2015
While it might be argued that Jesus, given His issues with the Italians, would not ride a Moto Guzzi, few would challenge the right to His ride of choice. The question of what Jesus would ride will obviously never be answered to everyone's satisfaction. The faithful of all brands would welcome... Read more »
Touratech to Host Inaugural East Coast Adventure Rally, August 13-16
Press Release
April 16, 2015
Touratech announces the inaugural Touratech East Coast Adventure Rally, which will take place August 13-16, 2015, near Huntingdon, in central Pennsylvania. Hosted on a 200-acre, private farm located in the rolling hills near Rothrock State Forest, the rally will offer participants wonderful areas for... Read more »


text:
Tickets are $10 for adults and $5 for students and seniors. For more details visit music.gmu.edu
Event begins at 8:00PM
Presented by: GMU School of Music
This documentary charts the District's rise from the ashes of the 1968 riots to its emergence as a world-class city, featuring first-hand accounts from those who shaped the events of the time.Learn more →
Classical WETA 90.9 FM showcases notable new (or newly reissued) CDs each week. Hear selections from the CD on-air throughout the week, and check online to learn more about the artist and the music.Learn more →
Historian Garrett Peck discusses the history of brewing in the nation's capital. D.C.'s beer heritage dates back to 1770 and claims some very innovative brewers.Watch now →
This new animated preschool series follows the adorable, spirited Peg and her sidekick Cat as they embark on adventures and learn foundational math concepts and skills.When to watch on WETA Television →
Looking for something to do around town? Want to get the word out about your group's event? Check out our calendar!Learn more →
For more than 30 years, WETA has proudly partnered with Ken Burns to bring landmark documentaries to the nation via public television.Learn more →


text:
Oliver Kalkofe
|Oliver Kalkofe
Oliver Kalkofe at the Romy TV awards 2008
September 12, 1965
Hanover, Germany
|actor, writer
Oliver Kalkofe (born 12 September 1965) is a German satirist, columnist, book author and actor.
Life and career[edit]
Kalkofe was born in Hanover. He grew up in the Engelbostel district of nearby Langenhagen, as well as in Peine. After passing the Abitur in 1984, he finished his training as a foreign language correspondent clerk and interpreter in English and French before enrolling at the University of Münster to major in media and communication studies.
In 1990 he joined the Frühstyxradio, a comedy show on commercial radio station ffn. Broadcast on Sunday mornings, the shows had a theme and were presented by fictional hosts, with episodes of various ongoing series and stand-alone sketches more or less dealing with that theme. Kalkofe developed and voiced a variety of characters and series for the show.
He gained popularity on a national level with the TV show Kalkofes Mattscheibe on German pay TV network Premiere, which he had adapted for television in 1994 from his Frühstyxradio series of the same name. In it he shows clips from German TV and comments on them or parodies them. In 1996 he was awarded the Adolf-Grimme-Preis for the show.
His biggest success are the movies Der WiXXer and Neues vom Wixxer, a parody of the German Edgar Wallace screen adaptations from the 1960s. The movies were based on a Frühstyxradio sketch series and the scripts written together with comedian Bastian Pastewka as Chief Inspector Even Longer. Kalkofe wrote the German translation for Mystery Science Theater 3000: The Movie and dubbd the voice of Tom Servo, viding the other voices.
Only select major roles.
- Der WiXXer (2004, also writer-producer)
- Die ProSieben Märchenstunde: Rumpelstilzchen - Auf Wache im Märchenwald (TV; 2006)
- Neues vom Wixxer (2007, also writer-producer)
- Der Goldene Nazivampir von Absam 2 - Das Geheimnis von Schloß Kottlitz (2007)
- Urmel voll in Fahrt (2008, voice)
Roles in German synchronizations of English movies[edit]
- 1998 Mystery Science Theater 3000: The Movie (de: Mystery Science Theater 3000: Der Film) as Tom Servo and Benkitnorf
- 2005 Robots as Phineas T. Ratchet
- 2006 Cars as Dusty (de: Kling)
- 2007 Little Britain as the German voice of Matt Lucas
- 2009 The Haunted World of El Superbeasto as El Superbeasto
- 2011 Come fly with me as the German voice of Matt Lucas
- 2013 Epic as Mub
- 2013 Planes as (also in English) Franz Fliegenhosen
- Onkel Hottes Märchenstunde (2001, illustrated by Michael Hellmich, ISBN 3-8303-3026-X)
- Der Wixxer (2007, with Bastian Pastewka and Oliver Welke, ISBN 978-3-8025-1744-0)
- Neues vom Wixxer (2007, with Bastian Pastewka and Oliver Welke, ISBN 978-3-8025-1745-7)
- Geschafft! Wir sind blöd! : Kalkofes letzte Worte (2008,
External links[edit]
|Wikimedia Commons has media related to Oliver Kalkofe.
- Official Website
- Oliver Kalkofe at the Internet Movie Database
- Works by and about Oliver Kalkofe in the catalog of the Deutschen Nationalbibliothek


text:
Voyager again, for the first time
View Single Post
May 28 2014, 09:57 AM
Guy Gardener
Fleet Admiral
Location: In the lap of squalor I assure you.
Re: Voyager again, for the first time
You're describing the 29th century assimilation process of the Borg, that was used on Mulcahey to no lasting ill effect in Drone from Season 5... Um... If the Borg adopted this method as standard, if Janeway wouldn't have stopped the Collective from adopting this method as standard, wouldn't this mean that the Borg would have immediately evolved past the point of needing to destroy lives to assimilate cultures and so therefore would have stopped destroying lives to assimilate cultures immediately?
In fact, with the Borg as they are striving for perfection, I do not think that they would have any interest in keeping their current stock of outmoded Drones once they had been outmoded. Trillions of outdated Drones no sexier or useful than Windows 95. It's just a question of if the retired Drones were going to be kicked out of the collective into space, or onto a planetbound landfill, or maybe even given a couple cubes to fly off in and make a life for themselves or if the Borg weren't complete fucking assholes put them back where they found them if their worlds of origin still existed.
Sure it's wrong to anyone else but Janeway to give species technology they are not ready for, just look at what happened to the Hirogen after Kathy gifted them Holodecks.
Hunted for sport by justifiably angry AI.
Tell me I'm wrong.
Logically, I thought that since One was a clone of Mulcahey that Mulcahey and One were played by the same actor... That does seem reasonable right?
J. Paul Boehmer
- One
Todd Babcock
- Ens. Mulcahey
Apparently not. Boehmer is just a delight every time I find him hiding under a quart of latex or a German accent.
"Glitter is the herpes of arts and craft."
Troy Yingst. My Life as Liz
Last edited by Guy Gardener; May 28 2014 at
Guy Gardener
View Public Profile
Send a private message to Guy Gardener
Find More Posts by Guy Gardener


text:
Video Industry News Video Company News Technology Industry News Technology Company News Novelty Industry News Novelty Company News Gay Industry News Gay Company News Legal Industry News All Company News
Company News: Julia Sands to Host Karaoke XXX in Las Vegas on Monday Night
Published: June 05, 2014
It will be a warm night with Julia Sands on Monday, June 9, when she hosts Karaoke XXX.
Company News: Voluptuous Pin-Up Julia Sands to Host Karaoke XXX on Monday
Published: September 13, 2013
Karaoke XXX is the place to be in Las Vegas each Monday night for porn star and karaoke fans.
Photos: Julia Sands
Photographer: Glenn Francis/PacificProDigital.com
Published: March 06, 2014
Photos: Morgan Bailey, Olivia Love, Danielle Foxxx and Julia Sands
Photographer: WendyWilliamsXXX.com
Published: January 28, 2011
Photos: Danielle Foxxx and Julia Sands
Photographer: WendyWilliamsXXX.com
Published: January 28, 2011
Photos: Olivia Love, Danielle Foxxx and Julia Sands
Photographer: WendyWilliamsXXX.com
Published: January 28, 2011
Article: BBWcon Brings Big, Beautiful Models to Las Vegas This Summer
Published: March 31, 2015
This summer marks the arrival of BBWcon, an expo and awards show celebrating all things big, beautiful and sexy. The confab takes place July 10-1...
Company News: Karaoke XXX Goes St. Paddy's Day Party Wild on Monday
Published: March 13, 2014
Las Vegas porn and karaoke fans can celebrate St. Paddy's Day right on Monday, thanks to Karaoke XXX.
Article: Winners of 2nd Annual BBW FanFest Awards Announced
Published: July 30, 2013
The BBW FanFest settled into the Tuscany Suites & Casino in Las Vegas this past weekend, celebrating plus-size pulchritude from plumper to SSBBW....
Company News: 2nd Annual BBW FanFest Kicks Off This Weekend
Published: July 24, 2013
The BBW FanFest is set to invade Las Vegas this weekend for the second annual BBW FanFest Trade and Awards Show. BBW FanFest is being held again...
Company News: Karla Lane Heads to the City of Sin for BBW Fan Fest
Published: July 23, 2013
Las Vegas is the place to be this weekend if you want multiple chances to meet BBW Princess Karla Lane—she'll be in town Friday, July 26 through...
Company News: Cam4 Signs as Title Sponsor for BBW FanFest 2013
Published: May 10, 2013
BBW FanFest returns to Tuscany Casino & Suites -- and Cam4 has signed on as the official title sponsor.
Company News: 2012 BBWFanFest Awards Winners Announced
Published: July 25, 2012
The 2012 BBWFanFest Awards celebrated adult performers of size on Saturday, July 15, with awards handed out to new performers, veterans and...
Company News: Girlfriends Films' Earns 'Best Girl/Girl Series' Award 6 Years in a Row
Published: April 14, 2015
Women Seeking Women is the most heralded lesbian series by X-Rated Critics Organization.
Photographer: Lee Austin/EMMreport.com
Published: September 06, 2013


text:
Michael Hüttermann
Java User Group: JUG Cologne
JUG homepage: http://jugcologne.eu
Michael is a community guy. He established and drives the JUG Cologne, is member of the JCP and is one of the JUGs community leaders on java.net. He helps and supports the community wherever possible. His attitude is: community is more than the sum of individuals. Community work can start small, and its voluntary work often means: invest much personal time to support the community family.
Michael is freelance delivery engineer and experts on Continuous Delivery, Agile ALM and DevOps. He has written a couple of books including 'Agile ALM' (Manning) and 'DevOps for Developers' (Apress).
Further information: http://huettermann.net. Follow him on Twitter: http://twitter.com/huettermann.
- 2814 reads


text:
Fora Plain Reader
Quick Specs
Total Downloads:184
Date Added:May 04, 2009
File Size:4.99MB
Downloads Last Week:1
From NG-Computing: Multilingual dictionary integrated with a basic browser. Features include full-featured tabbed dictionary, dictionary management, embedded browser, split views (browser + dictionary), text file annotation and more.
read more +
User Reviews
Add Your Review
Login or create an account to post a review.
Note that your submission may not appear immediately on our site.
Update Your Review
Since you've already submitted a review for this product, this submission will be added as an update to your original review.
Note that your submission may not appear immediately on our site.
Submit Your Reply
Note that your submission may not appear immediately on our site.
E-mail This Review
Report Offensive Content
Your message has been reported and will be reviewed by our staff.
read more +
More Products to Consider
- Learn touch-typing with a program that dynamically adjusts t...View satellite pictures, maps, terrain, buildings and other ...Look up words in thesaurus and dictionary from almost any pr...Hear the Athan (Azan) automatically five times a day at each...
- View your real-time physical position on moving Google Map.View, read, and convert EPub e-books.Read King James Bible on your PC.Discover how to type and improve your typing.
- Collect GPS data from various GPS trackers simultaneously.Evaluate mathematical equations, generate graphs from equati...Manage all aspects of a school's student administrative syst...Convert and edit video, burn video on discs, download YouTub...
- Get English and Sinhala definitions with technical terms glo...Search and read the Quran in different languages.Organize, edit, and share pictures with this free photo mana...Get an English too Bangla dictionary.
- Convert Kindle Mobi, AZW, PRC books to ePUB format to read K...Try the faster browser that lets you get the most from today...Search the meaning and synonyms of a word on an online Merri...Display Quran in Uthmani script with many options and settin...


text:
Experienced support for Apple products and other modern technologies for business and the home
Based in Katy, CincoTec provides consulting, support and repair for Apple hardware and software and other technologies. With over 20 years experience in Information Technology management and leadership, we bring a wide scope of experience on a variety of technologies—Macs, PCs, iPads, iPhones, networks, servers, printers, data management, training, websites, cloud-based systems, and more.
Have questions or want to discuss a project? Get in touch.
— Stacy Conaway


text:
Heard about a good book? Have a favorite author? The librarians would like to hear from you. Just click on the links and complete the form.
Download your Dallas ISD app today through SchoolWay and have instant access through your Apple or Android device to news, cafeteria menus, important dates, messages and the Parent Portal.
Communities in School Newsletter


text:
Scottish Food and Drink Federation
Representing the food and drink manufacturing industry in Scotland
Here are the latest news stories from SFDF. If you are a journalist and would like to be notified when SFDF issues a press release, please send an email to: firstname.lastname@example.com.
At the Food and Drink Federation (FDF)'s recent Council meeting Fiona Kendrick,
CEO and Chairman of Nestlé UK and Ireland, was elected FDF President for 2015
succession to Richard Evans, President of PepsiCo West Europe & South Africa
Region. A formal handover of responsibilities will take place at the FDF
President's Reception on 15 December. More about Nestlé's Fiona Kendrick Elected
FDF President for 2015
Nineteen female students from Winstanley College, Wigan UTC and Cardinal Newman
School yesterday visited PepsiCo's Skelmersdale Walkers crisp plant as part of
new partnership with youth skills initiative MyKindaCrowd. More about Pepsico hosts students at site to inspire Engineering Careers
Mars Chocolate's Slough factory opened its doors to 19 female students from St
Bernards, St Joseph's Catholic, Langley Grammar and Slough & Eton schools
yesterday as part of a new programme with youth skills initiative MyKindaCrowd. More about Mars inspires the next generation of engineers
A Scottish Industry Advisory Group (IAG) which is committed to making the best
use of our diminishing resources and reduce waste has been shortlisted for a
major Scottish award. More about SFDF shortlisted for Interface Collaboration Award
Small and start-up businesses in food and drink are being given an insight into
the secrets of success from leaders in the sector at a one-off free event at
London's ExCel conference centre. More about FDF Launches Event to Boost Start Up Businesses
Twenty students from Canon Lee School and David Young Community Academy are
fresh from a visit to the York-based factory of well-known food producer Nestlé
Ireland, as part of the BIS See Inside Manufacturing initiative and a
partnership with youth skills initiative MyKindaCrowd. More about Nestlé hosts students at site to inspire Engineering Careers
More than 2,400 students and teachers are to be targeted in a bid to inspire
interest in engineering and other STEM-related careers in the food and drink
manufacturing sector. More about Food industry tempts tomorrow's engineers away from competing sectors
Students on the UK's only food engineering masters' degree course dedicated
entirely to food and drink manufacturing got to hear from top industrialist
Kendrick, CEO of Nestlé UK & Ireland, yesterday. More about Top CEO inspires future food engineers on industry's first engineering degree
A group of students got an exclusive insight into what it's like to be an
engineer working in the food and drink industry - the UK's largest
sector. More about Students get a taste of Engineering at Premier Foods factory in Worksop
FDF has announced that its Director General, Melanie Leech, will be leaving in
the New Year after more than nine years to head up the British Property
Federation. More about FDF bids farewell to long-serving Director General
SFDF Update features stories about the food and drink industry in Scotland.
Read the latest SFDF Update
2014 UK food and drink export statistics
UK industry
export case studies
Copyright © 2014 Food and Drink Federation - www.fdf.org.uk