- 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_reachable(?Subject, +Predicate, ?Object) is nondet
- Is true if Object can be reached from Subject following the
transitive predicate Predicate or a sub-property thereof, while
repecting the
symetric(true)
orinverse_of(P2)
properties.If used with either Subject or Object unbound, it first returns the origin, followed by the reachable nodes in breath-first search-order. The implementation internally looks one solution ahead and succeeds deterministically on the last solution. This predicate never generates the same node twice and is robust against cycles in the transitive relation.
With all arguments instantiated, it succeeds deterministically if a path can be found from Subject to Object. Searching starts at Subject, assuming the branching factor is normally lower. A call with both Subject and Object unbound raises an instantiation error. The following example generates all subclasses of rdfs:Resource:
?- rdf_reachable(X, rdfs:subClassOf, rdfs:'Resource'). X = 'http://www.w3.org/2000/01/rdf-schema#Resource' ; X = 'http://www.w3.org/2000/01/rdf-schema#Class' ; X = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Property' ; ...