public void writePropertyDeclarations(RdfWriter rdfWriter,
			boolean fullStatements, boolean simpleClaims)
			throws RDFHandlerException {
		boolean anyStatements = fullStatements || simpleClaims;
		for (PropertyIdValue propertyIdValue : this.objectPropertyQueue) {
			if (!this.declaredProperties.add(propertyIdValue)) {
				continue;
			}
			if (anyStatements) {
				writeNoValueRestriction(rdfWriter, propertyIdValue.getIri(),
						Vocabulary.OWL_THING, Vocabulary.getPropertyUri(
								propertyIdValue, PropertyContext.NO_VALUE));
				writeNoValueRestriction(rdfWriter, propertyIdValue.getIri(),
						Vocabulary.OWL_THING, Vocabulary.getPropertyUri(
								propertyIdValue,
								PropertyContext.NO_QUALIFIER_VALUE));
			}
			if (fullStatements) {
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.STATEMENT),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_OBJECT_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.VALUE_SIMPLE),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_OBJECT_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.VALUE),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_OBJECT_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.QUALIFIER),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_OBJECT_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.REFERENCE),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_OBJECT_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.QUALIFIER_SIMPLE),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_OBJECT_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.REFERENCE_SIMPLE),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_OBJECT_PROPERTY);
			}
			if (simpleClaims) {
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.DIRECT),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_OBJECT_PROPERTY);
			}
		}
		this.objectPropertyQueue.clear();

		for (PropertyIdValue propertyIdValue : this.datatypePropertyQueue) {
			if (!this.declaredProperties.add(propertyIdValue)) {
				continue;
			}
			if (anyStatements) {
				writeNoValueRestriction(rdfWriter, propertyIdValue.getIri(),
						Vocabulary.XSD_STRING, Vocabulary.getPropertyUri(
								propertyIdValue, PropertyContext.NO_VALUE));
				writeNoValueRestriction(rdfWriter, propertyIdValue.getIri(),
						Vocabulary.XSD_STRING, Vocabulary.getPropertyUri(
								propertyIdValue,
								PropertyContext.NO_QUALIFIER_VALUE));
			}
			if (fullStatements) {
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.STATEMENT),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_OBJECT_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.VALUE),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_DATATYPE_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.QUALIFIER),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_DATATYPE_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.REFERENCE),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_DATATYPE_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.VALUE_SIMPLE),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_DATATYPE_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.QUALIFIER_SIMPLE),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_DATATYPE_PROPERTY);
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.REFERENCE_SIMPLE),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_DATATYPE_PROPERTY);

			}
			if (simpleClaims) {
				rdfWriter.writeTripleValueObject(Vocabulary.getPropertyUri(
						propertyIdValue, PropertyContext.DIRECT),
						RdfWriter.RDF_TYPE, RdfWriter.OWL_DATATYPE_PROPERTY);
			}

		}
		this.datatypePropertyQueue.clear();

		for (IRI propertyUri : this.objectPropertyUriQueue) {
			if (!this.declaredPropertyUris.add(propertyUri)) {
				continue;
			}
			rdfWriter.writeTripleValueObject(propertyUri, RdfWriter.RDF_TYPE,
					RdfWriter.OWL_OBJECT_PROPERTY);
		}
		this.objectPropertyUriQueue.clear();

		for (IRI propertyUri : this.datatypePropertyUriQueue) {
			if (!this.declaredPropertyUris.add(propertyUri)) {
				continue;
			}
			rdfWriter.writeTripleValueObject(propertyUri, RdfWriter.RDF_TYPE,
					RdfWriter.OWL_DATATYPE_PROPERTY);
		}
		this.datatypePropertyUriQueue.clear();

	}
public void writePropertyDeclarations ( RdfWriter rdfWriter , boolean fullStatements , boolean simpleClaims ) throws RDFHandlerException { boolean anyStatements = fullStatements || simpleClaims ; for ( PropertyIdValue propertyIdValue : this . objectPropertyQueue ) { if ( ! this . declaredProperties . add ( propertyIdValue ) ) { continue ; } if ( anyStatements ) { writeNoValueRestriction ( rdfWriter , propertyIdValue . getIri ( ) , Vocabulary . OWL_THING , Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . NO_VALUE ) ) ; writeNoValueRestriction ( rdfWriter , propertyIdValue . getIri ( ) , Vocabulary . OWL_THING , Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . NO_QUALIFIER_VALUE ) ) ; } if ( fullStatements ) { rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . STATEMENT ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_OBJECT_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . VALUE_SIMPLE ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_OBJECT_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . VALUE ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_OBJECT_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . QUALIFIER ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_OBJECT_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . REFERENCE ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_OBJECT_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . QUALIFIER_SIMPLE ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_OBJECT_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . REFERENCE_SIMPLE ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_OBJECT_PROPERTY ) ; } if ( simpleClaims ) { rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . DIRECT ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_OBJECT_PROPERTY ) ; } } this . objectPropertyQueue . clear ( ) ; for ( PropertyIdValue propertyIdValue : this . datatypePropertyQueue ) { if ( ! this . declaredProperties . add ( propertyIdValue ) ) { continue ; } if ( anyStatements ) { writeNoValueRestriction ( rdfWriter , propertyIdValue . getIri ( ) , Vocabulary . XSD_STRING , Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . NO_VALUE ) ) ; writeNoValueRestriction ( rdfWriter , propertyIdValue . getIri ( ) , Vocabulary . XSD_STRING , Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . NO_QUALIFIER_VALUE ) ) ; } if ( fullStatements ) { rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . STATEMENT ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_OBJECT_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . VALUE ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_DATATYPE_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . QUALIFIER ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_DATATYPE_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . REFERENCE ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_DATATYPE_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . VALUE_SIMPLE ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_DATATYPE_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . QUALIFIER_SIMPLE ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_DATATYPE_PROPERTY ) ; rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . REFERENCE_SIMPLE ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_DATATYPE_PROPERTY ) ; } if ( simpleClaims ) { rdfWriter . writeTripleValueObject ( Vocabulary . getPropertyUri ( propertyIdValue , PropertyContext . DIRECT ) , RdfWriter . RDF_TYPE , RdfWriter . OWL_DATATYPE_PROPERTY ) ; } } this . datatypePropertyQueue . clear ( ) ; for ( IRI propertyUri : this . objectPropertyUriQueue ) { if ( ! this . declaredPropertyUris . add ( propertyUri ) ) { continue ; } rdfWriter . writeTripleValueObject ( propertyUri , RdfWriter . RDF_TYPE , RdfWriter . OWL_OBJECT_PROPERTY ) ; } this . objectPropertyUriQueue . clear ( ) ; for ( IRI propertyUri : this . datatypePropertyUriQueue ) { if ( ! this . declaredPropertyUris . add ( propertyUri ) ) { continue ; } rdfWriter . writeTripleValueObject ( propertyUri , RdfWriter . RDF_TYPE , RdfWriter . OWL_DATATYPE_PROPERTY ) ; } this . datatypePropertyUriQueue . clear ( ) ; }
Writes OWL declarations for properties that have been added recently.
Declared properties are stored so that duplicate declarations are
avoided.

@param rdfWriter
the writer to write the declarations to
@param fullStatements
if true, then properties need to export full statements (with
qualifiers and references) will be declared
@param simpleClaims
if true, then properties to export simple claims (flat
triples) will be declared
@throws RDFHandlerException
if there was a problem writing the declarations