340 likes | 505 Views
navigation. focus. software repositories. Bernd Fischer. attribute. browsing. context table. semi-structured data. Seeing. in the Clouds. join. visualization. mining. Galois connection. meet. Things. with tag clouds. object. Computer Science. knowledge discovery.
E N D
navigation focus software repositories Bernd Fischer attribute browsing context table semi-structured data Seeing in the Clouds join visualization mining Galois connection meet Things with tag clouds object Computer Science knowledge discovery over concept lattices relation Stellenbosch information retrieval
How do you find stuff on the Internet? • query concept-based browsing
How do you find stuff on the Internet? Yikes! 3 370 000 results!
How do you find stuff on the Internet? • query concept-based browsing lattice
How do you find stuff you didn’t look for? Retrieval: extract objects that satisfy a pre-defined criterion • query describes criterion • main operation is matching: check satisfaction against query • main goal is precision: show onlyrelevant objects Browsing: spontaneously explore a collection • focus describes current position and selection • main operation is navigation: change the focus • main goal is recall: show allrelevant objects
How do you browse? focus selection (hierarchical)navigation structure
How do you browsesemi-structureddata? What is semi-structured data? • What is structured data? • Structured data has... • ... a very high degree of regularity • ... an explicit, tight format (schema) • Typical examples: • spreadsheets • relational databases (SQL: structured query language)
How do you browsesemi-structureddata? • What is semi-structured data? • Semi-structured data ... • ... contains both free-text and formatted fields • ... has large structural variance • ... is implicitly formatted • Typical examples: • product reviews • newspaper articles + meta-data • revision control logs
How do you browsesemi-structureddata? Approach: • find a suitable abstract data representation • bag-of-words, graphs, binary relations, RDF triples, XML, ... • find a suitable hierarchy • metric spaces, graphs, concept lattices, ... • find a suitable visual representation • lists, graphs, tag clouds, city scapes, ... • find a navigation algorithm
How do you represent data? Structured data is represented by n-ary relations or tables: • each object becomes a row • each column representsan attribute type • text remains unstructured
How do you represent data? Structured data is represented by n-ary relations or tables: • each object becomes a row • each column representsan attribute type • text remains unstructured • set-valued attributes require normalization
How do you represent data? Structured data is represented by n-ary relations or tables: • each object becomes a row • each column representsan attribute type • text remains unstructured • set-valued attributes require normalization Semi-structured data can be represented by binary relations: • text is split into words • each occurring value andword becomes an attribute • build context table: add cross if attribute applies to object • word appears in document, meta-data, references ...
How do you find hierarchy in relations? Formal concept analysis: • formal context: (O, A, ~ₓ)
How do you find hierarchy in relations? Formal concept analysis: • formal context: (O, A, ~ₓ) • common attributes: α(O) = {a∈A|∀o∈O:o ~ₓ a} α({08, 42} = α({08, 42} = {Fischer, browsing}
How do you find hierarchy in relations? Formal concept analysis: • formal context: (O, A, ~ₓ) • common attributes: α(O) = {a∈A|∀o∈O:o ~ₓ a} • common objects: ω(A) = {o∈O|∀a∈A:o ~ₓ a} • concept: (O, A) s.t. α(O) = A ∧ ω(A) = O α({08, 42} = {Fischer, browsing} ω({Fischer,browsing} ω({Fischer,browsing} = {08,42} • extent • intent
How do you find hierarchy in relations? Formal concept analysis: • formal context: (O, A, ~ₓ) • common attributes: α(O) = {a∈A|∀o∈O:o ~ₓ a} • common objects: ω(A) = {o∈O|∀a∈A:o ~ₓ a} • concept: (O, A) s.t. α(O) = A ∧ ω(A) = O {08, 42}{F,browsing} {42}{tag} {08}{F,browsing,’00} {42}{F,G,browsing,tag,’14} • extent • intent
How do you find hierarchy in relations? Formal concept analysis: • formal context: (O, A, ~ₓ) • common attributes: α(O) = {a∈A|∀o∈O:o ~ₓ a} • common objects: ω(A) = {o∈O|∀a∈A:o ~ₓ a} • concept: (O, A) s.t. α(O) = A ∧ ω(A) = O • sub-concept ordering: (O₁, A₁) ≤ (O₂, A₂) iff O₁⊆ O₂iff A₁⊇ A₂ • concept lattice: concepts of a context form a complete lattice {08, 42}{F,browsing} {42}{tag} {08}{F,browsing,’00} {42}{F,G,browsing,tag,’14}
Are we there yet? Nope. Concept lattices induce • enough structure for navigation... • ... but too much to show directly!
How do you visualize concept lattices? Approach: • don’t show the lattice • use concepts as focus • visualize only focus concept • but in relation to lattice
How do you visualize concepts? Approach: • don’t show the lattice • use concepts as focus • visualize only focus concept • but in relation to lattice • use extent to derive tag cloud
How do youbuild tagcloudsforconcepts? • What is a tag cloud? • visual representation of text data • summarize large data set • emphasize important tags • single words or short phrases • importance reflected as size • frequency in document • number of tagged items • number of page hits • different layout methods
How do youbuild tagcloudsforconcepts? • intent looks like tag cloud... • ... but is common to all objects⇒ all tags same size • instead: collect all attributesfrom all objects in extent • can be expressed inconcept lattice: • also add extent via object identifiers • intent shown as largest tags • smaller tags are relatedinformation {08, 42}{Fischer,browsing} 08 42 20002014browsingFischer Greene tag
The ConceptCloud Browser • date • controls • message • file • author by: Gillian Greene, US
The ConceptCloud Browser • most prolific • contributor
How do younavigatewithtag clouds? Navigation modes: • refinement: narrow the selection • select a new tag • widening: extend the selection • remove a selected tag
How do younavigatewithconceptlattices? • focus • concept • tag • concept (ω({t}), α(ω({t}))) if t∈A δ(t) = (α(ω({t})), ω({t})) if t∈O Navigation modes: • refinement: narrow the selection • select a new tag: f’ = f ∧ δ(t) • widening: extend the selection • remove a selected tag • focus • concept • focus • concept
How do younavigatewithconceptlattices? • tag • concept (ω({t}), α(ω({t}))) if t∈A δ(t) = (α(ω({t})), ω({t})) if t∈O Navigation modes: • refinement: narrow the selection • select a new tag: f’ = f ∧ δ(t) • widening: extend the selection • remove a selected tag: f’ = f ∨ δ(t) • focus • concept • tag • concept • focus • concept • focus • concept • focus • concept
How do younavigatewithconceptlattices? • tag • concept (ω({t}), α(ω({t}))) if t∈A δ(t) = (α(ω({t})), ω({t})) if t∈O Navigation modes: • refinement: narrow the selection • select a new tag: f’ = f ∧ δ(t) • widening: extend the selection • remove a selected tag: f’ = f ∨ δ(t) f’ = ∧i∈π(f) \ {t}δ(i) • join-based widening can beuseful as well • focus • concept • tag • concept • focus • concept
The Percept Browser by: Carl Kritzinger, Fireworks
Conclusions & Future Work • Semi-structured data is common but hard to analyze • Tag clouds are a good visualization approach... • ... and the combination with concept lattices makes it easy to navigate and find related information • Flexible approach, generic tool • different data sets • different types of contexts (⇒ different types of analysis) • Scalability • DBLP, IMDb, Wikipedia? • Customizability • context extraction • tool scripting
Conclusions & Future Work • Semi-structured data is common but hard to analyze • Tag clouds are a good visualization approach... • ... and the combination with concept lattices makes it easy to navigate and find related information • Flexible approach, generic tool • different data sets • different types of contexts (⇒ different types of analysis) • Scalability • DBLP, IMDb, Wikipedia? • Customizability • context extraction • tool scripting