text:
DETERMINING PREDICATE SELECTIVITY IN QUERY COSTING
Techniques for estimating a cost of executing a query are provided. A query includes multiple predicates, each of which is associated with a selectivity value that indicates a percentage of input that satisfies the condition of the corresponding predicate. The selectivity values are used to determine an estimated cost of executing the query. In one technique, a group of multiple predicates of a query are treated as a single predicate. Thus, a single selectivity value, rather than multiple selectivity values, is determined for that group. In a related technique, instead of determining a selectivity value of a predicate in isolation with respect to other predicates of a query, the selectivity value of a set of one or more predicates in a query is generated based on other predicates in the query.
Zhang, Ning (Palo Alto, CA, US)
Baby, Thomas (Maple Valley, WA, US)
Agarwal, Nipun (Santa Clara, CA, US)
ORACLE INTERNATIONAL CORPORATION (Redwood Shores, CA, US)
G06F17/30
20070094268 Broadband centralized transportation communication vehicle for extracting transportation topics of information and monitoring terrorist data April, 2007 Tabe
20080046474 EFFICIENT DISCOVERY OF KEYS IN A DATABASE February, 2008 Sismanis
20070011211 AUDITING AND TRACKING CHANGES OF DATA AND CODE IN SPREADSHEETS AND OTHER DOCUMENTS January, 2007 Reeves et al.
20020111953 Docketing system August, 2002 Snyder
20070150438 Evaluation of name prefix and suffix during a search June, 2007 Reeb
20090119246 AUTOMATED CAPTURE OF INFORMATION GENERATED AT MEETINGS May, 2009 Kansal
20080183676 Systems and methods for reviewing gift information July, 2008 Holland et al.
20020069207 System and method for conducting surveys June, 2002 Alexander et al.
20090299970 Social Network for Mail December, 2009 Rodriguez
20060155726 Generating a parser and parsing a document July, 2006 Krasun et al.
20050160089 Information extracting system and music extracting system July, 2005 Fujita et al.
RAHMAN, SABANA
HICKMAN PALERMO BECKER BINGHAM/ORACLE (1 Almaden Boulevard Floor 12, SAN JOSE, CA, 95113, US)
1. A method comprising: identifying a group of two or more predicates from a plurality of predicates in a particular query; generating, based on the group of predicates, a single selectivity value; associating the selectivity value with the group of predicates; and estimating, based on the selectivity value, a cost of executing the particular query, wherein the selectivity of each predicate in the group of predicates is not used to estimate a cost of executing the particular query.
2. The method of claim 1, wherein: the method further comprising, for each other predicate, in the plurality of predicates, that is not in the group of predicates, generating another selectivity value; and estimating the cost includes estimating the cost based on the other selectivity value(s).
3. The method of claim 1, further comprising: receiving an initial query; and generating, based on the initial query, a set of one or more subsequent queries, wherein the set includes the particular query.
4. The method of claim 3, further comprising, if the particular query is associated with the lowest cost relative to other queries in the set of one or more subsequent queries, then executing the particular subsequent query.
5. The method of claim 1, wherein generating the selectivity value includes generating the selectivity value based on the semantics of the group of predicates.
6. The method of claim 1, wherein the group of predicates correspond to a column of a table.
7. The method of claim 6, wherein the table is a path table of an XML index; and the column identifies, for each row in the table, a unique order key value for an XML element that corresponds to said each row.
8. The method of claim 6, wherein the column is correlated with another column of the table, wherein the other column corresponds to one or more other predicates of the plurality of predicates.
9. A method for estimating a cost of executing a query, the method comprising: identifying a plurality of predicates in the query, wherein the plurality of predicates includes a first set of one or more predicates and a second set of one or more predicates that are different than the first set of predicates; generating, based on the first set of predicates, a first selectivity value; in response to determining that the first set of predicates is correlated with the second set of predicates, generating, based on the second set of predicates and the first set of predicates, a second selectivity value; and estimating, based on the first selectivity value and the second selectivity value, a cost of executing the query.
10. The method of claim 9, wherein: the first set of predicates corresponds to a first column of a table; and the second set of predicates corresponds to a different column of the table.
11. The method of claim 10, wherein: an XML index includes the table; the first column is a path identifier column; the different column is an order key value column; the path identifier column identifies, for each row in the path table, a path identifier for an XML element that corresponds to said each row; and the order key value column identifies, for each row in the path table, a unique order key value for an XML element that corresponds to said each row.
12. The method of claim 9, wherein determining that the first set of predicates is correlated with the second set of predicates includes determining, based on the first set of predicates, that a variable reference in the second set of predicates is constrained to certain values.
13. The method of claim 9, further comprising: receiving data that comprises a plurality of elements; and analyzing the data to generate statistics about the data, wherein: the statistics indicate a hierarchical relationship among the plurality of elements, the statistics include the number of a particular element of the plurality of elements and the number of parent elements of the particular element, and generating the second selectivity value is also based on the statistics.
14. A machine-readable storage medium carrying instructions which, when executed by one or more processors, cause the one or more processors to perform the method of claim 1.
23. A machine-readable storage medium carrying instructions which, when executed by one or more processors, cause the one or more processors to perform the method of claim 10.
This application is related to U.S. patent application Ser. No. 10/884,311 filed on Jul. 2, 2004, entitled "Index For Accessing XML Data", the contents of which are incorporated by reference as if fully disclosed herein.
The present invention relates to database systems, and in particular, to optimization of queries executed by a database system.
XML data management has attracted great attention in the recent decade both in the academia and in the industry. Unlike in the relational data model, where the schema (e.g., number of columns, the data type of each column, and the semantic constraints on those columns) needs to be predefined, XML allows data to be organized in a schema-less fashion as long as the data remains in a hierarchical tree structure. Due to its flexibility to model such semi-structured data, XML has been used extensively in many business settings that require data exchanges between different organizations. However, also due to the flexibility of the XML data model, query processing on XML data is usually less efficient than query processing on data stored relationally.
XML indexes help speed up XML data access. One such XML index is described in U.S. patent application Ser. No. 10/884,311, which is referenced above. This XML index includes a relational table, referred to herein as a path table, to capture properties of indexed XML elements in one or more XML documents. Each property corresponds to a column in the path table. Secondary indexes, such as B-tree indexes, may be created on the columns of the path table.
When a query is submitted against indexed XML data, the query is, if necessary, first rewritten into SQL on the path table. The query rewrite is automatically performed by a relational database management system (RDBMS) in order to guarantee that the semantics of the query is equivalently expressed using SQL on the columns in the path table. In this way, existing relational techniques (e.g., a query optimizer selecting the "best" of multiple plans) are exploited to speed up XML query processing.
The schema of the path table is defined as follows:
Column Name Data Type
RID ROWID
PATHID RAW(8)
ORDER_KEY RAW(1000)
LOCATOR RAW(2000)
VALUE VARCHAR2(4000)
In one implementation, each row in the path table corresponds to one element in an XML document. Each column in the path table represents some property of the XML element, which element may be a node or attribute.
In this example, the PATHID column represents an identifier of the rooted path of an element, which column may be used to answer an XML path expression. The ORDER_KEY column represents a unique identifier of an element. The ORDER_KEY column may be used to answer structural relationships (e.g., parent-child, ancestor-descendant, precedence in document order) between elements.
For example, an XML index is created on XML auction documents (referred to collectively as XMARK_CSX). The following SQL/XML query is submitted against XMARK_CSX to identify the person's name whose ID is "person0".
SELECT S.NAME
FROM XMARK_CSX T,
XMLTABLE('/site/people/person' PASSING T.OBJECT_VALUE
COLUMNS NAME VARCHAR2(40)
PATH '/person/name/text( )',
ID VARCHAR2(40) PATH '/person/@id') S
WHERE S.ID = 'person0';
QUERY EXAMPLE 1
Given the XML index created on XMARK_CSX, Query Example 1 is rewritten, using the path table (named XMARK_CSX_IDX_PT in this example), into the following SQL statement:
1. SELECT CAST(
2. (SELECT P3.VALUE VAL
3. FROM XMARK_CSX_IDX_PT P3
4. WHERE P3.RID = A_4.RID AND
5. P3.ORDER_KEY >= A_4.ORDER_KEY AND
6. P3.ORDER_KEY <
SYS_ORDERKEY_MAXCHILD(A_4.ORDER_KEY)
7. P3.PATHID = PATHTOID('/site/people/person/name') AND
8. SYS_XMLI_LOC_ISTEXT(P3.LOCATOR,P3.PATHID) = 1
9. ) AS VARCHAR2(40) ) "NAME"
10. FROM XMARK_CSX T,
11. XMARK_CSX_IDX_PT A_4,
12. XMARK_CSX_IDX_PT P6
13. WHERE P6.VALUE = 'person0' AND
14. P6.RID = A_4.RID AND
15. P6.ORDER_KEY > A_4.ORDER_KEY AND
16. P6.ORDER_KEY < SYS_ORDERKEY_MAXCHILD(A_4.
ORDER_KEY) AND
17. SYS_ORDERKEY_DEPTH(P6.ORDER_KEY) =
SYS_ORDERKEY_DEPTH(A_4.ORDER_KEY)+1 AND
18. P6.PATHID = PATHTOID('/site/people/person/@id') AND
19. SYS_XMLI_LOC_ISNODE(P6.LOCATOR)=1 AND
20. T.ROWID = A_4.RID AND
21. A_4.PATHID = PATHTOID('/site/people/person') AND
22. SYS_XMLI_LOC_ISNODE(A_4.LOCATOR) = 1;
In Query Example 2, there are three references to the path table (A—4, P3, and P6). Due to the predicates on the PATHID column (see lines 7, 18 and 21), these three path table references represent, respectively, elements with a particular rooted path (i.e., A—4 corresponds to elements under/site/people/person, P3 corresponds to elements under/site/people/person/name, and P6 corresponds to elements under/site/people/person/@id). These path table references are "joined" on the ORDER_KEY columns (lines 5-6 and 15-17) to express the parent-child relationships between these elements. Each of these predicates, together with the predicates on the RID and LOCATOR columns, jointly express the constraints specified by Query Example 1.
Because Query Example 2 is a relational query, a query optimizer may enumerate multiple execution plans and select the "best" execution plan in terms of, e.g., estimated cost. Estimated cost may be based on numerous factors, such as an estimated time to process the query and an estimated number of resources that are required to process query.
During the costing process, one of the tasks for the query optimizer is to estimate the selectivity of the predicates in the WHERE-clause. The selectivity of a predicate refers to a portion of input that may satisfy the predicate. In some cases, the selectivity of a predicate is known precisely at query optimization. In other cases, the selectivity of a predicate may be an educated guess. The selectivity of each predicate is used to estimate the cardinality of the query (e.g., the number of results). In query costing, the higher the selectively of a predicate, the higher the percentage of input satisfies the predicate.
Query optimizers typically operate under the assumption that each predicate in a query is independent of the other predicates in the query. For example, a query optimizer assumes that the selectivity of the range condition on the ORDER_KEY column is not related to the selectivity of the equality predicates on the PATHID column. Under this independency assumption, the combined selectivity of all the predicates is simply the multiplication of the selectivities of the individual predicates. In many cases, such an independency assumption causes great errors in the selectivity estimation, which errors may ultimately result in the optimizer selecting an evaluation plan that is orders of magnitude slower than another evaluation plan.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
FIG. 1A is a diagram that depicts a node tree that corresponds to an example XML document, according to an embodiment of the invention;
FIG. 1B is a diagram that depicts a node tree that corresponds to an example synopsis, according to an embodiment of the invention;
FIG. 2A is a diagram that depicts a node tree that corresponds to another example XML document, according to an embodiment of the invention;
FIG. 2B is a diagram that depicts a node tree that corresponds to another example synopsis, according to an embodiment of the invention; and
FIG. 3 is a block diagram that depicts a computer system upon which an embodiment of the invention may be implemented.
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
Techniques are provided for estimating the cost of a query. According to one technique, instead of assuming that each predicate in a query is independent of each other predicate, it is determined that two or more predicates in the query are correlated. Based on this determination, one set of one or more predicates is used to determine the selectivity of another set of one or more predicates.
According to a related technique, a single selectivity value is generated and associated with a group of predicates of a query instead of generating a separate selectivity value for each predicate in the group.
In either technique, the query may be an original query or a rewritten query.
Although the following description provides examples in the context of XML, embodiments of the invention are not so limited. Embodiments of the invention are also applicable to data that is not XML-based.
Similarly, although the following description provides examples using a path table as described above, embodiments of the invention are also applicable to tables that have a different schema.
Generally, a server, such as a database server, is a combination of integrated software components and an allocation of computational resources, such as memory, a node, and processes on the node for executing the integrated software components, where the combination of the software and computational resources are dedicated to providing a particular type of function on behalf of clients of the server. A database server governs and facilitates access to a particular database, processing requests by clients to access the database.
A database comprises data and metadata that is stored on a persistent memory mechanism, such as a set of hard disks. Such data and metadata may be stored in a database logically, for example, according to relational and/or object-relational database constructs. Database applications interact with a database server by submitting to the database server commands that cause the database server to perform operations on data stored in a database. A database command may be in the form of a database statement. For the database server to process the database statements, the database statements must conform to a database language supported by the database server. One non-limiting example of a database language that is supported by many database servers is SQL, including proprietary forms of SQL supported by such database servers as Oracle, (e.g. Oracle Database 11 g). SQL data definition language ("DDL") instructions are issued to a database server to create or configure database objects, such as tables, views, or complex types.
Generally, data is stored in a database in one or more data containers, each container contains records, and the data within each record is organized into one or more fields. In relational database systems, the data containers are typically referred to as tables, the records are referred to as rows, and the fields are referred to as columns. In object-oriented databases, the data containers are typically referred to as object classes, the records are referred to as objects, and the fields are referred to as attributes. Other database architectures may use other terminology. Systems that implement the present invention are not limited to any particular type of data container or database architecture. However, for the purpose of explanation, the examples and the terminology used herein shall be that typically associated with relational or object-relational databases. Thus, the terms "table", "row" and "column" shall be used herein to refer respectively to the data container, record, and field.
Query Optimizer and Execution Plans
Generally, a query parser receives a query statement and generates an internal query representation of the query statement. Typically, the internal query representation is a set of interlinked data structures that represent various components and structures of a query statement. The internal query representation may be in the form of a graph of nodes, each interlinked data structure corresponding to a node and to a component of the represented query statement. The internal representation is typically generated in memory for evaluation, manipulation, and transformation by a query optimizer.
The term query is used herein to refer to any form of representing a query, including a query in the form of a database statement or in the form of an internal query representation. A query optimizer may receive a query from another entity other than query parser, where the query received is in the form of an internal query representation.
A query optimizer generates one or more different candidate execution plans for a query. The query optimizer evaluates the one or more candidate execution plans to determine which should be used to compute the query.
Execution plans may be represented by a graph of interlinked nodes, referred to herein as operators, that each corresponds to a step of an execution plan, referred to herein as an execution plan operation. The hierarchy of the graphs (i.e., directed tree) represents the order in which the execution plan operations are performed and how data flows between each of the execution plan operations. Execution plan operations include, for example, a table scan, an index scan, hash-join, sort-merge join, nested-loop join, and filter.
A query optimizer may optimize a query by transforming the query. In general, transforming a query involves rewriting a query into another query that produces the same result and that can potentially be executed more efficiently, i.e. one for which a potentially more efficient and less costly execution plan can be generated. Examples of query transformation include view merging, subquery unnesting, filter predicate move-around and pushdown, common sub-expression elimination, outer-to-inner join conversion, materialized view rewrite, star transformation, and join predicate push down. A query is rewritten by manipulating a deep copy of the query representation to form a transformed query representation representing a transformed query. The query as transformed is referred to herein as the transformed query; the query whose copy is transformed is referred to as the base query.
A query optimizer may also perform more than one transformation for evaluation. Each transformed query generated for a query is referred to as a candidate transformed query or candidate query. A transformed query rewritten to generate another transformed query is referred to herein as a base query for the other transformed query. The query originally received by a query optimizer is referred to as the original query.
To evaluate the candidate execution plans in the search space, a query optimizer may estimate a cost of each candidate execution plan and compares the estimated query costs to select an execution plan for execution. In an embodiment, the estimated query cost is generated by a query cost estimator, which may be a component of a query optimizer. For a plan supplied by a query optimizer, a cost estimator computes and generates an estimated query cost. In general, the estimated query cost represents an estimate of computer resources expended to execute an execution plan. The estimated cost may be represented as the execution time required to execute an execution plan. To determine which candidate execution plan in the search space to execute, a query optimizer may select the candidate execution plan with the lowest estimated cost.
As mentioned previously, multiple predicates of a query may be (e.g., highly) correlated. This knowledge may be exploited to more accurately estimate the cost of executing the query. Relatively accurate estimation of correlated predicates requires statistics on the columns associated with the predicates. According to an embodiment of the invention, a collection of one or more XML documents is summarized into a synopsis that captures all rooted paths in the one or more XML documents. This is possible due to the hierarchical nature of the XML data model. Statistics for each node in the synopsis are stored. The following is an example XML document in which element B has at least a C child but may or may not have a D child.
<C>c1</C> <D>d1</D>
<C>c2</C> <C>c3</C> <C>c4</C>
<C>c5</C> <C></C>
XML DOCUMENT EXAMPLE 1
FIG. 1A is a diagram that depicts a node tree 102 that corresponds to XML Document Example 1.
XML Document Example 1 is analyzed to gather statistics about each element, or each targeted element, in the document. From this analysis, a synopsis is generated. The following is an example synopsis of XML Document Example 1.
<A count="1" parent_cnt="1" children_cnt="4" descendants_cnt="13"
text_cnt="0">
<B count="4" parent_cnt="1" children_cnt="9"
descendants_cnt="9" text_cnt="0">
<C count="7" parent_cnt="4" children_cnt="0"
descendants_cnt="0" text_cnt="6"/>
<D count="2" parent_cnt="2" children_cnt="0"
SYNOPSIS EXAMPLE 1
FIG. 1B is a diagram that depicts a synopsis tree 104 that corresponds to Synopsis Example 1. Synopsis tree 104 is described in more detail below.
Synopsis Example 1 preserves some information in XML Document Example 1. First, in a synopsis, such as Synopsis Example 1, most (if not all) rooted paths of a document are preserved.
Second, the number of elements that can be reached by each path in a document may be captured in a synopsis, e.g., using the attribute "count". For example, Synopsis Example 1 indicates that there are seven (7) elements under path/A/B/C and only two (2) elements under path/A/BID.
Third, the cardinality of parent-child relationships in a document may be accurately captured in a synopsis, e.g., using the attribute "parent_cnt". For example, according to Synopsis Example 1, the parent_cnt of element D is two (2), which indicates that the number of parents (in this case element B) of the two (2) D elements is two (2). Based on this information, it is possible to derive that there are two (2) B elements that do not have a child element D (i.e., because there are four (4) B elements).
Fourth, the number of children and descendants of an element in a document may be captured in a synopsis, e.g., using the "children_cnt" and "descendants_cnt" attributes, respectively. According to Synopsis Example 1, element A has four (4) children and 13 descendants.
Fifth, the number of text nodes in a document may be captured in a synopsis, e.g., using the "text_cnt" attribute. According to Synopsis Example 1, each D element contains text, while all but one C element contains text.
Thus, each node in synopsis tree 104 corresponds to a different element in XML Document Example 1: element A, element B, element C, and element D. Also, each node contains information about the corresponding elements in XML Document Example 1. Thus, the root node in synopsis tree 104 corresponds to element A and contains the values 1, 1, 4, 13, and 0. The first value corresponds to the count attribute, the second value corresponds to the parent count attribute, the third element corresponds to the children count attribute, the fourth element corresponds to the descendant count attribute, and the fifth element corresponds to the number of text nodes.
With some of this information about XML Document Example 1, the combined selectivity of two or more predicates may be determined. Previously, the selectivity of certain predicates were either assigned default values or determined individually under the independence assumption.
Synopsis Storage
A synopsis may be stored and analyzed in various manners. For example, a synopsis may be stored and analyzed as a text document. As another example, a node tree, such as synopsis tree 104, may be generated from a text version of a synopsis to allow for relatively fast navigation of the synopsis.
As another example, a hash table may be generated from a text version of a synopsis where each element in the hash table is hashed by a particular value of the element, such as a path identifier of the element. With respect to XML Document Example 1, the path identifier of element D is IA/BID. If an optimizer identifies that path identifier, then the path identifier is passed as a parameter in a hash function. The result of the hash function is a location in the hash table where synopsis information about element D (under path/A/BID) is stored.
Whether stored as text, a node tree, and/or a hash table, a synopsis may be stored in volatile memory and/or non-volatile memory.
EXAMPLE QUERY COSTING
According to one known technique for estimating a cost of executing a query, default values are assigned to each order key predicate. The following example illustrates an independent assumption technique, where a query optimizer calculates the selectivity of each of order key predicate separately and subsequently multiplies them together.
The semantics of the WHERE-clause in the following SQL statement is to find the B and D element pairs such that D is a child of B.
1. SELECT P1.order_key, P2.order_key
2. FROM PATHTABLE P1, PATHTABLE P2
3. WHERE P1.rid = P2.rid AND
4. P1.pathid = PATHTOID('/A/B') AND
5. P2.pathid = PATHTOID('/A/B/D') AND
6. P2.order_key > P1.order_key AND
7. P2.order_key < SYS_ORDERKEY—
MAXCHILD(P1.order_key) AND
8. SYS_ORDERKEY_DEPTH(P1. order_key)+1 =
SYS_ORDERKEY_DEPTH(P2.order_key)
SQL STATEMENT EXAMPLE 1
In SQL Statement Example 1, there are two path identifier predicates (lines 4-5) and three order key predicates (lines 6-8). The three order key predicates ensure that element D is a child of element B and not a mere descendant of element B. For example, according to a pre-order traversal of XML Document Example 1 and/or node tree 102: (a) the order key value of element A is 1; (b) the order key values of elements B are, respectively, 1.1, 1.2, 1.3, and 1.4; and (c) the order key values of elements C and D that are children of the first B element are, respectively, 1.1.1 and 1.1.2.
The predicate at line 6 ensures that element D comes logically after element B in the corresponding XML document. When the predicates at lines 4-5 are true and the predicate at line 6 is applied to the first D element (1.1.2) and the first B element (1.1), the predicate at line 6 (1.1.2>1.1) is true.
The predicate at line 7 ensures that element D is not in a subtree that is logically subsequent to element B. In other words, the predicate at line 7 eliminates the (B, D) pairs where D is the "nephew" of B. If only the predicates at lines 6 and 8 were applied, then the second D element (in XML Document Example 1) would be considered a child of the first B element, which is incorrect. Therefore, the function SYS_ORDERKEY_MAXCHILD(order_key1) is used to return a large value (e.g., ∞), such that it is greater than all descendants of order_key1 but less than the next sibling of order_key1. Thus, when the predicates at lines 4-5 are true and the predicate at line 7 is applied to the first D element (1.1.2) and the first B element (1.1), the predicate at line 7 (e.g., 1.1.2<1.1.∞) is true.
The predicate at line 8 ensures that element D is not a mere descendant of element B, but rather just one level "below" element D. The function SYS_ORDERKEY_DEPTH is used to return the depth of an element. In this case, the depth of each B element (in XML Document Example 1) is 2 and the depth of each D element is 3. When the predicates at lines 4-5 are true and the predicate at line 8 is applied to the first B element (depth of 2) and the first D element (depth of 3), the predicate at line 8 (2+1=3) is true.
In SQL Statement Example 1, the selectivity of the predicate at line 4 may be determined using Synopsis Example 1. From Synopsis Example 1, it is determined that the number of elements in XML Document Example 1 is 14 (e.g., "count" of element A+"descendants_cnt" of element A). Also from Synopsis Example 1, it is determined that the number of elements under the path/A/B is four (4) (e.g., "count" of element B). Thus, the selectivity of predicate P1.pathid=PATHTOID('/A/B') is 4/14.
Similarly, the selectivity of the predicate at line 5 (P2.pathid=PATHTOID('/A/B/D')) may be determined from Synopsis Example 1. The selectivity of this predicate is 2/14 because there are two (2) elements under the path/A/BID.
The selectivity of the predicate at line 6 is 91/196 because there are 91 pairs of (P1,P2) that satisfy P2.order_key>P1.order_key. (The notation '(P1,P2)' signifies a join of P1 and P2.) Lastly, the selectivity of the predicates at lines 7-8 are, respectively, 127/196 and 40/196.
Each of these selectivity values may be calculated using statistics (e.g., from Synopsis Example 1) on the PATHID and ORDER_KEY columns. In this example, each predicate is completely accurate. However, each predicate is assumed to be independent of the other predicates. Because the query optimizer does not factor in the correlation between the PATHID and ORDER_KEY columns, the resulting selectivity is simply the multiplication of each selectivity value, which is 4/14*2/14*91/196*127/196*40/196=0.0025. The number of results of the query (which is also referred to as "cardinality estimation") may be calculated by multiplying the cardinality of the two input tables with the combined selectivity value. The result of this multiplication is 14*14*0.0025=0.49.
However, as can be seen from XML Document Example 1 (and node tree 102), there are actually two (2) pairs of B and D elements that satisfy parent-child relationships. Therefore, the error rate (which indicates a difference between an estimate cost and an actual cost) is |0.49−2|/2=75.5%. In many situations, this error rate is unacceptable. Potentially numerous other queries may have been ignored that, when executed, determine a valid result with a lower relative cost.
Query Costing Using Knowledge of Correlated Predicates
Instead of assuming that each predicate in a query is independent from every other predicate in the query, the knowledge that two or more predicates in a query are correlated is exploited to generate, in many cases, a more accurate estimated cost. Additionally or alternatively, instead of determining a separate selectivity value for each predicate, a single selectivity value is generated for and associated with a group of predicates. To be clear, this single selectivity value is not the result of multiplying individual selectivity values, as discussed previously.
In SQL Statement Example 1, it is determined that the ORDER_KEY column and the PATHID column, of the path table disclosed previously, are correlated. In contrast, for example, there tends to be no correlation between the PATHID column and the VALUE column. Due to the correlation determination, a single selectivity value is determined for the three predicates (i.e., at lines 6-8) on the ORDER_KEY columns, given the knowledge about the predicates on the PATHID columns (i.e., at lines 4-5). The selectivity values of the predicates (i.e., at lines 4-5) on the PATHID columns remains the same, i.e., 4/14 and 2/14 respectively. The selectivity value for the three predicates on the ORDER_KEY columns is calculated based on the PATHID conditions. For example, even though there are 91 pairs of (P1,P2) that satisfy P2.order_key>P1.order_key, by examining SQL Statement Example 1, it is determined that P1 is constrained to the elements under path/A/B and P2 is constrained to the elements under path/A/BID. Synopsis Example 1 is used to determine that there are only 2 out of 8 pairs of (P1,P2) that satisfy the predicates at lines 6-8 whose semantics is that P2 is a child of P1. Therefore, the combined selectivity value of the entire WHERE-clause is 4/14*2/14*2/8=2/196. The cardinality of the entire query is, therefore, 14*14*2/196=2, which happens to be the correct value in this example. This cardinality may be used, in whole or in part, to estimate the cost of executing SQL Statement Example 1.
ANOTHER EXAMPLE OF QUERY COSTING
FIG. 2A is a diagram that depicts a node tree 202 that corresponds to another XML document, referred to herein as XML Document Example 2. XML Document Example 2 is analyzed to gather statistics about each element, or each targeted element, in the document. From this analysis, a synopsis is generated. The following is an example synopsis of XML Document Example 2.
<A count="1" parent_cnt="1" children_cnt="5" descedeants_cnt="13">
desendants_cnt="8">
descendants_cnt="1"/>
<E count="1" parent_cnt="1" children_cnt="0"
In this example, XML Document Example 2 does not have any text nodes. Therefore, for purposes of brevity, the text_cnt attribute and corresponding value are omitted from Synopsis Example 2.
FIG. 2B is a diagram that depicts a synopsis tree 204 that corresponds to Synopsis Example 2. Similar to Synopsis Example 2, FIG. 2B omits the text_cnt value for each node in synopsis tree 204.
The semantics of the WHERE-clause in the following SQL statement is to find the B, C element couples such that element B has both children C and D.
1. SELECT P1.order_key, P2.order_key, P3.order_key
5. P2.pathid = PATHTOID('/A/B/C') AND
8. SYS_ORDERKEY_DEPTH(P1.ORDER_KEY)+1 =
SYS_ORDERKEY_DEPTH(P2.ORDER_KEY) AND
9. EXISTS(
10. SELECT null
11. FROM PATHTABLE p3
12. WHERE P1.rid = P3.rid AND
13. P3.pathid = PATHTOID('/A/B/D') AND
14. P3.order_key > P1.order_key AND
15. P3.order_key <
SYS_ORDERKEY_MAXCHILD(P1.order_key
) AND
16. SYS_ORDERKEY_DEPTH(P1.order_key)+1 =
SYS_ORDERKEY_DEPTH(P3.order_key))
Because it is known that the PATHID and ORDER_KEY columns of the path table are correlated, a single selectivity values is determined for the set of three order key predicates at lines 6-8.
Based on Synopsis Example 2, it is determined that the selectivity values of the predicates (i.e., at lines 4-5) on the PATHID columns are, respectively, 2/14 and 5/14.
The selectivity value for the three predicates on the ORDER_KEY columns at lines 6-8 is calculated based on the PATHID conditions. For example, it is determined that P1 is constrained to the elements under path/A/B and P2 is constrained to the elements under path/A/B/C. Synopsis Example 2 is used to determine that there are 5 out of 25 pairs of (P1,P2) that satisfy the predicates at lines 6-8 whose semantics is that P2 is a child of P1.
The semantics of subquery 9-16 is to filter out all B elements that have no child D element. The selectivity of the whole subquery may be determined, from Synopsis Example 2, by the number of B elements that have a D child. Then, the percentage of B elements that have a child D element is 2/5 (e.g., "parent_cnt" of element D is 2/"count" of element B).
If it is assumed that the selectivity of a subquery is independent of the other predicates (i.e., the fact that element B has a child D is independent on whether B also has a child C), then all these selectivities are multiplied together to generate the combined selectivity value of the entire WHERE-clause: 2/14*5/14*5/25*2/5=100/24500. The estimated cardinality of the entire query is, therefore, 14*14*100/24500=4/5. The actual cardinality of the query is one (1) because only one B element has both a C element and a D element as children. The estimation error (|4/5−1|/1=0.2), which is due to the independence assumption of C and D as the children of B, is relatively small. This estimation error is, however, a significant improvement over the estimation error that is due to not considering the correlations between the PATHID and ORDER_KEY columns. This calculated cardinality may be used, in whole or in part, to estimate the cost of executing SQL Statement Example 2.
In addition to the child axis and predicates referred to in the examples above, path expressions may also include node tests, other axis specifiers (e.g., ancestor, descendant-or-self), and functions and operators as specified in XPath 2.0. Embodiments of the invention may be used with path expressions that include these additional features as long as a synopsis, or similar statistics, is maintained that allows the selectivity associated with the query predicates to be evaluated.
FIG. 3 is a block diagram that depicts a computer system 300 upon which an embodiment of the invention may be implemented. Computer system 300 includes a bus 302 or other communication mechanism for communicating information, and a processor 304 coupled with bus 302 for processing information. Computer system 300 also includes a main memory 306, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 302 for storing information and instructions to be executed by processor 304. Main memory 306 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 304. Computer system 300 further includes a read only memory (ROM) 308 or other static storage device coupled to bus 302 for storing static information and instructions for processor 304. A storage device 310, such as a magnetic disk or optical disk, is provided and coupled to bus 302 for storing information and instructions.
Computer system 300 may be coupled via bus 302 to a display 312, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 314, including alphanumeric and other keys, is coupled to bus 302 for communicating information and command selections to processor 304. Another type of user input device is cursor control 316, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 304 and for controlling cursor movement on display 312. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
The invention is related to the use of computer system 300 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 300 in response to processor 304 executing one or more sequences of one or more instructions contained in main memory 306. Such instructions may be read into main memory 306 from another machine-readable medium, such as storage device 310. Execution of the sequences of instructions contained in main memory 306 causes processor 304 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term "machine-readable medium" as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. In an embodiment implemented using computer system 300, various machine-readable media are involved, for example, in providing instructions to processor 304 for execution. Such a medium may take many forms, including but not limited to storage media and transmission media. Storage media includes both non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 310. Volatile media includes dynamic memory, such as main memory 306. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 302. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. All such media must be tangible to enable the instructions carried by the media to be detected by a physical mechanism that reads the instructions into a machine.
Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to processor 304 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 300 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 302. Bus 302 carries the data to main memory 306, from which processor 304 retrieves and executes the instructions. The instructions received by main memory 306 may optionally be stored on storage device 310 either before or after execution by processor 304.
Computer system 300 also includes a communication interface 318 coupled to bus 302. Communication interface 318 provides a two-way data communication coupling to a network link 320 that is connected to a local network 322. For example, communication interface 318 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 318 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 318 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 320 typically provides data communication through one or more networks to other data devices. For example, network link 320 may provide a connection through local network 322 to a host computer 324 or to data equipment operated by an Internet Service Provider (ISP) 326. ISP 326 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 328. Local network 322 and Internet 328 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 320 and through communication interface 318, which carry the digital data to and from computer system 300, are exemplary forms of carrier waves transporting the information.
Computer system 300 can send messages and receive data, including program code, through the network(s), network link 320 and communication interface 318. In the Internet example, a server 330 might transmit a requested code for an application program through Internet 328, ISP 326, local network 322 and communication interface 318.
The received code may be executed by processor 304 as it is received, and/or stored in storage device 310, or other non-volatile storage for later execution. In this manner, computer system 300 may obtain application code in the form of a carrier wave.
In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Previous Patent: APPLICATION OF USER CONTEXT TO SEARCHES IN A VIRTUAL UNIVERSE
Next Patent: METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR PROVIDING CORRELATIONS BETWEEN INFORMATION FROM H...


