Ejemplo n.º 1
0
 function getContent(&$exp)
 {
     $rdf = '<' . $this->_type . " rdf:about=\"" . clean($this->_url) . "\">\n";
     if ($this->_type != 'sioc:Post') {
         $rdf .= "\t<rdf:type rdf:resource=\"http://rdfs.org/sioc/ns#Post\" />\n";
     }
     if ($this->_subject) {
         $rdf .= "\t<dc:title>" . $this->_subject . "</dc:title>\n";
     }
     if ($this->_creator) {
         if ($this->_creator->_id) {
             $rdf .= "\t<sioc:has_creator>\n";
             $rdf .= "\t\t<sioc:UserAccount rdf:about=\"" . clean($this->_creator->_uri) . "\">\n";
             if ($this->_creator->_sioc_url) {
                 $rdf .= "\t\t\t<rdfs:seeAlso rdf:resource=\"" . $this->_creator->_sioc_url . "\"/>\n";
             } else {
                 $rdf .= "\t\t\t<rdfs:seeAlso rdf:resource=\"" . $exp->siocURL('user', $this->_creator->_id) . "\"/>\n";
             }
             $rdf .= "\t\t</sioc:UserAccount>\n";
             $rdf .= "\t</sioc:has_creator>\n";
             $rdf .= "\t<foaf:maker>\n";
             $rdf .= "\t\t<foaf:Person rdf:about=\"" . clean($this->_creator->_foaf_uri) . "\">\n";
             if ($this->_creator->_foaf_url) {
                 $rdf .= "\t\t\t<rdfs:seeAlso rdf:resource=\"" . $this->_creator->_foaf_url . "\"/>\n";
             } else {
                 $rdf .= "\t\t\t<rdfs:seeAlso rdf:resource=\"" . $exp->siocURL('user', $this->_creator->_id) . "\"/>\n";
             }
             $rdf .= "\t\t</foaf:Person>\n";
             $rdf .= "\t</foaf:maker>\n";
         } else {
             $rdf .= "\t<foaf:maker>\n";
             $rdf .= "\t\t<foaf:Person";
             if ($this->_creator->_name) {
                 $rdf .= " foaf:name=\"" . $this->_creator->_name . "\"";
             }
             if ($this->_creator->_sha1) {
                 $rdf .= " foaf:mbox_sha1sum=\"" . $this->_creator->_sha1 . "\"";
             }
             if ($this->_creator->_name) {
                 $rdf .= ">\n\t\t\t<foaf:homepage rdf:resource=\"" . $this->_creator->_homepage . "\"/>\n\t\t</foaf:Person>\n";
             } else {
                 $rdf .= "/>\n";
             }
             $rdf .= "\t</foaf:maker>\n";
         }
     }
     $rdf .= "\t<dcterms:created>" . $this->_created . "</dcterms:created>\n";
     if ($this->_updated and $this->_created != $this->_updated) {
         $rdf .= "\t<dcterms:modified>" . $this->_updated . "</dcterms:modified>\n";
     }
     $rdf .= "\t<sioc:content>" . pureContent($this->_content) . "</sioc:content>\n";
     $rdf .= "\t<content:encoded><![CDATA[" . $this->_encoded . "]]></content:encoded>\n";
     if ($this->_topics) {
         foreach ($this->_topics as $url => $topic) {
             $rdf .= "\t<sioc:topic rdfs:label=\"{$topic}\" rdf:resource=\"" . clean($url) . "\"/>\n";
         }
     }
     if ($this->_links) {
         foreach ($this->_links as $url => $link) {
             $rdf .= "\t<sioc:links_to rdfs:label=\"{$link}\" rdf:resource=\"" . clean($url) . "\"/>\n";
         }
     }
     if ($this->_has_part) {
         foreach ($this->_has_part as $id => $url) {
             $rdf .= "\t<dcterms:hasPart>\n";
             $rdf .= "\t\t<dcmitype:Image rdf:about=\"" . clean($url) . "\"/>\n";
             $rdf .= "\t</dcterms:hasPart>\n";
         }
     }
     if ($this->_reply_of) {
         foreach ($this->_reply_of as $id => $url) {
             $rdf .= "\t<sioc:reply_of>\n";
             $rdf .= "\t\t<sioc:Post rdf:about=\"" . clean($url) . "\">\n";
             $rdf .= "\t\t\t<rdfs:seeAlso rdf:resource=\"" . $exp->siocURL('post', $id) . "\"/>\n";
             $rdf .= "\t\t</sioc:Post>\n";
             $rdf .= "\t</sioc:reply_of>\n";
         }
     }
     if ($this->_comments) {
         foreach ($this->_comments as $id => $url) {
             $rdf .= "\t<sioc:has_reply>\n";
             $rdf .= "\t\t<sioc:Post rdf:about=\"" . clean($url) . "\">\n";
             //        if($comments->f('comment_trackback')) $rdf .= "\t\t\t<sioc:type>" . POST_TRACKBACK . "</sioc:type>\n";
             //        else $rdf .= "\t\t\t<sioc:type>" . POST_COMMENT  . "</sioc:type>\n";
             $rdf .= "\t\t\t<rdfs:seeAlso rdf:resource=\"" . $exp->siocURL('comment', $id) . "\"/>\n";
             $rdf .= "\t\t</sioc:Post>\n";
             $rdf .= "\t</sioc:has_reply>\n";
         }
     }
     $rdf .= "</" . $this->_type . ">\n";
     return $rdf;
 }
 function getContent(&$exp)
 {
     $rdf = '<' . $this->_type . " rdf:about=\"" . clean($this->_url, true) . "\">\n";
     if ($this->_subject) {
         $rdf .= "\t<dc:title>" . clean($this->_subject) . "</dc:title>\n";
         // if(strcmp($this->_has_container, 'http://en.wikipedia.org')===0)
         //    $rdf .= "\t<foaf:primaryTopic rdf:resource=\"".clean('http://dbpedia.org/resource/'.$this->_subject)."\"/>\n";
     }
     $creator_name = null;
     if (count($this->_contributors) > 0) {
         foreach ($this->_contributors as $cont_id => $cont_name) {
             if (!isset($this->_creator['sioc:modifier']) || $this->_creator['sioc:modifier'] != $cont_id) {
                 $rdf .= "\t<sioc:has_modifier rdf:resource=\"" . normalizeUri($exp->siocURL('user', $cont_id)) . "\" rdfs:label=\"" . clean($cont_name) . "\"/>\n";
             }
         }
         if (isset($this->_contributors[$this->_creator['sioc:modifier']])) {
             $creator_name = 'rdfs:label="' . clean($this->_contributors[$this->_creator['sioc:modifier']]) . '"';
         }
     }
     if (is_array($this->_creator)) {
         // if ($this->_creator['foaf:maker'])
         //     $rdf .= "\t<foaf:maker rdf:resource=\"".clean($this->_creator['foaf:maker'])."\"/>\n";
         if ($this->_creator['sioc:modifier']) {
             if ($this->_is_creator === false) {
                 $rdf .= "\t<sioc:has_modifier rdf:resource=\"" . normalizeUri($exp->siocURL('user', $this->_creator['sioc:modifier'])) . "\" {$creator_name}/>\n";
             }
             if ($this->_is_creator === true) {
                 $rdf .= "\t<sioc:has_creator rdf:resource=\"" . normalizeUri($exp->siocURL('user', $this->_creator['sioc:modifier'])) . "\" {$creator_name}/>\n";
             }
         }
     }
     if ($this->_created) {
         $rdf .= "\t<dcterms:created>" . $this->_created . "</dcterms:created>\n";
     }
     if ($this->_modified) {
         $rdf .= "\t<dcterms:modified>" . $this->_modified . "</dcterms:modified>\n";
     }
     if ($this->_has_space) {
         $rdf .= "\t<sioc:has_space rdf:resource=\"" . clean($this->_has_space, true) . "\" />\n";
         // TODO: rdfs:label
     }
     if ($this->_has_container) {
         $rdf .= "\t<sioc:has_container rdf:resource=\"" . normalizeUri($exp->siocURL('container', $this->_has_container)) . "\" />\n";
         // TODO: rdfs:label
     }
     if ($this->_content) {
         $rdf .= "\t<sioc:content><![CDATA[" . pureContent($this->_content) . "]]></sioc:content>\n";
     }
     if ($this->_content_encoded) {
         $rdf .= "\t<content:encoded><![CDATA[" . $this->_content_encoded . "]]></content:encoded>\n";
     }
     /*
     if(is_array($this->_topics)) {
         foreach($this->_topics as $topic=>$url) {
             $rdf .= "\t<sioc:topic>\n";
             $rdf .= "\t\t<sioct:Category rdf:about=\"" . clean($url) ."\">\n";
             $rdf .= "\t\t\t<rdfs:seeAlso rdf:resource=\"" .
                     clean('http://ws.sioc-project.org/mediawiki/mediawiki.php?wiki='.$url);
             if ($this->_api) $rdf .= clean("&api=" . $this->_api);
             $rdf .= "\"/>\n";
             $rdf .= "\t\t</sioct:Category>\n";
             $rdf .= "\t</sioc:topic>\n";
         }
     }
     */
     if (is_array($this->_links) && count($this->_links) > 0) {
         foreach ($this->_links as $link_id => $link_exists) {
             if ($link_exists && !isHiddenPage($link_id)) {
                 $rdf .= "\t<sioc:links_to rdf:resource=\"" . normalizeUri($exp->siocURL('post', $link_id)) . "\"/>\n";
                 // TODO: rdfs:label
             }
         }
     }
     if (count($this->_backlinks) > 0) {
         foreach ($this->_backlinks as $link_id) {
             if (!isHiddenPage($link_id)) {
                 $rdf .= "\t<dcterms:isReferencedBy rdf:resource=\"" . normalizeUri($exp->siocURL('post', $link_id)) . "\"/>\n";
                 // TODO: rdfs:label
             }
         }
     }
     /*
     if(is_array($this->_ext_links)) {
         foreach($this->_ext_links as $label=>$url) {
             $rdf .= "\t<sioc:links_to rdf:resource=\"" . clean($url) ."\"/>\n";
         }
     }
     */
     if ($this->_previous_version) {
         $rdf .= "\t<sioc:previous_version rdf:resource=\"" . normalizeUri($exp->siocURL('post', $this->_id . $exp->_urlseparator . 'rev' . $exp->_urlequal . $this->_previous_version)) . "\"/>\n";
         // TODO: rdfs:label
         /* If there is support for inference and transitivity the following is not needed */
         $rdf .= "\t<sioc:earlier_version rdf:resource=\"" . normalizeUri($exp->siocURL('post', $this->_id . $exp->_urlseparator . 'rev' . $exp->_urlequal . $this->_previous_version)) . "\"/>\n";
         // TODO: rdfs:label
     }
     if ($this->_next_version) {
         $rdf .= "\t<sioc:next_version rdf:resource=\"" . normalizeUri($exp->siocURL('post', $this->_id . $exp->_urlseparator . 'rev' . $exp->_urlequal . $this->_next_version)) . "\"/>\n";
         // TODO: rdfs:label
         /* If there is support for inference and transitivity the following is not needed */
         $rdf .= "\t<sioc:later_version rdf:resource=\"" . normalizeUri($exp->siocURL('post', $this->_id . $exp->_urlseparator . 'rev' . $exp->_urlequal . $this->_next_version)) . "\"/>\n";
         // TODO: rdfs:label
     }
     if ($this->_latest_version) {
         $rdf .= "\t<sioc:latest_version rdf:resource=\"" . normalizeUri($exp->siocURL('post', $this->_id)) . "\"/>\n";
         // TODO: rdfs:label
     }
     /*
     if($this->_has_discussion && (strpos($this->_has_discussion, 'Talk:Talk:') == FALSE)) {
             $rdf .= "\t<sioc:has_discussion>\n";
             $rdf .= "\t\t<sioct:WikiArticle rdf:about=\"" . clean($this->_has_discussion) ."\">\n";
             $rdf .= "\t\t\t<rdfs:seeAlso rdf:resource=\"" .
                     clean('http://ws.sioc-project.org/mediawiki/mediawiki.php?wiki='.$this->_has_discussion);
             if ($this->_api) $rdf .= clean("&api=" . $this->_api);
             $rdf .= "\"/>\n";
             $rdf .= "\t\t</sioct:WikiArticle>\n";
             $rdf .= "\t</sioc:has_discussion>\n";
     }
     */
     /*
     if($this->_redirpage)
     {
         $rdf .= "\t<owl:sameAs rdf:resource=\"" . clean($this->_redirpage) ."\"/>\n";
         $rdf .= "\t<rdfs:seeAlso rdf:resource=\"" . 
                     clean('http://ws.sioc-project.org/mediawiki/mediawiki.php?wiki='.$this->_redirpage);
         if ($this->_api) $rdf .= clean("&api=" . $this->_api);
         $rdf .= "\"/>\n";
     }
     */
     $rdf .= "</" . $this->_type . ">\n";
     return $rdf;
 }