public void recuperarDados(String enderecoBase, String repositorio, String projetoNome) {
    modelo = recuperaModeloSemantico(repositorio, enderecoBase);

    projeto = new Projeto();
    projeto.setNome(projetoNome);
    projeto.setDescricao("Projeto importado da PGDS");
    projetoDao.salvar(projeto);

    pacoteDefault = new Pacote();
    pacoteDefault.setNome("Default");
    pacoteDefault.setProjeto(projeto);
    pacoteDao.salvar(pacoteDefault);

    StringBuilder sparl = new StringBuilder();

    /* Importa Classes */
    sparl.append(" PREFIX onto: <http://localhost/ontologies/SE/onto.owl#> ");
    sparl.append(" PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ");
    sparl.append("select distinct ?individuo");
    sparl.append(" WHERE { ");
    sparl.append(" ?individuo rdf:type onto:Classe");
    sparl.append(" . ");
    sparl.append("} order by ?individuo");

    List<String> classes = converteRetornoSparql(ExecuteQueryByModel(sparl.toString(), modelo));
    for (String string : classes) {
      classeDao.salvar(stringToClasse(string));
    }

    /* Importa Módulos */
    sparl = new StringBuilder();
    sparl.append(" PREFIX onto: <http://localhost/ontologies/SE/onto.owl#> ");
    sparl.append(" PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ");
    sparl.append("select distinct ?individuo ?descricao ?pacote");
    sparl.append(" WHERE { ");
    sparl.append(" ?individuo rdf:type onto:Modulo");
    sparl.append(" . ");
    sparl.append("?individuo onto:descricao ?descricao");
    sparl.append(" . ");
    sparl.append("} order by ?individuo");

    List<String> pacotes = converteRetornoSparql(ExecuteQueryByModel(sparl.toString(), modelo));
    for (String string : pacotes) {
      pacoteDao.salvar(stringToPacote(string));
    }

    /* Importa Casos de Uso */
    sparl = new StringBuilder();
    sparl.append(" PREFIX onto: <http://localhost/ontologies/SE/onto.owl#> ");
    sparl.append(" PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ");
    sparl.append("select distinct ?individuo ?descricao ?pacote");
    sparl.append(" WHERE { ");
    sparl.append(" ?individuo rdf:type onto:CasoUso");
    sparl.append(" . ");
    sparl.append("?individuo onto:descricao ?descricao");
    sparl.append(" . ");
    sparl.append("?individuo onto:prioridade ?pacote");
    sparl.append(" . ");
    sparl.append("} order by ?individuo");

    List<String> casosUso = converteRetornoSparql(ExecuteQueryByModel(sparl.toString(), modelo));
    for (String string : casosUso) {
      casoUsoDao.salvar(stringToCasoUso(string));
    }

    /* Importa Requisitos */
    sparl = new StringBuilder();
    sparl.append(" PREFIX onto: <http://localhost/ontologies/SE/onto.owl#> ");
    sparl.append(" PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ");
    sparl.append("select distinct ?individuo ?descricao ?prioridade");
    sparl.append(" WHERE { ");
    sparl.append(" ?individuo rdf:type onto:Requisito");
    sparl.append(" . ");
    sparl.append("?individuo onto:descricao ?descricao");
    sparl.append(" . ");
    sparl.append("?individuo onto:prioridade ?prioridade");
    sparl.append(" . ");
    sparl.append("} order by ?individuo");

    List<String> requisitos = converteRetornoSparql(ExecuteQueryByModel(sparl.toString(), modelo));
    for (String string : requisitos) {
      requisitoDao.salvar(stringToRequisito(string));
    }
    // adicionaDependenciasEntreRequisitos();
  }
  public Requisito stringToRequisito(String string) {
    Requisito requisito = new Requisito();
    int indexInicio, indexFim;

    /* Adiciona Identificador */
    indexInicio = string.indexOf("#") + 1;
    indexFim = string.indexOf(">");
    String identificador = string.substring(indexInicio, indexFim);
    requisito.setIdentificador(identificador);

    /* Adiciona Descrição */
    indexInicio = string.indexOf("\"", string.indexOf("?descricao"));
    indexFim = string.indexOf("^^", indexInicio);
    String descricao = string.substring(indexInicio + 1, indexFim - 1);
    requisito.setDescricao(descricao);

    /* Adiciona Prioridade */
    indexInicio = string.indexOf("\"", string.indexOf("?prioridade"));
    indexFim = string.indexOf("^^", indexInicio);
    String prioridade = string.substring(indexInicio + 1, indexFim - 1);
    if (prioridade.equals("Alta")) {
      requisito.setPrioridade(Prioridade.ALTA);
    } else {
      if (prioridade.equals("Baixa")) {
        requisito.setPrioridade(Prioridade.BAIXA);
      } else {
        requisito.setPrioridade(Prioridade.MEDIA);
      }
    }

    /* Adiciona Responsável */
    Set<RecursoHumano> responsaveis = new HashSet<RecursoHumano>();
    responsaveis.add(NucleoContexto.recuperarUsuarioLogado().getRecursoHumano());
    requisito.setResponsaveis(responsaveis);

    /* Adiciona Projeto */
    requisito.setProjeto(projeto);

    /* Adiciona Tipo de Requisito */
    if (requisito.getIdentificador().contains("RF")) {
      requisito.setTipoRequisito(TipoRequisito.FUNCIONAL);
    } else {
      if (requisito.getIdentificador().contains("RNF")) {
        requisito.setTipoRequisito(TipoRequisito.NAOFUNCIONAL);
      } else {
        requisito.setTipoRequisito(TipoRequisito.REGRADENEGOCIO);
      }
    }

    StringBuilder sparl;

    /* Adiciona Casos de Uso */
    sparl = new StringBuilder();
    sparl.append(" PREFIX onto: <http://localhost/ontologies/SE/onto.owl#> ");
    sparl.append(" PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ");
    sparl.append("select distinct ?casouso");
    sparl.append(" WHERE { ");
    sparl.append(" ?individuo rdf:type onto:Requisito");
    sparl.append(" . ");
    sparl.append(" ?individuo onto:atendidoPorCasoUso ?casouso");
    sparl.append(" . ");
    sparl.append(" ?individuo ?p onto:" + requisito.getIdentificador());
    sparl.append("} order by ?casouso");

    List<String> casosUsoString =
        converteRetornoSparql(ExecuteQueryByModel(sparl.toString(), modelo));
    Set<CasoUso> casosUso = new HashSet<CasoUso>();
    for (String string2 : casosUsoString) {
      casosUso.add(casoUsoDao.obterPorNomeEProjeto(string2, projeto));
    }
    requisito.setCasosUso(casosUso);

    /* Adiciona Pacote */
    Set<Pacote> pacotes = new HashSet<Pacote>();
    pacotes.add(pacoteDefault);
    requisito.setPacotes(pacotes);

    /*Adiciona Data de Criação*/
    requisito.setDataCriacao(new Date());

    return requisito;
  }