Concept Lattice

Formal concepts are partially ordered with regard to inclusion of their extents or (which is equivalent) inverse inclusion of their intent.

Introduced properties

init from_concepts(concepts: Set[FormalConcept[O, A]])

fca :: ConceptLattice :: from_concepts

Build self from a set of formal concepts.
fun is_lower_neighbour(sub: FormalConcept[O, A], sup: FormalConcept[O, A], concepts: Set[FormalConcept[O, A]]): Bool

fca :: ConceptLattice :: is_lower_neighbour

Is sub the greatest lower bound of sup considering all concepts?

Redefined properties

redef type SELF: ConceptLattice[O, A]

fca $ ConceptLattice :: SELF

Type of this instance, automatically specialized in every class

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type COMPARED: nullable Object

core :: Comparator :: COMPARED

What to compare to
type CONCURRENT: ConcurrentCollection[E]

core :: Collection :: CONCURRENT

Type of the concurrent variant of this collection
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
fun [](e: E): POSetElement[E]

poset :: POSet :: []

Return a view of e in the poset.
protected fun accept_json_serializer(v: JsonSerializer)

serialization :: Serializable :: accept_json_serializer

Refinable service to customize the serialization of this class to JSON
protected fun accept_msgpack_attribute_counter(v: AttributeCounter)

serialization :: Serializable :: accept_msgpack_attribute_counter

Hook to customize the behavior of the AttributeCounter
protected fun accept_msgpack_serializer(v: MsgPackSerializer)

serialization :: Serializable :: accept_msgpack_serializer

Hook to customize the serialization of this class to MessagePack
fun add_chain(es: SequenceRead[E])

poset :: POSet :: add_chain

Add an edge between all elements of es in order.
fun add_edge(f: E, t: E)

poset :: POSet :: add_edge

Add an edge from f to t.
fun add_node(e: E): POSetElement[E]

poset :: POSet :: add_node

Add a node (an element) to the posed
protected fun add_to_bundle(bundle: NativeBundle, key: JavaString)

serialization :: Serializable :: add_to_bundle

Called by []= to dynamically choose the appropriate method according
fun bubble_sort(array: Array[COMPARED], from: Int, to: Int)

core :: Comparator :: bubble_sort

Bubble-sort array between from and to indices
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
abstract fun clone: SELF

core :: Cloneable :: clone

Duplicate self
fun combinations(r: Int): Collection[SequenceRead[E]]

core :: Collection :: combinations

All r-length combinations on self (in same order) without repeated elements.
fun combinations_with_replacement(r: Int): Collection[SequenceRead[E]]

core :: Collection :: combinations_with_replacement

All r-length combination on self (in same order) with repeated elements.
abstract fun compare(a: COMPARED, b: COMPARED): Int

core :: Comparator :: compare

Compare a and b.
fun core_serialize_to(serializer: Serializer)

serialization :: Serializable :: core_serialize_to

Actual serialization of self to serializer
fun count(item: nullable Object): Int

core :: Collection :: count

How many occurrences of item are in the collection?
fun first: E

core :: Collection :: first

Return the first item of the collection
init from_concepts(concepts: Set[FormalConcept[O, A]])

fca :: ConceptLattice :: from_concepts

Build self from a set of formal concepts.
init from_deserializer(deserializer: Deserializer)

serialization :: Serializable :: from_deserializer

Create an instance of this class from the deserializer
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun has(item: nullable Object): Bool

core :: Collection :: has

Is item in the collection ?
fun has_all(other: Collection[nullable Object]): Bool

core :: Collection :: has_all

Does the collection contain at least each element of other?
fun has_any(other: Collection[nullable Object]): Bool

core :: Collection :: has_any

Does the collection contain at least one element of other?
fun has_direct_edge(f: E, t: E): Bool

poset :: POSet :: has_direct_edge

Is there a direct edge from f to t?
fun has_edge(f: E, t: E): Bool

poset :: POSet :: has_edge

Is there an edge (transitive or not) from f to t?
fun has_exactly(other: Collection[nullable Object]): Bool

core :: Collection :: has_exactly

Does the collection contain exactly all the elements of other?
fun has_only(item: nullable Object): Bool

core :: Collection :: has_only

Is the collection contain only item?
fun hash: Int

core :: Object :: hash

The hash code of the object.
fun heap_sort(array: Array[COMPARED], from: Int, to: Int)

core :: Comparator :: heap_sort

Heap-sort array between from and to indices
init init

core :: Object :: init

fun insertion_sort(array: Array[COMPARED], from: Int, to: Int)

core :: Comparator :: insertion_sort

Insertion-sort array between from and to indices
fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
fun is_empty: Bool

core :: Collection :: is_empty

Is there no item in the collection?
fun is_lower_neighbour(sub: FormalConcept[O, A], sup: FormalConcept[O, A], concepts: Set[FormalConcept[O, A]]): Bool

fca :: ConceptLattice :: is_lower_neighbour

Is sub the greatest lower bound of sup considering all concepts?
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
fun is_sorted(seq: SequenceRead[COMPARED]): Bool

core :: Comparator :: is_sorted

Is seq sorted?
abstract fun iterator: Iterator[E]

core :: Collection :: iterator

Get a new iterator on the collection.
fun join(separator: nullable Text, last_separator: nullable Text): String

core :: Collection :: join

Concatenate and separate each elements with separator.
fun length: Int

core :: Collection :: length

Number of items in the collection.
fun linearize(elements: Collection[E]): Array[E]

poset :: POSet :: linearize

Sort a sorted array of poset elements using linearization order
fun max(a: COMPARED, b: COMPARED): COMPARED

core :: Comparator :: max

Returns the maximum between a and b.
fun merge_sort(array: Array[COMPARED], from: Int, to: Int)

core :: Comparator :: merge_sort

Merge-sort array between from and to indices
fun min(a: COMPARED, b: COMPARED): COMPARED

core :: Comparator :: min

Returns the minimum between a and b.
protected fun msgpack_extra_array_items: Int

serialization :: Serializable :: msgpack_extra_array_items

Hook to request a larger than usual metadata array
fun not_empty: Bool

core :: Collection :: not_empty

Alias for not is_empty.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun permutations(r: Int): Collection[SequenceRead[E]]

core :: Collection :: permutations

All r-length permutations on self (all possible ordering) without repeated elements.
fun plain_to_s: String

core :: Collection :: plain_to_s

Concatenate elements without separators
fun print_metrics

poset :: POSet :: print_metrics

Display exhaustive metrics about the poset
fun product(r: Int): Collection[SequenceRead[E]]

core :: Collection :: product

Cartesian product, over r times self.
fun quick_sort(array: Array[COMPARED], from: Int, to: Int)

core :: Comparator :: quick_sort

Quick-sort array between from and to indices
fun rand: E

core :: Collection :: rand

Return a random element form the collection
fun sample(length: Int): Array[E]

core :: Collection :: sample

Return a new array made of (at most) length elements randomly chosen.
fun select_greatest(elements: Collection[E]): Array[E]

poset :: POSet :: select_greatest

Filter elements to return only the greatest ones
fun select_smallest(elements: Collection[E]): Array[E]

poset :: POSet :: select_smallest

Filter elements to return only the smallest ones
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
fun serialize_msgpack(plain: nullable Bool): Bytes

serialization :: Serializable :: serialize_msgpack

Serialize self to MessagePack bytes
fun serialize_to(serializer: Serializer)

serialization :: Serializable :: serialize_to

Serialize self to serializer
fun serialize_to_json(plain: nullable Bool, pretty: nullable Bool): String

serialization :: Serializable :: serialize_to_json

Serialize self to JSON
fun show_dot

poset :: POSet :: show_dot

Display the POSet in a graphical windows.
fun sort(array: Array[COMPARED])

core :: Comparator :: sort

Sort array using the compare function.
fun sub(elements: Collection[E]): POSet[E]

poset :: POSet :: sub

Return an induced sub-poset
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
fun to_a: Array[E]

core :: Collection :: to_a

Build a new array from a collection
abstract fun to_concurrent: CONCURRENT

core :: Collection :: to_concurrent

Wraps self in a thread-safe collection
fun to_counter: Counter[E]

core :: Collection :: to_counter

Create and fill up a counter with the elements of `self.
fun to_curlslist: CURLSList

core :: Collection :: to_curlslist

Convert Collection[String] to CURLSList
fun to_json: String

serialization :: Serializable :: to_json

Serialize self to plain JSON
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_pretty_json: String

serialization :: Serializable :: to_pretty_json

Serialize self to plain pretty JSON
fun to_s: String

core :: Object :: to_s

User readable representation of self.
fun to_shuffle: Array[E]

core :: Collection :: to_shuffle

Return a new array made of elements in a random order.
fun write_dot(f: Writer)

poset :: POSet :: write_dot

Write the POSet as a graphviz digraph.
package_diagram fca::ConceptLattice ConceptLattice poset::POSet POSet fca::ConceptLattice->poset::POSet core::Collection Collection poset::POSet->core::Collection core::Comparator Comparator poset::POSet->core::Comparator core::Cloneable Cloneable poset::POSet->core::Cloneable serialization::Serializable Serializable poset::POSet->serialization::Serializable ...core::Collection ... ...core::Collection->core::Collection ...core::Comparator ... ...core::Comparator->core::Comparator ...core::Cloneable ... ...core::Cloneable->core::Cloneable ...serialization::Serializable ... ...serialization::Serializable->serialization::Serializable

Ancestors

interface Cloneable

core :: Cloneable

Something that can be cloned
interface Collection[E: nullable Object]

core :: Collection

The root of the collection hierarchy.
interface Comparator

core :: Comparator

This abstract class generalizes ways to sort an array
interface Object

core :: Object

The root of the class hierarchy.
interface Serializable

serialization :: Serializable

Instances of this class can be passed to Serializer::serialize

Parents

class POSet[E: nullable Object]

poset :: POSet

Pre-order set graph.

Class definitions

fca $ ConceptLattice
# Concept Lattice
#
# Formal concepts are partially ordered with regard to inclusion of their extents
# or (which is equivalent) inverse inclusion of their intent.
class ConceptLattice[O: Object, A: Object]
	super POSet[FormalConcept[O, A]]

	# Build `self` from a set of formal `concepts`.
	init from_concepts(concepts: Set[FormalConcept[O, A]]) do
		for c in concepts do
			add_node c
		end
		for c1 in concepts do
			for c2 in concepts do
				if c1 == c2 then continue
				if not is_lower_neighbour(c1, c2, concepts) then continue
				add_edge(c2, c1)
			end
		end
	end

	# Is `sub` the greatest lower bound of `sup` considering all `concepts`?
	fun is_lower_neighbour(sub, sup: FormalConcept[O, A], concepts: Set[FormalConcept[O, A]]): Bool
	do
		if sub == sup then return false
		if not sub.is_subconcept(sup) then return false
		for concept in concepts do
			if sub == concept then continue
			if sup == concept then continue
			if not sub.is_subconcept(concept) then continue
			if not concept.is_subconcept(sup) then continue
			return false
		end
		return true
	end
end
lib/fca/fca.nit:218,1--253,3