- library
- semweb
- rdf_db.pl -- Core RDF database
- 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_prefixes.pl -- RDF prefixes management
- rdfs.pl -- RDFS handling
- rdf11.pl -- RDF 1.1 API
- rdf_persistency.pl -- RDF persistency plugin
- rdf_litindex.pl -- Search literals
- rdf_ntriples.pl -- Process files in the RDF N-Triples format
- sparql_client.pl -- SPARQL client library
- rdf_http_plugin.pl -- RDF HTTP Plugin
- rdf_turtle_write.pl -- Turtle - Terse RDF Triple Language writer
- turtle.pl -- Turtle: Terse RDF Triple Language
- rdf_library.pl -- RDF Library Manager
- rdf_sandbox.pl -- Declare RDF API sandbox-safe
- rdf_cache.pl -- Cache RDF triples
- 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 breadth-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' ; ...