PublicShow sourcerdf_describe.pl -- RDF Bounded descriptions

The predicates in this module deal with `RDF bounded descriptions'. A bounded description is a subgraph that describes a single resource (URI). Unfortunately, such an isolated description is not possible without the possibility of loosing semantics. We provide some meaningful approximations described in the literature.

Scanning the definitions given in the link below, we distinguish two ortogonal expansions: one expanding the graph and another adding either reifications or labels. Expansion is implemented by rdf_bounded_description/4, while the returned graph can be further expanded using rdf_include_reifications/3 and/or rdf_include_labels/3.

See also
- http://n2.talis.com/wiki/Bounded_Descriptions_in_RDF
To be done
- Also implement the variations on CBD
Sourcerdf_bounded_description(:Expand, +Type, +URI, -Graph) is det
Graph is a Bounded Description of URI. The literature defines various types of bounding descriptions. Currently supported types are:
cbd
Concise Bounded Description of URI. This notion is also known as "the bnode-closure of a resource"
scbd
Symmetric Concise Bounded Description is similar to cbd, but includes triples with both URI as subject and object.
Sourceresource_CBD(:Expand, +URI, -Graph) is det
Graph is the Concise Bounded Description of URI. This notion is also known as "the bnode-closure of a resource". Note that, according to the definition on the Talis wiki, the CBD includes reified statements. This predicate does not do this. Use rdf_include_reifications/3 to add reifications to the graph.
Arguments:
Expand- is called to enumerate the PO pairs for a subject. This will often be rdf to use rdf/3.
See also
- http://n2.talis.com/wiki/Bounded_Descriptions_in_RDF
Sourcegraph_CBD(:Expand, +Graph0, -Graph) is det
Add concise bounded descriptions for bnodes in a graph, creating an expanded graph.
Sourcerdf_include_reifications(:Expand, +Graph0, -Graph) is det
Include the reification of any reified statements in Graph0.
Sourcerdf_include_labels(:Expand, +Graph0, -Graph) is det
Include missing `label' statements in Graph0. Expand must provide label triples on
call(Expand, S, P, O)

The predicate lcbd_label/3 does this for the standard definition, considering the properties rdfs:label, rdfs:comment and rdfs:seeAlso.

Sourcelcbd_label(+S, -P, -Label) is nondet
Standard conforming `Expand' for rdf_include_labels/3.