View Javadoc
1   /**
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  package org.apache.commons.rdf.jena;
20  
21  import org.apache.commons.rdf.api.Dataset;
22  import org.apache.commons.rdf.api.Graph;
23  import org.apache.jena.sparql.core.DatasetGraph;
24  
25  /**
26   * A Jena-backed {@link Dataset}.
27   * <p>
28   * The underlying Jena {@link DatasetGraph} can be accessed with
29   * {@link #asJenaDatasetGraph()}.
30   */
31  public interface JenaDataset extends Dataset {
32  
33      /**
34       * Return the underlying Jena {@link DatasetGraph}.
35       * <p>
36       * Changes to the Jena <em>dataset graph</em> are reflected in the Commons
37       * RDF dataset and vice versa.
38       *
39       * @return A Jena {@link DatasetGraph}
40       */
41      DatasetGraph asJenaDatasetGraph();
42  
43      /**
44       * Return a union graph view of this dataset.
45       * <p>
46       * The <em>union graph</em> contains triples in any graph (including the
47       * default graph).
48       * <p>
49       * Changes in the union graph are reflected in the Commons RDF dataset and
50       * vice versa. Triples added to the graph are added to the default graph.
51       *
52       * @return A union {@link Graph}
53       */
54      JenaGraph getUnionGraph();
55  
56  }