This Article IsCreated at 2024-01-07Last Modified at 2024-01-29Referenced as ia.www.b32

Representing Concepts with Linked Linked-Data Links

Recently, I was researching how to encode our memory and knowledge as classical/binary data. I came to the conclusion that RDF is not enough, and concepts need to reference each other.

Also, sorry about the title :)

Here is a simple example, where I assert apple is a kind of fruit.

0: [apple] [is subset of] [fruit]
1: [self] [assert true] 0

Here, I assert apple is not a kind of fruit.

0: [apple] [is subset of] [fruit]
1: [assert true] [negate]
2: [self] 1 0

The numbers at the start of each line can be viewed as line number is BASIC; they are essetially ID of each concept triple.

Also, maintaining the S-V-O triple structure is meaningless. Just store the data however is natural to you. You have to write query for each type of relation separately anyway.

Prior Art

W3C calls it “Named Graph”. You can read about RDF named graph in TriG here.

Concept-based input methods are used to counter communication disability: AAC.

Other thoughts

Content-Addressed ID

Unless we need to encode circular statements like “apple is a type of apple”, we can represent the statements as a DAG. Since this is a DAG, each statement can use the hash of its components as id, although it is not necessary.


Maintaining a canonical form of a word is hard.

0: [A] [like] [B]

# or

0: [A] 1 [B]
1: [feeling] - [like]

You can observe this on Wikidata, where family trees have the following properties:

wdt:father [Father]
wdt:mother [Mother]
wdt:parent [Other Type Of Parent]
wdt:child  [Child]
wdt:kin_of [Kin]
    wdt:younger_brother [Younger Brother]

Not very clean, but it works. I suppose that any form of representation of a concept is valid.


Triples can be represented as triangles, and the center of it represents the triple-link itself.


How RDF is stored in databases

I wrote about it previously here.

Bonus Algorithm: Natural Language Formulation Based On Concepts

Words are hard. In an attempt to come up with words faster, I have discovered the following algorithm.

Stage 0: Concepts
On this stage, you should have some concepts that you want to convey.

Stage 1: Materialize key words
For each main concept, look up its word in the target language.
Main concepts are the essential components of this sentence. without them, the meaning is incomplete.

Stage 2: Materialize auxilary words
Add adjectives and conjunctions to the sentence.
On this step, you can adjust the detail level of the final sentence by choosing how many relations to include in the final sentence.

Stage 3: grammar fix
Fix the grammar of the sentence.
Humans are quite fault tolerant, so this step is not strictly needed.

My recommendation for communicating with concept-capable beings is to communicate with them directly using concepts. It is more precise and saves energy for the other side, also that some of them cannot speak any natural language.

triple-graph representation of the sentence "i want to eat that apple"