function ARC_sparql_parser::parse_ConstructTemplate in Taxonomy import/export via XML 5.2
Same name and namespace in other branches
- 5 arc/ARC_sparql_parser.php \ARC_sparql_parser::parse_ConstructTemplate()
- 6.2 arc/ARC_sparql_parser.php \ARC_sparql_parser::parse_ConstructTemplate()
- 6 arc/ARC_sparql_parser.php \ARC_sparql_parser::parse_ConstructTemplate()
1 call to ARC_sparql_parser::parse_ConstructTemplate()
File
- arc/
ARC_sparql_parser.php, line 872
Class
Code
function parse_ConstructTemplate() {
$q = $this->q;
if (preg_match("/^(\\{.*)\$/s", $q, $matches)) {
$bracket_data = $this
->extract_bracket_data($matches[1]);
$this->q = trim(substr($q, strlen($bracket_data) + 2));
if ($sub_result = $this
->parse_ConstructTriples(trim($bracket_data))) {
$this->infos["template_triples"] = $sub_result;
/* set result vars */
foreach ($sub_result["triples"] as $cur_triple) {
foreach (array(
"s",
"p",
"o",
) as $cur_term_key) {
$cur_term = $cur_triple[$cur_term_key];
$cur_term_type = $cur_term["type"];
$cur_term_val = $cur_term["val"];
if ($cur_term_type == "var") {
if (!in_array($cur_term_val, $this->infos["result_vars"])) {
$this->infos["result_vars"][] = $cur_term_val;
}
}
if ($cur_term_type == "bnode") {
$cur_term_val = str_replace(":", "_", $cur_term_val);
if (!in_array($cur_term_val, $this->infos["result_vars"])) {
$this->infos["result_vars"][] = $cur_term_val;
}
}
}
}
}
}
else {
$this->errors[] = "couldn't extract ConstructTriples in parse_ConstructTemplate";
}
}