<p>I cannot answer for research in logic about blank but I can try to explain blank nodes. In my (possibly faulty) comprehension of the W3C standard, blank nodes are &quot;existential variables&quot; in the logical sense quantified at the &quot;dataset&quot; level (i.e. a collection of RDF graphs). The underlying idea behind blank nodes is to acknowledge that something exists but we don't know its exact value and this blank node can be shared among different triples.</p>
<p>For instance if you have a dataset saying that Alice and Bob are brother and sister (e.g. with a shared parent) you can say something like</p>
<pre><code>ex:Alice ex:hasParent _:a .
ex:Bob ex:hasParent _:a .
ex:Charles ex:hasParent _:b .
</code></pre>
<p>Here we can talk about the common parent of Alice and Bob but you know that Charles has a parent that might be different (it might be that <em>:b=</em>:a) we just don't know exactly who it is. In comparison if you just say &quot;unknown&quot; instead you loose the information about the fact that Alice and Bob share a parent who is unknown. In logical form, with predicates, you can say the same thing with:</p>
<p><span class="math-container">$$\exists a,b ~~ \text{hasParent}(\text{Alice},a) \land  \text{hasParent}(\text{Bob},a) \land \text{hasParent}(\text{Charles},b)$$</span></p>
<p>Hope this helps!</p>

CC BY-SA 4.0
2022-03-19T18:25:20.670Z
2022-03-20T08:22:33.800Z
2022-03-20T08:22:33.800Z
Louis
<p>In Semantic Web, alongside permanent names of things also &quot;temporary names&quot; named &quot;existential variables&quot; or &quot;blank nodes&quot; denoted as &quot;_:label&quot; are used. All three terms (&quot;temporary name&quot;, &quot;existential variable&quot;, &quot;blank node&quot;) used in the previous sentence don't sound intuitive to me, but I have no intuitive term for this logical device.</p>
<p>Alternatively to the question in title, I could ask another question: the use of a name in a logical statement implies existence of its denotatum. Is there any research in logic of this phenomenon?</p>

CC BY-SA 4.0
2022-03-19T16:44:20.273Z
Could you please point to a formal description of the temporary names in the Semantic Web? At first sight it looks like just a simple tagging mechanism.
Andrej Bauer
CC BY-SA 4.0
2022-03-22T08:43:41.657Z
@AndrejBauer I am not sure there is a formal description of "existential variables", "blank names", "temporary names" -- these even lack a good name. The best reference I can give is the standardized formal language used in Semantic Web, where these probably occur for the first time https://www.w3.org/TeamSubmission/n3/#bnodes.  However, this or other documents on this topic are difficult to read, and probably the explanation in Louis' answer below is among the best which can be found. What is "tagging mechanism"?
Ioachim Drugus
CC BY-SA 4.0
2022-03-22T12:02:39.477Z
The way I am reading this is that `_` is used for "gensyming", i.e., generation of unique identifiers that cannot be referred to. Suppose you replace all the `_` with `foo$1`, `foo$2`, `foo$3`, ... in order of appearance. Then we have the same effect, don't we? (Assuming `$` is not a valid character in an identifier.)
Andrej Bauer
CC BY-SA 4.0
2022-03-22T12:03:34.530Z
"Existential variable" refers to a variable which must be instantiated before a proof or a construction is considered valid. Think of it as an "unfulfilled obligation" or a "promise".
Andrej Bauer
CC BY-SA 4.0
2022-03-23T18:30:25.547Z
@AndrejBauer The colon is used to separate a namespace from a name. Thus, the underscore "_" looks like the name of a namespace - a "space of termporary names". This  remark refers to your comment before last. As to your last comment, it sounds very interesting and I would appreciate if you put down more detail in that direction -- say as an "Answer".
Ioachim Drugus
<reference-request><lo.logic><semantics>
Are there logical devices similar to "existential variables" or "blank nodes" of Semantic Web?
Ioachim Drugus
# Are there logical devices similar to "existential variables" or "blank nodes" of Semantic Web?

(Asked by: username_0 on 2022-03-19)

In Semantic Web, alongside permanent names of things also "temporary names" named "existential variables" or "blank nodes" denoted as "\_:label" are used. All three terms ("temporary name", "existential variable", "blank node") used in the previous sentence don't sound intuitive to me, but I have no intuitive term for this logical device.

Alternatively to the question in title, I could ask another question: the use of a name in a logical statement implies existence of its denotatum. Is there any research in logic of this phenomenon?

**Tags:** reference-request, lo.logic, semantics

> **Comments:**
> **username_1**: Could you please point to a formal description of the temporary names in the Semantic Web? At first sight it looks like just a simple tagging mechanism.  
> **username_0**: @AndrejBauer I am not sure there is a formal description of "existential variables", "blank names", "temporary names" -- these even lack a good name. The best reference I can give is the standardized formal language used in Semantic Web, where these probably occur for the first time https://www.w3.org/TeamSubmission/n3/#bnodes.  However, this or other documents on this topic are difficult to read, and probably the explanation in username_2' answer below is among the best which can be found. What is "tagging mechanism"?  
> **username_1**: The way I am reading this is that `_` is used for "gensyming", i.e., generation of unique identifiers that cannot be referred to. Suppose you replace all the `_` with `foo$1`, `foo$2`, `foo$3`, ... in order of appearance. Then we have the same effect, don't we? (Assuming `$` is not a valid character in an identifier.)  
> **username_1**: "Existential variable" refers to a variable which must be instantiated before a proof or a construction is considered valid. Think of it as an "unfulfilled obligation" or a "promise".  
> **username_0**: @AndrejBauer The colon is used to separate a namespace from a name. Thus, the underscore "_" looks like the name of a namespace - a "space of termporary names". This  remark refers to your comment before last. As to your last comment, it sounds very interesting and I would appreciate if you put down more detail in that direction -- say as an "Answer".  

---

## 1 answers

### Answer by username_2 on 2022-03-19. Score: 2

I cannot answer for research in logic about blank but I can try to explain blank nodes. In my (possibly faulty) comprehension of the W3C standard, blank nodes are "existential variables" in the logical sense quantified at the "dataset" level (i.e. a collection of RDF graphs). The underlying idea behind blank nodes is to acknowledge that something exists but we don't know its exact value and this blank node can be shared among different triples.
For instance if you have a dataset saying that Alice and Bob are brother and sister (e.g. with a shared parent) you can say something like
ex:Alice ex:hasParent _:a .
ex:Bob ex:hasParent _:a .
ex:Charles ex:hasParent _:b .

Here we can talk about the common parent of Alice and Bob but you know that Charles has a parent that might be different (it might be that :b=:a) we just don't know exactly who it is. In comparison if you just say "unknown" instead you loose the information about the fact that Alice and Bob share a parent who is unknown. In logical form, with predicates, you can say the same thing with:
$$\exists a,b ~~ \text{hasParent}(\text{Alice},a) \land  \text{hasParent}(\text{Bob},a) \land \text{hasParent}(\text{Charles},b)$$
Hope this helps!


---

