<https://kgdev.net/specifications/sparql11-query/sparqlDefinition/BasicGraphPattern/>
        a       <https://www.w3.org/ns/ldt/document-hierarchy#Item> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                <https://kgdev.net/specifications/sparql11-query/sparqlDefinition/BasicGraphPattern/#this> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2>
                <https://kgdev.net/specifications/sparql11-query/sparqlDefinition/BasicGraphPattern/#BGPsparql> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3>
                <https://kgdev.net/specifications/sparql11-query/sparqlDefinition/BasicGraphPattern/#BGPsparqlBNodes> ;
        <http://purl.org/dc/terms/modified>
                "2023-07-10T15:51:05.552Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
        <http://purl.org/dc/terms/title>
                "Basic Graph Patterns" ;
        <http://rdfs.org/sioc/ns#has_container>
                <https://kgdev.net/specifications/sparql11-query/sparqlDefinition/> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#BasicGraphPattern> ;
        <http://xmlns.com/foaf/0.1/primaryTopic>
                <https://kgdev.net/specifications/sparql11-query/sparqlDefinition/BasicGraphPattern/#this> .

<https://kgdev.net/specifications/sparql11-query/sparqlDefinition/BasicGraphPattern/#BGPsparqlBNodes>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h4 id=\"BGPsparqlBNodes\">Treatment of Blank Nodes</h4>\n\n<p>This definition allows the solution mapping to bind a variable in a basic graph pattern, BGP, to a blank node in G. Since SPARQL treats blank node identifiers in a results format document (<a href=\"http://www.w3.org/TR/rdf-sparql-XMLres/\" shape=\"rect\">SPARQL Query Results XML Format</a>, <a href=\"http://www.w3.org/TR/sparql11-results-json/\" shape=\"rect\">SPARQL 1.1 Query Results JSON Format</a> and <a href=\"http://www.w3.org/TR/sparql11-results-csv-tsv/\" shape=\"rect\">SPARQL 1.1 Query Results CSV and TSV Formats</a>) as scoped to the document, they cannot be understood as identifying nodes in the active graph of the dataset. If DS is the dataset of a query, pattern solutions are therefore understood to be not from the active graph of DS itself, but from an RDF graph, called the <em>scoping graph,</em> which is graph-equivalent to the active graph of DS but shares no blank nodes with DS or with BGP. The same scoping graph is used for all solutions to a single query. The scoping graph is purely a theoretical construct; in practice, the effect is obtained simply by the document scope conventions for blank node identifiers.</p>\n<p>Since RDF blank nodes allow infinitely many redundant solutions for many patterns, there can be infinitely many pattern solutions (obtained by replacing blank nodes by different blank nodes). It is necessary, therefore, to somehow delimit the solutions for a basic graph pattern. SPARQL uses the subgraph match criterion to determine the solutions of a basic graph pattern. There is one solution for each distinct pattern instance mapping from the basic graph pattern to a subset of the active graph.</p>\n<p>This is optimized for ease of computation rather than redundancy elimination. It allows query results to contain redundancies even when the active graph of the dataset is <a href=\"http://www.w3.org/TR/rdf-mt/#deflean\" shape=\"rect\">lean</a>, and it allows logically equivalent datasets to yield different query results.</p></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/2000/01/rdf-schema#seeAlso>
                <http://www.w3.org/TR/sparql11-results-csv-tsv/> , <http://www.w3.org/TR/rdf-mt/#deflean> , <http://www.w3.org/TR/sparql11-results-json/> , <http://www.w3.org/TR/rdf-sparql-XMLres/> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#BGPsparqlBNodes> .

<https://kgdev.net/specifications/sparql11-query/sparqlDefinition/BasicGraphPattern/#BGPsparql>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h4 id=\"BGPsparql\">SPARQL Basic Graph Pattern Matching</h4>\n\n<p>A basic graph pattern is matched against the active graph for that part of the query. Basic graph patterns can be instantiated by replacing both variables and blank nodes by terms, giving two notions of instance. Blank nodes are replaced using an <a href=\"http://www.w3.org/TR/rdf-mt#definst\" shape=\"rect\">RDF instance mapping</a>,  σ, from blank nodes to RDF terms; variables are replaced by a solution mapping from query variables to RDF terms.</p>\n<p><strong>Definition: Pattern Instance Mapping</strong>A <strong>Pattern Instance Mapping</strong>, P, is the combination of an RDF instance mapping, σ, and solution mapping, μ. P(x) = μ(σ(x))</p>\n<p>For a BGP 'x', P(x) denotes the result of replacing blank nodes b in x for which σ is defined with σ(b) and all variables v in x for which μ is defined with μ(v).</p>\n<p>Any pattern instance mapping defines a unique solution mapping and a unique RDF instance mapping obtained by restricting it to query variables and blank nodes respectively.</p>\n<p><strong>Definition: Basic Graph Pattern Matching</strong>Let BGP be a basic graph pattern and let G be an RDF graph.</p>\n<p>μ is a <strong>solution</strong> for BGP from G when there is a pattern instance mapping P such that P(BGP) is a subgraph of G and μ is the restriction of P to the query variables in BGP.</p>\n<p>card<a href=\"μ\" shape=\"rect\">Ω</a> = card<a href=\"number of distinct RDF instance mappings, σ, such that P = μ(σ) is a pattern instance mapping and P(BGP) is a subgraph of G\" shape=\"rect\">Ω</a>.</p>\n<p>If a basic graph pattern is the empty set, then the solution is Ω0.</p></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/2000/01/rdf-schema#seeAlso>
                <http://www.w3.org/TR/rdf-mt#definst> , <https://kgdev.net/specifications/sparql11-query/sparqlDefinition/BasicGraphPattern/μ> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#BGPsparql> .

<https://kgdev.net/specifications/sparql11-query/sparqlDefinition/BasicGraphPattern/#this>
        a                          <https://kgdev.net/ns#Definition> , <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<!DOCTYPE html  SYSTEM '/home/pumba/WebRoot/AtomGraph/KGDN/dtd/xhtml1-transitional.dtd'><div xmlns=\"http://www.w3.org/1999/xhtml\"><h3 id=\"this\">Basic Graph Patterns</h3>\n\n<p>When matching graph patterns, the possible solutions form a <em><a href=\"http://en.wikipedia.org/w/index.php?title=Multiset&amp;oldid=163605900\"> multiset</a></em> [<a href=\"http://en.wikipedia.org/w/index.php?title=Multiset&oldid=163605900\" target=\"_blank\"> Multiset</a>], also known as a <em>bag</em>. A multiset is an unordered collection of elements in which each element may appear more than once. It is described by a set of elements and a cardinality function giving the number of occurrences of each element from the set in the multiset.</p>\n<p>Write μ for solution mappings.</p>\n<p>Write μ0 for the mapping such that dom(μ0) is the empty set.</p>\n<p>Write Ω0 for the multiset consisting of exactly the empty mapping μ0, with cardinality 1. This is the join identity.</p>\n<p>Write μ(x) for the solution mapping variable x to RDF term t : { (x, t) }</p>\n<p>Write Ω(x) for the multiset consisting of exactly μ(?x-&gt;t), that is, { { (x, t) } } with cardinality 1.</p>\n<p><strong>Definition: Compatible Mappings</strong>Two solution mappings μ1 and μ2 are compatible if, for every variable v in dom(μ1) and in dom(μ2), μ1(v) = μ2(v).</p>\n<p>Here, μ1(v) = μ2(v) means that μ1(v) and μ2(v) are the same RDF term.</p>\n<p>If μ1 and μ2 are compatible then μ1 ∪ μ2 is also a mapping. Write merge(μ1, μ2) for μ1 ∪ μ2</p>\n<p>Write card<a href=\"μ\">Ω</a> for the cardinality of solution mapping μ in a multiset of mappings Ω.</p></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#BasicGraphPattern> ;
        <https://schema.org/name>  "Basic Graph Patterns" .