Here are just some of the ministries that are going on at Rainier Hills throughout the week (including Sunday mornings!).
Also, please check out our LIFE Groups, our small group ministry, that meets in homes throughout the area.
We would love to have you engage with us.
Rainier Hills Kids, our children's ministry has many programs in place to help teach your children about Jesus and God's Word. Our volunteers use a variety of different teaching methods to help your child grow in the grace and knowledge of Jesus Christ. These include Bible stories, small groups, singing, crafts, drama, puppets, puzzles and games. For more info about how our Kids ministry works on Sunday morning, visit our Sunday Services page.
All of our dedicated volunteers who staff our classrooms have been interviewed by church staff and have undergone a background check.
If you would have any questions regarding our Children's ministry, please contact our Children's Ministry Director Amy Thatcher at [email protected].
Our youth gatherings are Sunday Nights at 6:15pm in the Portables behind the church building. Each week we gather together for a time of fun, fellowship, worship, teaching and small groups.
Parents, you can be assured that we will end at 8:00pm!
All youth (junior high through high school) are welcome. Please join us!
Thursday Morning Bible Study: Meets Thursday mornings through May 16th. "12 Women - Life Lessons" is the title of our study this fall. After the new year we will continue "The survey of the New Testament". We meet for fellowship at 9:00am in the Foyer then at 9:30am in the Main Auditorium for worship and the teaching. (childcare is provided). Complete information in Women's Ministry Brochure.
Tuesday Night Bible Study: We meet at 6:30pm in Portable 1 behind the main building. Complete info in the Women's Ministry Brochure (above).
If you have any questions, please contact the church office at 253.862.2163 or [email protected].
Men's Night is on the second Sunday of each month at 6pm from September through June.
We'll eat dinner together and then gather for a time of worship, teaching and prayer.
Our annual Men's Campout at the church will be August 3-4, 2018.
We have a vibrant prayer ministry going on at our church and there are numerous opportunities throughout the week where we gather together to pray. For specific dates and times, please check out our Church Calendar.
We have a wonderful group of people who pray for all the prayer requests received by the church. If you have a prayer request you would like us to pray for, please email Anne at [email protected].


