001// ***************************************************************************************************************************
002// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
003// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
004// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
005// * with the License.  You may obtain a copy of the License at                                                              *
006// *                                                                                                                         *
007// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
008// *                                                                                                                         *
009// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
010// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
011// * specific language governing permissions and limitations under the License.                                              *
012// ***************************************************************************************************************************
013package org.apache.juneau.jena;
014
015import java.util.*;
016
017import org.apache.juneau.collections.*;
018import org.apache.juneau.jena.annotation.*;
019import org.apache.juneau.xml.*;
020
021/**
022 * Configurable properties common to both the {@link RdfSerializer} and {@link RdfParser} classes.
023 */
024public interface RdfCommon {
025
026   /**
027    * Property prefix.
028    */
029   static final String PREFIX = "RdfCommon";
030
031   /**
032    * Maps RDF writer names to property prefixes that apply to them.
033    */
034   static final Map<String,String> LANG_PROP_MAP = AMap.of("RDF/XML","rdfXml.","RDF/XML-ABBREV","rdfXml.","N3","n3.","N3-PP","n3.","N3-PLAIN","n3.","N3-TRIPLES","n3.","TURTLE","n3.","N-TRIPLE","ntriple.");
035
036   /**
037    * Configuration property:  RDF language.
038    *
039    * <h5 class='section'>Property:</h5>
040    * <ul class='spaced-list'>
041    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_language RDF_language}
042    *    <li><b>Name:</b>  <js>"RdfCommon.language.s"</js>
043    *    <li><b>Data type:</b>  <c>String</c>
044    *    <li><b>System property:</b>  <c>RdfCommon.language</c>
045    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_LANGUAGE</c>
046    *    <li><b>Default:</b>  <js>"RDF/XML-ABBREV"</js>
047    *    <li><b>Annotations:</b>
048    *       <ul>
049    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#language()}
050    *       </ul>
051    *    <li><b>Methods:</b>
052    *       <ul>
053    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#language(String)}
054    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#n3()}
055    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#ntriple()}
056    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#turtle()}
057    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#xml()}
058    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#xmlabbrev()}
059    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#language(String)}
060    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#n3()}
061    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#ntriple()}
062    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#turtle()}
063    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#xml()}
064    *       </ul>
065    * </ul>
066    *
067    * <h5 class='section'>Description:</h5>
068    * <p>
069    *    The RDF language to use.
070    * <p>
071    * Can be any of the following:
072    * <ul class='spaced-list'>
073    *    <li>
074    *       <js>"RDF/XML"</js>
075    *    <li>
076    *       <js>"RDF/XML-ABBREV"</js> (default)
077    *    <li>
078    *       <js>"N-TRIPLE"</js>
079    *    <li>
080    *       <js>"N3"</js> - General name for the N3 writer.
081    *       Will make a decision on exactly which writer to use (pretty writer, plain writer or simple writer) when
082    *       created.
083    *       Default is the pretty writer but can be overridden with system property
084    *       <c>org.apache.jena.n3.N3JenaWriter.writer</c>.
085    *    <li>
086    *       <js>"N3-PP"</js> - Name of the N3 pretty writer.
087    *       The pretty writer uses a frame-like layout, with prefixing, clustering like properties and embedding
088    *       one-referenced bNodes.
089    *    <li>
090    *       <js>"N3-PLAIN"</js> - Name of the N3 plain writer.
091    *       The plain writer writes records by subject.
092    *    <li>
093    *       <js>"N3-TRIPLES"</js> - Name of the N3 triples writer.
094    *       This writer writes one line per statement, like N-Triples, but does N3-style prefixing.
095    *    <li>
096    *       <js>"TURTLE"</js> -  Turtle writer.
097    *       http://www.dajobe.org/2004/01/turtle/
098    * </ul>
099    */
100   public static final String RDF_language = PREFIX + ".language.s";
101
102   /**
103    * Configuration property:  XML namespace for Juneau properties.
104    *
105    * <h5 class='section'>Property:</h5>
106    * <ul class='spaced-list'>
107    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_juneauNs RDF_juneauNs}
108    *    <li><b>Name:</b>  <js>"RdfCommon.juneauNs.s"</js>
109    *    <li><b>Data type:</b>  {@link org.apache.juneau.xml.Namespace}
110    *    <li><b>System property:</b>  <c>RdfCommon.juneauNs</c>
111    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JUNEAUNS</c>
112    *    <li><b>Default:</b>  <code>{j:<js>'http://www.apache.org/juneau/'</js>}</code>
113    *    <li><b>Annotations:</b>
114    *       <ul>
115    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#juneauNs()}
116    *       </ul>
117    *    <li><b>Methods:</b>
118    *       <ul>
119    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#juneauNs(Namespace)}
120    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#juneauNs(Namespace)}
121    *       </ul>
122    * </ul>
123    */
124   public static final String RDF_juneauNs = PREFIX + ".juneauNs.s";
125
126   /**
127    * Configuration property:  Default XML namespace for bean properties.
128    *
129    * <h5 class='section'>Property:</h5>
130    * <ul class='spaced-list'>
131    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_juneauBpNs RDF_juneauBpNs}
132    *    <li><b>Name:</b>  <js>"RdfCommon.juneauBpNs.s"</js>
133    *    <li><b>Data type:</b>  {@link org.apache.juneau.xml.Namespace}
134    *    <li><b>System property:</b>  <c>RdfCommon.juneauBpNs</c>
135    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JUNEAUBPNS</c>
136    *    <li><b>Default:</b>  <code>{j:<js>'http://www.apache.org/juneaubp/'</js>}</code>
137    *    <li><b>Annotations:</b>
138    *       <ul>
139    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#juneauBpNs()}
140    *       </ul>
141    *    <li><b>Methods:</b>
142    *       <ul>
143    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#juneauBpNs(Namespace)}
144    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#juneauBpNs(Namespace)}
145    *       </ul>
146    * </ul>
147    */
148   public static final String RDF_juneauBpNs = PREFIX + ".juneauBpNs.s";
149
150   /**
151    * Configuration property:  RDF/XML property: <c>iri_rules</c>.
152    *
153    * <h5 class='section'>Property:</h5>
154    * <ul class='spaced-list'>
155    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_iriRules RDF_arp_iriRules}
156    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.iri-rules.s"</js>
157    *    <li><b>Data type:</b>  <c>String</c>
158    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.iri-rules</c>
159    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_IRI_RULES</c>
160    *    <li><b>Default:</b>  <js>"lax"</js>
161    *    <li><b>Annotations:</b>
162    *       <ul>
163    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#arp_iriRules()}
164    *       </ul>
165    * </ul>
166    *
167    * <h5 class='section'>Description:</h5>
168    * <p>
169    * Set the engine for checking and resolving.
170    *
171    * <p>
172    * Possible values:
173    * <ul class='spaced-list'>
174    *    <li>
175    *       <js>"lax"</js> - The rules for RDF URI references only, which does permit spaces although the use of spaces
176    *       is not good practice.
177    *    <li>
178    *       <js>"strict"</js> - Sets the IRI engine with rules for valid IRIs, XLink and RDF; it does not permit spaces
179    *       in IRIs.
180    *    <li>
181    *       <js>"iri"</js> - Sets the IRI engine to IRI
182    *       ({@doc http://www.ietf.org/rfc/rfc3986.txt RFC 3986},
183    *       {@doc http://www.ietf.org/rfc/rfc3987.txt RFC 3987}).
184    * </ul>
185    */
186   public static final String RDF_arp_iriRules = PREFIX + ".jena.rdfXml.iri-rules.s";
187
188   /**
189    * Configuration property:  RDF/XML ARP property: <c>error-mode</c>.
190    *
191    * <h5 class='section'>Property:</h5>
192    * <ul class='spaced-list'>
193    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_errorMode RDF_arp_errorMode}
194    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.error-mode.s"</js>
195    *    <li><b>Data type:</b>  <c>String</c>
196    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.error-mode</c>
197    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ERROR_MODE</c>
198    *    <li><b>Default:</b>  <js>"lax"</js>
199    *    <li><b>Annotations:</b>
200    *       <ul>
201    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#arp_errorMode()}
202    *       </ul>
203    * </ul>
204    *
205    * <h5 class='section'>Description:</h5>
206    * <p>
207    * This allows a coarse-grained approach to control of error handling.
208    *
209    * <p>
210    * Possible values:
211    * <ul>
212    *    <li><js>"default"</js>
213    *    <li><js>"lax"</js>
214    *    <li><js>"strict"</js>
215    *    <li><js>"strict-ignore"</js>
216    *    <li><js>"strict-warning"</js>
217    *    <li><js>"strict-error"</js>
218    *    <li><js>"strict-fatal"</js>
219    * </ul>
220    *
221    * <ul class='seealso'>
222    *    <li>
223    *       {@doc ExtARP/ARPOptions.html#setDefaultErrorMode() ARPOptions.setDefaultErrorMode()}
224    *    <li>
225    *       {@doc ExtARP/ARPOptions.html#setLaxErrorMode() ARPOptions.setLaxErrorMode()}
226    *    <li>
227    *       {@doc ExtARP/ARPOptions.html#setStrictErrorMode() ARPOptions.setStrictErrorMode()}
228    *    <li>
229    *       {@doc ExtARP/ARPOptions.html#setStrictErrorMode(int) ARPOptions.setStrictErrorMode(int)}
230    * </ul>
231    */
232   public static final String RDF_arp_errorMode = PREFIX + ".jena.rdfXml.error-mode.s";
233
234   /**
235    * Configuration property:  RDF/XML ARP property: <c>embedding</c>.
236    *
237    * <h5 class='section'>Property:</h5>
238    * <ul class='spaced-list'>
239    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_embedding RDF_arp_embedding}
240    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.embedding.b"</js>
241    *    <li><b>Data type:</b>  <jk>boolean</jk>
242    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.embedding</c>
243    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_EMBEDDING</c>
244    *    <li><b>Default:</b>  <jk>false</jk>
245    *    <li><b>Annotations:</b>
246    *       <ul>
247    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#arp_embedding()}
248    *       </ul>
249    * </ul>
250    *
251    * <h5 class='section'>Description:</h5>
252    * <p>
253    * Sets ARP to look for RDF embedded within an enclosing XML document.
254    *
255    * <ul class='seealso'>
256    *    <li>
257    *       {@doc ExtARP/ARPOptions.html#setEmbedding(boolean) ARPOptions.setEmbedding(boolean)}
258    * </ul>
259    */
260   public static final String RDF_arp_embedding = PREFIX + ".jena.rdfXml.embedding.b";
261
262   /**
263    * Configuration property:  RDF/XML ARP property: <c>ERR_xxx</c>.
264    *
265    * <h5 class='section'>Property:</h5>
266    * <ul class='spaced-list'>
267    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_err_ RDF_arp_err_}
268    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.ERR_"</js>
269    *    <li><b>Data type:</b>  <c>String</c>
270    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.ERR_</c>
271    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ERR_</c>
272    * </ul>
273    *
274    * <h5 class='section'>Description:</h5>
275    * <p>
276    * Provides fine-grained control over detected error conditions.
277    *
278    * <p>
279    * Possible values:
280    * <ul>
281    *    <li><js>"EM_IGNORE"</js>
282    *    <li><js>"EM_WARNING"</js>
283    *    <li><js>"EM_ERROR"</js>
284    *    <li><js>"EM_FATAL"</js>
285    * </ul>
286    *
287    * <ul class='seealso'>
288    *    <li>
289    *       {@doc ExtARP/ARPErrorNumbers.html ARPErrorNumbers}
290    *    <li>
291    *       {@doc ExtARP/ARPOptions.html#setErrorMode(int,%20int) ARPOptions.setErrorMode(int, int)}
292    * </ul>
293    */
294   public static final String RDF_arp_err_ = PREFIX + ".jena.rdfXml.ERR_";
295
296   /**
297    * Configuration property:  RDF/XML ARP property: <c>WARN_xxx</c>.
298    *
299    * <h5 class='section'>Property:</h5>
300    * <ul class='spaced-list'>
301    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_warn_ RDF_arp_warn_}
302    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.WARN_"</js>
303    *    <li><b>Data type:</b>  <c>String</c>
304    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.WARN_</c>
305    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_WARN_</c>
306    * </ul>
307    *
308    * <h5 class='section'>Description:</h5>
309    * <p>
310    * See {@link #RDF_arp_err_} for details.
311    */
312   public static final String RDF_arp_warn_ = PREFIX + ".jena.rdfXml.WARN_";
313
314   /**
315    * RDF/XML ARP property: <c>IGN_xxx</c>.
316    *
317    * <h5 class='section'>Property:</h5>
318    * <ul class='spaced-list'>
319    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_ign_ RDF_arp_ign_}
320    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.IGN_"</js>
321    *    <li><b>Data type:</b>  <c>String</c>
322    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.IGN_</c>
323    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_IGN_</c>
324    * </ul>
325    *
326    * <h5 class='section'>Description:</h5>
327    * <p>
328    * See {@link #RDF_arp_err_} for details.
329    */
330   public static final String RDF_arp_ign_ = PREFIX + ".jena.rdfXml.IGN_";
331
332   /**
333    * Configuration property:  RDF/XML property: <c>xmlbase</c>.
334    *
335    * <h5 class='section'>Property:</h5>
336    * <ul class='spaced-list'>
337    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_xmlBase RDF_rdfxml_xmlBase}
338    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.xmlbase.s"</js>
339    *    <li><b>Data type:</b>  <c>String</c>
340    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.xmlbase</c>
341    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_XMLBASE</c>
342    *    <li><b>Default:</b>  <jk>null</jk>
343    *    <li><b>Annotations:</b>
344    *       <ul>
345    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_xmlBase()}
346    *       </ul>
347    * </ul>
348    *
349    * <h5 class='section'>Description:</h5>
350    * <p>
351    * The value to be included for an <xa>xml:base</xa> attribute on the root element in the file.
352    */
353   public static final String RDF_rdfxml_xmlBase = PREFIX + ".jena.rdfXml.xmlbase.s";
354
355   /**
356    * Configuration property:  RDF/XML property: <c>longId</c>.
357    *
358    * <h5 class='section'>Property:</h5>
359    * <ul class='spaced-list'>
360    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_longId RDF_rdfxml_longId}
361    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.longId.b"</js>
362    *    <li><b>Data type:</b>  <jk>boolean</jk>
363    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.longId</c>
364    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_LONGID</c>
365    *    <li><b>Default:</b>  <jk>false</jk>
366    *    <li><b>Annotations:</b>
367    *       <ul>
368    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_longId()}
369    *       </ul>
370    * </ul>
371    *
372    * <h5 class='section'>Description:</h5>
373    * <p>
374    * Whether to use long ID's for anon resources.
375    * Short ID's are easier to read, but can run out of memory on very large models.
376    */
377   public static final String RDF_rdfxml_longId = PREFIX + ".jena.rdfXml.longId.b";
378
379   /**
380    * Configuration property:  RDF/XML property: <c>allowBadURIs</c>.
381    *
382    * <h5 class='section'>Property:</h5>
383    * <ul class='spaced-list'>
384    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_allowBadUris RDF_rdfxml_allowBadUris}
385    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.allowBadURIs.b"</js>
386    *    <li><b>Data type:</b>  <jk>boolean</jk>
387    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.allowBadURIs</c>
388    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ALLOWBADURIS</c>
389    *    <li><b>Default:</b>  <jk>false</jk>
390    *    <li><b>Annotations:</b>
391    *       <ul>
392    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_allowBadUris()}
393    *       </ul>
394    * </ul>
395    *
396    * <h5 class='section'>Description:</h5>
397    * <p>
398    * URIs in the graph are, by default, checked prior to serialization.
399    */
400   public static final String RDF_rdfxml_allowBadUris = PREFIX + ".jena.rdfXml.allowBadURIs.b";
401
402   /**
403    * Configuration property:  RDF/XML property: <c>relativeURIs</c>.
404    *
405    * <h5 class='section'>Property:</h5>
406    * <ul class='spaced-list'>
407    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_relativeUris RDF_rdfxml_relativeUris}
408    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.relativeURIs.s"</js>
409    *    <li><b>Data type:</b>  <c>String</c>
410    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.relativeURIs</c>
411    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_RELATIVEURIS</c>
412    *    <li><b>Default:</b>  <js>"same-document, absolute, relative, parent"</js>
413    *    <li><b>Annotations:</b>
414    *       <ul>
415    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_relativeUris()}
416    *       </ul>
417    * </ul>
418    *
419    * <h5 class='section'>Description:</h5>
420    * <p>
421    * What sort of relative URIs should be used.
422    *
423    * <p>
424    * A comma separate list of options:
425    * <ul class='spaced-list'>
426    *    <li>
427    *       <js>"same-document"</js> - Same-document references (e.g. <js>""</js> or <js>"#foo"</js>)
428    *    <li>
429    *       <js>"network"</js>  - Network paths (e.g. <js>"//example.org/foo"</js> omitting the URI scheme)
430    *    <li>
431    *       <js>"absolute"</js> - Absolute paths (e.g. <js>"/foo"</js> omitting the scheme and authority)
432    *    <li>
433    *       <js>"relative"</js> - Relative path not beginning in <js>"../"</js>
434    *    <li>
435    *       <js>"parent"</js> - Relative path beginning in <js>"../"</js>
436    *    <li>
437    *       <js>"grandparent"</js> - Relative path beginning in <js>"../../"</js>
438    * </ul>
439    *
440    * <p>
441    * The default value is <js>"same-document, absolute, relative, parent"</js>.
442    * To switch off relative URIs use the value <js>""</js>.
443    * Relative URIs of any of these types are output where possible if and only if the option has been specified.
444    */
445   public static final String RDF_rdfxml_relativeUris = PREFIX + ".jena.rdfXml.relativeURIs.s";
446
447   /**
448    * Configuration property:  RDF/XML property: <c>showXmlDeclaration</c>.
449    *
450    * <h5 class='section'>Property:</h5>
451    * <ul class='spaced-list'>
452    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_showXmlDeclaration RDF_rdfxml_showXmlDeclaration}
453    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.showXmlDeclaration.s"</js>
454    *    <li><b>Data type:</b>  <c>String</c>
455    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.showXmlDeclaration</c>
456    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_SHOWXMLDECLARATION</c>
457    *    <li><b>Default:</b>  <js>"default"</js>
458    *    <li><b>Annotations:</b>
459    *       <ul>
460    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_showXmlDeclaration()}
461    *       </ul>
462    * </ul>
463    *
464    * <h5 class='section'>Description:</h5>
465    * <p>
466    * Possible values:
467    * <ul class='spaced-list'>
468    *    <li>
469    *       <js>"true"</js> - Add XML Declaration to the output.
470    *    <li>
471    *       <js>"false"</js> - Don't add XML Declaration to the output.
472    *    <li>
473    *       <js>"default"</js> - Only add an XML Declaration when asked to write to an <c>OutputStreamWriter</c>
474    *       that uses some encoding other than <c>UTF-8</c> or <c>UTF-16</c>.
475    *       In this case the encoding is shown in the XML declaration.
476    * </ul>
477    */
478   public static final String RDF_rdfxml_showXmlDeclaration = PREFIX + ".jena.rdfXml.showXmlDeclaration.s";
479
480   /**
481    * Configuration property:  RDF/XML property: <c>showDoctypeDeclaration</c>.
482    *
483    * <h5 class='section'>Property:</h5>
484    * <ul class='spaced-list'>
485    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_showDoctypeDeclaration RDF_rdfxml_showDoctypeDeclaration}
486    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.showDoctypeDeclaration.b"</js>
487    *    <li><b>Data type:</b>  <jk>boolean</jk>
488    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.showDoctypeDeclaration</c>
489    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_SHOWDOCTYPEDECLARATION</c>
490    *    <li><b>Default:</b>  <jk>true</jk>
491    *    <li><b>Annotations:</b>
492    *       <ul>
493    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_showDoctypeDeclaration()}
494    *       </ul>
495    * </ul>
496    *
497    * <h5 class='section'>Description:</h5>
498    * <p>
499    * If true, an XML doctype declaration is included in the output.
500    * This declaration includes a <c>!ENTITY</c> declaration for each prefix mapping in the model, and any
501    * attribute value that starts with the URI of that mapping is written as starting with the corresponding entity
502    * invocation.
503    */
504   public static final String RDF_rdfxml_showDoctypeDeclaration = PREFIX + ".jena.rdfXml.showDoctypeDeclaration.b";
505
506   /**
507    * Configuration property:  RDF/XML property: <c>tab</c>.
508    *
509    * <h5 class='section'>Property:</h5>
510    * <ul class='spaced-list'>
511    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_tab RDF_rdfxml_tab}
512    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.tab.i"</js>
513    *    <li><b>Data type:</b>  <jk>int</jk>
514    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.tab</c>
515    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_TAB</c>
516    *    <li><b>Default:</b>  <c>2</c>
517    *    <li><b>Annotations:</b>
518    *       <ul>
519    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_tab()}
520    *       </ul>
521    * </ul>
522    *
523    * <h5 class='section'>Description:</h5>
524    * <p>
525    * The number of spaces with which to indent XML child elements.
526    */
527   public static final String RDF_rdfxml_tab = PREFIX + ".jena.rdfXml.tab.i";
528
529   /**
530    * Configuration property:  RDF/XML property: <c>attributeQuoteChar</c>.
531    *
532    * <h5 class='section'>Property:</h5>
533    * <ul class='spaced-list'>
534    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_attributeQuoteChar RDF_rdfxml_attributeQuoteChar}
535    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.attributeQuoteChar.s"</js>
536    *    <li><b>Data type:</b>  <c>Character</c>
537    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.attributeQuoteChar</c>
538    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ATTRIBUTEQUOTECHAR</c>
539    *    <li><b>Default:</b>  <js>'"'</js>
540    *    <li><b>Annotations:</b>
541    *       <ul>
542    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_attributeQuoteChar()}
543    *       </ul>
544    * </ul>
545    *
546    * <h5 class='section'>Description:</h5>
547    * <p>
548    * The XML attribute quote character.
549    */
550   public static final String RDF_rdfxml_attributeQuoteChar = PREFIX + ".jena.rdfXml.attributeQuoteChar.s";
551
552   /**
553    * Configuration property:  RDF/XML property: <c>blockRules</c>.
554    *
555    * <h5 class='section'>Property:</h5>
556    * <ul class='spaced-list'>
557    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_blockRules RDF_rdfxml_blockRules}
558    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.blockRules.s"</js>
559    *    <li><b>Data type:</b>  <c>String</c>
560    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.blockRules</c>
561    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_BLOCKRULES</c>
562    *    <li><b>Default:</b>  <js>""</js>
563    *    <li><b>Annotations:</b>
564    *       <ul>
565    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_blockRules()}
566    *       </ul>
567    * </ul>
568    *
569    * <h5 class='section'>Description:</h5>
570    * <p>
571    * A list of <c>Resource</c> or a <c>String</c> being a comma separated list of fragment IDs from
572    * {@doc http://www.w3.org/TR/rdf-syntax-grammar RDF Syntax Grammar} indicating grammar
573    * rules that will not be used.
574    */
575   public static final String RDF_rdfxml_blockRules = PREFIX + ".jena.rdfXml.blockRules.s";
576
577   /**
578    * Configuration property:  N3/Turtle property: <c>minGap</c>.
579    *
580    * <h5 class='section'>Property:</h5>
581    * <ul class='spaced-list'>
582    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_minGap RDF_n3_minGap}
583    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.minGap.i"</js>
584    *    <li><b>Data type:</b>  <jk>int</jk>
585    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.minGap</c>
586    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_MINGAP</c>
587    *    <li><b>Default:</b>  <c>1</c>
588    *    <li><b>Annotations:</b>
589    *       <ul>
590    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_minGap()}
591    *       </ul>
592    * </ul>
593    *
594    * <h5 class='section'>Description:</h5>
595    * <p>
596    * Minimum gap between items on a line.
597    */
598   public static final String RDF_n3_minGap = PREFIX + ".jena.n3.minGap.i";
599
600   /**
601    * Configuration property:  N3/Turtle property: <c>objectLists</c>.
602    *
603    * <h5 class='section'>Property:</h5>
604    * <ul class='spaced-list'>
605    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_objectLists RDF_n3_objectLists}
606    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.objectLists.b"</js>
607    *    <li><b>Data type:</b>  <jk>boolean</jk>
608    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.objectLists</c>
609    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_OBJECTLISTS</c>
610    *    <li><b>Default:</b>  <jk>true</jk>
611    *    <li><b>Annotations:</b>
612    *       <ul>
613    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_objectLists()}
614    *       </ul>
615    * </ul>
616    *
617    * <h5 class='section'>Description:</h5>
618    * <p>
619    * Print object lists as comma separated lists.
620    */
621   public static final String RDF_n3_objectLists = PREFIX + ".jena.n3.objectLists.b";
622
623   /**
624    * Configuration property:  N3/Turtle property: <c>subjectColumn</c>.
625    *
626    * <h5 class='section'>Property:</h5>
627    * <ul class='spaced-list'>
628    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_subjectColumn RDF_n3_subjectColumn}
629    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.subjectColumn.i"</js>
630    *    <li><b>Data type:</b>  <jk>int</jk>
631    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.subjectColumn</c>
632    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_SUBJECTCOLUMN</c>
633    *    <li><b>Default:</b>  indentProperty
634    *    <li><b>Annotations:</b>
635    *       <ul>
636    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_subjectColumn()}
637    *       </ul>
638    * </ul>
639    *
640    * <h5 class='section'>Description:</h5>
641    * <p>
642    * If the subject is shorter than this value, the first property may go on the same line.
643    */
644   public static final String RDF_n3_subjectColumn = PREFIX + ".jena.n3.subjectColumn.i";
645
646   /**
647    * Configuration property:  N3/Turtle property: <c>propertyColumn</c>.
648    *
649    * <h5 class='section'>Property:</h5>
650    * <ul class='spaced-list'>
651    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_propertyColumn RDF_n3_propertyColumn}
652    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.propertyColumn.i"</js>
653    *    <li><b>Data type:</b>  <jk>int</jk>
654    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.propertyColumn</c>
655    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_PROPERTYCOLUMN</c>
656    *    <li><b>Default:</b>  <c>8</c>
657    *    <li><b>Annotations:</b>
658    *       <ul>
659    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_propertyColumn()}
660    *       </ul>
661    * </ul>
662    *
663    * <h5 class='section'>Description:</h5>
664    * <p>
665    * Width of the property column.
666    */
667   public static final String RDF_n3_propertyColumn = PREFIX + ".jena.n3.propertyColumn.i";
668
669   /**
670    * Configuration property:  N3/Turtle property: <c>indentProperty</c>.
671    *
672    * <h5 class='section'>Property:</h5>
673    * <ul class='spaced-list'>
674    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_indentProperty RDF_n3_indentProperty}
675    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.indentProperty.i"</js>
676    *    <li><b>Data type:</b>  <jk>int</jk>
677    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.indentProperty</c>
678    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_INDENTPROPERTY</c>
679    *    <li><b>Default:</b>  <c>6</c>
680    *    <li><b>Annotations:</b>
681    *       <ul>
682    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_indentProperty()}
683    *       </ul>
684    * </ul>
685    *
686    * <h5 class='section'>Description:</h5>
687    * <p>
688    * Width to indent properties.
689    */
690   public static final String RDF_n3_indentProperty = PREFIX + ".jena.n3.indentProperty.i";
691
692   /**
693    * Configuration property:  N3/Turtle property: <c>widePropertyLen</c>.
694    *
695    * <h5 class='section'>Property:</h5>
696    * <ul class='spaced-list'>
697    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_widePropertyLen RDF_n3_widePropertyLen}
698    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.widePropertyLen.i"</js>
699    *    <li><b>Data type:</b>  <jk>int</jk>
700    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.widePropertyLen</c>
701    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_WIDEPROPERTYLEN</c>
702    *    <li><b>Default:</b>  <c>20</c>
703    *    <li><b>Annotations:</b>
704    *       <ul>
705    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_widePropertyLen()}
706    *       </ul>
707    * </ul>
708    *
709    * <h5 class='section'>Description:</h5>
710    * <p>
711    * Width of the property column.
712    * Must be longer than <c>propertyColumn</c>.
713    */
714   public static final String RDF_n3_widePropertyLen = PREFIX + ".jena.n3.widePropertyLen.i";
715
716   /**
717    * Configuration property:  N3/Turtle property: <c>abbrevBaseURI</c>.
718    *
719    * <h5 class='section'>Property:</h5>
720    * <ul class='spaced-list'>
721    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_abbrevBaseUri RDF_n3_abbrevBaseUri}
722    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.abbrevBaseURI.b"</js>
723    *    <li><b>Data type:</b>  <jk>boolean</jk>
724    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.abbrevBaseURI</c>
725    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_ABBREVBASEURI</c>
726    *    <li><b>Default:</b>  <jk>true</jk>
727    *    <li><b>Annotations:</b>
728    *       <ul>
729    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_abbrevBaseUri()}
730    *       </ul>
731    * </ul>
732    *
733    * <h5 class='section'>Description:</h5>
734    * <p>
735    * Control whether to use abbreviations <c>&lt;&gt;</c> or <c>&lt;#&gt;</c>.
736    */
737   public static final String RDF_n3_abbrevBaseUri = PREFIX + ".jena.n3.abbrevBaseURI.b";
738
739   /**
740    * Configuration property:  N3/Turtle property: <c>usePropertySymbols</c>.
741    *
742    * <h5 class='section'>Property:</h5>
743    * <ul class='spaced-list'>
744    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_usePropertySymbols RDF_n3_usePropertySymbols}
745    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.usePropertySymbols.b"</js>
746    *    <li><b>Data type:</b>  <jk>boolean</jk>
747    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.usePropertySymbols</c>
748    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_USEPROPERTYSYMBOLS</c>
749    *    <li><b>Default:</b>  <jk>true</jk>
750    *    <li><b>Annotations:</b>
751    *       <ul>
752    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_usePropertySymbols()}
753    *       </ul>
754    * </ul>
755    *
756    * <h5 class='section'>Description:</h5>
757    * <p>
758    * Control whether to use <c>a</c>, <c>=</c> and <c>=&gt;</c> in output
759    */
760   public static final String RDF_n3_usePropertySymbols = PREFIX + ".jena.n3.usePropertySymbols.b";
761
762   /**
763    * Configuration property:  N3/Turtle property: <c>useTripleQuotedStrings</c>.
764    *
765    * <h5 class='section'>Property:</h5>
766    * <ul class='spaced-list'>
767    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_useTripleQuotedStrings RDF_n3_useTripleQuotedStrings}
768    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.useTripleQuotedStrings.b"</js>
769    *    <li><b>Data type:</b>  <jk>boolean</jk>
770    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.useTripleQuotedStrings</c>
771    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_USETRIPLEQUOTEDSTRINGS</c>
772    *    <li><b>Default:</b>  <jk>true</jk>
773    *    <li><b>Annotations:</b>
774    *       <ul>
775    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_useTripleQuotedStrings()}
776    *       </ul>
777    * </ul>
778    *
779    * <h5 class='section'>Description:</h5>
780    * <p>
781    * Allow the use of <c>"""</c> to delimit long strings.
782    */
783   public static final String RDF_n3_useTripleQuotedStrings = PREFIX + ".jena.n3.useTripleQuotedStrings.b";
784
785   /**
786    * Configuration property:  N3/Turtle property: <c>useDoubles</c>.
787    *
788    * <h5 class='section'>Property:</h5>
789    * <ul class='spaced-list'>
790    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_useDoubles RDF_n3_useDoubles}
791    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.useDoubles.b"</js>
792    *    <li><b>Data type:</b>  <jk>boolean</jk>
793    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.useDoubles</c>
794    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_USEDOUBLES</c>
795    *    <li><b>Default:</b>  <jk>true</jk>
796    *    <li><b>Annotations:</b>
797    *       <ul>
798    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_useDoubles()}
799    *       </ul>
800    * </ul>
801    *
802    * <h5 class='section'>Description:</h5>
803    * <p>
804    * Allow the use doubles as <c>123.456</c>.
805    */
806   public static final String RDF_n3_useDoubles = PREFIX + ".jena.n3.useDoubles.b";
807
808   /**
809    * Configuration property:  RDF format for representing collections and arrays.
810    *
811    * <h5 class='section'>Property:</h5>
812    * <ul class='spaced-list'>
813    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_collectionFormat RDF_collectionFormat}
814    *    <li><b>Name:</b>  <js>"RdfCommon.collectionFormat.s"</js>
815    *    <li><b>Data type:</b>  <c>String</c>
816    *    <li><b>System property:</b>  <c>RdfCommon.collectionFormat</c>
817    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_COLLECTIONFORMAT</c>
818    *    <li><b>Default:</b>  <js>"DEFAULT"</js>
819    *    <li><b>Annotations:</b>
820    *       <ul>
821    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#collectionFormat()}
822    *       </ul>
823    *    <li><b>Methods:</b>
824    *       <ul>
825    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#collectionFormat(RdfCollectionFormat)}
826    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#collectionFormat(RdfCollectionFormat)}
827    *       </ul>
828    * </ul>
829    *
830    * <h5 class='section'>Description:</h5>
831    * <p>
832    * Possible values:
833    * <ul class='spaced-list'>
834    *    <li>
835    *       <js>"DEFAULT"</js> - Default format.  The default is an RDF Sequence container.
836    *    <li>
837    *       <js>"SEQ"</js> - RDF Sequence container.
838    *    <li>
839    *       <js>"BAG"</js> - RDF Bag container.
840    *    <li>
841    *       <js>"LIST"</js> - RDF List container.
842    *    <li>
843    *       <js>"MULTI_VALUED"</js> - Multi-valued properties.
844    * </ul>
845    *
846    * <ul class='notes'>
847    *    <li>
848    *       If you use <js>"BAG"</js> or <js>"MULTI_VALUED"</js>, the order of the elements in the collection will get
849    *       lost.
850    * </ul>
851    */
852   public static final String RDF_collectionFormat = PREFIX + ".collectionFormat.s";
853
854   /**
855    * Configuration property:  Collections should be serialized and parsed as loose collections.
856    *
857    * <h5 class='section'>Property:</h5>
858    * <ul class='spaced-list'>
859    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_looseCollections RDF_looseCollections}
860    *    <li><b>Name:</b>  <js>"RdfCommon.looseCollections.b"</js>
861    *    <li><b>Data type:</b>  <jk>boolean</jk>
862    *    <li><b>System property:</b>  <c>RdfCommon.looseCollections</c>
863    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_LOOSECOLLECTIONS</c>
864    *    <li><b>Default:</b>  <jk>false</jk>
865    *    <li><b>Annotations:</b>
866    *       <ul>
867    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#looseCollections()}
868    *       </ul>
869    *    <li><b>Methods:</b>
870    *       <ul>
871    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#looseCollections(boolean)}
872    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#looseCollections()}
873    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#looseCollections(boolean)}
874    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#looseCollections()}
875    *       </ul>
876    * </ul>
877    *
878    * <h5 class='section'>Description:</h5>
879    * <p>
880    * When specified, collections of resources are handled as loose collections of resources in RDF instead of
881    * resources that are children of an RDF collection (e.g. Sequence, Bag).
882    *
883    * <p>
884    * Note that this setting is specialized for RDF syntax, and is incompatible with the concept of
885    * losslessly representing POJO models, since the tree structure of these POJO models are lost
886    * when serialized as loose collections.
887    *
888    * <p>
889    * This setting is typically only useful if the beans being parsed into do not have a bean property
890    * annotated with {@link Rdf#beanUri @Rdf(beanUri=true)}.
891    *
892    * <h5 class='section'>Example:</h5>
893    * <p class='bcode w800'>
894    *    WriterSerializer s = RdfSerializer.<jsm>create</jsm>().xmlabbrev().looseCollections(<jk>true</jk>).build();
895    *    ReaderParser p = RdfParser.<jsm>create</jsm>().xml().looseCollections(<jk>true</jk>).build();
896    *
897    *    List&lt;MyBean&gt; l = createListOfMyBeans();
898    *
899    *    <jc>// Serialize to RDF/XML as loose resources</jc>
900    *    String rdfXml = s.serialize(l);
901    *
902    *    <jc>// Parse back into a Java collection</jc>
903    *    l = p.parse(rdfXml, LinkedList.<jk>class</jk>, MyBean.<jk>class</jk>);
904    *
905    *    MyBean[] b = createArrayOfMyBeans();
906    *
907    *    <jc>// Serialize to RDF/XML as loose resources</jc>
908    *    String rdfXml = s.serialize(b);
909    *
910    *    <jc>// Parse back into a bean array</jc>
911    *    b = p.parse(rdfXml, MyBean[].<jk>class</jk>);
912    * </p>
913    */
914   public static final String RDF_looseCollections = PREFIX + ".looseCollections.b";
915}