func Reset() {
	world_lock.Lock()
	if global_world != nil {
		C.raptor_free_world(global_world)
	}
	global_world = C.raptor_new_world_internal(C.RAPTOR_VERSION)
	world_lock.Unlock()
}
func NewSerializer(name string) *Serializer {
	cname := C.CString(name)
	world := C.raptor_new_world_internal(C.RAPTOR_VERSION)
	rserializer := C.raptor_new_serializer(world, cname)
	C.raptor_serializer_set_option(rserializer, C.RAPTOR_OPTION_WRITE_BASE_URI, nil, 0)
	serializer := &Serializer{world: world, serializer: rserializer}
	C.free(unsafe.Pointer(cname))
	serializer.SetLogHandler(func(level int, text string) { log.Printf("[%s] %s", LogLevels[level], text) })
	runtime.SetFinalizer(serializer, func(s *Serializer) {
		if s != nil {
			s.Free()
		}
	})
	return serializer
}
func NewParser(name string) *Parser {
	cname := C.CString(name)
	world := C.raptor_new_world_internal(C.RAPTOR_VERSION)
	rparser := C.raptor_new_parser(world, cname)
	C.raptor_parser_set_option(rparser, C.RAPTOR_OPTION_LOAD_EXTERNAL_ENTITIES, nil, 0)
	parser := &Parser{world: world, parser: rparser}
	C.free(unsafe.Pointer(cname))
	C.go_raptor_parser_set_statement_handler(rparser, unsafe.Pointer(parser))
	C.go_raptor_parser_set_namespace_handler(rparser, unsafe.Pointer(parser))
	parser.SetLogHandler(func(level int, text string) { log.Printf("[%s] %s", LogLevels[level], text) })
	parser.SetNamespaceHandler(func(prefix, uri string) {})
	runtime.SetFinalizer(parser, func(p *Parser) {
		if p != nil {
			p.Free()
		}
	})
	return parser
}