From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- offapi/com/sun/star/rdf/XRepository.idl | 393 ++++++++++++++++++++++++++++++++ 1 file changed, 393 insertions(+) create mode 100644 offapi/com/sun/star/rdf/XRepository.idl (limited to 'offapi/com/sun/star/rdf/XRepository.idl') diff --git a/offapi/com/sun/star/rdf/XRepository.idl b/offapi/com/sun/star/rdf/XRepository.idl new file mode 100644 index 000000000..a8cf4652c --- /dev/null +++ b/offapi/com/sun/star/rdf/XRepository.idl @@ -0,0 +1,393 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_rdf_XRepository_idl__ +#define __com_sun_star_rdf_XRepository_idl__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +module com { module sun { module star { module rdf { + +/** provides access to a set of named RDF graphs. + +

+ A repository for storing information according to the data model of the + Resource Description Framework. + 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. +

+

+ The RDF triples are stored as a set of named RDF graphs. + Importing and exporting files in the + RDF/XML + format is supported. + Support for other file formats is optional. + Support for querying the repository with the + SPARQL + query language is provided. +

+ + + @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. + +

+ Implementations must support RDF/XML format. + Support for other RDF formats is optional. + If the format is not supported by the implementation, an + com::sun::star::datatransfer::UnsupportedFlavorException is raised. + If the format requires use of a BaseURI, but none is given, an + com::sun::star::lang::IllegalArgumentException + is raised. +

+ + @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. + +

+ Implementations must support RDF/XML format. + Support for other RDF formats is optional. + If the format is not supported by the implementation, an + com::sun::star::datatransfer::UnsupportedFlavorException is raised. +

+ + @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 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. + +

+ The name must be unique within the repository. +

+ + @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. + +

+ This invalidates any instances of XNamedGraph + for the argument. +

+ + @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. + +

+ Any parameter may be `NULL`, which acts as a wildcard. + For example, to get all statements about myURI: + getStatements(myURI, null, null) +

+ + @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 Statement + + @throws RepositoryException + if an error occurs when accessing the repository. + + @see Statement + @see XNamedGraph::getStatements + */ + com::sun::star::container::XEnumeration/**/ getStatements( + [in] XResource Subject, + [in] XURI Predicate, + [in] XNode Object) + raises( RepositoryException ); + + + /** executes a SPARQL "SELECT" query. + +

+ 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`. +

+ + @param Query + the SPARQL query `string` + + @returns + an enumeration, containing +
    +
  1. a list of query variable names (column labels)
  2. +
  3. the query results (rows), + each being a list of bindings for the above variables
  4. +
+ + @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. + +

+ This method runs a SPARQL query that constructs a result graph, + i.e., a query beginning with "CONSTRUCT". +

+ + @param Query + the SPARQL query `string` + + @returns + an iterator over the query result graph, represented as an + enumeration of Statement + + @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/**/ queryConstruct( + [in] string Query) + raises( QueryException, + RepositoryException ); + + /** executes a SPARQL "ASK" query. + +

+ This method runs a SPARQL query that computes a boolean, + i.e., a query beginning with "ASK". +

+ + @param Query + the SPARQL query `string` + + @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 + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3