Constructed Abstraction

A constructed abstraction is an abstract-concept that stores the information in which way the concept that it represents is connected to other concepts. It therefore contains a semantic-connections-object that links the constructed concept to other abstract concepts.

A definition of an constructed abstraction could look like this:

constructedAbstraction({
	(None, someAbstractConcept1, someAbstractConcept2),
	(None, someAbstractConcept3, someAbstractConcept4),
	(someAbstractConcept5, None, someAbstractConcept6),
	(None, someAbstractConcept7, None),
	...
})

When ever the concept someAbstractConcept in this definition is not an abstract concept but an normal concept the corresponding direct-abstraction would be substituted. This is just an abbreviation that makes it possible to write

constructedAbstraction({
	(None, myLink, myConcept)
})

instead of

constructedAbstraction({
	(None, directAbstraction(myLink), directAbstraction(myConcept))
})

Example

if "hallo" and 1 are both concepts and directAbstraction("hallo") and directAbstraction(1) are both direct abstractions of "hallo" and 1 then the concept {"hallo"} which is a set containing only "hallo" would be a constructed-concept build from this semantic connections object:

{
	(None, hasSetEntry, "hallo"),
	(None, hasSetLength, 1)
}

One now could create a constructed abstraction:

constructedAbstraction({
	(None, directAbstraction(hasSetEntry), directAbstraction("hallo")),
	(None, directAbstraction(hasSetLength), directAbstraction(1))
})

The resulting constructed abstraction would have an equivalent expressiveness as directAbstraction({"hallo"}). They would both represent nothing but the concept {"hallo"}.

But one could also create a constructed abstraction using the following definition:

constructedAbstraction({
	(None, directAbstraction(hasSetLength), directAbstraction(1))
})

This would then be an ambiguous constructed abstraction which could represent any set concept that has just one entry.