function getTerm($v, $term = 's')
{
if (!is_array($v)) {
if (preg_match('/^\\_\\:/', $v)) {
return $term == 'o' ? $this->getTerm(array('value' => $v, 'type' => 'bnode'), 'o') : '"' . $v . '"';
}
return $term == 'o' ? $this->getTerm(array('value' => $v, 'type' => 'uri'), 'o') : '"' . $v . '"';
}
if (!isset($v['type']) || $v['type'] != 'literal') {
if ($term != 'o') {
return $this->getTerm($v['value'], $term);
}
return '{ "@id" : "' . $this->jsonEscape($v['value']) . '" }';
}
/* literal */
$r = '{ "@value" : "' . $this->jsonEscape($v['value']) . '"';
$suffix = isset($v['datatype']) ? ', "@type" : "' . $v['datatype'] . '"' : '';
$suffix = isset($v['lang']) ? ', "@language" : "' . $v['lang'] . '"' : $suffix;
$r .= $suffix . ' }';
return $r;
}