Purtle
Fast streaming RDF serializer for PHP
Loading...
Searching...
No Matches
Wikimedia\Purtle\RdfWriterBase Class Reference

Base class for RdfWriter implementations. More...

+ Inheritance diagram for Wikimedia\Purtle\RdfWriterBase:
+ Collaboration diagram for Wikimedia\Purtle\RdfWriterBase:

Public Member Functions

 __construct ( $role, BNodeLabeler $labeler=null)
 
 prefix ( $prefix, $iri)
 Registers a prefix.
 
 getPrefixes ()
 Returns the prefix map.
 
 sub ()
 
 getRole ()
 
 blank ( $label=null)
 
 start ()
 
 finish ()
 
 drain ()
 
 about ( $base, $local=null)
 
 a ( $typeBase, $typeLocal=null)
 
 say ( $base, $local=null)
 
 is ( $base, $local=null)
 
 text ( $text, $language=null)
 
 value ( $value, $typeBase=null, $typeLocal=null)
 
- Public Member Functions inherited from Wikimedia\Purtle\RdfWriter
 getMimeType ()
 Returns the MIME type of the RDF serialization the writer produces.
 

Public Attributes

const DOCUMENT_ROLE = 'document'
 Role ID for writers that will generate a full RDF document.
 
const SUBDOCUMENT_ROLE = 'sub'
 

Protected Member Functions

 newSubWriter ( $role, BNodeLabeler $labeler)
 
 registerShorthand ( $shorthand, $prefix, $local)
 Registers a shorthand that can be used instead of a qname, like 'a' can be used instead of 'rdf:type'.
 
 isShorthand ( $shorthand)
 Determines whether $shorthand can be used as a shorthand.
 
 isPrefix ( $prefix)
 Determines whether $shorthand can legally be used as a prefix.
 
 isValidLanguageCode ( $languageCode)
 
 write ( $w)
 Appends string to the output buffer.
 
 expandShorthand (&$base, &$local)
 If $base is a shorthand, $base and $local are updated to hold whatever qname the shorthand was associated with.
 
 expandQName (&$base, &$local)
 If $base is a registered prefix, $base will be replaced by the base IRI associated with that prefix, with $local appended.
 
 state ( $newState)
 Perform a state transition.
 
 writeSubject ( $base, $local=null)
 Must be implemented to generate output that starts a statement (or set of statements) about a subject.
 
 writePredicate ( $base, $local=null)
 Must be implemented to generate output that represents the association of a predicate with a subject that was previously defined by a call to writeSubject().
 
 writeResource ( $base, $local=null)
 Must be implemented to generate output that represents a resource used as the object of a statement.
 
 writeText ( $text, $language)
 Must be implemented to generate output that represents a text used as the object of a statement.
 
 writeValue ( $value, $typeBase, $typeLocal=null)
 Must be implemented to generate output that represents a (typed) literal used as the object of a statement.
 
 expandSubject (&$base, &$local)
 Perform any expansion (shorthand to qname, qname to IRI) desired for subject identifiers.
 
 expandPredicate (&$base, &$local)
 Perform any expansion (shorthand to qname, qname to IRI) desired for predicate identifiers.
 
 expandResource (&$base, &$local)
 Perform any expansion (shorthand to qname, qname to IRI) desired for resource identifiers.
 
 expandType (&$base, &$local)
 Perform any expansion (shorthand to qname, qname to IRI) desired for type identifiers.
 

Protected Attributes

const STATE_START = 0
 
const STATE_DOCUMENT = 5
 
const STATE_SUBJECT = 10
 
const STATE_PREDICATE = 11
 
const STATE_OBJECT = 12
 
const STATE_FINISH = 666
 
 $prefixes = []
 
 $currentSubject = [ null, null ]
 
 $currentPredicate = [ null, null ]
 
 $role
 
 $transitionTable
 

Detailed Description

Base class for RdfWriter implementations.

Subclasses have to implement at least the writeXXX() methods to generate the desired output for the respective RDF constructs. Subclasses may override the startXXX() and finishXXX() methods to generate structural output, and override expandXXX() to transform identifiers.

@license GPL-2.0-or-later

Author
Daniel Kinzler