The House Minority Caucus urged caution today as two bills to increase the minimum wage to 120 percent its current level passed the Labor & Public Employment and Economic Development & Business committees.
"The Minority Caucus would like to see higher rates of employment and higher incomes for all workers across our state, but we're concerned that Hawaii is still recovering from a bad recession. We should first focus on reducing people's cost of living and growing our entire economy so employers can afford to increase wages without going out of business," said Minority Leader Aaron Ling Johanson.
HB 916, introduced at the request of Governor Neil Abercrombie, would require employers to pay at least $8.75 per hour beginning January 1, 2014 and would be tied to the consumer price index indefinitely. HB 1028 was amended to increase the minimum wage to the same level by 50 cents per year until 2016. The state last increased its minimum wage to $7.25 in 2007.
February 4, 2013 February 4, 2013 Hawaii House Minority Representative Gene Ward Ph.D.
Representative Gene Ward, Ph.D. and Paul Brewbaker Paul H. Brewbaker, Ph.D.
Economist, (TZ Economicse-mail paulbrewbaker@tzeconomics.com) discusses the 2013 economy.


Apollo Munich Health Insurance Company Limited has made the lowest bid for Ayushman Bharat-National Health Protection Mission (AB-NHPM) for the state of Nagaland at Rs 444 per family. While Bajaj Allianz General Insurance was second lowest bidder at Rs 506, it is likely that Apollo Munich will handle the health scheme for the state of Nagaland.
Interestingly, Rajasthan's Bhamashah health insurance scheme appears to have had an impact on the bidding with leading PSU insurers either staying away or bidding much higher premium amounts for the Rs 5 lakh of cover promised under the NHPS. New India, the insurer for Bhamashah, did not submit a financial bid while National Insurance bid Rs 1,944 per family and United India Rs 1,944. Reliance General Insurance and Religare Health Insurance Company Ltd had bid for Rs 1,020 and 1,060 per family respectively.
In the case of Rajasthan, as FE has reported earlier, high claims ensured the premiums rose from Rs 370 in the first two years of the scheme to Rs 1,263 when the contract was renewed for another two years. Despite the much higher premium, however, claims ratios for FY19 are likely to be well above 100%. Claims in 2016-17, before the premium was raised, were 176%.
Claims rose from around Rs 1.6 crore per day in December 2017 when the current scheme began to Rs 3.7 crore in May 2018. In June, in fact, when New India de-empanelled 66 hospitals for fraud, the hospitals were reinstated within a few hours. At that time, the Rajasthan government had argued that only the government could invoke the de-empanelment provision, not the insurance company.
Even the central government's NHPS retains this feature of de-empanelment where the government will remain the final authority on de-empanelment. In the central government's model, while the insurance company will have a nominee on the panels that will deal with this, the majority of the members will be affiliated to the government.


