public Pacote stringToPacote(String string) {
    Pacote pacote = new Pacote();
    int indexInicio, indexFim;

    /* Adiciona Nome */
    indexInicio = string.indexOf("#") + 1;
    indexFim = string.indexOf(">");
    String nome = string.substring(indexInicio, indexFim);
    pacote.setNome(nome);

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

    return pacote;
  }
  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();
  }