001: /******************************************************************
002: * File: JenaParameters.java
003: * Created by: Dave Reynolds
004: * Created on: 23-Aug-2003
005: *
006: * (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
007: * [See end of file]
008: * $Id: JenaParameters.java,v 1.12 2008/01/02 12:11:34 andy_seaborne Exp $
009: *****************************************************************/package com.hp.hpl.jena.shared.impl;
010:
011: /**
012: * This class holds global, static, configuration parameters that
013: * affect the behaviour of the Jena API. These should not be changed
014: * unless you are sure you know what you are doing and even then
015: * should ideally only be changed before any Models are created or processed.
016: * <p>
017: * These parameters should not be regarded as a stable part of the API. If
018: * we find them being used significantly that probably means they should be
019: * moved to being model-specific rather than global.
020: * </p>
021: * @author <a href="mailto:der@hplb.hpl.hp.com">Dave Reynolds</a>
022: * @version $Revision: 1.12 $ on $Date: 2008/01/02 12:11:34 $
023: */
024: public class JenaParameters {
025:
026: // =======================================================================
027: // Parameters affected handling of typed literals
028:
029: /**
030: * <p> Set this flag to true to cause typed literals to be
031: * validated as they are created. </p>
032: * <p>
033: * RDF does not require ill-formed typed literals to be rejected from a graph
034: * but rather allows them to be included but marked as distinct from
035: * all legally formed typed literals. Jena2 reflects this by optionally
036: * delaying validation of literals against datatype type constraints until
037: * the first access. </p>
038: */
039: public static boolean enableEagerLiteralValidation = false;
040:
041: /**
042: * Set this flag to true to allow language-free, plain literals and xsd:strings
043: * containing the same character sequence to test as sameAs.
044: * <p>
045: * RDF plain literals and typed literals of type xsd:string are distinct, not
046: * least because plain literals may have a language tag which typed literals
047: * may not. However, in the absence of a languge tag it can be convenient
048: * for applications if the java objects representing identical character
049: * strings in these two ways test as semantically "sameAs" each other.
050: * At the time of writing is unclear if such identification would be sanctioned
051: * by the RDF working group. </p>
052: */
053: public static boolean enablePlainLiteralSameAsString = true;
054:
055: /**
056: * Set this flag to true to allow unknown literal datatypes to be
057: * accepted, if false then such literals will throw an exception when
058: * first detected. Note that any datatypes unknown datatypes encountered
059: * whilst this flag is 'true' will be automatically registered (as a type
060: * whose value and lexical spaces are identical). Subsequently turning off
061: * this flag will not unregister those unknown types already encountered.
062: * <p>
063: * RDF allows any URI to be used to indicate a datatype. Jena2 allows
064: * user defined datatypes to be registered but it is sometimes convenient
065: * to be able to process models containing unknown datatypes (e.g. when the
066: * application does not need to touch the value form of the literal). However,
067: * this behaviour means that common errors, such as using the wrong URI for
068: * xsd datatypes, may go unnoticed and throw obscure errors late in processing.
069: * Hence, the default is the require unknown datatypes to be registered.
070: */
071: public static boolean enableSilentAcceptanceOfUnknownDatatypes = true;
072:
073: /**
074: * Set this flag to true to switch on checking of surrounding whitespace
075: * in non-string XSD numeric types. In the false (default) setting then
076: * leading and trailing white space is silently trimmed when parsing an
077: * XSD numberic typed literal.
078: */
079: public static boolean enableWhitespaceCheckingOfTypedLiterals = false;
080:
081: /**
082: * Set this flag to true (default) to hide certain internal nodes from the output
083: * of inference graphs. Some rule sets (notably owl-fb) create blank nodes as
084: * part of their reasoning process. If these match some query they can appear
085: * in the results. Such nodes are recorded as "hidden" and if this flag is set
086: * all triples involving such hidden nodes will be removed from the output - any
087: * indirect consequences will, however, still be visible.
088: */
089: public static boolean enableFilteringOfHiddenInfNodes = true;
090:
091: /**
092: * If this flag is true (default) then attmempts to build an OWL inference
093: * graph over another OWL inference graph will log a warning message.
094: */
095: public static boolean enableOWLRuleOverOWLRuleWarnings = true;
096:
097: /**
098: * If this flag is true (default is false) then bNodes are assigned a
099: * simple count local to this JVM. This is ONLY for use in debugging
100: * systems exhibiting non-deterministic behaviour due to the
101: * time-dependence of UIDs, not for normal production use. In particular, it
102: * breaks the contract that anonIDs should be unique on the same machine: they
103: * will only be unique for this single JVM run.
104: */
105: public static boolean disableBNodeUIDGeneration = false;
106: }
107:
108: /*
109: (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
110: All rights reserved.
111:
112: Redistribution and use in source and binary forms, with or without
113: modification, are permitted provided that the following conditions
114: are met:
115:
116: 1. Redistributions of source code must retain the above copyright
117: notice, this list of conditions and the following disclaimer.
118:
119: 2. Redistributions in binary form must reproduce the above copyright
120: notice, this list of conditions and the following disclaimer in the
121: documentation and/or other materials provided with the distribution.
122:
123: 3. The name of the author may not be used to endorse or promote products
124: derived from this software without specific prior written permission.
125:
126: THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
127: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
128: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
129: IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
130: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
131: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
132: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
133: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
134: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
135: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
136: */
|