/usr/include/lrdf.h is in liblrdf0-dev 0.4.0-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 | #ifndef LRDF_H
#define LRDF_H
#ifdef __cplusplus
extern "C" {
#endif
#include <raptor.h>
#include <string.h>
#include <sys/types.h>
#include "lrdf_types.h"
// #define DEBUG 1
#define RDF_BASE "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
#define RDF_TYPE RDF_BASE "type"
#define RDF_RESOURCE RDF_BASE "Resource"
#define RDFS_BASE "http://www.w3.org/2000/01/rdf-schema#"
#define RDFS_CLASS RDFS_BASE "Class"
#define RDFS_SUBCLASSOF RDFS_BASE "subClassOf"
#define LADSPA_BASE "http://ladspa.org/ontology#"
#define DC_BASE "http://purl.org/dc/elements/1.1/"
/* Data functions */
/* Call lrdf_init before using any of the functions below */
void lrdf_init();
/* Call this at the end to clean up the caches and so on */
void lrdf_cleanup();
/* Call lrdf_read_files to read a set of files, it is more efficient than
* calling lrdf_read_file repeatedly
*
* Pass in the files as file: uri, eg
* "file:///usr/local/share/ladspa/rdf/ladspa.rdfs". This URI will be written
* stored as the source of the triple. See lrdf_add_triple, and
* lrdf_export_by_source for uses for this.
*/
int lrdf_read_files(const char *uri[]);
/* lrdf_read_file:
*
* Loads the file specifed by uri into the internal representation.
*
* uri can point to either an RDF-XML .rdf file or an RDF-Ntriples .n3 file.
* the source of the triples will be set to the file uri. c.f. lrdf_read_file
*/
int lrdf_read_file(const char *uri);
/* lrdf_add_triple:
*
* This is a way to manually add a triple to the store.
*
* The source argument is a way of grouping triples so that they can be
* exported later. If you do not care set it to NULL. See examples/add_test.c
* for an example.
*
* The subject and predicate arguments are fully qualified URIs for those
* parts. object may also be a string, if indicated by literal.
*
* The literal argument specifies wether the object argument is to be
* interpreted as a URI or Literal. Set it to lrdf_literal for literals and
* lrdf_uri for uris.
*
* NB If you add any triples relating to the taxonomy (Classes) you /must/
* run lrdf_rebuild_caches() afterwards, otherwise you will get odd results
* from queries.
*/
void lrdf_add_triple(const char *source, const char *subject, const char
*predicate, const char *object, enum
lrdf_objtype literal);
/* lrdf_add_preset:
*
* This function adds a preset object to the store.
*
* source must be a unique URI that represents the setting object (I recommend
* the file: URI it will be saved under), label is a name for the preset, ID is
* the UID number of the plugin and vals is a pointer to a lrdf_defaults
* structure containing the values to be written.
*
* returns the URI of the added preset. The caller is responsible for freeing
* it.
*/
char* lrdf_add_preset(const char *source, const char *label, unsigned long id,
lrdf_defaults *vals);
/* lrdf_remove_matches:
*
* This function will remove all triples from the store that match the
* specified pattern.
*
* NB. It is horribly inefficient! Currently O(N) complexity. If you need to
* make extensive use of it please contact me and I will look at restructuring
* the data to make it faster.
*/
void lrdf_remove_matches(lrdf_statement *pattern);
/* lrdf_remove_uri_matches:
*
* This function will remove all triples contating the URI passed in as an
* argument.
*/
void lrdf_remove_uri_matches(const char *uri);
/* lrdf_rebuild_caches
*
* The rebuilds the taxonomic closue matrix thats used to accelerate taxonomic
* inference queries. User should only need to call this after manually adding
* triples with lrdf_add_triple.
*/
void lrdf_rebuild_caches();
/* lrdf_export_by_source
*
* writes all the triples associated with the source 'src' to the file 'file',
* file can be specified as a UNIX path for file: URI. Currently the export
* format is NTriples (.n3), but it may change to RDF-XML in the future.
*/
int lrdf_export_by_source(const char *src, const char *file);
/* Generic RDF access functions */
/* lrdf_match_multi:
*
* Returns a lrdf_uris vector of all the URIs (or Literals) that match the
* pattern list specified. eg:
*
* ("?", "rdfs:label", NULL), ("?", "foo:bpm", "120")
*
* Will return all the values for '?' which match the patterns, ie. have an
* rdfs:label and have the foo:bpm value of 120.
*/
lrdf_uris *lrdf_match_multi(lrdf_statement *patterns);
/* lrdf_matches:
*
* Returns a NULL terminated vector of lrdf_statements that match the
* sepecifed pattern, where a NULL in any position matches any uri.
*
* To free the space allocated call lrdf_free_statements() on the return value;
*/
lrdf_statement *lrdf_matches(lrdf_statement *pattern);
/* lrdf_one_match:
*
* returns a pointer to the first matching triple if one exists, or NULL
* otherwise
*/
lrdf_statement *lrdf_one_match(lrdf_statement *pattern);
/* lrdf_exists_match:
*
* returns 1 if a triple mathcing the pattern exists, 0 otherwise
*/
int lrdf_exists_match(lrdf_statement *pattern);
/* lrdf_get_all_superclasses:
*
* Returns a list of all the superlasses of uri, including itsself
*/
lrdf_uris *lrdf_get_all_superclasses(const char *uri);
/* lrdf_get_subclasses
*
* Returns a list of the direct subclasses of a given class, ie. all classes
* that have been explicity asserted to be subclasses of uri. Does not
* (usually) include itsself.
*/
lrdf_uris *lrdf_get_subclasses(const char *uri);
/* lrdf_get_all_subclasses:
*
* Returns a list of all the sublasses of uri
*/
lrdf_uris *lrdf_get_all_subclasses(const char *uri);
/* lrdf_get_instances
*
* Returns a list of the instances of a given class
*/
lrdf_uris *lrdf_get_instances(const char *uri);
/* lrdf_get_all_instances:
*
* Returns the URIs of all the instances of 'uri' and all the instances of all
* its subclasses.
*
* Doesn't currently remove duplicates, but it could be changed to do that if
* required.
*/
lrdf_uris *lrdf_get_all_instances(const char *uri);
/* lrdf_all_statements:
*
* Returns a pointer to a list of all the triples in the system, DO NOT free
* the returned list, it is hte real list. */
lrdf_statement *lrdf_all_statements();
/* lrdf_free_uris:
*
* Called on the return values from lrdf_get_subclasses etc. to free up the
* memory allocated by them.
*/
void lrdf_free_uris(lrdf_uris *u);
void lrdf_free_statements(lrdf_statement *s);
/* LADSPA Ontology specific functions */
char *lrdf_get_setting_metadata(const char *uri, const char *element);
char *lrdf_get_default_uri(unsigned long id);
lrdf_uris *lrdf_get_setting_uris(unsigned long id);
unsigned long lrdf_get_uid(const char *uri);
lrdf_defaults *lrdf_get_setting_values(const char *uri);
lrdf_defaults *lrdf_get_scale_values(unsigned long id, unsigned long port);
void lrdf_free_setting_values(lrdf_defaults *def);
char *lrdf_get_label(const char *uri);
#ifdef __cplusplus
}
#endif
#endif
|