All Downloads are FREE. Search and download functionalities are using the official Maven repository.

eu.freme.common.conversion.rdf.RDFConstants Maven / Gradle / Ivy

/**
 * Copyright © 2015 Agro-Know, Deutsches Forschungszentrum für Künstliche Intelligenz, iMinds,
 * Institut für Angewandte Informatik e. V. an der Universität Leipzig,
 * Istituto Superiore Mario Boella, Tilde, Vistatec, WRIPL (http://freme-project.eu)
 *
 * Licensed 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
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package eu.freme.common.conversion.rdf;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 * @author Jan Nehring - [email protected]
 */
public class RDFConstants {

	// nif versions
	public static final String nifVersion2_0 = "2.0";
	public static final String nifVersion2_1 = "2.1";

	//There is only one prefix for nifVersion 2.0 and 2.1
	public static final String nifPrefix = "http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#";

	public static final String itsrdfPrefix = "http://www.w3.org/2005/11/its/rdf#";
	public static final String xsdPrefix = "http://www.w3.org/2001/XMLSchema#";
	public static final String typePrefix = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
	public static final String dcPrefix = "http://purl.org/dc/elements/1.1/";

	public static final String fremePrefix = "http://freme-project.eu/";

	// used in a nif 2.1 file, i.e. nif:predLang isolang:eng
	public static final String isolangPrefix = "http://www.lexvo.org/id/iso639-3/";

	public static final String nifAnnotationPrefix = "http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-annotation#";

	// Properties
	public static final String IS_STRING = "isString";
	public static final String ANCHOR_OF = "anchorOf";
	public static final String BEGIN_INDEX = "beginIndex";
	public static final String END_INDEX = "endIndex";
	public static final String IDENTIFIER = "identifier";
	public static final String PRED_LANG = "predLang";
	public static final String ANNOTATION_UNIT = "annotationUnit";
	public static final String REFERENCE_CONTEXT = "referenceContext";
	public static final String WAS_CONVERTED_FROM = "wasConvertedFrom";
	public static final String TARGET = "target";
	public static final String TA_ANNOTATORS_REF = "taAnnotatorsRef";

	public static final String NIF20_OFFSET = "#char=";
	public static final String NIF21_OFFSET = "#offset_";

	// These should not be used anymore as the nifPrefix can be one of nifPrefix_2_0 and nifPrefix
	@Deprecated
	public static final String WAS_CONVERTED_FROM_PROP = nifPrefix + WAS_CONVERTED_FROM;
	@Deprecated
	public static final String IS_STRING_PROP = nifPrefix + IS_STRING;
	@Deprecated
	public static final String ANCHOR_OF_PROP = nifPrefix + ANCHOR_OF;

	// Types
	public static final String NIF20_STRINGS_IDENTIFIER = "RFC5147String";
	public static final String NIF21_STRINGS_IDENTIFIER = "OffsetBasedString";
	public static final String NIF_STRING_TYPE = "String";
	public static final String NIF_CONTEXT_TYPE = "Context";
	public static final String NIF_PHRASE_TYPE = "Phrase";

	// Prefixes
	public static final String NIF_PREFIX = "nif";
	public static final String ISOLANG_PREFIX = "isolang";
	public static final String XSD_PREFIX = "xsd";
	public static final String ITS_RDF_PREFIX = "itsrdf";
	public static final String DC_PREFIX = "dc";

	// Serialization formats
	public static final String TURTLE = "text/turtle";
	public static final String JSON_LD = "application/ld+json";
	public static final String RDF_XML = "application/rdf+xml";
	public static final String N3 = "text/n3";
	public static final String N_TRIPLES = "application/n-triples";

	public static final Set SERIALIZATION_FORMATS = new HashSet<>(Arrays.asList(new String[]{
			TURTLE, JSON_LD, RDF_XML, N3, N_TRIPLES
	}));

	/**
	 * @deprecated use string constants like in {@link #SERIALIZATION_FORMATS}
	 * or {@link eu.freme.common.conversion.SerializationFormatMapper#PLAINTEXT} and {@link eu.freme.common.conversion.SerializationFormatMapper#JSON} instead
	 */
	@Deprecated
	public enum RDFSerialization {
		TURTLE("text/turtle"),
		JSON_LD("application/ld+json"),
		PLAINTEXT("text/plain"),
		RDF_XML("application/rdf+xml"),
		N3("text/n3"),
		N_TRIPLES("application/n-triples"),
		JSON("application/json"),
		HTML("text/html"),
		CSV("text/comma-separated-values"),
		XML("text/xml");

		private final String contentType;

		RDFSerialization(String contentType) {
			this.contentType = contentType;
		}

		public String contentType() {
			return contentType;
		}

		/**
		 * Given a textual content type, return its RDFSerialization object.
		 * @param contentType	The content type, in textual format.
		 * @return				The corresponding RDFSerialization object, or {@code null} if nothing found
		 */
		public static RDFSerialization fromValue(final String contentType) {
			String normalizedContentType = contentType.toLowerCase();

			// chop off everything beginning from ';'. An example is "text/turtle; charset=UTF-8"
			int indexOfSemicolon = normalizedContentType.indexOf(';');
			if (indexOfSemicolon >= 0) {
				normalizedContentType = normalizedContentType.substring(0, indexOfSemicolon);
			}

			// now find the matching value
			for (RDFSerialization rdfSerialization : RDFSerialization.values()) {
				if (rdfSerialization.contentType().equals(normalizedContentType)) {
					return rdfSerialization;
				}
			}
			return null;
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy