package main

type sparqlTerm struct {
	Type  string `json:"type"`
	Value string `json:"value"`
	Lang  string `json:"xml:lang,omitempty"`
}

type sparqlBooleanResponse struct {
	Boolean bool `json:"boolean"`
}

type sparqlTripleBinding struct {
	S sparqlTerm `json:"s"`
	P sparqlTerm `json:"p"`
	O sparqlTerm `json:"o"`
}

type sparqlPredicateBinding struct {
	P sparqlTerm `json:"p"`
}

type sparqlLabelBinding struct {
	S     sparqlTerm `json:"s"`
	Label sparqlTerm `json:"label"`
}

type sparqlBindingsResponse[T any] struct {
	Results struct {
		Bindings []T `json:"bindings"`
	} `json:"results"`
}
