source: pmb4.2/trunk/fuentes/pmb/classes/rdf/arc2/serializers/ARC2_POSHRDFSerializer.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 2.6 KB
Line 
1<?php
2/*
3homepage: http://arc.semsol.org/
4license:  http://arc.semsol.org/license
5
6class:    ARC2 POSH RDF Serializer
7author:   Benjamin Nowack
8version:  2010-11-16
9*/
10
11ARC2::inc('RDFSerializer');
12
13class ARC2_POSHRDFSerializer extends ARC2_RDFSerializer {
14
15  function __construct($a, &$caller) {
16    parent::__construct($a, $caller);
17  }
18 
19  function __init() {
20    parent::__init();
21    $this->content_header = 'text/html';
22  }
23
24  /*  */
25 
26  function getLabel($res, $ps = '') {
27    if (!$ps) $ps = array();
28    foreach ($ps as $p => $os) {
29      if (preg_match('/[\/\#](name|label|summary|title|fn)$/i', $p)) {
30        return $os[0]['value'];
31      }
32    }
33    if (preg_match('/^\_\:/', $res)) return "An unnamed resource";
34    return preg_replace("/^(.*[\/\#])([^\/\#]+)$/", '\\2', str_replace('_', ' ', $res));
35  }
36 
37  function getSerializedIndex($index, $res = '') {
38    $r = '';
39    $n = "\n";
40    if ($res) $index = array($res => $index[$res]);
41    //return Trice::dump($index);
42    foreach ($index as $s => $ps) {
43      /* node */
44      $r .= '
45        <div class="rdf-view">
46          <h3><a class="rdf-s" href="' . $s . '">' . $this->getLabel($s, $ps)  . '</a></h3>
47      ';
48      /* arcs */
49      foreach ($ps as $p => $os) {
50        $r .= '
51          <div class="rdf-o-list">
52            <a class="rdf-p" href="' . $p . '">' . ucfirst($this->getLabel($p)) . '</a>
53        ';
54        foreach ($os as $o) {
55          $r .= $n . $this->getObjectValue($o);
56        }
57        $r .= '   
58          </div>
59        ';
60      }
61      /* node */
62      $r .= '
63        <div class="clb"></div>
64        </div>
65      ';
66    }
67    return $r;
68  }
69 
70  function getObjectValue($o) {
71    if ($o['type'] == 'uri') {
72      if (preg_match('/(jpe?g|gif|png)$/i', $o['value'])) {
73        return $this->getImageObjectValue($o);
74      }
75      return $this->getURIObjectValue($o);
76    }
77    if ($o['type'] == "bnode") {
78      return $this->getBNodeObjectValue($o);
79    }
80    return $this->getLiteralObjectValue($o);
81  }
82 
83  function getImageObjectValue($o) {
84    return '<img class="rdf-o" src="' . htmlspecialchars($o['value']) . '" alt="img" />';
85  }
86 
87  function getURIObjectValue($o) {
88    $href = htmlspecialchars($o['value']);
89    $label = $o['value'];
90    $label = preg_replace('/^https?\:\/\/(www\.)?/', '', $label);
91    return '<a class="rdf-o" href="' . $href . '">' . $label . '</a>';
92  }
93
94  function getBNodeObjectValue($o) {
95    return '<div class="rdf-o" title="' . $o['value']. '">An unnamed resource</div>';
96  }
97
98  function getLiteralObjectValue($o) {
99    return '<div class="rdf-o">' . $o['value'] . '</div>';
100  }
101
102  /*  */
103
104}
105
Note: See TracBrowser for help on using the repository browser.