Constructor & Destructor Documentation

◆ __construct()

Wikimedia\Purtle\RdfWriterBase::__construct ( $role,
BNodeLabeler $labeler = null )
Parameters
string$roleThe writer's role, use the XXX_ROLE constants.
BNodeLabeler | null$labeler
Exceptions
InvalidArgumentException

Reimplemented in Wikimedia\Purtle\JsonLdRdfWriter, and Wikimedia\Purtle\XmlRdfWriter.

Member Function Documentation

◆ a()

Wikimedia\Purtle\RdfWriterBase::a ( $typeBase,
$typeLocal = null )
final
See also
RdfWriter::a() Shorthand for say( 'a' )->is( $type ).
Parameters
string$typeBaseThe data type's QName prefix if $typeLocal is given, or an IRI or shorthand if $typeLocal is null.
string | null$typeLocalThe data type's QName suffix, or null if $typeBase is an IRI or shorthand.
Returns
RdfWriter $this

Implements Wikimedia\Purtle\RdfWriter.

◆ about()

Wikimedia\Purtle\RdfWriterBase::about ( $base,
$local = null )
final
See also
RdfWriter::about()
Parameters
string$baseA QName prefix if $local is given, or an IRI if $local is null.
string | null$localA QName suffix, or null if $base is an IRI.
Returns
RdfWriter $this

Implements Wikimedia\Purtle\RdfWriter.

◆ blank()

Wikimedia\Purtle\RdfWriterBase::blank ( $label = null)
final
See also
RdfWriter::blank()
Parameters
string | null$labelnode label; will be generated if not given.
Returns
string

Implements Wikimedia\Purtle\RdfWriter.

◆ drain()

Wikimedia\Purtle\RdfWriterBase::drain ( )
final
See also
RdfWriter::drain()
Returns
string RDF

Implements Wikimedia\Purtle\RdfWriter.

◆ expandPredicate()

Wikimedia\Purtle\RdfWriterBase::expandPredicate ( & $base,
& $local )
protected

Perform any expansion (shorthand to qname, qname to IRI) desired for predicate identifiers.

Parameters
string&$base
string | null&$local

Reimplemented in Wikimedia\Purtle\NTriplesRdfWriter, and Wikimedia\Purtle\XmlRdfWriter.

◆ expandQName()

Wikimedia\Purtle\RdfWriterBase::expandQName ( & $base,
& $local )
protected

If $base is a registered prefix, $base will be replaced by the base IRI associated with that prefix, with $local appended.

$local will be set to null.

Otherwise, $base and $local remain unchanged.

Parameters
string&$base
string | null&$local
Exceptions
LogicException

◆ expandResource()

Wikimedia\Purtle\RdfWriterBase::expandResource ( & $base,
& $local )
protected

Perform any expansion (shorthand to qname, qname to IRI) desired for resource identifiers.

Parameters
string&$base
string | null&$local

Reimplemented in Wikimedia\Purtle\NTriplesRdfWriter, and Wikimedia\Purtle\XmlRdfWriter.

◆ expandShorthand()

Wikimedia\Purtle\RdfWriterBase::expandShorthand ( & $base,
& $local )
protected

If $base is a shorthand, $base and $local are updated to hold whatever qname the shorthand was associated with.

Otherwise, $base and $local remain unchanged.

Parameters
string&$base
string | null&$local

◆ expandSubject()

Wikimedia\Purtle\RdfWriterBase::expandSubject ( & $base,
& $local )
protected

Perform any expansion (shorthand to qname, qname to IRI) desired for subject identifiers.

Parameters
string&$base
string | null&$local

Reimplemented in Wikimedia\Purtle\NTriplesRdfWriter, and Wikimedia\Purtle\XmlRdfWriter.

◆ expandType()

Wikimedia\Purtle\RdfWriterBase::expandType ( & $base,
& $local )
protected

Perform any expansion (shorthand to qname, qname to IRI) desired for type identifiers.

Parameters
string | null&$base
string | null&$local

Reimplemented in Wikimedia\Purtle\NTriplesRdfWriter, and Wikimedia\Purtle\XmlRdfWriter.

◆ finish()

