diff options
Diffstat (limited to 'offapi/com/sun/star/rdf/XRepository.idl')
-rw-r--r-- | offapi/com/sun/star/rdf/XRepository.idl | 465 |
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 |