text:
South Florida's First News w Jimmy Cefalo
Black Witness Bood For Speaking out Against Reparations
By Manny Munoz
A black writer was booed Wednesday for testifying against slave reparations in a congressional hearing.
Quillette columnist Coleman Hughes said reparation payments to the descendants of slaves would insult black Americans, further divide the country, and make him and other descendants of slaves "victims without their consent."
The public present for the Democrat-led hearing did not take his opinion well, prompting Democratic Rep. Steve Cohen to tell them to "chill."
"Racism is a bloody stain on this country's history and I consider our failure to pay reparations directly to freed slaves after the civil war to be one of the greatest injustices ever perpetuated by the U.S. Government," Hughes said.
He added, however: "Black people don't need another apology. We need safer neighborhoods and better schools. We need a less punitive criminal justice system. We need affordable health care. And none of these things can be achieved through reparations for slavery."
Members of the crowd booed at this point.
"If we were to pay reparations today, we would only divide the country further, making it harder to build the political coalitions required to solve the problems facing black people today," Hughes added.
"We would insult black Americans by putting a price on the suffering of their ancestors, and we would turn the relationship between black Americans and white Americans from a coalition into a transaction, from a union between citizens, into a lawsuit between plaintiffs and defendants."
And, here's former NFL Star Burgess Owens, not only speaking out against reparations but saying it should be Democrats who pay the black community for "all the misery" brought upon blacks across America's history.

