コード例 #1
0
 /**
  * This method needs to be changed to allow the script to know how to create more references.
  *
  * @param WikibaseFactory $wikibaseFactory
  * @param SparqlQueryRunner $sparqlQueryRunner
  *
  * @return array like array( 'Schema.org_type' => Referencer[] )
  */
 public function getReferencerMap(WikibaseFactory $wikibaseFactory, SparqlQueryRunner $sparqlQueryRunner)
 {
     return array('Book' => array(new ThingReferencer($wikibaseFactory, array('P50' => 'author', 'P110' => 'illustrator', 'P123' => 'publisher', 'P136' => 'genre')), new DateReferencer($wikibaseFactory, array('P577' => 'datePublished'))), 'Person' => array(new ThingReferencer($wikibaseFactory, array('P7' => 'sibling', 'P9' => 'sibling', 'P19' => 'birthPlace', 'P20' => 'deathPlace', 'P21' => 'gender', 'P22' => 'parent', 'P25' => 'parent', 'P26' => 'spouse', 'P40' => 'children', 'P27' => 'nationality', 'P734' => 'familyName', 'P735' => 'givenName')), new DateReferencer($wikibaseFactory, array('P569' => 'birthDate', 'P570' => 'deathDate'))), 'Movie' => array(new ThingReferencer($wikibaseFactory, array('P57' => 'director', 'P161' => 'actor', 'P162' => 'producer', 'P1040' => 'editor', 'P58' => 'author', 'P272' => array('creator', 'productionCompany'), 'P364' => 'inLanguage', 'P674' => 'character', 'P840' => 'contentLocation', 'P166' => 'award', 'P1657' => 'contentRating', 'P2360' => 'audience')), new MultiTextReferencer($wikibaseFactory, array('P136' => 'genre'), array('P136' => function () use($sparqlQueryRunner) {
         $filmGenreData = $sparqlQueryRunner->getItemIdStringsAndLabelsFromInstanceOf('Q201658');
         $filmGenreRegexMap = array();
         foreach ($filmGenreData as $itemIdString => $label) {
             if (preg_match('/ films?/i', $label)) {
                 $regex = '/^' . preg_replace('/ films?/i', '( film)?', $label) . '$/i';
             } else {
                 $regex = '/^' . $label . '( film)?' . '$/i';
             }
             $regex = preg_replace('/science ?fiction/i', '(science ?fiction|sci-fi)', $regex);
             $filmGenreRegexMap[$itemIdString] = $regex;
         }
         return $filmGenreRegexMap;
     })), new DateReferencer($wikibaseFactory, array('P577' => 'datePublished'))));
 }