public void writePointRdfModel(String specs) throws UnsupportedEncodingException, FileNotFoundException 
  {
    FeatureIterator iterator = featureCollection.features();
    int position = 0;
    long t_start = System.currentTimeMillis();
    long dt = 0;
    
    try 
    {
      System.out.println(UtilsLib.getGMTime() + " Started processing features...");
        
      while(iterator.hasNext()) {
        SimpleFeatureImpl feature = (SimpleFeatureImpl) iterator.next();
        Geometry geometry = (Geometry) feature.getDefaultGeometry();

        //Attempt to transform geometry into the target CRS
        if (transform != null)
	        try {
				geometry = JTS.transform(geometry, transform);
			} catch (Exception e) {
				e.printStackTrace();
			}

        String featureAttribute = "featureWithoutID";

        //Process non-spatial attributes for name and type
        handleNonGeometricAttributes(feature);
        
        if (feature.getAttribute(configuration.attribute) != null) {
          featureAttribute = feature.getAttribute(configuration.attribute).toString();
        }

        if (!featureAttribute.equals(configuration.ignore)) 
        {
          String encodingType =
                  URLEncoder.encode(configuration.type,
                                    UtilsConstants.UTF_8).replace(STRING_TO_REPLACE,
                                                                  REPLACEMENT);
          String encodingResource =
                  URLEncoder.encode(featureAttribute,
                                    UtilsConstants.UTF_8).replace(STRING_TO_REPLACE,
                                                                  REPLACEMENT);
          String aux = encodingType + SEPARATOR + encodingResource;
        
          //Type according to application schema
          insertResourceTypeResource(
                  configuration.nsUri + aux,
                  configuration.nsUri + URLEncoder.encode(
                          configuration.type, UtilsConstants.UTF_8).replace(
                                  STRING_TO_REPLACE, REPLACEMENT));
          
          //Label using the given attribute (usually an id)
          insertLabelResource(configuration.nsUri + aux,
                              featureAttribute, configuration.defaultLang);

          //Point geometries ONLY
          if (geometry.getGeometryType().equals(Constants.POINT)) 
          {
        	  if (specs.equals("Virtuoso"))
        		  insertVirtuosoPoint(aux, geometry);
        	  else if (specs.equals("wgs84_pos"))
        		  insertWGS84Point(aux, geometry);  	  
          }
        } else {
          LOG.log(Level.INFO, "writeRdfModel: Not processing feature attribute in position {0}", position);
        }
        
        if (position%1000 ==0)
        	 System.out.print(UtilsLib.getGMTime() + " Processed " +  position + " records..." + "\r");
        ++position;
      }
    }
    finally {
      iterator.close();
    }
    
    dt = System.currentTimeMillis() - t_start;
    System.out.println(UtilsLib.getGMTime() + " Parsing completed for " + position + " records in " + dt + " ms.");
    System.out.println(UtilsLib.getGMTime() + " Starting to write triplets to file...");
    
    //Count the number of statements
    long numStmt = model.listStatements().toSet().size();
    
    //Export model to a suitable format
    FileOutputStream out = new FileOutputStream(configuration.outputFile);
    model.write(out, configuration.outFormat);
    
    dt = System.currentTimeMillis() - t_start;
    System.out.println(UtilsLib.getGMTime() + " Process concluded in " + dt + " ms. " + numStmt + " triples successfully exported to " + configuration.outFormat + " file: " + configuration.outputFile + ".");
 }