public List<ReMSerialisation> getReMSerialisations() throws OREException {
    try {
      List<ReMSerialisation> serialisations = new ArrayList<ReMSerialisation>();
      StmtIterator itr = res.listProperties(ORE.isDescribedBy);
      while (itr.hasNext()) {
        Statement statement = itr.nextStatement();
        Resource resource = (Resource) statement.getObject();
        StmtIterator itr2 = resource.listProperties(DC.format);
        StmtIterator itr3 = resource.listProperties(OREX.isAuthoritativeFor);
        String mime = "application/octet-stream";
        if (itr2.hasNext()) {
          Statement stmt = itr2.nextStatement();
          mime = ((Literal) stmt.getObject()).getLexicalForm();
        }
        boolean authoritative = false;
        if (itr3.hasNext()) {
          authoritative = true;
        }
        ReMSerialisation serialisation = new ReMSerialisation(mime, new URI(resource.getURI()));
        serialisation.setAuthoritative(authoritative);

        serialisations.add(serialisation);
      }
      return serialisations;
    } catch (URISyntaxException e) {
      throw new OREException(e);
    }
  }
  public void addReMSerialisation(ReMSerialisation serialisation) throws OREException {
    URI uri = serialisation.getURI();
    ResourceMap rem = this.getResourceMap(uri);
    if (rem != null) {
      return;
    }
    this.addResourceMapURI(uri);

    String mime = serialisation.getMimeType();
    if (mime == null) {
      mime = "application/octet-stream";
    }
    Literal literal = model.createTypedLiteral(mime);
    Statement statement =
        model.createStatement(model.getResource(uri.toString()), DC.format, literal);
    model.add(statement);
  }