public function build() { global $wgRightsUrl; $rdf = MwRdf::Vocabulary('rdf'); $cc = MwRdf::Vocabulary('cc'); $model = MwRdf::Model(); $tr = $this->Agent->titleResource(); $model->addStatement(MwRdf::Statement($tr, $rdf->a, $cc->Work)); if (!isset($wgRightsUrl)) { return $model; } $lr = MwRdf::UriNode($wgRightsUrl); $model->addStatement(MwRdf::Statement($tr, $cc->license, $lr)); $model->addStatement(MwRdf::Statement($lr, $rdf->a, $cc->License)); $terms = MwRdf::GetCcTerms($wgRightsUrl); if (!isset($terms)) { return $model; } foreach ($terms as $term) { switch ($term) { case 're': $model->addStatement(MwRdf::Statement($lr, $cc->permits, $cc->Reproduction)); break; case 'di': $model->addStatement(MwRdf::Statement($lr, $cc->permits, $cc->Distribution)); break; case 'de': $model->addStatement(MwRdf::Statement($lr, $cc->permits, $cc->DerivativeWorks)); break; case 'nc': $model->addStatement(MwRdf::Statement($lr, $cc->prohibits, $cc->CommercialUse)); break; case 'no': $model->addStatement(MwRdf::Statement($lr, $cc->requires, $cc->Notice)); break; case 'by': $model->addStatement(MwRdf::Statement($lr, $cc->requires, $cc->Attribution)); break; case 'sa': $model->addStatement(MwRdf::Statement($lr, $cc->requires, $cc->ShareAlike)); break; case 'sc': $model->addStatement(MwRdf::Statement($lr, $cc->requires, $cc->SourceCode)); break; } } return $model; }
public function testGetCcTerms() { $license = 'http://creativecommons.org/licenses/by-sa/1.0/'; $terms = MwRdf::GetCcTerms($license); $this->assertType('array', $terms, $license); $this->assertContains('re', $terms); $this->assertContains('di', $terms); $this->assertContains('de', $terms); $this->assertContains('no', $terms); $this->assertContains('by', $terms); $this->assertContains('sa', $terms); $license = 'http://creativecommons.org/licenses/by-nc-sa/1.0/'; $terms = MwRdf::GetCcTerms($license); $this->assertType('array', $terms, $license); $this->assertContains('re', $terms); $this->assertContains('di', $terms); $this->assertContains('de', $terms); $this->assertContains('no', $terms); $this->assertContains('by', $terms); $this->assertContains('sa', $terms); $this->assertContains('nc', $terms); $license = 'http://creativecommons.org/licenses/GPL/2.0/'; $terms = MwRdf::GetCcTerms($license); $this->assertType('array', $terms, $license); $this->assertContains('de', $terms); $this->assertContains('re', $terms); $this->assertContains('di', $terms); $this->assertContains('no', $terms); $this->assertContains('sa', $terms); $this->assertContains('sc', $terms); $license = 'http://creativecommons.org/licenses/LGPL/2.1/'; $terms = MwRdf::GetCcTerms($license); $this->assertType('array', $terms, $license); $this->assertContains('de', $terms); $this->assertContains('re', $terms); $this->assertContains('di', $terms); $this->assertContains('no', $terms); $this->assertContains('sa', $terms); $this->assertContains('sc', $terms); $license = 'http://www.gnu.org/copyleft/fdl.html'; $terms = MwRdf::GetCcTerms($license); $this->assertType('array', $terms, $license); $this->assertContains('de', $terms); $this->assertContains('re', $terms); $this->assertContains('di', $terms); $this->assertContains('no', $terms); $this->assertContains('sa', $terms); $this->assertContains('sc', $terms); }