001 /**
002 * Copyright (C) 2007-2011, Jens Lehmann
003 *
004 * This file is part of DL-Learner.
005 *
006 * DL-Learner is free software; you can redistribute it and/or modify
007 * it under the terms of the GNU General Public License as published by
008 * the Free Software Foundation; either version 3 of the License, or
009 * (at your option) any later version.
010 *
011 * DL-Learner is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014 * GNU General Public License for more details.
015 *
016 * You should have received a copy of the GNU General Public License
017 * along with this program. If not, see <http://www.gnu.org/licenses/>.
018 */
019
020 package org.dllearner.core.owl;
021
022 import java.util.Map;
023
024 /**
025 * Restricts the value of an object property to a single individual
026 * (corresponds to owl:hasValue)
027 *
028 * @author Jens Lehmann
029 *
030 */
031 public class ObjectValueRestriction extends ValueRestriction {
032
033 /**
034 *
035 */
036 private static final long serialVersionUID = 2437223709767096950L;
037
038 /**
039 * @param property
040 */
041 public ObjectValueRestriction(Property property, Individual value) {
042 super(property, value);
043 }
044
045 /* (non-Javadoc)
046 * @see org.dllearner.core.owl.Description#toManchesterSyntaxString(java.lang.String, java.util.Map)
047 */
048 @Override
049 public String toManchesterSyntaxString(String baseURI, Map<String, String> prefixes) {
050 return restrictedPropertyExpression.toString(baseURI, prefixes) + " value " + value.toString(baseURI, prefixes);
051 }
052
053 /* (non-Javadoc)
054 * @see org.dllearner.core.owl.Description#getArity()
055 */
056 @Override
057 public int getArity() {
058 return 0;
059 }
060
061 /* (non-Javadoc)
062 * @see org.dllearner.core.owl.KBElement#getLength()
063 */
064 public int getLength() {
065 return 3;
066 }
067
068 /* (non-Javadoc)
069 * @see org.dllearner.core.owl.KBElement#toString(java.lang.String, java.util.Map)
070 */
071 public String toString(String baseURI, Map<String, String> prefixes) {
072 return restrictedPropertyExpression.toString(baseURI, prefixes) + " hasValue " + value.toString(baseURI, prefixes);
073 }
074
075 public String toKBSyntaxString(String baseURI, Map<String, String> prefixes) {
076 return "(" + restrictedPropertyExpression.toKBSyntaxString(baseURI, prefixes) + " HASVALUE " + value.toKBSyntaxString(baseURI, prefixes) + ")";
077 }
078
079 public Individual getIndividual() {
080 return (Individual) value;
081 }
082
083 @Override
084 public void accept(DescriptionVisitor visitor) {
085 visitor.visit(this);
086 }
087
088 public void accept(KBElementVisitor visitor) {
089 visitor.visit(this);
090 }
091 }