Top | ![]() |
![]() |
![]() |
![]() |
rasqal_literal * rasqal_new_typed_literal (rasqal_world *world
,rasqal_literal_type type
,const unsigned char *string
);
Constructor - Create a new Rasqal integer literal from a string
The integer decimal number is turned into a rasqal integer literal and given a datatype of xsd:integer
rasqal_literal * rasqal_new_boolean_literal (rasqal_world *world
,int value
);
Constructor - Create a new Rasqal boolean literal.
rasqal_literal * rasqal_new_datetime_literal_from_datetime (rasqal_world *world
,rasqal_xsd_datetime *dt
);
Constructor - Create a new Rasqal datetime literal from an existing datetime.
Takes ownership of dt
rasqal_literal * rasqal_new_decimal_literal (rasqal_world *world
,const char *string
);
Constructor - Create a new Rasqal decimal literal.
rasqal_literal * rasqal_new_decimal_literal_from_decimal (rasqal_world *world
,const char *string
,rasqal_xsd_decimal *decimal
);
Constructor - Create a new Rasqal decimal literal.
rasqal_literal * rasqal_new_double_literal (rasqal_world *world
,double d
);
Constructor - Create a new Rasqal double literal.
rasqal_literal * rasqal_new_float_literal (rasqal_world *world
,float f
);
rasqal_new_float_literal
is deprecated and should not be used in newly-written code.
Constructor - Create a new Rasqal float literal.
Deprecated
: Use rasqal_new_floating_literal()
with type
RASQAL_LITERAL_FLOAT and double value.
rasqal_literal * rasqal_new_floating_literal (rasqal_world *world
,rasqal_literal_type type
,double d
);
Constructor - Create a new Rasqal float literal from a double.
world |
rasqal world object |
|
type |
type - RASQAL_LITERAL_FLOAT or RASQAL_LITERAL_DOUBLE |
|
d |
floating literal (double) |
rasqal_literal * rasqal_new_integer_literal (rasqal_world *world
,rasqal_literal_type type
,int integer
);
Constructor - Create a new Rasqal integer literal.
The integer decimal number is turned into a rasqal integer literal and given a datatype of xsd:integer
rasqal_literal * rasqal_new_numeric_literal_from_long (rasqal_world *world
,rasqal_literal_type type
,long value Param3
);
Constructor - Create a new Rasqal numeric literal from a long.
The value is turned into a rasqal integer or decimal literal and given a datatype of xsd:integer
rasqal_literal * rasqal_new_pattern_literal (rasqal_world *world
,const char *pattern
,const char *flags
);
Constructor - Create a new Rasqal pattern literal.
The pattern and flags are input parameters and are stored in the literal, not copied. They are freed also on failure. The set of flags recognised depends on the regex library and the query language.
rasqal_literal * rasqal_new_simple_literal (rasqal_world *world
,rasqal_literal_type type
,const char *string
);
Constructor - Create a new Rasqal simple literal.
The string is an input parameter and is stored in the literal, not copied. It is freed also on failure.
rasqal_literal * rasqal_new_string_literal (rasqal_world *world
,const char *string
,const char *language
,raptor_uri *datatype
,const unsigned char *datatype_qname
);
Constructor - Create a new Rasqal string literal.
All parameters are input parameters and if present are stored in the literal, not copied. They are freed also on failure.
The datatype and datatype_qname parameters are alternatives; the qname is a datatype that cannot be resolved till later since the prefixes have not yet been declared or checked.
If the string literal is datatyped and of certain types recognised it may be converted to a different literal type.
rasqal_literal * rasqal_new_uri_literal (rasqal_world *world
,raptor_uri *uri
);
Constructor - Create a new Rasqal URI literal from a raptor URI.
The uri is an input parameter and is stored in the literal, not copied. The uri is freed also on failure.
rasqal_literal * rasqal_new_variable_literal (rasqal_world *world
,rasqal_variable *variable
);
Constructor - Create a new Rasqal variable literal.
variable is an input parameter and stored in the literal, not copied.
rasqal_literal *
rasqal_new_literal_from_literal (rasqal_literal *l
);
Copy Constructor - create a new rasqal_literal object from an existing rasqal_literal object.
void
rasqal_free_literal (rasqal_literal *l
);
Destructor - destroy an rasqal_literal object.
rasqal_literal *
rasqal_literal_as_node (rasqal_literal *l
);
Turn a literal into a new RDF string, URI or blank literal.
const unsigned char * rasqal_literal_as_counted_string (rasqal_literal *l
,size_t *len_p
,int flags
,int *error_p
);
Return a counted string format of a literal according to flags.
flag bits affects conversion: RASQAL_COMPARE_XQUERY: use XQuery conversion rules
If error
is not NULL, *error is set to non-0 on error
l |
rasqal_literal object |
|
len_p |
pointer to store length of string (or NULL) |
|
flags |
comparison flags |
|
error_p |
pointer to error |
const unsigned char *
rasqal_literal_as_string (rasqal_literal *l
);
Return the string format of a literal.
const unsigned char * rasqal_literal_as_string_flags (rasqal_literal *l
,int flags
,int *error_p
);
Return the string format of a literal according to flags.
flag bits affects conversion: RASQAL_COMPARE_XQUERY: use XQuery conversion rules
If error
is not NULL, *error is set to non-0 on error
rasqal_variable *
rasqal_literal_as_variable (rasqal_literal *l
);
Get the variable inside a literal.
int rasqal_literal_compare (rasqal_literal *l1
,rasqal_literal *l2
,int flags
,int *error_p
);
Compare two literals with type promotion.
The two literals are compared across their range. If the types are not the same, they are promoted. If one is a double or float, the other is promoted to double, otherwise for integers, otherwise to strings (all literals have a string value).
The comparison returned is as for strcmp, first before second returns <0. equal returns 0, and first after second returns >0. For URIs, the string value is used for the comparsion.
flag bits affects comparisons: RASQAL_COMPARE_NOCASE: use case independent string comparisons RASQAL_COMPARE_XQUERY: use XQuery comparison and type promotion rules RASQAL_COMPARE_RDF: use RDF term comparison RASQAL_COMPARE_URI: allow comparison of URIs (typically for SPARQL ORDER)
If error
is not NULL, *error is set to non-0 on error
l1 |
rasqal_literal first literal |
|
l2 |
rasqal_literal second literal |
|
flags |
comparison flags |
|
error_p |
pointer to error |
raptor_uri *
rasqal_literal_datatype (rasqal_literal *l
);
Get the datatype URI of a literal
int rasqal_literal_equals (rasqal_literal *l1
,rasqal_literal *l2
);
Compare two literals with no type promotion.
If the l2 data literal value is a boolean, it will match the string "true" or "false" in the first literal l1.
char *
rasqal_literal_get_language (rasqal_literal *l
);
Get the language of a literal (if set)
rasqal_literal_type
rasqal_literal_get_rdf_term_type (rasqal_literal *l
);
Get the RDF term type of a literal
An RDF term can be one of three choices:
URI: RASQAL_LITERAL_URI
literal: RASQAL_LITERAL_STRING
blank node: RASQAL_LITERAL_BLANK
Other non RDF-term cases include: NULL pointer, invalid literal, unknown type, a variable or other special cases (such as XML QName or Regex pattern) which all turn into RASQAL_LITERAL_UNKNOWN
rasqal_literal_type
rasqal_literal_get_type (rasqal_literal *l
);
Get the type of a literal
int
rasqal_literal_is_rdf_literal (rasqal_literal *l
);
Check if a literal is any RDF term literal - plain or typed literal
int rasqal_literal_print (rasqal_literal *l
,FILE *fh
);
Print a Rasqal literal in a debug format.
The print debug format may change in any release.
void rasqal_literal_print_type (rasqal_literal *l
,FILE *fh
);
Print a string form for a rasqal literal type.
const char *
rasqal_literal_type_label (rasqal_literal_type type
);
Get a label for the rasqal literal type
int rasqal_literal_same_term (rasqal_literal *l1
,rasqal_literal *l2
);
Check if literals are same term (URI, literal, blank)
rasqal_literal *
rasqal_literal_value (rasqal_literal *l
);
Get the literal value looking up any variables needed
Types of literal.
The order in the enumeration is significant as it encodes the SPARQL term ordering conditions:
Blank Nodes << IRIs << RDF literals << typed literals
which coresponds to in enum values
BLANK << URI << STRING << (BOOLEAN | INTEGER | DOUBLE | FLOAT | DECIMAL | DATETIME | XSD_STRING)
(RASQAL_LITERAL_FIRST_XSD ... RASQAL_LITERAL_LAST_XSD)
Not used (internal): PATTERN, QNAME, VARIABLE
See rasqal_literal_compare()
when used with flags
RASQAL_COMPARE_XQUERY
Internal. |
||
RDF blank node literal (SPARQL r:bNode) |
||
RDF URI Literal (SPARQL r:URI) |
||
RDF Plain Literal - no datatype (SPARQL r:Literal) |
||
String xsd:string |
||
Boolean literal xsd:boolean. |
||
Integer literal xsd:integer. |
||
Floating point literal xsd:float. |
||
Double floating point literal xsd:double. |
||
Decimal integer xsd:decimal. |
||
Date/Time literal xsd:dateTime. |
||
Internal. |
||
Internal. |
||
User defined typed literal with unknown datatype URI |
||
Pattern literal for a regex. |
||
XML Qname literal. |
||
Variable literal. |
||
Internal. |
||
Date literal xsd:date. |
||
Internal. |