:: com :: sun :: star :: rdf ::

unpublished interface XDocumentRepository
Base Interfaces
XDocumentRepositoryXRepository

XRepository
(referenced interface's summary:)
provides access to a set of named RDF graphs.
Description
extends XRepository with document-specific functionality.

This subclass of XRepository provides some methods which only make sense for repositories that are attached to a document. For example, the methods allow for manipulating in-content metadata, which is stored as RDFa.


Methods' Summary
setStatementRDFa update the RDFa statement(s) that correspond to an ODF element in the repository.  
removeStatementRDFa remove the RDFa statement(s) that correspond to an ODF element from the repository.  
getStatementRDFa find the RDFa statement(s) associated with an ODF element.  
getStatementsRDFa gets matching RDFa statements from the repository.  
Methods' Details
setStatementRDFa
void
setStatementRDFa( [in] XURI  Subject,
[in] XURI  Predicate,
[in] ::com::sun::star::text::XTextRange  Object,
[in] string  RDFaContent,
[in] XURI  RDFaDatatype )
raises( ::com::sun::star::lang::IllegalArgumentException,
RepositoryException );

Description
update the RDFa statement(s) that correspond to an ODF element in the repository.

This method will do the following steps:

  1. Remove all RDFa statements that involve the Object parameter from the repository
  2. If the RDFaContent parameter is the empty string, add the following RDF statement to an unspecified named graph:
    • Subject Predicate XLiteral(Object->getText())
  3. If the RDFaContent parameter is not the empty string, add the following RDF statements to an unspecified named graph:
    • Subject Predicate XLiteral(RDFaContent^^RDFaDatatype)
    • Subject rdfs:label XLiteral(Object->getText())

RDFa statements are handled specially because they are not logically part of any named graph in the repository. Also, they have rather unusual semantics. Also, just using XNamedGraph::addStatement for this would be ambiguous: if the object is a XMetadatable, do we insert the object itself (URI) or its literal content (RDFa)?

//FIXME: updates???
Parameter Subject
the subject of the RDF triple.
Parameter Predicate
the predicate of the RDF triple.
Parameter Object
the object of the RDF triple is the text content of this parameter.
Parameter RDFaContent
the rdfa:content attribute (may be the empty string).
Parameter RDFaDatatype
the rdfa:datatype attribute (may be NULL)
Throws
com::sun::star::lang::IllegalArgumentException if any parameter is NULL, or Object is of a type that can not have RDFa metadata attached.
Throws
RepositoryException if an error occurs when accessing the repository.
removeStatementRDFa
void
removeStatementRDFa( [in] ::com::sun::star::text::XTextRange  Object )
raises( ::com::sun::star::lang::IllegalArgumentException,
RepositoryException );

Description
remove the RDFa statement(s) that correspond to an ODF element from the repository.

RDFa statements are handled specially because they are not logically part of any graph.

Parameter Object
the element whose RDFa statement(s) should be removed
Throws
com::sun::star::lang::IllegalArgumentException if the given Element is NULL, or of a type that can not have RDFa metadata attached.
Throws
RepositoryException if an error occurs when accessing the repository.
getStatementRDFa
sequence< Statement >
getStatementRDFa( [in] XMetadatable  Element )
raises( ::com::sun::star::lang::IllegalArgumentException,
RepositoryException );

Description
find the RDFa statement(s) associated with an ODF element.
Parameter Element
the ODF element for which RDFa statements should be found
Returns
  • if the element has no RDFa meta-data attributes: the empty sequence.
  • if the element has RDFa meta-data attributes, and no rdfa:content attached: a sequence with a single element: the RDFa-statement
  • if the element has RDFa meta-data attributes, and also rdfa:content attached: a sequence with 2 elements: first the RDFa-statement, then the RDFa-labels-statement
Throws
com::sun::star::lang::IllegalArgumentException if the given Element is NULL, or of a type that can not have RDFa metadata attached.
Throws
RepositoryException if an error occurs when accessing the repository.
getStatementsRDFa
::com::sun::star::container::XEnumeration
getStatementsRDFa( [in] XResource  Subject,
[in] XResource  Predicate,
[in] XNode  Object )
raises( RepositoryException );

Description
gets matching RDFa statements from the repository.

This method exists because RDFa statements are not part of any named graph, and thus they cannot be enumerated with XNamedGraph::getStatements.

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

Parameter Subject
the subject of the RDF triple.
Parameter Predicate
the predicate of the RDF triple.
Parameter Object
the object of the RDF triple.
Returns
an iterator over all RDFa statements in the repository that match the parameters, represented as an enumeration of Statement
Throws
RepositoryException if an error occurs when accessing the repository.
Top of Page