@Override
  public void write(final Concept c) throws IOException, ParseException {
    final String id = NS_SNOMED_CONCEPT_IDENTIFIER + ':' + c.getSerialisedId();

    // Master
    writeDatatypeProperties(c, id);

    // Description
    if ((c.getDescription() != null) && !c.getDescription().isEmpty()) {
      for (Description d : c.getDescription()) {
        writer.write(
            id
                + ' '
                + PROPERTY_SNOMED_DESCRIPTION
                + ' '
                + NS_SNOMED_DESCRIPTION_IDENTIFIER
                + ':'
                + d.getSerialisedId()
                + LINE_ENDING);
      }
    }

    // History
    if ((c.getHistory() != null) && !c.getHistory().isEmpty()) {
      int counter = 1;
      for (Concept hc : c.getHistory()) {
        String hid = id + "_h" + counter++;

        writeDatatypeProperties(hc, hid);

        // History Entry
        writer.write(id + ' ' + PROPERTY_SNOMED_HISTORY_ENTRY + ' ' + hid + LINE_ENDING);
      }
    }
  }
 private void parse(Concept c) throws IOException, ParseException {
   write(c);
   if (c.getDescription() != null) {
     for (Description d : c.getDescription()) {
       write(d);
     }
   }
 }