Mercurial > hg > rr-repo
annotate sites/all/libraries/ARC2/arc/parsers/ARC2_SGAJSONParser.php @ 4:ce11bbd8f642
added modules
author | danieleb <danielebarchiesi@me.com> |
---|---|
date | Thu, 19 Sep 2013 10:38:44 +0100 |
parents | |
children |
rev | line source |
---|---|
danielebarchiesi@4 | 1 <?php |
danielebarchiesi@4 | 2 /* |
danielebarchiesi@4 | 3 homepage: http://arc.semsol.org/ |
danielebarchiesi@4 | 4 license: http://arc.semsol.org/license |
danielebarchiesi@4 | 5 |
danielebarchiesi@4 | 6 class: ARC2 SG API JSON Parser |
danielebarchiesi@4 | 7 author: Benjamin Nowack |
danielebarchiesi@4 | 8 version: 2010-11-16 |
danielebarchiesi@4 | 9 */ |
danielebarchiesi@4 | 10 |
danielebarchiesi@4 | 11 ARC2::inc('JSONParser'); |
danielebarchiesi@4 | 12 |
danielebarchiesi@4 | 13 class ARC2_SGAJSONParser extends ARC2_JSONParser { |
danielebarchiesi@4 | 14 |
danielebarchiesi@4 | 15 function __construct($a, &$caller) { |
danielebarchiesi@4 | 16 parent::__construct($a, $caller); |
danielebarchiesi@4 | 17 } |
danielebarchiesi@4 | 18 |
danielebarchiesi@4 | 19 function __init() {/* reader */ |
danielebarchiesi@4 | 20 parent::__init(); |
danielebarchiesi@4 | 21 $this->rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'; |
danielebarchiesi@4 | 22 $this->nsp = array($this->rdf => 'rdf'); |
danielebarchiesi@4 | 23 } |
danielebarchiesi@4 | 24 |
danielebarchiesi@4 | 25 /* */ |
danielebarchiesi@4 | 26 |
danielebarchiesi@4 | 27 function done() { |
danielebarchiesi@4 | 28 $this->extractRDF(); |
danielebarchiesi@4 | 29 } |
danielebarchiesi@4 | 30 |
danielebarchiesi@4 | 31 function extractRDF() { |
danielebarchiesi@4 | 32 $s = $this->getContext(); |
danielebarchiesi@4 | 33 $os = $this->getURLs($this->struct); |
danielebarchiesi@4 | 34 foreach ($os as $o) { |
danielebarchiesi@4 | 35 if ($o != $s) $this->addT($s, 'http://www.w3.org/2000/01/rdf-schema#seeAlso', $o, 'uri', 'uri'); |
danielebarchiesi@4 | 36 } |
danielebarchiesi@4 | 37 } |
danielebarchiesi@4 | 38 |
danielebarchiesi@4 | 39 function getContext() { |
danielebarchiesi@4 | 40 if (!isset($this->struct['canonical_mapping'])) return ''; |
danielebarchiesi@4 | 41 foreach ($this->struct['canonical_mapping'] as $k => $v) return $v; |
danielebarchiesi@4 | 42 } |
danielebarchiesi@4 | 43 |
danielebarchiesi@4 | 44 function getURLs($struct) { |
danielebarchiesi@4 | 45 $r =array(); |
danielebarchiesi@4 | 46 if (is_array($struct)) { |
danielebarchiesi@4 | 47 foreach ($struct as $k => $v) { |
danielebarchiesi@4 | 48 if (preg_match('/^http:\/\//', $k) && !in_array($k, $r)) $r[] = $k; |
danielebarchiesi@4 | 49 $sub_r = $this->getURLs($v); |
danielebarchiesi@4 | 50 foreach ($sub_r as $sub_v) { |
danielebarchiesi@4 | 51 if (!in_array($sub_v, $r)) $r[] = $sub_v; |
danielebarchiesi@4 | 52 } |
danielebarchiesi@4 | 53 } |
danielebarchiesi@4 | 54 } |
danielebarchiesi@4 | 55 elseif (preg_match('/^http:\/\//', $struct) && !in_array($struct, $r)) { |
danielebarchiesi@4 | 56 $r[] = $struct; |
danielebarchiesi@4 | 57 } |
danielebarchiesi@4 | 58 return $r; |
danielebarchiesi@4 | 59 } |
danielebarchiesi@4 | 60 |
danielebarchiesi@4 | 61 /* */ |
danielebarchiesi@4 | 62 |
danielebarchiesi@4 | 63 } |