- library
- semweb
- rdf_db.pl -- Core RDF database
- rdf_current_prefix/2
 - rdf_prefix/2
 - ns/2
 - rdf_register_prefix/2
 - rdf_register_prefix/3
 - rdf_current_ns/2
 - rdf_register_ns/2
 - rdf_register_ns/3
 - rdf_global_id/2
 - rdf_global_object/2
 - rdf_global_term/2
 - rdf_meta/1
 - rdf_equal/2
 - lang_equal/2
 - lang_matches/2
 - rdf/3
 - rdf/4
 - rdf_has/3
 - rdf_has/4
 - rdf_reachable/3
 - rdf_reachable/5
 - rdf_subject/1
 - rdf_resource/1
 - rdf_assert/3
 - rdf_assert/4
 - rdf_retractall/3
 - rdf_retractall/4
 - rdf_update/4
 - rdf_update/5
 - rdf_member_property/2
 - rdf_node/1
 - rdf_bnode/1
 - rdf_is_bnode/1
 - rdf_is_resource/1
 - rdf_is_literal/1
 - rdf_current_literal/1
 - rdf_literal_value/2
 - rdf_source_location/2
 - rdf_gc/0
 - rdf_statistics/1
 - rdf_current_predicate/1
 - rdf_predicate_property/2
 - rdf_set_predicate/2
 - rdf_snapshot/1
 - rdf_delete_snapshot/1
 - rdf_current_snapshot/1
 - rdf_transaction/1
 - rdf_transaction/2
 - rdf_transaction/3
 - rdf_active_transaction/1
 - rdf_monitor/2
 - rdf_warm_indexes/0
 - rdf_warm_indexes/1
 - rdf_update_duplicates/0
 - rdf_update_duplicates/0
 - rdf_save_db/1
 - rdf_save_db/2
 - rdf_load_db/1
 - rdf_load/1
 - rdf_load/2
 - rdf_file_type/2
 - rdf_load_stream/3
 - rdf_unload/1
 - rdf_unload_graph/1
 - rdf_create_graph/1
 - rdf_graph/1
 - rdf_source/2
 - rdf_source/1
 - rdf_make/0
 - rdf_graph_property/2
 - rdf_set_graph/2
 - rdf_reset_db/0
 - rdf_save/1
 - rdf_save/2
 - rdf_save_header/2
 - rdf_graph_prefixes/2
 - rdf_graph_prefixes/3
 - rdf_save_footer/1
 - rdf_save_subject/3
 - rdf_compare/3
 - rdf_match_label/3
 - rdf_split_url/3
 - rdf_url_namespace/2
 - rdf_new_literal_map/1
 - rdf_destroy_literal_map/1
 - rdf_reset_literal_map/1
 - rdf_insert_literal_map/3
 - rdf_insert_literal_map/4
 - rdf_delete_literal_map/2
 - rdf_delete_literal_map/3
 - rdf_find_literal_map/3
 - rdf_keys_in_literal_map/3
 - rdf_statistics_literal_map/2
 - rdf_version/1
 - rdf_set/1
 - rdf_md5/2
 - rdf_generation/1
 - rdf_estimate_complexity/4
 - rdf_debug/1
 - rdf_atom_md5/3
 
 - rdf_cache.pl -- Cache RDF triples
 - rdfs.pl -- RDFS handling
 - rdf_persistency.pl -- RDF persistency plugin
 - rdf_litindex.pl -- Search literals
 - rdf_ntriples.pl -- Process files in the RDF N-Triples format
 - rdf11.pl -- RDF 1.1 API
 - sparql_client.pl -- SPARQL client library
 - turtle.pl -- Turtle: Terse RDF Triple Language
 - rdf_turtle_write.pl -- Turtle - Terse RDF Triple Language writer
 - rdf_http_plugin.pl -- RDF HTTP Plugin
 - rdf_library.pl -- RDF Library Manager
 - rdf_portray.pl -- Portray RDF resources
 - rdf_sandbox.pl -- Declare RDF API sandbox-safe
 - rdf_zlib_plugin.pl -- RDF compressed-data plugin
 
 - rdf_db.pl -- Core RDF database
 
 - semweb
 
- rdf_meta +Heads
 - This directive defines the argument types of the named
predicates, which will force compile time namespace expansion
for these predicates. Heads is a coma-separated list of callable
terms. Defined argument properties are:
- :
 - Argument is a goal. The goal is processed using expand_goal/2, recursively applying goal transformation on the argument.
 - +
 - The argument is instantiated at entry. Nothing is changed.
 - -
 - The argument is not instantiated at entry. Nothing is changed.
 - ?
 - The argument is unbound or instantiated at entry. Nothing is changed.
 - @
 - The argument is not changed.
 - r
 - The argument must be a resource. If it is a term prefix:local it is translated.
 - o
 - The argument is an object or resource. See rdf_global_object/2.
 - t
 - The argument is a term that must be translated. Expansion will translate all occurences of prefix:local appearing anywhere in the term. See rdf_global_term/2.
 
As it is subject to term_expansion/2, the rdf_meta/1 declaration can only be used as a directive. The directive must be processed before the definition of the predicates as well as before compiling code that uses the rdf meta-predicates. The atom
rdf_metais declared as an operator exported fromlibrary(semweb/rdf_db). Files using rdf_meta/1 must explicitely load this library.Beginning with SWI-Prolog 7.3.17, the low-level RDF interface (rdf/3, rdf_assert/3, etc.) perform runtime expansion of
Prefix:Localterms. This eliminates the need for rdf_meta/1 for simple cases. However, runtime expansion comes at a significant overhead and having two representations for IRIs (a plain atom and a termPrefix:Local) implies that simple operations such as comparison of IRIs no longer map to native Prolog operations such asIRI1 == IRI2.