protected void printSolutionModifiers(PrintContext context, SPINModuleRegistry registry) {
		List<RDFNode> orderBy = getList(SP.orderBy);
		if(!orderBy.isEmpty()) {
			context.println();
			context.printIndentation(context.getIndentation());
			context.printKeyword("ORDER BY");
			for(RDFNode node : orderBy) {
				if(node.isResource()) {
					Resource resource = (Resource) node;
					if(resource.hasProperty(RDF.type, SP.Asc)) {
						context.print(" ");
						context.printKeyword("ASC");
						context.print(" ");
						RDFNode expression = resource.getProperty(SP.expression).getObject();
						printOrderByExpression(context, expression, registry);
					}
					else if(resource.hasProperty(RDF.type, SP.Desc)) {
						context.print(" ");
						context.printKeyword("DESC");
						context.print(" ");
						RDFNode expression = resource.getProperty(SP.expression).getObject();
						printOrderByExpression(context, expression, registry);
					}
					else {
						context.print(" ");
						printOrderByExpression(context, node, registry);
					}
				}
			}
		}
		Long limit = getLimit();
		if(limit != null) {
			context.println();
			context.printIndentation(context.getIndentation());
			context.printKeyword("LIMIT");
			context.print(" " + limit);
		}
		Long offset = getOffset();
		if(offset != null) {
			context.println();
			context.printIndentation(context.getIndentation());
			context.print("OFFSET");
			context.print(" " + offset);
		}
	}