====== Differences ====== This shows you the differences between two versions of the page.
Last revision Both sides next revision | |||
graph_manipulation [2012/11/25 19:53] hsolbrig |
graph_manipulation [2012/11/25 20:03] hsolbrig |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | APIs for graph manipulation (derived from CTS2 specification) [[start|Link to API4KB Main Page]] | + | ====== APIs for graph manipulation ====== |
+ | [[start|Link to API4KB Main Page]] | ||
The terminology and requirements are derived from the CTS2 specification. | The terminology and requirements are derived from the CTS2 specification. | ||
- | A note on the terminology used below: | + | ===== A note on the terminology used below: ===== |
* **Graph** - A named collection of assertions. Graphs are assumed to be immutable - if the set of assertions changes in a graph, the graph is given a different name. Graphs implicitly include any logical conclusions that can be drawn from the application of one or more sound, monotonic reasoning algorithms to the assertions in the graph. | * **Graph** - A named collection of assertions. Graphs are assumed to be immutable - if the set of assertions changes in a graph, the graph is given a different name. Graphs implicitly include any logical conclusions that can be drawn from the application of one or more sound, monotonic reasoning algorithms to the assertions in the graph. | ||
* **Assertion** - a "triple" consisting of a named predicate, a subject and an object where: | * **Assertion** - a "triple" consisting of a named predicate, a subject and an object where: | ||
Line 16: | Line 17: | ||
The key distinction between the terminology used above and that used in classic RDF is that the subject of an assertion must be the name of a persistent resource - not a BNODE. | The key distinction between the terminology used above and that used in classic RDF is that the subject of an assertion must be the name of a persistent resource - not a BNODE. | ||
- | * Requirements: | + | ===== Requirements: ===== |
- | * Return the URI of a graph given the URI of a source file (RDF / OWL / ...). | + | ==== Return the URI of a graph given the URI of a source file (RDF / OWL / ...) ==== |
* Inputs: URI of source file | * Inputs: URI of source file | ||
* Return: URI of graph | * Return: URI of graph | ||
Line 24: | Line 25: | ||
* Assertions that are are derived from the application of one or more sound, monotonic reasoning algorithms need to be identified as "derived" (vs. "asserted") and it should be possible to determine which algorithm(s) were used to reach the conclusion | * Assertions that are are derived from the application of one or more sound, monotonic reasoning algorithms need to be identified as "derived" (vs. "asserted") and it should be possible to determine which algorithm(s) were used to reach the conclusion | ||
* Assertions that are both asserted //and// derived should be marked as asserted. | * Assertions that are both asserted //and// derived should be marked as asserted. | ||
- | * Create a new graph that contains the union of two or more existing graphs | + | ==== Create a new graph that contains the union of two or more existing graphs ==== |
* Inputs: List of graph URIs | * Inputs: List of graph URIs | ||
* Return: URI of new graph | * Return: URI of new graph | ||
* Notes: Assertion provenance must be maintained - every assertion must include the name of the graph(s) from which it was derived | * Notes: Assertion provenance must be maintained - every assertion must include the name of the graph(s) from which it was derived | ||
- | * Return a graph that contains the intersection of two or more existing graphs | + | ==== Return a graph that contains the intersection of two or more existing graphs ==== |
* Inputs: List of graph URIs | * Inputs: List of graph URIs | ||
* Return: | * Return: |