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     * Represents an role assertion in a knowledge base / ontology, 
026     * e.g. "heiko is brother of stefan".
027     * 
028     * @author Jens Lehmann
029     *
030     */
031    public class ObjectPropertyAssertion extends PropertyAssertion {
032    
033            /**
034             * 
035             */
036            private static final long serialVersionUID = -7546114914807945292L;
037            private ObjectProperty role;
038            private Individual individual1;
039            private Individual individual2;
040            
041            public ObjectPropertyAssertion(ObjectProperty role, Individual individual1, Individual individual2) {
042                    this.role = role;
043                    this.individual1 = individual1;
044                    this.individual2 = individual2;
045            }
046            
047            public Individual getIndividual1() {
048                    return individual1;
049            }
050    
051            public Individual getIndividual2() {
052                    return individual2;
053            }
054    
055            public ObjectProperty getRole() {
056                    return role;
057            }
058            
059            @Override
060            public void accept(AxiomVisitor visitor) {
061                    visitor.visit(this);
062            }       
063    
064            public int getLength() {
065                    return 2 + role.getLength();
066            }
067    
068            public String toString(String baseURI, Map<String,String> prefixes) {
069                    return role.toString(baseURI, prefixes) + "(" + individual1.toString(baseURI, prefixes) + "," + individual2.toString(baseURI, prefixes) +")";
070            }
071            
072            public String toKBSyntaxString(String baseURI, Map<String,String> prefixes) {
073                    return role.toKBSyntaxString(baseURI, prefixes) + "(" + individual1.toKBSyntaxString(baseURI, prefixes) + "," + individual2.toKBSyntaxString(baseURI, prefixes) +")";
074            }
075            
076            public void accept(KBElementVisitor visitor) {
077                    visitor.visit(this);
078            }
079    
080            /* (non-Javadoc)
081             * @see org.dllearner.core.owl.KBElement#toManchesterSyntaxString(java.lang.String, java.util.Map)
082             */
083            @Override
084            public String toManchesterSyntaxString(String baseURI, Map<String, String> prefixes) {
085                    return "OBJECTPROPERTYASSERTION NOT IMPLEMENTED";
086            }       
087    }