public function testMediaType() { $lang = MwRdf::MediaType('text/html'); $this->assertTrue($lang instanceof LibRDF_LiteralNode); $ns = MwRdf::getNamespace('dc'); $this->assertEquals($ns . 'IMT', $lang->getDatatype()); $this->assertEquals("text/html^^<{$ns}IMT>", "{$lang}"); }
public function build() { global $wgServer; $dc = MwRdf::Vocabulary('dc'); $dcterms = MwRdf::Vocabulary('dcterms'); $dctype = MwRdf::Vocabulary('dctype'); $model = MwRdf::Model(); $tr = $this->Agent->titleResource(); $dbr = wfGetDB(DB_SLAVE); $res = $dbr->select('imagelinks', array('il_to'), array('il_from = ' . $this->Agent->getTitle()->getArticleID()), 'MwRdfImage'); while ($res && ($row = $dbr->fetchObject($res))) { $img = wfFindFile($row->il_to); if (!$img->exists()) { continue; } $iuri = $img->getURL(); if ($iuri[0] == '/') { $iuri = $wgServer . $iuri; } $ir = MwRdf::UriNode($iuri); $model->addStatement(MwRdf::Statement($tr, $dcterms->hasPart, $ir)); $model->addStatement(MwRdf::Statement($ir, $dc->type, $dctype->Image)); $mt = $img->getMimeType(); if (isset($mt)) { $model->addStatement(MwRdf::Statement($ir, $dc->format, MwRdf::MediaType($mt))); } $hist_line = $img->nextHistoryLine(); if (!isset($hist_line)) { continue; } $creator = MwRdf::PersonToResource($hist_line->img_user, $hist_line->img_user_text, User::whoIsReal($hist_line->img_user)); $model->addStatement(MwRdf::Statement($ir, $dc->creator, $creator)); $model->addStatement(MwRdf::Statement($ir, $dc->date, MwRdf::TimestampResource($hist_line->img_timestamp))); $seen = array($hist_line->img_user => true); while ($hist_line = $img->nextHistoryLine()) { if (isset($seen[$hist_line->img_user])) { continue; } $contributor = MwRdf::PersonToResource($hist_line->img_user, $hist_line->img_user_text, User::whoIsReal($hist_line->img_user)); $model->addStatement(MwRdf::Statement($ir, $dc->contributor, $contributor)); $seen[$hist_line->img_user] = true; } } $dbr->freeResult($res); return $model; }
public function build() { global $wgSitename, $wgContLanguageCode; $article = $this->Agent->getArticle(); $model = MwRdf::Model(); $rdf = MwRdf::Vocabulary('rdf'); $dc = MwRdf::Vocabulary('dc'); $dctype = MwRdf::Vocabulary('dctype'); $artres = $this->Agent->titleResource(); $model->addStatement(MwRdf::Statement($artres, $dc->title, MwRdf::LiteralNode($this->Agent->getTitle()->getText()))); $model->addStatement(MwRdf::Statement($artres, $dc->publisher, MwRdf::PageOrString(wfMsg('aboutpage'), $wgSitename))); $model->addStatement(MwRdf::Statement($artres, $dc->language, MwRdf::Language($wgContLanguageCode))); $model->addStatement(MwRdf::Statement($artres, $dc->type, $dctype->Text)); $model->addStatement(MwRdf::Statement($artres, $dc->format, MwRdf::MediaType('text/html'))); if ($this->Agent->getTimestampResource()) { $model->addStatement(MwRdf::Statement($artres, $dc->date, $this->Agent->getTimestampResource())); } if (MWNamespace::isTalk($this->Agent->getTitle()->getNamespace())) { $model->addStatement(MwRdf::Statement($artres, $dc->subject, $this->Agent->subjectResource())); } else { $talk = MwRdf::ModelingAgent($this->Agent->getTitle()->getTalkPage()); $model->addStatement(MwRdf::Statement($talk->titleResource(), $dc->subject, $artres)); } # 'Creator' is responsible for this version $creator = MwRdf::PersonToResource($article->getUser()); $model->addStatement(MwRdf::Statement($artres, $dc->creator, $creator)); # 'Contributors' are all other version authors $contributors = $article->getContributors(); foreach ($contributors as $user_parts) { $contributor = MwRdf::PersonToResource($user_parts[0], $user_parts[1], $user_parts[2]); $model->addStatement(MwRdf::Statement($artres, $dc->contributor, $contributor)); } # Rights notification global $wgRightsPage, $wgRightsUrl, $wgRightsText; $rights = MwRdf::RightsResource(); if ($rights) { $model->addStatement(MwRdf::Statement($artres, $dc->rights, $rights)); } return $model; }