redpajama_set_name: RedPajamaCommonCrawl


text:
Stanley Frank Musial, Take Me Out To The Ballgame
"Here stands baseball's perfect warrior, here stands baseball's perfect knight". These are the words inscribed on the monument dedicated to Stanley Frank Musial by the people of St. Louis. It may seem strange at first to describe a baseball player as a warrior or knight; however, if we think of baseball players in a "jousting" context, we might appreciate the inscription.
Webster's dictionary defines "joust" as a personal combat or competition. That is exactly what happens every time a batter faces a pitcher. Standing approximately 19 meters apart, each faces the other, each is armed, each is dangerous. The pitcher's weapon is a very hard ball which he throws at the batter with every ounce of his energy. The ball reaches speeds of up to 165 kilometers per hour. The batter's weapon, a solid bat, is used in attempting to hit the ball should it enter the strike zone (an area over the home plate between the batter's knees and his armpits). The key phrase "in attempting" is used because one of the most difficult sport-related tasks is to hit a baseball. The eye-hand coordination and concentration necessary to accomplish this is awesome, given the velocity at which the ball is pitched or delivered. Very few are capable of accomplishing this ... let alone accomplishing it consistently. Stan "the Man" is one who has excelled in the combat against pitchers.
Stan Musial played with the St. Louis Cardinals from 1941 until 1963. During this period, he took part in 3,026 games, was at bat 10,972 times and made contact with the ball 3,630 times. He scored 1,949 runs and batted in 1,951. His life time batting average is .331. Stan led the National League 'in total bases' for 6 years and high batting average for the same period. He held 7 National League Batting Titles and was voted 'Most Valuable Player' in 1943, 1946 and 1948. In 1954, Stan Musial was the first player to hit 5 home runs in a doubleheader against the New York Giants.
When Stan Musial retired, he held 17 major league titles, 29 National League and 9 All-Star Game records. He was proudly elected to Baseball's Hall of Fame in 1969. His hometown of St. Louis erected a statue of him, its most famous baseball player, at Busch Stadium in 1968. Sports magazines such as Sporting ews elected Stan the best Major League tayer of the Year twice, in 1946 and in 951, and this same magazine honored im as "Player of the Decade" for his achievements between 1956 and 1964. Interesting notes on Stan's batting career:
* His 3,OOOth hit (something very few players accomplish) was off Chicago Cubs pitcher Moe Drabowsky, who was born in Poland. * When Stan broke the batting record of 3,430 hits it was another Pole who was pitching, Dodger Ron Perranoski.
Howard J. Lamade Stadium
In the US, one song is sung at the beginning of every organized sporting event. Be it a football, basketball or baseball game, the Star Spangled Banner is sung proudly by all in attendance including the players. At the end of America's National Anthem in a baseball stadium the umpire shouts "Play ball!" to officially declare the start of the game. After the 7th inning of the game, when the offensive players exchange places with the defensive players, the fans all stand and "stretch themselves" after sitting for some hours on hard benches. It is during this slight intermission, known as the "7th inning stretch", that traditionally another song known by every child and adult throughout the land is sung...
Take me out to the ballgame
Take me out to the crowd.
Buy me some peanuts and cracker jacks,
I don't care if I never get back.
For its root root root for the home team,
If they don't win it's a shame
For it's one, two, three strikes you're out At the old ballgame.
No other sport boasts a song of its own!


This package contains the mlpack Library runtime files.
Machine Learning Pack (mlpack) is an intuitive, fast, scalable C++ machine learning library, meant to be a machine learning analog to LAPACK. It aims to implement a wide array of machine learning methods and function as a "swiss army knife" for machine learning researchers.


Acquiring Referrals One of many powerful features of the enterprise world is constructing credibility. Among the best methods to do that is to advertise referrals and search them out wherever doable. A referral can imply the distinction between a profitable sale and a misplaced alternative. One of many essential enterprise technique examples to bear in mind is the facility of referrals.The Worth of ReferralsAlthough monetary advisors tout the significance and worth of referrals, most aren't doing adequate work to ensure referrals on a constant foundation for his or her purchasers and prospects. This naturally influences the impression of a enterprise' success.
Among the best referral specialists within the subject immediately is a person named Invoice Cates. The worldwide coach has offered profitable books like Get Extra Referrals Now! And Do not Maintain Me A Secret have launched many enterprise homeowners to the facility of constructing you enterprise primarily based on referrals. Cates affords some transient insights or possibly some enterprise technique examples that may actually have an effect on what you are able to do with what you are promoting.Insights Into Referral1. Change into Referable – That is proper. It is advisable to change your strategy to focus on sure areas. Two of these embrace: 1) Offering a invaluable service initially of the brand new relationship, and a pair of) Maintain you guarantees to the purchasers above all as you construct the connection.2. Be Proactive – You should do the work. There isn't a substitute for placing within the time asking for the referrals instantly. This generally is a stumbling block for some enterprise homeowners who really feel nervous or apprehensive in regards to the notion. Nonetheless, in case you do not do it, you possibly can't anticipate to see the outcomes you need.three. Do it Like a Grasp – Cates says that "Amateurs practice to get it right, masters practice until they can't get it wrong." Mainly, because of this the way you thoughtfully have interaction what you are promoting's course of will impression your outcomes. Assume like a grasp and you may shortly begin performing like one too. That's how you'll create a greater enterprise via referrals.
Within the EndNo matter what enterprise technique examples you select to concentrate on, you need to do the work otherwise you'll be very disenchanted. Be attentive and use the following tips for constructing a strong enterprise primarily based on the facility of huge referral charges. It would take a while to construct on these methods however in the long run you may have an amazing edge over your opponents. You will be glad that you just did!


