danielebarchiesi@4: 2 letter danielebarchiesi@4: // langcode. danielebarchiesi@4: if (preg_match('/(zh-hans)|(zh-hant)|(pt-pt)|(pt-br)/', $triple['o_lang'])) { danielebarchiesi@4: $langcode = $triple['o_lang']; danielebarchiesi@4: } danielebarchiesi@4: // Remove the region code if it is used (i.e. en-US is changed to en). danielebarchiesi@4: else { danielebarchiesi@4: $lang_array = explode('-', $triple['o_lang']); danielebarchiesi@4: $langcode = !empty($lang_array[0]) ? $lang_array[0] : $triple['o_lang']; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: else { danielebarchiesi@4: $langcode = 'und'; danielebarchiesi@4: } danielebarchiesi@4: $literal[$langcode] = $triple['o']; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: return $literal; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: function _rdfx_query_find_uris(&$model, $queries) { danielebarchiesi@4: $uris = array(); danielebarchiesi@4: foreach ($queries as $query) { danielebarchiesi@4: list($s, $p, $o) = $query; danielebarchiesi@4: $result = _rdfx_query_find_all($model, $s, $p, $o); danielebarchiesi@4: foreach ($result as $triple) { danielebarchiesi@4: if ($s == '?' && $triple['s_type'] == 'uri') { danielebarchiesi@4: $uris[] = $triple['s']; danielebarchiesi@4: } danielebarchiesi@4: if ($p == '?') { danielebarchiesi@4: $uris[] = $triple['p']; danielebarchiesi@4: } danielebarchiesi@4: if ($o == '?' && $triple['o_type'] == 'uri') { danielebarchiesi@4: $uris[] = $triple['o']; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: return array_unique($uris); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: function _rdfx_query_find_qnames(&$model, $queries) { danielebarchiesi@4: $uris = _rdfx_query_find_uris($model, $queries); danielebarchiesi@4: $qnames = array(); danielebarchiesi@4: foreach ($uris as $uri) { danielebarchiesi@4: $qnames[] = $uri; danielebarchiesi@4: } danielebarchiesi@4: return $qnames; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: function _rdfx_query_find_first(&$model, $s, $p, $o) { danielebarchiesi@4: foreach ($model as $triple) { danielebarchiesi@4: if (!is_null($s) && $s != '?' && ($triple['s'] != $s || $triple['s_type'] != 'uri')) continue; danielebarchiesi@4: if (!is_null($p) && $p != '?' && ($triple['p'] != $p)) continue; danielebarchiesi@4: if (!is_null($o) && $o != '?' && ($triple['o'] != $o || $triple['o_type'] != 'uri')) continue; danielebarchiesi@4: return $triple; danielebarchiesi@4: } danielebarchiesi@4: return null; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: function _rdfx_query_find_all(&$model, $s, $p, $o) { danielebarchiesi@4: $result = array(); danielebarchiesi@4: foreach ($model as $triple) { danielebarchiesi@4: if (!is_null($s) && $s != '?' && ($triple['s'] != $s)) continue; danielebarchiesi@4: if (!is_null($p) && $p != '?' && ($triple['p'] != $p)) continue; danielebarchiesi@4: if (!is_null($o) && $o != '?' && ($triple['o'] != $o)) continue; danielebarchiesi@4: $result[] = $triple; danielebarchiesi@4: } danielebarchiesi@4: return $result; danielebarchiesi@4: }