Wikimedia\Purtle\RdfWriterBase::finish ( )
final
See also
RdfWriter::finish()

Implements Wikimedia\Purtle\RdfWriter.

◆ getPrefixes()

Wikimedia\Purtle\RdfWriterBase::getPrefixes ( )

Returns the prefix map.

Returns
string[] An associative array mapping prefixes to base IRIs.

◆ getRole()

Wikimedia\Purtle\RdfWriterBase::getRole ( )
final
Returns
string A string corresponding to one of the the XXX_ROLE constants.

◆ is()

Wikimedia\Purtle\RdfWriterBase::is ( $base,
$local = null )
final
See also
RdfWriter::is()
Parameters
string$baseA QName prefix if $local is given, or an IRI if $local is null.
string | null$localA QName suffix, or null if $base is an IRI.
Returns
RdfWriter $this

Implements Wikimedia\Purtle\RdfWriter.

◆ isPrefix()

Wikimedia\Purtle\RdfWriterBase::isPrefix ( $prefix)
protected

Determines whether $shorthand can legally be used as a prefix.

Parameters
string$prefix
Returns
bool

◆ isShorthand()

Wikimedia\Purtle\RdfWriterBase::isShorthand ( $shorthand)
protected

Determines whether $shorthand can be used as a shorthand.

Parameters
string$shorthand
Returns
bool

◆ isValidLanguageCode()

Wikimedia\Purtle\RdfWriterBase::isValidLanguageCode ( $languageCode)
protected
Parameters
string | null$languageCode
Returns
bool

◆ newSubWriter()

Wikimedia\Purtle\RdfWriterBase::newSubWriter ( $role,
BNodeLabeler $labeler )
abstractprotected
Parameters
string$role
BNodeLabeler$labeler
Returns
RdfWriterBase

Reimplemented in Wikimedia\Purtle\JsonLdRdfWriter, Wikimedia\Purtle\NTriplesRdfWriter, Wikimedia\Purtle\TurtleRdfWriter, and Wikimedia\Purtle\XmlRdfWriter.

◆ prefix()

Wikimedia\Purtle\RdfWriterBase::prefix ( $prefix,
$iri )

Registers a prefix.

Parameters
string$prefix
string$iriThe base IRI
Exceptions
LogicException

Implements Wikimedia\Purtle\RdfWriter.

◆ registerShorthand()

Wikimedia\Purtle\RdfWriterBase::registerShorthand ( $shorthand,
$prefix,
$local )
protected

Registers a shorthand that can be used instead of a qname, like 'a' can be used instead of 'rdf:type'.

Parameters
string$shorthand
string$prefix
string$local

◆ say()

Wikimedia\Purtle\RdfWriterBase::say ( $base,
$local = null )
final
See also
RdfWriter::say()
Parameters
string$baseA QName prefix.
string | null$localA QName suffix.
Returns
RdfWriter $this

Implements Wikimedia\Purtle\RdfWriter.

◆ start()

Wikimedia\Purtle\RdfWriterBase::start ( )
final
See also
RdfWriter::start()

Implements Wikimedia\Purtle\RdfWriter.

◆ state()

int the current Wikimedia\Purtle\RdfWriterBase::state ( $newState)
finalprotected

Perform a state transition.

Writer states roughly correspond to states in a naive regular parser for the respective syntax. State transitions may generate output, particularly of structural elements which correspond to terminals in a respective parser.

Parameters
int$newStateone of the self::STATE_... constants
Exceptions
LogicException

◆ sub()

Wikimedia\Purtle\RdfWriterBase::sub ( )
final
Returns
RdfWriter

Implements Wikimedia\Purtle\RdfWriter.

◆ text()

Wikimedia\Purtle\RdfWriterBase::text ( $text,
$language = null )
final
See also
RdfWriter::text()
Parameters
string$textthe text to be placed in the output
string | null$languagethe language the text is in
Returns
$this

Implements Wikimedia\Purtle\RdfWriter.

◆ value()

Wikimedia\Purtle\RdfWriterBase::value ( $value,
$typeBase = null,
$typeLocal = null )
final
See also
RdfWriter::value()
Parameters
string$valuethe value encoded as a string
string | null$typeBaseThe data type's QName prefix if $typeLocal is given, or an IRI or shorthand if $typeLocal is null.
string | null$typeLocalThe data type's QName suffix, or null if $typeBase is an IRI or shorthand.
Returns
$this

