private String convertProduct(Product product)
	{
		StringBuffer result = new StringBuffer();
		//First the uriref for the subject
		result.append(startTagWA(3, "Product", "id", new Integer(product.getNr()).toString()));

		//rdfs:label
		result.append(leafTag(4, "label", product.getLabel()));
		
		//rdfs:comment
		result.append(leafTag(4, "comment", product.getComment()));
		
		//rdf:type for product types 
		if(forwardChaining) {
			ProductType pt = product.getProductType();
			while(pt!=null) {
				result.append(leafTag(4, "type", new Integer(pt.getNr()).toString()));
				pt = pt.getParent();
			}
		}
		else {
			result.append(leafTag(4, "type", new Integer(product.getProductType().getNr()).toString()));
		}
		
		//bsbm:producer
		result.append(leafTag(4, "producer", new Integer(product.getProducer()).toString()));
		
		//bsbm:productPropertyNumeric
		Integer[] ppn = product.getProductPropertyNumeric();
		for(Integer i=0,j=1;i<ppn.length;i++,j++)
		{
			Integer value = ppn[i];
			if(value!=null)
				result.append(leafTagWA(4, "ProductPropertyNumeric", value.toString(), "nr", i.toString()));
		}
		
		//bsbm:productPropertyTextual
		String[] ppt = product.getProductPropertyTextual();
		for(Integer i=0,j=1;i<ppt.length;i++,j++)
		{
			String value = ppt[i];
			if(value!=null)
				result.append(leafTagWA(4, "ProductPropertyTextual", value, "nr", i.toString()));
		}
		
		//bsbm:productFeature
		Iterator<Integer> pf = product.getFeatures().iterator();
		while(pf.hasNext())
		{
			Integer value = pf.next();
			result.append(leafTag(4, "ProductFeature", value.toString()));

		}
		
		//dc:publisher
		result.append(leafTag(4, "publisher", new Integer(product.getProducer()).toString()));
		
		
		//dc:date
		GregorianCalendar date = new GregorianCalendar();
		date.setTimeInMillis(product.getPublishDate());
		String dateString = DateGenerator.formatDate(date);
		result.append(leafTag(4, "publishDate", dateString));
		
		result.append(endTag(3, "Product"));
		
		return result.toString();
	}