annotate sites/all/libraries/ARC2/arc/extractors/ARC2_DcExtractor.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 DC Extractor
danielebarchiesi@4 7 author: Benjamin Nowack
danielebarchiesi@4 8 version: 2010-11-16
danielebarchiesi@4 9 */
danielebarchiesi@4 10
danielebarchiesi@4 11 ARC2::inc('RDFExtractor');
danielebarchiesi@4 12
danielebarchiesi@4 13 class ARC2_DcExtractor extends ARC2_RDFExtractor {
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() {
danielebarchiesi@4 20 parent::__init();
danielebarchiesi@4 21 $this->a['ns']['dc'] = 'http://purl.org/dc/elements/1.1/';
danielebarchiesi@4 22 }
danielebarchiesi@4 23
danielebarchiesi@4 24 /* */
danielebarchiesi@4 25
danielebarchiesi@4 26 function extractRDF() {
danielebarchiesi@4 27 $t_vals = array();
danielebarchiesi@4 28 $t = '';
danielebarchiesi@4 29 foreach ($this->nodes as $n) {
danielebarchiesi@4 30 foreach (array('title', 'link', 'meta') as $tag) {
danielebarchiesi@4 31 if ($n['tag'] == $tag) {
danielebarchiesi@4 32 $m = 'extract' . ucfirst($tag);
danielebarchiesi@4 33 list ($t_vals, $t) = $this->$m($n, $t_vals, $t);
danielebarchiesi@4 34 }
danielebarchiesi@4 35 }
danielebarchiesi@4 36 }
danielebarchiesi@4 37 if ($t) {
danielebarchiesi@4 38 $doc = $this->getFilledTemplate($t, $t_vals, $n['doc_base']);
danielebarchiesi@4 39 $this->addTs(ARC2::getTriplesFromIndex($doc));
danielebarchiesi@4 40 }
danielebarchiesi@4 41 }
danielebarchiesi@4 42
danielebarchiesi@4 43 /* */
danielebarchiesi@4 44
danielebarchiesi@4 45 function extractTitle($n, $t_vals, $t) {
danielebarchiesi@4 46 if ($t_vals['title'] = $this->getPlainContent($n)) {
danielebarchiesi@4 47 $t .= '<' . $n['doc_url'] . '> dc:title ?title . ';
danielebarchiesi@4 48 }
danielebarchiesi@4 49 return array($t_vals, $t);
danielebarchiesi@4 50 }
danielebarchiesi@4 51
danielebarchiesi@4 52 /* */
danielebarchiesi@4 53
danielebarchiesi@4 54 function extractLink($n, $t_vals, $t) {
danielebarchiesi@4 55 if ($this->hasRel($n, 'alternate') || $this->hasRel($n, 'meta')) {
danielebarchiesi@4 56 if ($href = $this->v('href uri', '', $n['a'])) {
danielebarchiesi@4 57 $t .= '<' . $n['doc_url'] . '> rdfs:seeAlso <' . $href . '> . ';
danielebarchiesi@4 58 if ($v = $this->v('type', '', $n['a'])) {
danielebarchiesi@4 59 $t .= '<' .$href. '> dc:format "' . $v . '" . ';
danielebarchiesi@4 60 }
danielebarchiesi@4 61 if ($v = $this->v('title', '', $n['a'])) {
danielebarchiesi@4 62 $t .= '<' .$href. '> dc:title "' . $v . '" . ';
danielebarchiesi@4 63 }
danielebarchiesi@4 64 }
danielebarchiesi@4 65 }
danielebarchiesi@4 66 return array($t_vals, $t);
danielebarchiesi@4 67 }
danielebarchiesi@4 68
danielebarchiesi@4 69 function extractMeta($n, $t_vals, $t) {
danielebarchiesi@4 70 if ($this->hasAttribute('http-equiv', $n, 'Content-Type') || $this->hasAttribute('http-equiv', $n, 'content-type')) {
danielebarchiesi@4 71 if ($v = $this->v('content', '', $n['a'])) {
danielebarchiesi@4 72 $t .= '<' . $n['doc_url'] . '> dc:format "' . $v . '" . ';
danielebarchiesi@4 73 }
danielebarchiesi@4 74 }
danielebarchiesi@4 75 return array($t_vals, $t);
danielebarchiesi@4 76 }
danielebarchiesi@4 77
danielebarchiesi@4 78 /* */
danielebarchiesi@4 79
danielebarchiesi@4 80 }