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

org.semanticweb.owlapi.model.SWRLDataFactory Maven / Gradle / Ivy

There is a newer version: 5.5.1
Show newest version
/*
 * This file is part of the OWL API.
 *
 * The contents of this file are subject to the LGPL License, Version 3.0.
 *
 * Copyright (C) 2011, The University of Manchester
 *
 * 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/.
 *
 *
 * Alternatively, the contents of this file may be used under the terms of the Apache License, Version 2.0
 * in which case, the provisions of the Apache License Version 2.0 are applicable instead of those above.
 *
 * Copyright 2011, University of Manchester
 *
 * 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 org.semanticweb.owlapi.model;

import java.util.List;
import java.util.Set;

/**
 * An interface to a factory that can create SWRL objects.
 * 
 * @author Matthew Horridge, The University Of Manchester, Medical Informatics
 *         Group, Date: Jan 15, 2007
 */
public interface SWRLDataFactory {

    /**
     * @deprecated Use either
     *             {@link #getSWRLRule(java.util.Set, java.util.Set, java.util.Set)}
     *             or {@link #getSWRLRule(java.util.Set, java.util.Set)}
     *             instead.
     * @param iri
     *        The iri of the rule - NOTE THAT THIS PARAMETER WILL BE IGNORED
     * @param body
     *        The atoms that make up the body of the rule
     * @param head
     *        The atoms that make up the head of the rule
     * @return A rule with the specified body and head
     */
    @Deprecated
    SWRLRule getSWRLRule(IRI iri, Set body,
            Set head);

    /**
     * @deprecated Use either
     *             {@link #getSWRLRule(java.util.Set, java.util.Set, java.util.Set)}
     *             or {@link #getSWRLRule(java.util.Set, java.util.Set)}
     *             instead.
     * @param nodeID
     *        The node ID - NOTE THAT THIS PARAMETER WILL BE IGNORED
     * @param body
     *        The atoms that make up the body of the rule
     * @param head
     *        The atoms that make up the head of the rule
     * @return A rule with the specified body and heat
     */
    @Deprecated
    SWRLRule getSWRLRule(NodeID nodeID, Set body,
            Set head);

    /**
     * Gets an anonymous SWRL Rule.
     * 
     * @param body
     *        The atoms that make up the body
     * @param head
     *        The atoms that make up the head
     * @return An anonymous rule with the specified body and head
     */
    SWRLRule getSWRLRule(Set body,
            Set head);

    /**
     * Gets an anonymous SWRL Rule.
     * 
     * @param body
     *        The atoms that make up the body
     * @param head
     *        The atoms that make up the head
     * @param annotations
     *        The annotations for the rule (may be an empty set)
     * @return An anonymous rule with the specified body and head
     */
    SWRLRule getSWRLRule(Set body,
            Set head, Set annotations);

    /**
     * Gets a SWRL atom where the predicate is a class expression i.e. C(x)
     * where C is a class expression and x is either an individual or a variable
     * for an individual
     * 
     * @param predicate
     *        The class expression that represents the predicate of the atom
     * @param arg
     *        The argument (x)
     * @return The class atom with the specified class expression predicate and
     *         the specified argument.
     */
    SWRLClassAtom getSWRLClassAtom(OWLClassExpression predicate,
            SWRLIArgument arg);

    /**
     * Gets a SWRL atom where the predicate is a data range, i.e. D(x) where D
     * is an OWL data range and x is either a literal or variable for a literal
     * 
     * @param predicate
     *        The data range that represents the predicate of the atom
     * @param arg
     *        The argument (x)
     * @return An atom with the specified data range predicate and the specified
     *         argument
     */
    SWRLDataRangeAtom getSWRLDataRangeAtom(OWLDataRange predicate,
            SWRLDArgument arg);

    /**
     * Gets a SWRL object property atom, i.e. P(x, y) where P is an OWL object
     * property (expression) and x and y are are either individuals or variables
     * for individuals.
     * 
     * @param property
     *        The property (P) representing the atom predicate
     * @param arg0
     *        The first argument (x)
     * @param arg1
     *        The second argument (y)
     * @return A SWRLObjectPropertyAtom that has the specified predicate and the
     *         specified arguments
     */
    SWRLObjectPropertyAtom getSWRLObjectPropertyAtom(
            OWLObjectPropertyExpression property, SWRLIArgument arg0,
            SWRLIArgument arg1);

    /**
     * Gets a SWRL data property atom, i.e. R(x, y) where R is an OWL data
     * property (expression) and x and y are are either literals or variables
     * for literals
     * 
     * @param property
     *        The property (P) that represents the atom predicate
     * @param arg0
     *        The first argument (x)
     * @param arg1
     *        The second argument (y)
     * @return A SWRLDataPropertyAtom that has the specified predicate and the
     *         specified arguments
     */
    SWRLDataPropertyAtom getSWRLDataPropertyAtom(
            OWLDataPropertyExpression property, SWRLIArgument arg0,
            SWRLDArgument arg1);

    /**
     * Creates a SWRL Built-In atom. Builtins have predicates that are
     * identified by IRIs. SWRL provides a core set of builtins, which are
     * described in the OWL API by the
     * {@link org.semanticweb.owlapi.vocab.SWRLBuiltInsVocabulary}.
     * 
     * @param builtInIRI
     *        The builtin predicate IRI
     * @param args
     *        A non-empty set of SWRL Arguments.
     * @throws IllegalArgumentException
     *         if the list of arguments is empty
     * @return A SWRLBuiltInAtom whose predicate is identified by the specified
     *         builtInIRI and that has the specified arguments
     */
    SWRLBuiltInAtom
            getSWRLBuiltInAtom(IRI builtInIRI, List args);

    /**
     * Gets a SWRLVariable.
     * 
     * @param var
     *        The id (IRI) of the variable
     * @return A SWRLVariable that has the name specified by the IRI
     */
    SWRLVariable getSWRLVariable(IRI var);

    /**
     * Gets a SWRLIndividualArgument, which is used to wrap and OWLIndividual as
     * an argument for an atom.
     * 
     * @param individual
     *        The individual that is the object argument
     * @return A SWRLIndividualArgument that wraps the specified individual
     */
    SWRLIndividualArgument getSWRLIndividualArgument(OWLIndividual individual);

    /**
     * Gets a SWRLLiteralArgument, which is used to wrap an OWLLiteral to
     * provide an argument for an atom.
     * 
     * @param literal
     *        The constant that is the object argument
     * @return A SWRLLiteralArgument that wraps the specified literal
     */
    SWRLLiteralArgument getSWRLLiteralArgument(OWLLiteral literal);

    /**
     * @param arg0
     *        first individual
     * @param arg1
     *        second individual
     * @return a sameindividual atom
     */
    SWRLSameIndividualAtom getSWRLSameIndividualAtom(SWRLIArgument arg0,
            SWRLIArgument arg1);

    /**
     * @param arg0
     *        first individual
     * @param arg1
     *        second individual
     * @return a differentindividual atom
     */
    SWRLDifferentIndividualsAtom getSWRLDifferentIndividualsAtom(
            SWRLIArgument arg0, SWRLIArgument arg1);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy