.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" 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 >0, 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::Lazy::Node 3pm" .TH RDF::Lazy::Node 3pm "2019-02-20" "perl v5.28.1" "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::Lazy::Node \- A node in a lazy RDF graph .SH "DESCRIPTION" .IX Header "DESCRIPTION" You should not directly create instances of this class, but use RDF::Lazy as node factory to create instances of RDF::Lazy::Resource, RDF::Lazy::Literal, and RDF::Lazy::Blank. .PP .Vb 3 \& $graph\->resource( $uri ); # returns a RDF::Lazy::Resource \& $graph\->literal( $string ); # returns a RDF::Lazy::Literal \& $graph\->blank( $id ); # returns a RDF::Lazy::Blank .Ve .PP A lazy node contains a RDF::Trine::Node and a pointer to the RDF::Lazy graph where the node is located in. You can create a RDF::Lazy::Node from a RDF::Trine::Node just like this: .PP .Vb 1 \& $graph\->uri( $trine_node ) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This class wraps RDF::Trine::Node and holds a pointer to the graph (RDF::Lazy) which a node belongs to. In detail there are node types RDF::Lazy::Literal, RDF::Lazy::Resource, and RDF::Lazy::Blank. .SH "METHODS" .IX Header "METHODS" .SS "str" .IX Subsection "str" Returns a string representation of the node's value. Is automatically called on string conversion (\f(CW"$x"\fR equals \f(CW\*(C`$x\->str\*(C'\fR). .SS "esc" .IX Subsection "esc" Returns a HTML-escaped string representation. This can safely be used in \s-1HTML\s0 and \s-1XML.\s0 .SS "is_literal / is_resource / is_blank" .IX Subsection "is_literal / is_resource / is_blank" Returns true if the node is a literal, resource, or blank node. .SS "graph" .IX Subsection "graph" Returns the underlying graph RDF::Lazy that the node belongs to. .ie n .SS "type ( [ @types ] )" .el .SS "type ( [ \f(CW@types\fP ] )" .IX Subsection "type ( [ @types ] )" Returns some rdf:type of the node (if no types are provided) or checks whether this node is of any of the provided types. .ie n .SS "a ( [ @types ] )" .el .SS "a ( [ \f(CW@types\fP ] )" .IX Subsection "a ( [ @types ] )" Shortcut for \f(CW\*(C`type\*(C'\fR. .ie n .SS "is ( $check1 [, $check2 ... ] )" .el .SS "is ( \f(CW$check1\fP [, \f(CW$check2\fP ... ] )" .IX Subsection "is ( $check1 [, $check2 ... ] )" Checks whether the node fullfills some matching criteria, for instance .PP .Vb 8 \& $x\->is(\*(Aq\*(Aq) # is_literal \& $x\->is(\*(Aq:\*(Aq) # is_resource \& $x\->is(\*(Aq\-\*(Aq) # is_blank \& $x\->is(\*(Aq@\*(Aq) # is_literal and has language tag \& $x\->is(\*(Aq@en\*(Aq) # is_literal and has language tag \*(Aqen\*(Aq (is_en) \& $x\->is(\*(Aq@en\-\*(Aq) # is_literal and is_en_ \& $x\->is(\*(Aq^\*(Aq) # is_literal and has datatype \& $x\->is(\*(Aq^^\*(Aq) # is_literal and has datatype .Ve .SS "ttl" .IX Subsection "ttl" Returns an RDF/Turtle representation of the node's bounded connections. .ie n .SS "rel ( $property [, @filters ] )" .el .SS "rel ( \f(CW$property\fP [, \f(CW@filters\fP ] )" .IX Subsection "rel ( $property [, @filters ] )" Traverse the graph and return the first matching object. .SS "rels" .IX Subsection "rels" Traverse the graph and return all matching objects. .ie n .SS "rev ( $property [, @filters ] )" .el .SS "rev ( \f(CW$property\fP [, \f(CW@filters\fP ] )" .IX Subsection "rev ( $property [, @filters ] )" Traverse the graph and return the first matching subject. .SS "revs" .IX Subsection "revs" Traverse the graph and return all matching subjects. .SS "trine" .IX Subsection "trine" Returns the underlying RDF::Trine::Node. \s-1DO NOT USE THIS METHOD\s0! .SS "qname" .IX Subsection "qname" Returns a qualified string, if possible, or the empty string. .SH "TRAVERSING THE GRAPH" .IX Header "TRAVERSING THE GRAPH" Any other method name is used to query objects. The following three statements are equivalent: .PP .Vb 4 \& $x\->rel(\*(Aqfoaf:name\*(Aq); \& $x\->graph\->rel( $x, \*(Aqfoaf_name\*(Aq ); \& $x\->rel(\*(Aqfoaf_name\*(Aq); \& $x\->foaf_name; .Ve .PP You can also add filters in a XPath-like language (the use of RDF::Lazy in a template is an example of a \*(L"RDFPath\*(R" language): .PP .Vb 7 \& $x\->dc_title(\*(Aq@en\*(Aq) # literal with language tag @en \& $x\->dc_title(\*(Aq@en\-\*(Aq) # literal with language tag @en or @en\-... \& $x\->dc_title(\*(Aq\*(Aq) # any literal \& $x\->dc_title(\*(Aq@\*(Aq) # literal with any language tag \& $x\->dc_title(\*(Aq^\*(Aq) # literal with any datatype \& $x\->foaf_knows(\*(Aq:\*(Aq) # any resource \& ... .Ve