text:
Which language would you like to use this site in?
How We're Run
Expand Who We Are sub-list
Expand Get Involved sub-list
Expand Latest sub-list
© Private
Turkey: Release prisoner of conscience Osman Kavala immediately, following binding infringement ruling
Following today's European Court of Human Rights judgment condemning Turkey for failing to ensure implementation of the Court's 2019 ruling demanding Osman Kavala's immediate release, concluding that the Court "considered that the measures indicated by Türkiye [Turkey] did not permit it to conclude that the State Party had acted in 'good faith', in a manner compatible with the 'conclusions and spirit' of the Kavala judgment", Julia Hall, Deputy Director for Research at Amnesty International's Europe office, said:
"This ruling shames Turkey's authorities. For almost three years, they have refused to implement the European Court of Human Rights' 2019 judgment and release Osman Kavala. Today's ruling lays bare yet again the failure of the government to abide by a legally binding obligation. Turkey's continuing inaction compounds the egregious suffering of Osman Kavala and his family."
"Kavala's case is emblematic of the clampdown on civil society and the rollback in human rights protections that affects everyone in Turkey. If Turkey persists in its stubborn refusal to release Osman Kavala, it will further debase itself as one of the Council of Europe's founding members. The Council of Europe, its member states and the European Union must urge Turkey to finally free Osman Kavala and the many others detained in similar circumstances."
In 2019, the European Court of Human Rights found that Osman Kavala's right to liberty was violated and was underpinned by the government's intention to silence him. The judgment called for his immediate release. Instead of implementing the ruling, Turkey's authorities have subjected Kavala to further prosecution, on farcical charges without any evidence.
In February 2022, the Committee of Ministers of the Council of Europe, in charge of monitoring the implementation of ECtHR rulings, initiated infringement proceedings against Turkey for its lack of implementation of the Court's ruling, under Article 46, paragraph 4, of the European Convention on Human Rights.
Infringement proceedings for failure to implement judgments of the ECtHR have been initiated only once before in the case of Ilgar Mammadov v Azerbaijan.
In June, Amnesty International declared Osman Kavala and six co-defendants prisoners of conscience, following their imprisonment after unjust convictions in the Gezi trial on 25 April 2022.
Censorship and Freedom of Expression
Human Rights Defenders and Activists
Prisoners of Conscience
Protests and Demonstrations
Unlawful Detention
Turkey: "Dark day for online free expression" as new 'disinformation law' is passed
Turkey: Jailing of leading human rights expert on 'terror' charges an 'appalling abuse of power'
Türkiye: Justice prevails as convictions of four human rights defenders overturned
International human rights groups call for release of leading Turkish human rights defender and physician
Peru: Amnesty International deploys crisis response team to investigate serious human rights violations
Myanmar: Two years after coup, global action needed to halt military's 'nationwide assault on human rights'
Honduras: Xiomara Castro's government must firmly deliver on human rights agenda
Iran: Quash death sentences of young protesters subjected to gruesome torture
Geneva: UN member states must demand accountability for Pakistan's human rights record
Finances and Pay
Structure and People
Human Rights Courses
If you are talented and passionate about human rights then Amnesty International wants to hear from you.
Refunds of Donations


facts of the situation, the analytic essay demands that you examine information and evaluate it. Put another way, the ... The first step in writing an analytic essay is ensuring that you have read through the material critically ... best first step is to develop an outline and examine it to ensure that the ideas are structured in a clear.
In many history courses, professors will ask you to write analytical and interpretive essays that rely on the following ... Thesis: a strong, specific argumentative claim introduced early in your essay. •. Evidence: .... Try producing an outline of your draft to assess whether you have organized your ideas logically. Introduction.


