summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/rdf/XRepository.idl
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/rdf/XRepository.idl')
-rw-r--r--offapi/com/sun/star/rdf/XRepository.idl465
1 files changed, 465 insertions, 0 deletions
diff --git a/offapi/com/sun/star/rdf/XRepository.idl b/offapi/com/sun/star/rdf/XRepository.idl
new file mode 100644
index 000000000000..1b76ff1158a7
--- /dev/null
+++ b/offapi/com/sun/star/rdf/XRepository.idl
@@ -0,0 +1,465 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_rdf_XRepository_idl__
+#define __com_sun_star_rdf_XRepository_idl__
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_container_ElementExistException_idl__
+#include <com/sun/star/container/ElementExistException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_container_XEnumeration_idl__
+#include <com/sun/star/container/XEnumeration.idl>
+#endif
+
+#ifndef __com_sun_star_io_IOException_idl__
+#include <com/sun/star/io/IOException.idl>
+#endif
+
+#ifndef __com_sun_star_io_XInputStream_idl__
+#include <com/sun/star/io/XInputStream.idl>
+#endif
+
+#ifndef __com_sun_star_io_XOutputStream_idl__
+#include <com/sun/star/io/XOutputStream.idl>
+#endif
+
+#ifndef __com_sun_star_datatransfer_UnsupportedFlavorException_idl__
+#include <com/sun/star/datatransfer/UnsupportedFlavorException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_FileFormat_idl__
+#include <com/sun/star/rdf/FileFormat.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_ParseException_idl__
+#include <com/sun/star/rdf/ParseException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_QueryException_idl__
+#include <com/sun/star/rdf/QueryException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_RepositoryException_idl__
+#include <com/sun/star/rdf/RepositoryException.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XBlankNode_idl__
+#include <com/sun/star/rdf/XBlankNode.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XURI_idl__
+#include <com/sun/star/rdf/XURI.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_Statement_idl__
+#include <com/sun/star/rdf/Statement.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XQuerySelectResult_idl__
+#include <com/sun/star/rdf/XQuerySelectResult.idl>
+#endif
+
+#ifndef __com_sun_star_rdf_XNamedGraph_idl__
+#include <com/sun/star/rdf/XNamedGraph.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module rdf {
+
+//=============================================================================
+/** provides access to a set of named RDF graphs.
+
+ <p>
+ A repository for storing information according to the data model of the
+ <a href="http://www.w3.org/RDF/">Resource Description Framework</a>.
+ This interface may be used e.g. for repositories that correspond to a
+ loaded ODF document, or for repositories that are backed by some kind of
+ database.
+ </p>
+ <p>
+ The RDF triples are stored as a set of named RDF graphs.
+ Importing and exporting files in the
+ <a href="http://www.w3.org/TR/rdf-syntax-grammar/">RDF/XML</a>
+ format is supported.
+ Support for other file formats is optional.
+ Support for querying the repository with the
+ <a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL</a>
+ query language is provided.
+ </p>
+
+
+ @since OOo 3.2
+
+ @see XRepositorySupplier
+ @see XDocumentRepository
+ */
+interface XRepository
+{
+
+ //-------------------------------------------------------------------------
+ /** creates a fresh unique blank node.
+
+ @returns
+ a newly generated blank node which is unique in this repository
+ */
+ XBlankNode createBlankNode();
+
+
+ //-------------------------------------------------------------------------
+ /** imports a named graph into the repository.
+
+ <p>
+ Implementations must support RDF/XML format.
+ Support for other RDF formats is optional.
+ If the format is not supported by the implementation, an
+ <type scope="com::sun::star::datatransfer">UnsupportedFlavorException
+ </type> is raised.
+ If the format requires use of a BaseURI, but none is given, an
+ <type scope="com::sun::star::lang">IllegalArgumentException</type>
+ is raised.
+ </p>
+
+ @param Format
+ the format of the input file
+
+ @param InStream
+ the input stream, containing an RDF file in the specified format
+
+ @param GraphName
+ the name of the graph that is imported
+
+ @param BaseURI
+ a base URI to resolve relative URI references
+
+ @returns
+ the imported graph
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given stream or the GraphName is <NULL/>,
+ or BaseURI is <NULL/> and the format requires use of a base URI
+
+ @throws com::sun::star::datatransfer::UnsupportedFlavorException
+ if the format requested is unknown or not supported
+
+ @throws com::sun::star::container::ElementExistException
+ if a graph with the given GraphName already exists in the
+ repository
+
+ @throws ParseException
+ if the input does not conform to the specified file format.
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @throws com::sun::star::io::IOException
+ if an I/O error occurs.
+
+ @see FileFormat
+ */
+ XNamedGraph importGraph([in] /*FileFormat*/ short Format,
+ [in] com::sun::star::io::XInputStream InStream,
+ [in] XURI GraphName, [in] XURI BaseURI)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::datatransfer::UnsupportedFlavorException,
+ com::sun::star::container::ElementExistException,
+ ParseException,
+ RepositoryException,
+ com::sun::star::io::IOException );
+
+ //-------------------------------------------------------------------------
+ /** exports a named graph from the repository.
+
+ <p>
+ Implementations must support RDF/XML format.
+ Support for other RDF formats is optional.
+ If the format is not supported by the implementation, an
+ <type scope="com::sun::star::datatransfer">UnsupportedFlavorException
+ </type> is raised.
+ </p>
+
+ @param Format
+ the format of the output file
+
+ @param OutStream
+ the target output stream
+
+ @param GraphName
+ the name of the graph that is to be exported
+
+ @param BaseURI
+ a base URI to resolve relative URI references
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given stream or the GraphName is <NULL/>,
+ or BaseURI is <NULL/> and the format requires use of a base URI
+
+ @throws com::sun::star::datatransfer::UnsupportedFlavorException
+ if the format requested is unknown or not supported
+
+ @throws com::sun::star::container::NoSuchElementException
+ if a graph with the given GraphName does not exist
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @throws com::sun::star::io::IOException
+ if an I/O error occurs.
+
+ @see FileFormat
+ */
+ void exportGraph([in] /*FileFormat*/ short Format,
+ [in] com::sun::star::io::XOutputStream OutStream,
+ [in] XURI GraphName, [in] XURI BaseURI)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::datatransfer::UnsupportedFlavorException,
+ com::sun::star::container::NoSuchElementException,
+ RepositoryException,
+ com::sun::star::io::IOException );
+
+ //-------------------------------------------------------------------------
+ /** gets the names of all the graphs in the repository.
+
+ @returns
+ a list containing the names of the graphs in the repository
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ sequence<XURI> getGraphNames()
+ raises( RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** gets a graph by its name.
+
+ @param GraphName
+ the name of the graph that is to be returned
+
+ @returns
+ the graph with the given name if it exists, else <NULL/>
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given GraphName is invalid
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ XNamedGraph getGraph([in] XURI GraphName)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** creates a graph with the given name.
+
+ <p>
+ The name must be unique within the repository.
+ </p>
+
+ @param GraphName
+ the name of the graph that is to be created
+
+ @returns
+ the graph with the given name
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given GraphName is invalid
+
+ @throws com::sun::star::container::ElementExistException
+ if a graph with the given GraphName already exists
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ XNamedGraph createGraph([in] XURI GraphName)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** destroys the graph with the given name, and removes it from the
+ repository.
+
+ <p>
+ This invalidates any instances of <type>XNamedGraph</type>
+ for the argument.
+ </p>
+
+ @param GraphName
+ the name of the graph that is to be destroyed
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given GraphName is invalid
+
+ @throws com::sun::star::container::NoSuchElementException
+ if a graph with the given GraphName does not exist
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ void destroyGraph([in] XURI GraphName)
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** gets matching RDF statements from the repository.
+
+ <p>
+ Any parameter may be <NULL/>, which acts as a wildcard.
+ For example, to get all statements about myURI:
+ <code>getStatements(myURI, null, null)</code>
+ </p>
+
+ @param Subject
+ the subject of the RDF triple.
+
+ @param Predicate
+ the predicate of the RDF triple.
+
+ @param Object
+ the object of the RDF triple.
+
+ @returns
+ an iterator over all RDF statements in the repository that match
+ the parameters, represented as an
+ enumeration of <type>Statement</type>
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @see Statement
+ @see XNamedGraph::getStatements
+ */
+ com::sun::star::container::XEnumeration/*<Statement>*/ getStatements(
+ [in] XResource Subject,
+ [in] XURI Predicate,
+ [in] XNode Object)
+ raises( RepositoryException );
+
+
+ //-------------------------------------------------------------------------
+ /** executes a SPARQL "SELECT" query.
+
+ <p>
+ This method runs a SPARQL query that returns a list of variable
+ bindings, i.e., a query beginning with "SELECT".
+ The result is basically a (rectangular) table with labeled columns,
+ where individual cells may be <NULL/>.
+ </p>
+
+ @param Query
+ the SPARQL query <atom>string</atom>
+
+ @returns
+ an enumeration, containing
+ <ol>
+ <li>a list of query variable names (column labels)</li>
+ <li>the query results (rows),
+ each being a list of bindings for the above variables</li>
+ </ol>
+
+ @throws QueryException
+ if the query is malformed, or evaluation fails
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @see XQuerySelectResult
+ */
+ XQuerySelectResult querySelect([in] string Query)
+ raises( QueryException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** executes a SPARQL "CONSTRUCT" query.
+
+ <p>
+ This method runs a SPARQL query that constructs a result graph,
+ i.e., a query beginning with "CONSTRUCT".
+ </p>
+
+ @param Query
+ the SPARQL query <atom>string</atom>
+
+ @returns
+ an iterator over the query result graph, represented as an
+ enumeration of <type>Statement</type>
+
+ @throws QueryException
+ if the query is malformed, or evaluation fails
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+
+ @see Statement
+ */
+ com::sun::star::container::XEnumeration/*<Statement>*/ queryConstruct(
+ [in] string Query)
+ raises( QueryException,
+ RepositoryException );
+
+ //-------------------------------------------------------------------------
+ /** executes a SPARQL "ASK" query.
+
+ <p>
+ This method runs a SPARQL query that computes a boolean,
+ i.e., a query beginning with "ASK".
+ </p>
+
+ @param Query
+ the SPARQL query <atom>string</atom>
+
+ @returns
+ the boolean query result
+
+ @throws QueryException
+ if the query is malformed, or evaluation fails
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ boolean queryAsk([in] string Query)
+ raises( QueryException,
+ RepositoryException );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif