Skip to content

Introduce arbitrary union atom type #21

Description

@ngeiswei

Proposal

It would be convenient to have a link for the following

https://en.wikipedia.org/wiki/Union_(set_theory)#Arbitrary_unions

I suggest to call it

UnionLink

I like the compactness of it, however it could be mistaken for an OrLink, so maybe another name such as

ArbitraryUnionLink
ConceptUnionLink
ClassUnionLink
SetUnionLink
CountableUnionLink
FlattenLink
FlattenUnionLink

would be better (@bgoertzel, @linas or others let me know what you think).

The other alternative is to not introduce anything and instead formulate such union with a SatisfyingSetScopeLink, but I think it's rather cumbersome.

Motivation

Intensional reasoning relies on an ontology of concepts and their subset relationships. However sometimes concepts themselves have properties, i.e. be members of other classes, and we need a way to bring these meta-properties to the mesa-level.

For instance given an ontology of concepts C1, ..., Cn, and some meta-property M, such that some Ci, ..., Ck are a members of M

(Member Ci M)
...
(Member Ck M)

We'd like to bring the meta-property M into the ontology as a pattern to consider for intensional reasoning. One way to do that is to flatten M, with the following

(UnionLink M)

then we can write

(Subset C1 (UnionLink M))

Remark

It is expected such flattening would be especially useful if the meta-property is Soggy https://wiki.opencog.org/w/Soggy_Predicates as otherwise it might lose information when transferred to the mesa-level. Think for instance of a meta-property such as "even cardinality" which could encompass the whole mesa-universe and thus lose all information once flattened.

PS Remark

This issue is making me wonder whether the notion of membership is desirable at all. Maybe one can substitute membership for atomic inheritance, i.e. a concept that can no longer be divided. That's consistent with the definition of a probability measure.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions