2ronwalf// The MIT License
2ronwalf//
2ronwalf// Copyright (c) 2004 Evren Sirin
2ronwalf//
2ronwalf// Permission is hereby granted, free of charge, to any person obtaining a copy
2ronwalf// of this software and associated documentation files (the "Software"), to
2ronwalf// deal in the Software without restriction, including without limitation the
2ronwalf// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
2ronwalf// sell copies of the Software, and to permit persons to whom the Software is
2ronwalf// furnished to do so, subject to the following conditions:
2ronwalf//
2ronwalf// The above copyright notice and this permission notice shall be included in
2ronwalf// all copies or substantial portions of the Software.
2ronwalf//
2ronwalf// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2ronwalf// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2ronwalf// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2ronwalf// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2ronwalf// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2ronwalf// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
2ronwalf// IN THE SOFTWARE.
2ronwalf
2ronwalf/*
2ronwalf * Created on Dec 27, 2003
2ronwalf *
2ronwalf */
2ronwalfpackage org.mindswap.owls.profile;
2ronwalf
2ronwalfimport java.net.URI;
2ronwalf
2ronwalfimport org.mindswap.owl.OWLDataValueList;
2ronwalfimport org.mindswap.owl.OWLIndividual;
2ronwalfimport org.mindswap.owl.OWLIndividualList;
2ronwalfimport org.mindswap.owl.OWLObjectProperty;
2ronwalfimport org.mindswap.owls.process.Input;
2ronwalfimport org.mindswap.owls.process.InputList;
2ronwalfimport org.mindswap.owls.process.MultiConditional;
2ronwalfimport org.mindswap.owls.process.Output;
2ronwalfimport org.mindswap.owls.process.OutputList;
2ronwalfimport org.mindswap.owls.process.Process;
2ronwalfimport org.mindswap.owls.process.Result;
2ronwalfimport org.mindswap.owls.process.ResultList;
2ronwalfimport org.mindswap.owls.service.Service;
2ronwalf
2ronwalf/**
2ronwalf * Represents the OWL-S profile.
2ronwalf *
2ronwalf * OWL-S concept: http://www.daml.org/services/owl-s/1.0/Profile.owl#Profile
2ronwalf *
2ronwalf * @author Evren Sirin
2ronwalf *
2ronwalf */
2ronwalfpublic interface Profile extends OWLIndividual, MultiConditional {
2ronwalf /**
2ronwalf * Get the service this profile presents
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public Service getService();
2ronwalf
2ronwalf /**
2ronwalf * Set the service this profile presents
2ronwalf *
2ronwalf * @param service
2ronwalf */
2ronwalf public void setService(Service service);
14daenzerorama
14daenzerorama /**
14daenzerorama * Removes the service by breaking the link <code>service:presentedBy</code>.
14daenzerorama * The service itself remains untouched.
14daenzerorama *
14daenzerorama */
14daenzerorama public void removeService();
2ronwalf
2ronwalf /**
2ronwalf * Get the process associated with this profile. This process is the one that is the
2ronwalf * value of profile:has_process parameter
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public Process getProcess();
2ronwalf
2ronwalf /**
2ronwalf * Set profile's text description. No language identifier will be used.
2ronwalf *
2ronwalf * @param desc
2ronwalf */
2ronwalf public void setTextDescription(String desc);
2ronwalf
2ronwalf /**
2ronwalf * Get profile's text description. See {@link org.mindswap.owl.OWLConfig#DEFAULT_LANGS OWLConfig}
2ronwalf * to learn how the language identifiers will be resolved when searching for a text description.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public String getTextDescription();
2ronwalf
2ronwalf /**
2ronwalf * Get profile's text description. The associated textDescription should have the same language
2ronwalf * identifier as given in the parameter. If a textDescription for that labguage is not found null
2ronwalf * value will be returned even if there is another textDescription with a different language
2ronwalf * identifier.
2ronwalf *
2ronwalf * @param lang
2ronwalf * @return
2ronwalf */
2ronwalf public String getTextDescription(String lang);
2ronwalf
2ronwalf /**
2ronwalf * Return all text descriptions written in any language.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataValueList getTextDescriptions();
2ronwalf
2ronwalf /**
2ronwalf * Get the service name defined in the profile. See {@link org.mindswap.owl.OWLConfig#DEFAULT_LANGS OWLConfig}
2ronwalf * to learn how the language identifiers will be resolved when searching for a name.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public String getServiceName();
2ronwalf
2ronwalf /**
2ronwalf * Get the service name defined in the profile. The associated serviceName should have the same
2ronwalf * language identifier as given in the parameter. If a serviceName for that language is not found
2ronwalf * null value will be returned even if there is another serviceName with a different language
2ronwalf * identifier.
2ronwalf *
2ronwalf * @param lang
2ronwalf * @return
2ronwalf */
2ronwalf public String getServiceName(String lang);
2ronwalf
2ronwalf /**
2ronwalf * Return all service names written in any language.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataValueList getServiceNames();
2ronwalf
2ronwalf /**
2ronwalf * Set the service name. No language identifier will be used.
2ronwalf *
2ronwalf * @param desc
2ronwalf */
2ronwalf public void setServiceName(String desc);
2ronwalf
2ronwalf public void addInput(Input input);
2ronwalf
2ronwalf public void addOutput(Output output);
2ronwalf
24daenzerorama public void addInputs(InputList inputs);
24daenzerorama
24daenzerorama public void addOutputs(OutputList inputs);
24daenzerorama
2ronwalf public void addResult(Result result);
2ronwalf
2ronwalf public void setResult(Result result);
2ronwalf
2ronwalf /**
2ronwalf * Get the inputs for this profile.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public InputList getInputs();
2ronwalf
2ronwalf /**
2ronwalf * Get the outputs for this profile.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public OutputList getOutputs();
2ronwalf
2ronwalf /**
2ronwalf * Get the results for this profile.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public ResultList getResults();
2ronwalf
2ronwalf /**
2ronwalf * Get the result for this profile. In case there are multiple results defined for this
2ronwalf * profile a random one is returned
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public Result getResult();
2ronwalf
2ronwalf /**
2ronwalf * getCategory
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public ServiceCategory getCategory();
2ronwalf
2ronwalf /**
2ronwalf * Get the list of all categories defined for this profile.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividualList getCategories();
2ronwalf
2ronwalf /**
2ronwalf * Add a new category for this profile.
2ronwalf *
2ronwalf * @param category
2ronwalf */
2ronwalf public void addCategory(ServiceCategory category);
2ronwalf
2ronwalf /**
2ronwalf * Set the category for this profile (remove any previous cateogry)
2ronwalf * @param category
2ronwalf */
2ronwalf public void setCategory(ServiceCategory category);
2ronwalf
2ronwalf /**
2ronwalf * getContactInfo
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public Actor getContactInfo();
2ronwalf
2ronwalf /**
2ronwalf * Get all the contact info values
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividualList getContactInfos();
2ronwalf
2ronwalf public void addContactInfo(Actor actor);
2ronwalf
2ronwalf public void setContactInfo(Actor actor);
2ronwalf
2ronwalf /**
2ronwalf * getServiceParameters
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividualList getServiceParameters();
2ronwalf
2ronwalf /**
2ronwalf * getServiceParameter
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public ServiceParameter getServiceParameter(OWLObjectProperty prop);
2ronwalf
2ronwalf public ServiceParameter getServiceParameter(String name);
2ronwalf
2ronwalf public OWLIndividual getServiceParameterValue(OWLObjectProperty prop);
2ronwalf
2ronwalf public OWLIndividual getServiceParameterValue(String name);
2ronwalf
2ronwalf public void addServiceParameter(ServiceParameter serviceParam);
2ronwalf
2ronwalf public ServiceParameter createServiceParameter( OWLObjectProperty prop, OWLIndividual sParameter );
2ronwalf
2ronwalf public ServiceParameter createServiceParameter( String name, OWLIndividual sParameter );
2ronwalf
2ronwalf /**
2ronwalf * @deprecated Use createServiceParameter(OWLObjectProperty, OWLIndividual) instead.
2ronwalf */
2ronwalf public void addServiceParameterValue(OWLObjectProperty prop, OWLIndividual value);
2ronwalf
2ronwalf /**
2ronwalf * @deprecated Use createServiceParameter(String, OWLIndividual) instead.
2ronwalf */
2ronwalf public void addServiceParameterValue(String name, OWLIndividual value);
2ronwalf
2ronwalf public URI getServiceProduct();
2ronwalf public OWLDataValueList getServiceProducts();
2ronwalf public void addServiceProduct(URI product);
2ronwalf public void setServiceProduct(URI product);
2ronwalf
2ronwalf public URI getServiceClassification();
2ronwalf public OWLDataValueList getServiceClassifications();
2ronwalf public void addServiceClassification(URI classification);
2ronwalf public void setServiceClassification(URI classification);
14daenzerorama
14daenzerorama /**
14daenzerorama * Removes the given input by breaking the property <code>process:hasInput</code>
14daenzerorama * The input itself is not touched at all.
14daenzerorama *
14daenzerorama * @param input the input to remove
14daenzerorama */
14daenzerorama public void removeInput(Input input);
14daenzerorama
14daenzerorama /**
14daenzerorama * Removes all inputs from the process by breaking the property <code>process:hasInput</code>
14daenzerorama * The inputs themselves are not touched at all.
14daenzerorama */
14daenzerorama public void removeInputs();
14daenzerorama
14daenzerorama /**
14daenzerorama * Removes the given output by breaking the property <code>process:hasOutput</code>
14daenzerorama * The output itself is not touched at all.
14daenzerorama *
14daenzerorama * @param output the output to remove
14daenzerorama */
14daenzerorama public void removeOutput(Output output);
14daenzerorama
14daenzerorama /**
14daenzerorama * Removes all outputs from the process by breaking the property <code>process:hasOutput</code>
14daenzerorama * The outputs themselves are not touched at all.
14daenzerorama */
14daenzerorama public void removeOutputs();
14daenzerorama
14daenzerorama /**
14daenzerorama * Removes the given result by breaking the property <code>process:hasResult</code>
14daenzerorama * The result itself is not touched at all.
14daenzerorama *
14daenzerorama * @param result the output to remove
14daenzerorama */
14daenzerorama public void removeResult(Result result);
14daenzerorama
14daenzerorama /**
14daenzerorama * Removes all results from the process by breaking the property <code>process:hasResult</code>
14daenzerorama * The results themselves are not touched at all.
14daenzerorama */
14daenzerorama public void removeResults();
14daenzerorama
14daenzerorama /**
14daenzerorama * Deletes the given input from the ontology
14daenzerorama *
14daenzerorama * @param input the input to delete
14daenzerorama */
14daenzerorama public void deleteInput(Input input);
14daenzerorama
14daenzerorama /**
14daenzerorama * Deletes all inputs of this process from the ontology
14daenzerorama */
14daenzerorama public void deleteInputs();
14daenzerorama
14daenzerorama /**
14daenzerorama * Deletes the given output from the ontology
14daenzerorama *
14daenzerorama * @param output the output to delete
14daenzerorama */
14daenzerorama public void deleteOutput(Output output);
14daenzerorama
14daenzerorama /**
14daenzerorama * Deletes all outputs of this process from the ontology
14daenzerorama */
14daenzerorama public void deleteOutputs();
14daenzerorama
14daenzerorama /**
14daenzerorama * Deletes the given result from the ontology
14daenzerorama *
14daenzerorama * @param result the result to delete
14daenzerorama */
14daenzerorama public void deleteResult(Result result);
14daenzerorama
14daenzerorama /**
14daenzerorama * Deletes all results of this process from the ontology
14daenzerorama */
14daenzerorama public void deleteResults();
2ronwalf}