function ARC_sparql2sql_rewriter::get_dataset_code in Taxonomy import/export via XML 6.2
Same name and namespace in other branches
- 5.2 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::get_dataset_code()
- 5 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::get_dataset_code()
- 6 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::get_dataset_code()
3 calls to ARC_sparql2sql_rewriter::get_dataset_code()
File
- arc/
ARC_sparql2sql_rewriter.php, line 821
Class
Code
function get_dataset_code($for_optionals = false, $exact_alias = false) {
$result = "";
$added_aliases = array();
$sets = $this->infos["datasets"];
$n_sets = $this->infos["named_datasets"];
if (!count($sets) && !count($n_sets)) {
return $result;
}
/* non-graph'd patterns */
foreach ($this->non_graph_aliases as $cur_alias) {
$sub_result = "";
if (!$exact_alias || $exact_alias == $cur_alias) {
if (!$for_optionals && !in_array($cur_alias, $this->optional_t_counts) || $for_optionals && in_array($cur_alias, $this->optional_t_counts)) {
/* datasets */
foreach ($sets as $cur_set) {
$sub_result .= strlen($sub_result) ? "\n OR " : " ";
$sub_result .= "T" . $cur_alias . ".g=" . $this->api
->get_id($cur_set, 1);
$sub_result .= " /* " . str_replace("*", "", str_replace("#", "::", htmlspecialchars($cur_set))) . " */ ";
}
}
}
if ($sub_result) {
$result .= strlen($result) ? "\n AND " : " ";
$result .= "(" . $sub_result . ")";
}
}
/* graph'd patterns */
foreach ($this->graphs as $cur_alias => $graph) {
$graph_type = $graph["type"];
$graph_val = $graph["val"];
if (!$exact_alias || $exact_alias == $cur_alias) {
if ($graph_type == "var" && (!$for_optionals && !in_array($cur_alias, $this->optional_t_counts)) || $for_optionals && in_array($cur_alias, $this->optional_t_counts)) {
$sub_result = "";
/* named datasets, if set */
if (($my_sets = $n_sets) || ($my_sets = $sets)) {
foreach ($my_sets as $cur_set) {
$sub_result .= strlen($sub_result) ? "\n OR " : " ";
$sub_result .= "T" . $cur_alias . ".g=" . $this->api
->get_id($cur_set, 1);
$sub_result .= " /* " . str_replace("*", "", str_replace("#", "::", htmlspecialchars($cur_set))) . " */ ";
}
}
if ($sub_result) {
$result .= strlen($result) ? "\n AND " : " ";
$result .= "(" . $sub_result . ")";
}
}
}
}
return $result;
}