func (s *Statement) raptor_statement() (statement *C.raptor_statement) {
	var rs, rp, ro, rg *C.raptor_term
	if s.Subject != nil {
		rs = s.Subject.raptor_term()
	}
	if s.Predicate != nil {
		rp = s.Predicate.raptor_term()
	}
	if s.Object != nil {
		ro = s.Object.raptor_term()
	}
	if s.Graph != nil {
		rg = s.Graph.raptor_term()
	}
	statement = C.raptor_new_statement_from_nodes(global_world, rs, rp, ro, rg)
	if statement == nil {
		if rs != nil {
			C.raptor_free_term(rs)
		}
		if rp != nil {
			C.raptor_free_term(rp)
		}
		if ro != nil {
			C.raptor_free_term(ro)
		}
		if rg != nil {
			C.raptor_free_term(rg)
		}
	}
	return
}
func (l *Literal) Equals(other Term) (eq bool) {
	world_lock.Lock()
	lterm := l.raptor_term()
	oterm := other.raptor_term()
	if C.raptor_term_equals(lterm, oterm) != 0 {
		eq = true
	}
	C.raptor_free_term(oterm)
	C.raptor_free_term(lterm)
	world_lock.Unlock()
	return
}
func (b *Blank) Equals(other Term) (eq bool) {
	world_lock.Lock()
	bterm := b.raptor_term()
	oterm := other.raptor_term()
	if C.raptor_term_equals(bterm, oterm) != 0 {
		eq = true
	}
	C.raptor_free_term(oterm)
	C.raptor_free_term(bterm)
	world_lock.Unlock()
	return
}
func (u *Uri) Equals(other Term) (eq bool) {
	world_lock.Lock()
	uterm := u.raptor_term()
	oterm := other.raptor_term()
	if C.raptor_term_equals(uterm, oterm) != 0 {
		eq = true
	}
	C.raptor_free_term(oterm)
	C.raptor_free_term(uterm)
	world_lock.Unlock()
	return
}
func (l *Literal) N3() (s string) {
	world_lock.Lock()
	term := l.raptor_term()
	s = term_to_string(l.raptor_term())
	C.raptor_free_term(term)
	world_lock.Unlock()
	return
}
func (b *Blank) N3() (s string) {
	world_lock.Lock()
	term := b.raptor_term()
	s = term_to_string(term)
	C.raptor_free_term(term)
	world_lock.Unlock()
	return
}
func (u *Uri) N3() (s string) {
	world_lock.Lock()
	term := u.raptor_term()
	s = term_to_string(term)
	C.raptor_free_term(term)
	world_lock.Unlock()
	return
}