%PDF- %PDF-
Direktori : /www/varak.net/wiki.varak.net/vendor/wikimedia/purtle/src/ |
Current File : //www/varak.net/wiki.varak.net/vendor/wikimedia/purtle/src/N3RdfWriterBase.php |
<?php namespace Wikimedia\Purtle; /** * Base class for RdfWriter implementations that output an N3 dialect. * * @license GPL-2.0-or-later * @author Daniel Kinzler */ abstract class N3RdfWriterBase extends RdfWriterBase { /** * @var N3Quoter */ protected $quoter; /** * @param string $role * @param BNodeLabeler|null $labeler * @param N3Quoter|null $quoter */ public function __construct( $role = parent::DOCUMENT_ROLE, BNodeLabeler $labeler = null, N3Quoter $quoter = null ) { parent::__construct( $role, $labeler ); $this->quoter = $quoter ?: new N3Quoter(); } protected function writeRef( $base, $local = null ) { if ( $local === null ) { if ( $base === 'a' ) { $this->write( 'a' ); } else { $this->writeIRI( $base ); } } else { $this->write( "$base:$local" ); } } protected function writeIRI( $iri, $trustIRI = false ) { if ( !$trustIRI ) { $iri = $this->quoter->escapeIRI( $iri ); } $this->write( "<$iri>" ); } protected function writeText( $text, $language = null ) { $value = $this->quoter->escapeLiteral( $text ); $this->write( '"' . $value . '"' ); if ( $this->isValidLanguageCode( $language ) ) { $this->write( '@' . $language ); } } /** * @param string $value * @param string|null $typeBase * @param string|null $typeLocal */ protected function writeValue( $value, $typeBase, $typeLocal = null ) { $value = $this->quoter->escapeLiteral( $value ); $this->write( '"' . $value. '"' ); if ( $typeBase !== null ) { $this->write( '^^' ); $this->writeRef( $typeBase, $typeLocal ); } } }