Implements Wikimedia\Purtle\RdfWriter.

◆ write()

Wikimedia\Purtle\RdfWriterBase::write ( $w)
finalprotected

Appends string to the output buffer.

Parameters
string$w

◆ writePredicate()

Wikimedia\Purtle\RdfWriterBase::writePredicate ( $base,
$local = null )
abstractprotected

Must be implemented to generate output that represents the association of a predicate with a subject that was previously defined by a call to writeSubject().

Note
$base and $local are given as passed to say() and processed by expandPredicate().
Parameters
string$base
string | null$local

Reimplemented in Wikimedia\Purtle\JsonLdRdfWriter, Wikimedia\Purtle\NTriplesRdfWriter, Wikimedia\Purtle\TurtleRdfWriter, and Wikimedia\Purtle\XmlRdfWriter.

◆ writeResource()

Wikimedia\Purtle\RdfWriterBase::writeResource ( $base,
$local = null )
abstractprotected

Must be implemented to generate output that represents a resource used as the object of a statement.

Note
$base and $local are given as passed to is() and processed by expandObject().
Parameters
string$base
string | null$local

Reimplemented in Wikimedia\Purtle\JsonLdRdfWriter, Wikimedia\Purtle\NTriplesRdfWriter, Wikimedia\Purtle\TurtleRdfWriter, and Wikimedia\Purtle\XmlRdfWriter.

◆ writeSubject()

Wikimedia\Purtle\RdfWriterBase::writeSubject ( $base,
$local = null )
abstractprotected

Must be implemented to generate output that starts a statement (or set of statements) about a subject.

Depending on the requirements of the output format, the implementation may be empty.

Note
$base and $local are given as passed to about() and processed by expandSubject().
Parameters
string$base
string | null$local

Reimplemented in Wikimedia\Purtle\JsonLdRdfWriter, Wikimedia\Purtle\NTriplesRdfWriter, Wikimedia\Purtle\TurtleRdfWriter, and Wikimedia\Purtle\XmlRdfWriter.

◆ writeText()

Wikimedia\Purtle\RdfWriterBase::writeText ( $text,
$language )
abstractprotected

Must be implemented to generate output that represents a text used as the object of a statement.

Parameters
string$textthe text to be placed in the output
string | null$languagethe language the text is in

Reimplemented in Wikimedia\Purtle\JsonLdRdfWriter, Wikimedia\Purtle\N3RdfWriterBase, Wikimedia\Purtle\NTriplesRdfWriter, and Wikimedia\Purtle\XmlRdfWriter.

◆ writeValue()

Wikimedia\Purtle\RdfWriterBase::writeValue ( $value,
$typeBase,
$typeLocal = null )
abstractprotected

Must be implemented to generate output that represents a (typed) literal used as the object of a statement.

Note
$typeBase and $typeLocal are given as passed to value() and processed by expandType().
Parameters
string$valuethe value encoded as a string
string | null$typeBase
string | null$typeLocal

Reimplemented in Wikimedia\Purtle\JsonLdRdfWriter, Wikimedia\Purtle\XmlRdfWriter, Wikimedia\Purtle\N3RdfWriterBase, and Wikimedia\Purtle\NTriplesRdfWriter.

Member Data Documentation

◆ $transitionTable

Wikimedia\Purtle\RdfWriterBase::$transitionTable
protected
Initial value:
= [
self::STATE_START => [
self::STATE_DOCUMENT => true,
],
self::STATE_DOCUMENT => [
self::STATE_DOCUMENT => true,
self::STATE_SUBJECT => true,
self::STATE_FINISH => true,
],
self::STATE_SUBJECT => [
self::STATE_PREDICATE => true,
],
self::STATE_PREDICATE => [
self::STATE_OBJECT => true,
],
self::STATE_OBJECT => [
self::STATE_DOCUMENT => true,
self::STATE_SUBJECT => true,
self::STATE_PREDICATE => true,
self::STATE_OBJECT => true,
],
]

The documentation for this class was generated from the following file: