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 }