function ARC_sparql2sql_rewriter::get_graph_code in Taxonomy import/export via XML 5.2
Same name and namespace in other branches
- 5 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::get_graph_code()
- 6.2 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::get_graph_code()
- 6 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::get_graph_code()
2 calls to ARC_sparql2sql_rewriter::get_graph_code()
File
- arc/
ARC_sparql2sql_rewriter.php, line 779
Class
Code
function get_graph_code() {
$result = "";
$added_joins = array();
foreach ($this->graphs as $alias => $graph) {
$graph_type = $graph["type"];
$graph_val = $graph["val"];
if ($graph_type == "iri") {
$result .= strlen($result) ? "\n AND " : "";
$result .= "T" . $alias . ".g=" . $this->api
->get_id($graph_val, 1);
$result .= " /* " . str_replace("*", "", str_replace("#", "::", htmlspecialchars($graph_val))) . " */ ";
}
elseif ($graph_type == "var") {
/* graph joins */
$alias_infos = $this->graph_term2alias[$graph_val];
$alias_1 = $alias_infos[0]["alias"];
for ($i = 1, $i_max = count($alias_infos); $i < $i_max; $i++) {
$cur_alias_info = $alias_infos[$i];
$cur_alias = $cur_alias_info["alias"];
$cur_join = "T" . $alias_1 . ".g=T" . $cur_alias . ".g";
if ($alias_1 != $cur_alias && !in_array($cur_join, $added_joins)) {
$result .= strlen($result) ? "\n AND " : "";
$result .= $cur_join;
$added_joins[] = $cur_join;
}
}
/* graph occurences in triple patterns */
if ($alias_infos = @$this->term2alias[$graph_val]) {
$alias_info = $alias_infos[0];
$alias = $alias_info["alias"];
$col = $alias_info["col"];
$cur_join = "T" . $alias_1 . ".g=T" . $alias . "." . $col;
if ($alias_1 != $alias && !in_array($cur_join, $added_joins)) {
$result .= strlen($result) ? "\n AND " : "";
$result .= $cur_join;
$added_joins[] = $cur_join;
}
}
}
}
return $result;
}