text:
Casting Call For Upcoming Video Series On Motherhood And Life
You could be featured in future videos on motherhood and work-life balance!
Words: Tomi Akitunde
Photo credit: Sarah Hebenstreit of Modern Kids Co.
mater mea was founded in 2012 to fill a void in media representations of Black women. I knew there were Black women who were dealing with the same work-life balance concerns only white women were depicted as having. And for close to four years, we've been sharing those stories through beautifully told and photographed profiles and interviews, that kept it real about that motherhood and career juggle of women like poet Staceyann Chin, natural hair care entrepreneurs Karen Tappin and Jamyla Bennu, lawyer LaShann DeArcy Hall and more.
These stories still need to be seen, but this year we're making the leap from text and photos to video. We've recently partnered with independent creative Sekiya Dorsett and larger outlets like HuffPost Parents to create videos about the issues that matter most to our audience!
But to make these videos a reality, we need a list of women we can reach out to for casting in the New York City area. (Right now we're focusing on NYC because that's where we're based, but hopefully we'll be able to spread to other major cities.)
Help us make more videos like this…
…by filling out this form! (Or, if you're not quite ready for your close up, share it with a friend—or two—who would like to participate!)
18 Black Women We Think Are Phenomenal
Michelle Obama's Tuskegee University Speech Gives Advice Everyone Needs To Hear
Meet The Woman Behind The World's First Maya Angelou Documentary
'Letters To Our Mothers' Explores Women's Most Complicated Relationship
The Mompreneur's Guide to Writing Your First Book
Single Moms Are Not Synonymous With Struggle
New Video Claps Back at Toxic Absentee Black Dad Myth
Tomi Akitunde is the founder of mater mea.
The Masks We Wear: Finding Ourselves Between Self-Respect and Respectability


text:
Newport Life Magazine
Life/Food
Dogs rescued from Afghanistan bound for Potter League
MIDDLETOWN — Four dogs rescued from the streets of Kabul, Afghanistan, are expected to arrive at the Potter League for Animals on Thursday and will be available for adoption.
The dogs are coming to Aquidneck Island in a partnership with the an animal shelter and rescue resource center in Afghanistan. The Nowzad Charity was founded in 2007 by Sgt. Pen Farthing with a mission to reunite soldiers with their "Battle Buddies" and provide vital animal welfare to Afghanistan. The Potter League for Animals and Nowzad established a "sister shelter" relationship in 2017 to support that mission of reuniting soldiers with the dogs and cats rescued. To date, Nowzad has reunited more than 1,200 soldiers with their battle buddies.
"The Potter League has been proud to be able to help bring attention and funding to our sister shelter, Nowzad, in recent years. Now we are able to help in yet another way, bringing dogs to Newport, where they can find great new homes," Bread Shear, executive director of the Potter League, said in a press release.
"We are in a community with big hearts for all animals and these dogs may have come from far away, but I am certain they will be welcomed to the safety of Aquidneck Island like old friends," Shear said. "Accepting these dogs is just one of the many ways the Potter League is reaching out to animals in need, and we will continue to help whenever we are able." Shear continued.
The dogs will need to be in isolation for five days, as Rhode Island State law requires. All dogs will be spayed or neutered, up to date on their vaccinations and also microchipped, prior to adoption. Pending medical and behavioral assessments, they will be available for adoption.
For more information, visit PotterLeague.org.
Daily News Services
Vacation Stops/Restarts
Daily News Subscriptions
Connect with the Daily News
The Newport Daily News ~ 272 Valley Road, Middletown, RI 02842 ~ Do Not Sell My Personal Information ~ Cookie Policy ~ Do Not Sell My Personal Information ~ Privacy Policy ~ Terms Of Service ~ Your California Privacy Rights / Privacy Policy
Channels TV Guide
Newport Home Magazine
Best Read Guide
Channels TV Magazine


text:
Don't Let Depression Keep You From Exercising
27-Jun-2018 11:00 AM EDT
UT Southwestern Medical Center
UT Southwestern
Study suggests staying active is vital after depression diagnosis
Credit: UT Southwestern Medical Center
'The earlier you maintain fitness, the better chance of preventing depression, which in the long run will help lower the risk of heart disease.' Dr. Madhukar Trivedi, Director of UT Southwestern's Center for Depression Research and Clinical Care
American Medical Association Psychiatry
All Journal News, Behavioral Science, Mental Health, Neuro, Psychology and Psychiatry, Local - Texas, Local - Dallas Metro, Featured: MedWire, Staff Picks
Ut Southwestern, Depression
Newswise — DALLAS – June 27, 2018 – Exercise may be just as crucial to a depression patient's good health as finding an effective antidepressant.
A new study of nearly 18,000 participants found that those with high fitness at middle age were significantly less likely to die from heart disease in later life, even if they were diagnosed with depression.
The research – a collaboration between UT Southwestern and The Cooper Institute – underscores the multiple ways in which depression may ultimately impact health and mortality. It also highlights the importance of overcoming a common dilemma among patients: How does one cope with hopelessness and still find motivation to exercise?
"Maintaining a healthy dose of exercise is difficult, but it can be done. It just requires more effort and addressing unique barriers to regular exercise," says Dr. Madhukar Trivedi, co-author of the study and Director of the Center for Depression Research and Clinical Care, part of the Peter O'Donnell Jr. Brain Institute at UT Southwestern.
Doctor's Tips: How to Stay Fit While Treating Depression
Dr. Madhukar Trivedi cites previous research showing that depressed patients can often perform about three-fourths of the exercise they're asked to do. He recommends patients take several steps to boost their chances of success:
Set aside a consistent time to exercise every day, but do not get discouraged by stretches of inactivity. Resume activities as soon as possible.
Keep a log to track progress.
Vary the exercises to avoid monotony. Keep the workout interesting and fun.
Exercise with a friend.
Task someone with holding you accountable for maintaining the exercise regimen.
The study published in the Journal of the American Medical Association Psychiatry utilized a Cooper Institute database of participants who had their cardiorespiratory fitness measured at an average age of 50 years. Researchers used Medicare administrative data to establish correlations between the participants' fitness at midlife to rates of depression and heart disease in older age. Among the findings, participants with high fitness were 56 percent less likely to eventually die from heart disease following a depression diagnosis.
Dr. Trivedi says the findings are just as relevant to younger age groups, in particular college-age adults who are just entering the workforce.
"This is the age where we typically see physical activity drop off because they're not involved in school activities and sports," Dr. Trivedi says. "The earlier you maintain fitness, the better chance of preventing depression, which in the long run will help lower the risk of heart disease."
Depression has been linked to several other chronic medical conditions such as diabetes, obesity, and chronic kidney disease, which studies show can affect whether antidepressants are likely to help. For patients with these conditions, the more appropriate treatment may be exercise.
Dr. Trivedi says the reasons behind this may partly be connected to the general health effects of physical activity, including the fact that exercise decreases inflammation that may cause depression. By reducing inflammation, the risk for depression and heart disease are lowered.
"There is value to not starting a medication if it's not needed," says Dr. Trivedi, who's leading a national effort to establish biological tests for choosing antidepressants. "Being active and getting psychotherapy are sometimes the best prescription, especially in younger patients who don't have severe depression."
Dr. Trivedi cites previous research showing that depressed patients can often perform about three-fourths of the exercise they're asked to do. He recommends patients take several steps to boost their chances of success:
Dr. Trivedi has organized large studies to further solidify the cause and effect among fitness, depression, and heart disease. One example is RAD, Resilience in Adolescent Development, a 10-year study that will enroll 1,500 participants who are at risk to develop depression but have not done so. The study's primary aim is to examine whether personal factors such as lifestyle and biology influence a teenager's ability to resist mood disorders. But researchers will also document fitness levels and track whether depression and heart issues arise in later years.
"There is enough evidence to show that the effect of low fitness on depression and heart disease is real," Dr. Trivedi says. "But further study is needed to establish the mechanism by which this effect happens."
More about Depression:
JAMA study: Fitness at midlife
STRIDE study: Fitness and addiction
Video: Bringing help straight to schools
Video: EEG helps guide treatment
Self-test: Are you depressed?
Dr. Trivedi is a Professor of Psychiatry who holds the Betty Jo Hay Distinguished Chair in Mental Health and the Julie K. Hersh Chair for Depression Research and Clinical Care. He collaborated with Dr. Benjamin Willis of The Cooper Institute for the JAMA Psychiatry study.
"These new insights demonstrate the ongoing importance of fitness throughout the lifespan," says Dr. Willis, Director of Epidemiology at The Cooper Institute and lead author of the study. "Now we know that the long-term benefits, and the connection between mind-body wellness, are more significant than we thought. We hope our study will highlight the role of fitness and physical activity in early prevention efforts by physicians in promoting healthy aging."
About UT Southwestern Medical Center
UT Southwestern, one of the premier academic medical centers in the nation, integrates pioneering biomedical research with exceptional clinical care and education. The institution's faculty has received six Nobel Prizes, and includes 22 members of the National Academy of Sciences, 16 members of the National Academy of Medicine, and 15 Howard Hughes Medical Institute Investigators. The faculty of more than 2,700 is responsible for groundbreaking medical advances and is committed to translating science-driven research quickly to new clinical treatments. UT Southwestern physicians provide care in about 80 specialties to more than 100,000 hospitalized patients, 600,000 emergency room cases, and oversee approximately 2.2 million outpatient visits a year.
About The Cooper Institute Established in 1979, The Cooper Institute is a nonprofit dedicated to promoting lifelong health and wellness worldwide through research and education. Founded by Kenneth H. Cooper, MD, MPH, The Cooper Institute translates the latest scientific findings into proactive solutions that improve population health. Key areas of focus are research, adult education, and youth programs.
To automatically receive news releases from UT Southwestern via email, subscribe at www.utsouthwestern.edu/receivenews.
SEE ORIGINAL STUDY


All 3 bedroom villas at Sea Cloisters have a sleeping loft. Each villa is tastefully decorated, featuring spacious, open living and dining areas, with fully equipped kitchens. Every living room and master bedroom opens out to a private deck, overlooking the ocean, some overlook the ocean and the Sea Cloister pool. All villas have washer and dryers, cable TV and are completely furnished.
Thank you for your interest. This vacation property may be available for the times you are looking for. Please email us at cloister@hargray.com or call us at (800) 845-5334. Thank you.
Sea Cloisters is the best place! We've been coming for many years. Carol and Rocky take such good care of everyone! We have encouraged others to come and they always fall in love with it just like us. HHI 2019 is already booked!
First Rocky and Carol are THE BEST! Unit 502 has been apparently recently remodeled and there are great things and not so great things.It would be super if the master bedroom door locked given there's no door to the bathroom. My 6 year old nephew walked in on me in the shower😳 More furniture in the living room would be super- there wasn't enough seating for any sort of family time.


Imagine the scene in the book of Acts: never was there such a wind of change as that which whipped and blew through Jerusalem's streets that Sunday morning, with the violent, majestic force of an advancing realm. The Spirit of the ascended one, now descends to a tempest gathered city.
Over and around every home howls this Heaven-sent wind of change, until it finds and fills the one house where expectation and ecstasy meet. The time is fully come and the promise is fulfilled, as tongues of fire appear in the room of meeting, to separate and rest on the head of each member of the fledgling church. No ordinary fire is this, which does not consume to feed its strength, but appears, rather, to impart all its fullness of energy to the one upon whom it alights. No impersonal Spirit is this, who indwells and fills his people with power and glory of the divine.
Miraculous words poured forth before this universal gathering. Here were Parthians, Medes, Elamites; pilgrims from Mesopotamia, Cappadocia, Pontus and Asia, from Phrygia and Pamphylia; travellers from Egypt and the parts of Libya near Cyrene; Jews and Jewish converts from Rome; Cretans and Arabs. All heard the words of prophecy uttered in the familiar tones of a mother tongue and many were those who witnessed their fulfilment through unfettered eyes.
Pierced hearts that once were stone before the crucified one—now risen and proclaimed "both Lord and Christ"—find utterance in the plaintive cry: "Brothers, what shall we do?" "Repent," is the apostolic call for a heart-changing response "and be baptized, every one of you, in the name of Jesus Christ for the forgiveness of your sins. And you will receive the gift of the Holy Spirit. The promise is for you and your children and for all who are far off—for all whom the Lord our God will call" (Acts 2:37-39).
Never was there such a wind of change as that which stirred the inhabitants of David's ancient city, to herald the coming of the Spirit of promise, whom the Father, the God of all comfort sends; proclaiming to the ancient capital and to all the world, that Jesus, the Saviour of mankind is the "Yes" to all the promises of God (2 Corinthians 1:20).
Loving Lord, thank you for the fellowship of the Holy Spirit, through whom we are brought together as one body in Christ Jesus our Lord. Help us to grow as the Spirit empowers us and works in us, as we learn to cease from our own works and rest in your Grace alone by faith.


Use the journey planner above to find all travel options from Parla to Gijon. Plan your trip, combine and compare transportation providers such as for example: Railway agencies, Bus operators, airines. Make sure that your journey is well planned according to your chosen option of transportation from starting point till the final destination by Combitrip when you go from Parla to Gijon. Driving towards Gijon from Parla is about 6 hours 55 minutes. As suggested by Combitrip, long trips are best taken by international trains, coaches, flights, and all relevant routes and modalities. Accessible routes for different travel options are provided by Combitrip, too!


The preclinical development of human-specific immunotherapeutics such as checkpoint inhibitors is currently hampered by a lack of immunotherapy models featuring human targets in the presence of a functional immune system.
We've developed HuCELL, mouse tumor cells engineered to express humanized targets such as PD-L1. You can use HuCELL models to evaluate the efficacy of human specific agents targeting humanized proteins expressed on tumor cells.
HuCELL is the sister platform to HuGEMM mice. Combining HuCELL and HuGEMM models provides an ideal platform for assessing human specific agents targeting the immune system.
HuCELL models are fully validated for human protein expression by FACS, as well as ligand and antibody binding.
Save study resources by using HuCELL and HuGEMM combined models as a cost effective alternative to more complex fully humanized models.
Evaluate human-specific biological therapies in vivo when no mouse ortholog is available.
Assess human ligand-receptor interaction combining HuCELL with HuGEMM models.


text:
Two-stage single-channel audio source separation using deep neural networks
Emad M Grais, Gerard Roma, Andrew JR Simpson, Mark D Plumbley
Most single channel audio source separation approaches produce separated sources accompanied by interference from other sources and other distortions. To tackle this problem, we propose to separate the sources in two stages. In the first stage, the sources are separated from the mixed signal. In the second stage, the interference between the separated sources and the distortions are reduced using deep neural networks (DNNs). We propose two methods that use DNNs to improve the quality of the separated sources in the second stage. In the first method, each separated source is improved individually using its own trained DNN, while in the second method all the separated sources are improved together using a single DNN. To further improve the quality of the separated sources, the DNNs in the second stage are trained discriminatively to further decrease the interference and the distortions of the separated sources. Our experimental results show that using two stages of separation improves the quality of the separated signals by decreasing the interference between the separated sources and distortions compared to separating the sources using a single stage of separation.
IEEE/ACM Transactions on Audio, Speech, and Language Processing
https://doi.org/10.1109/TASLP.2017.2716443
10.1109/TASLP.2017.2716443Licence: Unspecified
Dive into the research topics of 'Two-stage single-channel audio source separation using deep neural networks'. Together they form a unique fingerprint.
Source Separation Mathematics 100%
Source separation Engineering & Materials Science 78%
Deep neural networks Engineering & Materials Science 59%
Interference Mathematics 23%
interference Physics & Astronomy 12%
Experimental Results Mathematics 5%
Decrease Mathematics 4%
Improving single-network single-channel separation of musical audio with convolutional layers
Roma, G., Green, O. & Tremblay, P. A., 6 Jun 2018, Latent Variable Analysis and Signal Separation: 14th International Conference, LVA/ICA 2018, Guildford, UK, July 2–5, 2018, Proceedings. Gannot, S., Deville, Y., Mason, R., Plumbley, M. D. & Ward, D. (eds.). Springer Verlag, p. 306-315 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); vol. 10891 LNCS).
Network Architecture 100%
Network architecture 92%
Convolutional neural networks 89%
Combining mask estimates for single channel audio source separation using deep neural networks
Grais, E. M., Roma, G., Simpson, A. JR. & Plumbley, M. D., Sep 2016, Proceedings of the Annual Conference of the International Speech Communication Association, INTERSPEECH. p. 3339-3343 5 p.
Source separation 100%
Grais, E. M., Roma, G., Simpson, A. JR., & Plumbley, M. D. (2017). Two-stage single-channel audio source separation using deep neural networks. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 25(9), 1773-1783. https://doi.org/10.1109/TASLP.2017.2716443
Grais, Emad M ; Roma, Gerard ; Simpson, Andrew JR et al. / Two-stage single-channel audio source separation using deep neural networks. In: IEEE/ACM Transactions on Audio, Speech, and Language Processing. 2017 ; Vol. 25, No. 9. pp. 1773-1783.
@article{d80218a134b34359af718cb1bebe33e1,
title = "Two-stage single-channel audio source separation using deep neural networks",
abstract = "Most single channel audio source separation approaches produce separated sources accompanied by interference from other sources and other distortions. To tackle this problem, we propose to separate the sources in two stages. In the first stage, the sources are separated from the mixed signal. In the second stage, the interference between the separated sources and the distortions are reduced using deep neural networks (DNNs). We propose two methods that use DNNs to improve the quality of the separated sources in the second stage. In the first method, each separated source is improved individually using its own trained DNN, while in the second method all the separated sources are improved together using a single DNN. To further improve the quality of the separated sources, the DNNs in the second stage are trained discriminatively to further decrease the interference and the distortions of the separated sources. Our experimental results show that using two stages of separation improves the quality of the separated signals by decreasing the interference between the separated sources and distortions compared to separating the sources using a single stage of separation.",
keywords = "Audio enhancement, Discriminative learning, Deep neural networks, Single channel audio source separation",
author = "Grais, {Emad M} and Gerard Roma and Simpson, {Andrew JR} and Plumbley, {Mark D}",
doi = "10.1109/TASLP.2017.2716443",
journal = "IEEE/ACM Transactions on Audio Speech and Language Processing",
publisher = "IEEE Advancing Technology for Humanity",
Grais, EM, Roma, G, Simpson, AJR & Plumbley, MD 2017, 'Two-stage single-channel audio source separation using deep neural networks', IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 25, no. 9, pp. 1773-1783. https://doi.org/10.1109/TASLP.2017.2716443
Two-stage single-channel audio source separation using deep neural networks. / Grais, Emad M; Roma, Gerard; Simpson, Andrew JR et al.
In: IEEE/ACM Transactions on Audio, Speech, and Language Processing, Vol. 25, No. 9, 01.09.2017, p. 1773-1783.
T1 - Two-stage single-channel audio source separation using deep neural networks
AU - Grais, Emad M
AU - Roma, Gerard
AU - Simpson, Andrew JR
AU - Plumbley, Mark D
N2 - Most single channel audio source separation approaches produce separated sources accompanied by interference from other sources and other distortions. To tackle this problem, we propose to separate the sources in two stages. In the first stage, the sources are separated from the mixed signal. In the second stage, the interference between the separated sources and the distortions are reduced using deep neural networks (DNNs). We propose two methods that use DNNs to improve the quality of the separated sources in the second stage. In the first method, each separated source is improved individually using its own trained DNN, while in the second method all the separated sources are improved together using a single DNN. To further improve the quality of the separated sources, the DNNs in the second stage are trained discriminatively to further decrease the interference and the distortions of the separated sources. Our experimental results show that using two stages of separation improves the quality of the separated signals by decreasing the interference between the separated sources and distortions compared to separating the sources using a single stage of separation.
AB - Most single channel audio source separation approaches produce separated sources accompanied by interference from other sources and other distortions. To tackle this problem, we propose to separate the sources in two stages. In the first stage, the sources are separated from the mixed signal. In the second stage, the interference between the separated sources and the distortions are reduced using deep neural networks (DNNs). We propose two methods that use DNNs to improve the quality of the separated sources in the second stage. In the first method, each separated source is improved individually using its own trained DNN, while in the second method all the separated sources are improved together using a single DNN. To further improve the quality of the separated sources, the DNNs in the second stage are trained discriminatively to further decrease the interference and the distortions of the separated sources. Our experimental results show that using two stages of separation improves the quality of the separated signals by decreasing the interference between the separated sources and distortions compared to separating the sources using a single stage of separation.
KW - Audio enhancement
KW - Discriminative learning
KW - Deep neural networks
KW - Single channel audio source separation
U2 - 10.1109/TASLP.2017.2716443
DO - 10.1109/TASLP.2017.2716443
JO - IEEE/ACM Transactions on Audio Speech and Language Processing
JF - IEEE/ACM Transactions on Audio Speech and Language Processing
Grais EM, Roma G, Simpson AJR, Plumbley MD. Two-stage single-channel audio source separation using deep neural networks. IEEE/ACM Transactions on Audio, Speech, and Language Processing. 2017 Sep 1;25(9):1773-1783. https://doi.org/10.1109/TASLP.2017.2716443


In short, I built a script that dynamically generates a robots.txt file for search engine bots, who download the file when they seek direction on what parts of a website they are allowed to index. By default, it directs all bots to stay away from the entire site, but then presents an exception: only the bot that requests the robots.txt file is allowed full reign over the site. If Google's bot downloads the robots.txt file, it will see that only Google's bot gets to index the entire site. If Yahoo's bot downloads the robots.txt file, it will see that only Yahoo's bot gets to index the entire site. Of course, this is assuming that bots identify themselves to my server in a way that they recognize when it is reflected back to them.
What is a robots.txt file? Most websites have one of these very simple file called "robots.txt" on the main directory of their server. The robots.txt file has been around for almost two decades, and it is now a standardized way of communicating what pages search engine bots (or crawlers) should and should not visit. Crawlers are supposed to request and download a robots.txt file from any website they visit, and then obey the directives mentioned in such a file. Of course, there is nothing which prevents a crawler from still crawling pages which are forbidden in a robots.txt file, but most major search engine bots behave themselves.
Yet robots.txt lives on, doing its job well. It doesn't need any fancy server-side scripting; it does just fine on its own. Still, I kept thinking about what it would be like to have a script dynamically generate a robots.txt file on the fly whenever it is requested. Given that the only time a robots.txt file is usually downloaded is when an automated software agent requests it, there is something strangely poetic about an algorithmically-generated robots.txt file. It is something that would, for the most part, only ever really exist in the fleeting interaction between two automated routines. So of course I had to build one.
Then I realized that this was all a little impersonal, and I could do better since I'm scripting. With PHP, I can easily query the user-agent of the client which is requesting the file, the identifier it sends to the web server. Normally, user agents define the browser that is requesting the page, but bots are supposed to have an identifiable user-agent like "Googlebot" or "Twitterbot" so that you can know them when they come to visit. Instead of granting access to every user agent with the asterisk, I made it so that the user agent of the requesting client is the only one that is directed to have full access.
After making sure this worked, I realized that I needed to go out there a little more. If the bots didn't recognize themselves, then by default, they would still be allowed to crawl the site anyway. robots.txt works on a principle of allow by default. So I needed to add a few more lines which made it so that the robots.txt file the bot downloaded would direct all other bots to not crawl the site, but give full reign to bots with the user agent it sent the server.
The restrictive version is now live, up at http://www.stuartgeiger.com/robots.txt. I've also put it up on github, because apparently that's what cool kids do. I'm looking forward to seeing what will happen. Google's webmaster tools will notify me if its crawlers can't index my site, for whatever reason, and I'm curious if Google's bots will identify themselves to my servers in a way that they will recognize.


The rest of the world knows what's going on.
Take, for example, Germany, which is now far more of a leader of "the free world" than Trump's American dystopia.
Once upon a time, it was America going to war against German fascism. My, how the roles have reversed. It may not be a war, yet, but Germany is certainly on the side that is fighting American fascism.
Yes, the great threat to America is Kim Jong-trump, the orange-tinted demagogue roaming the White House in his bath robe.
We know what's going on.
From a Yahoo! / Live Nation broadcast, here are Steven Wilson and his awesome band performing "Home Invasion" and "Regret #9," two songs that work as one, both on Wilson's 2015 album Hand. Cannot. Erase. (to me, the Dark Side of the Moon of our time, and, like Pink Floyd's masterpiece, one of the greatest albums ever made -- perhaps the pinnacle of Wilson's career so far, including his time with Porcupine Tree), at The Wiltern in Los Angeles on June 13, 2015.
I saw Steven Wilson in Toronto on that tour, and "Regret #9" was certainly one of the highlights of what was a truly incredible show from start to finish. The back-to-back keyboard and guitar solos by Adam Holzman and Dave Kilminster, respectively, were simply astonishing, as they are here.
The problem with running a campaign based on channelling voters' grumpy old man is that there is always a possibility of being out-grumped. This seems to be happening to Sen. Ted Cruz who, according to a new poll of insiders by Politico, is suffering the most from Trump's unlikely recent success.
Insiders say ... Trump ... is as uncompromising as Cruz on hot-button issues like immigration - and can deliver the message with even more fiery rhetoric," by Katie Glueck: "Roughly a third of Iowa and New Hampshire Republican insiders pointed to Cruz as the candidate who is damaged the most in their states by Trump's rise in the polls. [An Iowa Republican:] 'Cruz, the incumbent proxy for the disaffected GOP "Hell No!" Caucus, has been virtually starved of oxygen since Trump entered the race.' ..
Sure, Trump is a jerk, and having to endure his enhanced celebrity status is annoying, but just for today I am going to take some pleasure in how unhappy it must be making Ted Cruz. The enemy of my enemy is a temporary source of satisfaction.