Bounded Descriptions in RDF
From n² wiki
This page discusses some types of bounded description used in the RDF community. Bounded descriptions are subgraphs derived from larger graphs by choosing a node and applying a set of rules for selecting triples that somehow relate to it.
See also: http://kashori.com/wikiPim/BoundedDescriptions
Contents |
[edit] Concise Bounded Description
From: http://www.w3.org/Submission/CBD/
Given a particular node (the starting node) in a particular RDF graph (the source graph), a subgraph of that particular graph, taken to comprise a concise bounded description of the resource denoted by the starting node, can be identified as follows:
- Include in the subgraph all statements in the source graph where the subject of the statement is the starting node;
- Recursively, for all statements identified in the subgraph thus far having a blank node object, include in the subgraph all statements in the source graph where the subject of the statement is the blank node in question and which are not already included in the subgraph.
- Recursively, for all statements included in the subgraph thus far, for all reifications of each statement in the source graph, include the concise bounded description beginning from the rdf:Statement node of each reification.
This results in a subgraph where the object nodes are either URI references, literals, or blank nodes not serving as the subject of any statement in the graph.
This is sometimes called the bnode-closure of a resource
[edit] criticism
It is against the philosophy of RDF to look at the direction of properties, is should make no difference whether a graph contains a statement with the predicate eg:employer or the inverse statement with eg:employee as predicate.
See also: http://dig.csail.mit.edu/breadcrumbs/node/72
[edit] Symmetric Concise Bounded Description
From: http://www.w3.org/Submission/CBD/
An alternative form of description, which includes all statements expressed along both outbound and inbound arc paths, terminated in like fashion as a concise bounded description but extending from the starting node in both directions; thus enabling the requesting agent to potentially infer itself any implicit statements based on symmetric property pairs.
Given a particular node (the starting node) in a particular RDF graph (the source graph), a subgraph of that particular graph, taken to comprise a symmetric concise bounded description of the resource denoted by the starting node, can be identified as follows:
- Include in the subgraph all statements in the source graph where the object of the statement is the starting node;
- Recursively, for all statements identified in the subgraph thus far having a blank node subject not equal to the starting node, include in the subgraph all statements in the source graph where the object of the statement is the blank node in question and which are not already included in the subgraph.
- Recursively, for all statements included in the subgraph thus far, for all reifications of each statement in the source graph, include the symmetric concise bounded description beginning from the rdf:Statement node of each reification.
- Include in the subgraph the concise bounded description beginning from the starting node.
This produces a subgraph that includes a concise bounded description, given the same starting point, but in addition, includes all inbound arc paths, up to but not beyond a URIref subject node.
This equivalent to minimum-self contained graphs (MSG) as they are defined in http://semedia.deit.univpm.it/submissions/ESWC2005_Poster/ESWC2005_signignRDF.pdf. As Symmetric Concise Bounded Description consider properties in both direction this approach doesn't inherit the problematic of CBD.
[edit] Inverse Functional Concise Bounded Description
From: http://www.w3.org/Submission/CBD/
Given a particular node (the starting node) in a particular RDF graph (the source graph), a subgraph of that particular graph, taken to comprise an inverse functional concise bounded description of the resource denoted by the starting node, can be identified as follows:
- Include in the subgraph all statements in the source graph where the subject of the statement is the starting node;
- Recursively, for all statements included in the subgraph thus far, for each blank node object:
- IF there exists at least one statement in the source graph having the blank node as subject and where the source graph includes a statement which asserts that the predicate of that statement is rdf:type owl:InverseFunctionalProperty [10],
- THEN For each statement in the source graph having the blank node as subject and where the source graph includes a statement which asserts that the predicate of that statement is rdf:type owl:InverseFunctionalProperty:
- Include the statement in the subgraph; and
- If the object of the statement is a blank node, include the inverse functional concise bounded description beginning from that blank object node;
- ELSE For each statement in the source graph having the blank node as subject:
- Include the statement in the subgraph; and
- If the object of the statement is a blank node, include the inverse functional concise bounded description beginning from that blank object node;
- Recursively, for all statements included in the subgraph thus far, for all reifications of each statement in the source graph, include the inverse functional concise bounded description beginning from the rdf:Statement node of each reification.
[edit] criticism
This inherits the flaws of the Consise Bounded Description, furthermore:
- The choice to honor inverse functional properties but not functional property is arbitrary
- Stopping the expansion at a node with an IFP pointing to a b-node which is not itself grounded by another functional or inverse functional statement is pointless
- The requirement for the type of the property to be expressed in the source-graph may be to restrictive for many usecases
- The information which properties are regarded as inverse functional is not contained in the bounded description
[edit] Simple Concise Bounded Description
This is derived from the definition of a CBD but excludes any reification.
Given a particular node (the starting node) in a particular RDF graph (the source graph), a subgraph of that particular graph, taken to comprise a concise bounded description of the resource denoted by the starting node, can be identified as follows:
- Include in the subgraph all statements in the source graph where the subject of the statement is the starting node;
- Recursively, for all statements identified in the subgraph thus far having a blank node object, include in the subgraph all statements in the source graph where the subject of the statement is the blank node in question and which are not already included in the subgraph.
This results in a subgraph where the object nodes are either URI references, literals, or blank nodes not serving as the subject of any statement in the graph.
[edit] Labelled Concise Bounded Description
This is derived from the definition of a Simple CBD but includes additional labelling information for the objects of triples.
Given a particular node (the starting node) in a particular RDF graph (the source graph), a subgraph of that particular graph, taken to comprise a concise bounded description of the resource denoted by the starting node, can be identified as follows:
- Include in the subgraph all statements in the source graph where the subject of the statement is the starting node;
- Recursively, for all statements identified in the subgraph thus far having a blank node object, include in the subgraph all statements in the source graph where the subject of the statement is the blank node in question and which are not already included in the subgraph.
- Finally, for all statements identified in the subgraph thus far having a URI object, include in the subgraph all statements in the source graph where the subject of the statement is the URI in question and which have a predicate of rdfs:label, rdfs:comment and/or rdfs:seeAlso.
Here's a sparql query that returns a LCBD (assuming there are no blank nodes in the graph):
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
construct {
<http://xmlns.com/foaf/0.1/Person> ?p ?o .
?o rdfs:label ?label .
?o rdfs:comment ?comment .
?o rdfs:seeAlso ?seealso.
}
where {
<http://xmlns.com/foaf/0.1/Person> ?p ?o .
OPTIONAL {
?o rdfs:label ?label .
}
OPTIONAL {
?o rdfs:comment ?comment .
}
OPTIONAL {
?o rdfs:seeAlso ?seealso.
}
}
[edit] Hierarchical Concise Bounded Description
This is derived from the definition of a CBD but includes statements where the subject is prefixed by the URI of the starting node.
Given a particular node (the starting node) in a particular RDF graph (the source graph), a subgraph of that particular graph, taken to comprise a concise bounded description of the resource denoted by the starting node, can be identified as follows:
- Include in the subgraph all statements in the source graph where the subject of the statement is the starting node;
- Recursively, for all statements identified in the subgraph thus far having a blank node object or having a URI prefixed by the URI of the starting node, include in the subgraph all statements in the source graph where the subject of the statement is the blank node or URI in question and which are not already included in the subgraph.

