.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RDF::TrineX::Serializer::MockTurtleSoup 3pm" .TH RDF::TrineX::Serializer::MockTurtleSoup 3pm "2014-09-10" "perl v5.20.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RDF::TrineX::Serializer::MockTurtleSoup \- he's a bit slow, but he's sure good lookin' .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use RDF::TrineX::Serializer::MockTurtleSoup; \& \& my $ser = "RDF::TrineX::Serializer::MockTurtleSoup"\->new(%opts); \& $ser\->serialize_model_to_file($fh, $model); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Like RDF::Trine::Serializer::Turtle but real pretty. .PP And slower. .PP And probably breaks with some complex graphs. .SS "What's so pretty?" .IX Subsection "What's so pretty?" .IP "\(bu" 4 Output interesting data first. Output URIs before bnodes. Output rdf:type and rdfs:label before other predicates. Allow the user to define criteria for what nodes are \*(L"interesting\*(R". .IP "\(bu" 4 Use QNames for predicates, classes and datatypes, use full URIs elsewhere. But also allow the user to supply a list of additional URIs that will be abbreviated to QNames: .Sp .Vb 7 \& "RDF::TrineX::Serializer::MockTurtleSoup"\->new( \& abbreviate => [ \& qr{^http://ontologi\e.es/}, \& qr{^http://purl\e.org/}, \& "http://www.google.com/", \& ], \& ); .Ve .IP "\(bu" 4 Generate those QNames using RDF::Prefixes because it generates awesome prefixes. (Better than \*(L"ns1\*(R", \*(L"ns2\*(R", etc.) .IP "\(bu" 4 When data is equally interesting, sort alphabetically by subject, predicate and object. When sorting by predicate, sort by the predicate's QName, not its full \s-1URI.\s0 .IP "\(bu" 4 Compact Turtle list syntax (mostly stolen from Greg's RDF::Trine::Serializer::Turtle) .IP "\(bu" 4 Inline simple bnodes. .IP "\(bu" 4 Indent nicely. .SS "Options" .IX Subsection "Options" The constructor supports the following options: .ie n .IP """abbreviate""" 4 .el .IP "\f(CWabbreviate\fR" 4 .IX Item "abbreviate" This option will be used as the right-hand side of a smart match to test URIs to see if they should be abbreviated to QNames. .Sp URIs used as predicates or as the object of rdf:type triples are always abbreviated anyway. URIs which cannot be abbreviated to a legal QName will just be output as URIs. .ie n .IP """apostrophe""" 4 .el .IP "\f(CWapostrophe\fR" 4 .IX Item "apostrophe" Boolean; if true, then the serializer will sometimes quote literals with an apostrophe instead of double-quote marks. This is allowed by recent versions of the Turtle spec, but was disallowed by earlier specifications, and not widely supported yet. Defaults to false. .ie n .IP """colspace""" 4 .el .IP "\f(CWcolspace\fR" 4 .IX Item "colspace" This allows your predicate-object pairs to line up as nice columns. The smaller the number, the closer they get. Default is 20. .ie n .IP """encoding""" 4 .el .IP "\f(CWencoding\fR" 4 .IX Item "encoding" Either \*(L"ascii\*(R" or \*(L"utf8\*(R". Default is \*(L"utf8\*(R". .ie n .IP """indent""" 4 .el .IP "\f(CWindent\fR" 4 .IX Item "indent" A whitespace string to indent by. The default is one tab character. (God's chosen indentation.) .ie n .IP """labelling""" 4 .el .IP "\f(CWlabelling\fR" 4 .IX Item "labelling" This option will be used as the right-hand side of a smart match to determine which URIs are considered to be equivalent to \f(CW\*(C`rdfs:label\*(C'\fR. The default is just \f(CW\*(C`http://www.w3.org/2000/01/rdf\-schema#label\*(C'\fR. .ie n .IP """namespaces""" 4 .el .IP "\f(CWnamespaces\fR" 4 .IX Item "namespaces" A hashref of prefix => \s-1URI\s0 pairs to define preferred QName prefixes. There is no guarantee that these will be honoured, but they usually will. RDF::Prefixes does a damn good job without any help, so this is generally pretty unnecessary. .ie n .IP """priorities""" 4 .el .IP "\f(CWpriorities\fR" 4 .IX Item "priorities" If defined, must be a coderef. The coderef will be called with arguments: the serializer object itself, a node and the RDF::Trine::Model being serialized. .Sp The coderef can use data within the model to determine how \*(L"interesting\*(R" the node is. High numbers are very interesting. Negitive numbers are very boring. .Sp Interesting nodes are more likely to appear earlier on in the output. .Sp Default is undef. .ie n .IP """repeats""" 4 .el .IP "\f(CWrepeats\fR" 4 .IX Item "repeats" Boolean. If false (the default), will output data like: .Sp .Vb 2 \& \& dc:title "Cat"@en, "Chat"@fr. .Ve .Sp If true, will output data like: .Sp .Vb 3 \& \& dc:title "Cat"@en; \& dc:title "Chat"@fr. .Ve .SS "Methods" .IX Subsection "Methods" This module provides the same \s-1API\s0 as RDF::Trine::Serializer. .SH "BUGS" .IX Header "BUGS" Please report any bugs to . .SH "SEE ALSO" .IX Header "SEE ALSO" RDF::Trine::Serializer::Turtle. .SH "AUTHOR" .IX Header "AUTHOR" Toby Inkster . .SH "COPYRIGHT AND LICENCE" .IX Header "COPYRIGHT AND LICENCE" This software is copyright (c) 2013 by Toby Inkster. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. .SH "DISCLAIMER OF WARRANTIES" .IX Header "DISCLAIMER OF WARRANTIES" \&\s-1THIS PACKAGE IS PROVIDED \*(L"AS IS\*(R" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.\s0