/* * * YAQP - Yet Another QSAR Project: * Machine Learning algorithms designed for the prediction of toxicological * features of chemical compounds become available on the Web. Yaqp is developed * under OpenTox (http://opentox.org) which is an FP7-funded EU research project. * This project was developed at the Automatic Control Lab in the Chemical Engineering * School of National Technical University of Athens. Please read README for more * information. * * Copyright (C) 2009-2010 Pantelis Sopasakis & Charalampos Chomenides * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * Contact: * Pantelis Sopasakis * chvng@mail.ntua.gr * Address: Iroon Politechniou St. 9, Zografou, Athens Greece * tel. +30 210 7723236 */ package org.opentox.ontology.util; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; import org.opentox.config.Configuration; import org.opentox.ontology.util.vocabulary.Audience; import org.restlet.data.MediaType; /** * Meta Data in general based on the Dublin Core Metadata Modeling ontology along with * some other useful metadata such as <code>owl:sameAs</code> and <code>rdfs:seeAlso</code>. * @author Pantelis Sopasakis * @author Charalampos Chomenides */ public class Meta implements Serializable { /** * * A name given to the resource. Typically, a Title will be a name by which * the resource is formally known. */ public String title = ""; /** * * An account of the resource. Description may include but is not limited to: * an abstract, a table of contents, a graphical representation, or a * free-text account of the resource. */ public String description = ""; /** * * The topic of the resource. Typically, the subject will be represented using keywords, * key phrases, or classification codes. Recommended best practice is to use a controlled * vocabulary. To describe the spatial or temporal topic of the resource, use the Coverage element. */ public String subject = ""; /** * * The nature or genre of the resource. Recommended best practice is to use a * controlled vocabulary such as the DCMI Type Vocabulary [DCMITYPE]. To describe * the file format, physical medium, or dimensions of the resource, use the Format element. * @see [DCMITYPE] http://dublincore.org/documents/dcmi-type-vocabulary/ */ public String type = ""; /** * * A related resource from which the described resource is derived. The described * resource may be derived from the related resource in whole or in part. Recommended * best practice is to identify the related resource by means of a string conforming * to a formal identification system. By default this is set to the URI of the server * specified in the <code>server.properties</code> or <code>macos.server.properties</code> * file. */ public String source = "http://"+Configuration.getProperties().getProperty("server.domainName", "opentox.ntua.gr")+":"+ Configuration.getProperties().getProperty("server.port", "3000"); /** * * A related resource. Recommended best practice is to identify the related * resource by means of a string conforming to a formal identification system. * By default this is set to <code>http://opentox.org</code> */ public String relation = "http://opentox.org"; /** * * Information about rights held in and over the resource. Typically, rights * information includes a statement about various property rights associated * with the resource, including intellectual property rights. By default this is * set to <code>http://www.gnu.org/licenses/</code>. */ public String rights = "http://www.gnu.org/licenses/"; /** * * A statement of any changes in ownership and custody of the resource since * its creation that are significant for its authenticity, integrity and * interpretation. The statement may include a description of any changes * successive custodians made to the resource. */ public String provenance = ""; /** * * A class of entity for whom the resource is intended or useful. A class of * entity may be determined by the creator or the publisher or by a third party. * Audience terms are best utilized in the context of formal or informal * controlled vocabularies. None are presently recommended or registered by DCMI, * but several communities of interest are engaged in setting up audience * vocabularies. In the absence of recommended controlled vocabularies, * implementors are encouraged to develop local lists of values, and to use * them consistently. */ public ArrayList<Audience> audience = new ArrayList<Audience>(); /** * * An unambiguous reference to the resource within a given context. Recommended best * practice is to identify the resource by means of a string conforming to a * formal identification system. */ public String identifier = ""; /** * * A point or period of time associated with an event in the lifecycle of the resource. * Date may be used to express temporal information at any level of granularity. * Recommended best practice is to use an encoding scheme, such as the * W3CDTF profile of ISO 8601 [W3CDTF]. * @see http://www.w3.org/TR/NOTE-datetime */ public Date date = GregorianCalendar.getInstance().getTime(); /** * * The file format, physical medium, or dimensions of the resource. Examples of * dimensions include size and duration. Recommended best practice is to use a * controlled vocabulary such as the list of Internet Media Types [MIME]. */ public ArrayList<MediaType> format = new ArrayList<MediaType>(); /** * A language of the resource. Recommended best practice is to use a * controlled vocabulary such as RFC 4646 [RFC4646]. * @see [RFC4646] http://www.ietf.org/rfc/rfc4646.txt */ public Locale language = Locale.ENGLISH; /** * * <p> * An entity primarily responsible for making the resource. * Examples of a Creator include a person, an organization, or a * service. Typically, the name of a Creator should be used to indicate * the entity. * </p> */ public String creator = source; /** * * <p> * An entity responsible for making the resource available. Examples of a Publisher * include a person, an organization, or a service. Typically, the name of a * Publisher should be used to indicate the entity. * </p> */ public String publisher = source; /** * * An entity responsible for making contributions to the resource. */ public String contributor = relation; /** * * <p> * The spatial or temporal topic of the resource, the spatial applicability * of the resource, or the jurisdiction under which the resource is relevant. * Spatial topic and spatial applicability may be a named place or a location * specified by its geographic coordinates. Temporal topic may be a named period, * date, or date range. A jurisdiction may be a named administrative entity or * a geographic place to which the resource applies. Recommended best practice * is to use a controlled vocabulary such as the Thesaurus of Geographic * Names [TGN]. Where appropriate, named places or time periods can be used * in preference to numeric identifiers such as sets of coordinates or date ranges. * </p> * * @see [TGN] http://www.getty.edu/research/tools/vocabulary/tgn/index.html */ public String coverage = ""; /** * * The property rdfs:seeAlso specifies a resource that might provide additional * information about the subject resource. This property may be specialized using * rdfs:subPropertyOf to more precisely indicate the nature of the information the * object resource has about the subject resource. The object and the subject * resources are constrained only to be instances of the class rdfs:Resource. */ public ArrayList<String> seeAlso = new ArrayList<String>(); /** * owl:sameAs property. * <p> * (Documentation copied here from * <a href = "http://www.w3.org/TR/owl-ref/#sameAs-def">W3C Reference</a> * for the Ontology Web Language (OWL) )</p> * </p> * The built-in OWL property owl:sameAs links an individual to an individual. * Such an owl:sameAs statement indicates that two URI references actually * refer to the same thing: the individuals have the same "identity". * </p> * */ public ArrayList<String> sameAs = new ArrayList<String>(); }