NAME¶
RDF::Redland::Node - Redland RDF Node (RDF Resource, Property, Literal) Class
SYNOPSIS¶
use RDF::Redland;
my $node1=new RDF::Redland::Node("Hello, World!");
my $node2=new RDF::Redland::Node($uri); # $uri is an RDF::Redland::URI
my $node3=$node2->clone;
my $node4=new RDF::Redland::URINode("http://example.com/");
my $node5=new RDF::Redland::LiteralNode("Hello, World!");
my $node6=new RDF::Redland::XMLLiteral("<tag>content</tag>");
my $node7=new RDF::Redland::BlankNode("genid1");
# alternate more verbose ways:
my $node4=RDF::Redland::Node->new_from_uri("http://example.com/");
my $node5=RDF::Redland::Node->new_literal("Hello, World!");
my $node6=RDF::Redland::Node->new_xml_literal("<tag>content</tag>");
my $node7=RDF::Redland::Node->new_from_blank_identifier("genid1");
...
print $node4->uri->as_string,"\n"; # Using RDF::Redland::URI::as_string
print $node5->literal_value_as_latin1,"\n";
DESCRIPTION¶
This class represents RDF URIs, literals and blank nodes in the RDF graph.
CONSTRUCTORS¶
- new [STRING | URI | NODE]
- Create a new URI node, literal node or copy an existing
node.
If a literal STRING is given, make a plain literal node. If a the
argument is of type URI (perl URI or RDF::Redland::URI), make a
resource node.
Otherwise if the argument is an RDF::Redland::Node NODE, copy
it.
- new_from_uri URI
- Create a new URI node. URI can be either a
RDF::Redland::URI object, a perl URI class or a literal string.
An alternative is:
new RDF::Redland::URINode("http://example.org/");
- new_literal STRING [DATATYPE [XML_LANGUAGE]]
- Create a new literal node for a literal value
STRING. Optional datatype URI DATATYPE (RDF::Redland::URI,
perl URI or string) and language (xml:lang attribute) XML_LANGUAGE
may also be given.
An alternative is:
new RDF::Redland::LiteralNode("Hello, World!");
new RDF::Redland::LiteralNode("Bonjour monde!", undef, "fr");
- new_xml_literal STRING
- Create a new XML datatyped literal node for the XML in
STRING.
An alternative is:
new RDF::Redland::XMLLiteral("<tag>content</tag>");
- new_from_blank_identifier IDENTIFIER
- Create a new blank node with blank node identifier
IDENTIFIER.
An alternative is:
new RDF::Redland::BlankNode("id");
- clone
- Copy a RDF::Redland::Node.
METHODS¶
- uri
- Get the current URI of the node as an RDF::Redland::URI
object.
- blank_identifier
- Get the current blank identifier of the node
- type
- Get the node type. It is recommended to use the
is_resource, is_literal or is_blank methods in preference to this (both
simpler and quicker).
The current list of types that are supported are:
$RDF::Redland::Node::Type_Resource
$RDF::Redland::Node::Type_Literal
$RDF::Redland::Node::Type_Blank
Example:
if ($node->type == $RDF::Redland::Node::Type_Resource) {
print "Node is a resource with URI ", $node->uri->as_string, "\n";
} else {
...
}
- is_resource
- Return true if node is a resource (with a URI)
- is_literal
- Return true if node is a literal
- is_blank
- Return true if node is a blank nodeID
- literal_value
- Get the node literal value string as UTF-8 (when the node
is of type $RDF::Redland::Node::Type_Literal)
- literal_value_as_latin1
- Get the node literal value string converted from UTF-8 to
ISO Latin-1 (when the node is of type
$RDF::Redland::Node::Type_Literal)
- literal_value_language
- Get the node literal XML language (when the node is of type
$RDF::Redland::Node::Type_Literal) or undef if not present.
- literal_value_is_wf_xml
- Return non 0 if the literal string is well formed XML (when
the node is of type $RDF::Redland::Node::Type_Literal).
- literal_datatype
- Return the RDF::Redland::URI of the literal datatype or
undef if it is not a datatype.
- as_string
- Return the RDF::Redland::Node formatted as a string (UTF-8
encoded).
- equals NODE
- Return non zero if this node is equal to NODE
OLDER METHODS¶
- new_from_literal STRING XML_LANGUAGE IS_WF
- Create a new RDF::Redland::Node object for a literal value
STRING with XML language (xml:lang attribute) XML_LANGUAGE
and if content is well formed XML, when IS_WF is non 0.
XML_LANGUAGE is optional can can be set to undef.
This method remains but using new_literal is prefered. Instead, for plain
literals use:
$node=new RDF::Redland::Node("blah")
- new_from_typed_literal STRING [DATATYPE
[XML_LANGUAGE]]
- Renamed to new_literal with same arguments.
- new_from_uri_string URI_STRING
- Create a new RDF::Redland::Node object for a resource with
URI URI_STRING. It is equivalent to use the shorter:
$a=new RDF::Redland::Node->new_from_uri($uri_string)
- new_from_node NODE
- Create a new RDF::Redland::Node object from existing
RDF::Redland::Node NODE (copy constructor). It is equivalent to
use:
$new_node=$old_node->clone
SEE ALSO¶
RDF::Redland::Statement
AUTHOR¶
Dave Beckett -
http://www.dajobe.org/