Jump to content

Discourse Modeling: Difference between revisions

7,766 bytes added ,  20:28, 28 November 2022
m
No edit summary
 
(40 intermediate revisions by 6 users not shown)
Line 6: Line 6:
|Discord Channel URL=https://discord.com/channels/1029514961782849607/1038988750677606432
|Discord Channel URL=https://discord.com/channels/1029514961782849607/1038988750677606432
|Facilitator=Karola Kirsanow
|Facilitator=Karola Kirsanow
|Members=Arthur Perret, Karola Kirsanow, Kyle MacLaury, Peter Murray-Rust
|Members=Karola Kirsanow, Konrad Hinsen, Kyle MacLaury, Peter Murray-Rust, Sam Klein
|Description=Implement Discourse Graph schema in Semantic MediaWiki.  Query Discourse Graph contents through SMW sparql endpoint.  Visualize and publish Discourse Graph contents.
|Description=Implement Discourse Graph schema in Semantic MediaWiki.  Query Discourse Graph contents through SMW sparql endpoint.  Visualize and publish Discourse Graph contents.
}}
}}
== What ==
== What are we discussing? ==


It could be really valuable to try to prototype a "computable" synthesis of the knowledge in this workshop here in the wiki. One test of the "computability" would be to make it visualizable.
It could be really valuable to try to prototype a "computable" synthesis of the knowledge in this workshop here in the wiki. One test of the "computability" would be to make it visualizable.


Could have applications to thesemantic climate setting that [[Peter Murray-Rust]] is working on
Could have applications to the semantic climate setting that [[Peter Murray-Rust]] is working on.


[[File:Results graph.png|thumb|the results graph - Matt Akamatsu's DG dialect for experimental science]]
== Discourse Graphs ==
[[File:Discourse Graph.png|thumb|Discourse Graph (from Joel Chan)]]
We're focusing on implementing  [https://oasis-lab.gitbook.io/roamresearch-discourse-graph-extension/ the Discourse Graph Datamodel] in a wiki to see if we can make further progress on enabling and supporting synthesis, discovery, and dissemination by building upon models that  have already demonstrated success.<blockquote>From our chat yesterday: I'd like to propose adding <code>Axiom</code>s and adding relationships to <code>Source</code>s. Is there a way to do this on the oasis-lab spec?</blockquote>[[File:The discourse graph quadruplet.png|thumb|The discourse graph quadruplet]]
== Now you're playing with templates ==
* <tt>{{</tt><tt> [[:template:source|Source]]}} </tt> template : URL, publisher, publisher-url, date, author, title
{{source
| url = https://synthesis-infrastructures.wiki/Discourse_Modeling
| publisher = Synthesis Infrastructures wiki
| publisher-url = https://synthesis-infrastructures.wiki/index.php?title=Discourse_Modeling
| date = 2022-11-12
| author = Sj
| title = Discourse modeling templates}}
* Claim :
* Axiom (?) :
[[:Category:Discourse graph templates|Discourse Graph templates]]


== Potential Actions ==
== Potential Actions ==
* Implement the Discourse Graph schema within the workshop's Semantic MediaWiki instance
* Implement the Discourse Graph schema within the workshop's Semantic MediaWiki instance
** This may be duplicated by [[Making Discourse Graphs Indexable & Discoverable]]
** [[Making Discourse Graphs Indexable & Discoverable]] is a sub-project relevant to this group
* [[Incorporate models/algorithms into Semantic MediaWiki]]
* [[Incorporate models/algorithms into Semantic MediaWiki]]
* [[Access discourse and knowledge representations in the SMW instance]]
* [[Access discourse and knowledge representations in the SMW instance]]
Line 25: Line 47:
* Visualize the results of the computation
* Visualize the results of the computation
* Publish the visualizations back to the SMW instance
* Publish the visualizations back to the SMW instance
* Assess suitability of Discourse Graphs for federation ([[Federated knowledge synthesis|Federated Knowledge Synthesis]])


=== Modules ===
=== Modules ===
There are other
Technical aspects of the project
* [[Semantic MediaWiki]]
* [[Semantic MediaWiki]]
** Front End
** Front End
Line 41: Line 64:
** Publish visualizations as CloudObjects
** Publish visualizations as CloudObjects
** Publish API that executes model/algorithm
** Publish API that executes model/algorithm
== Workshop Goals ==
# Implement the Discourse Graph schema within the workshop's Semantic MediaWiki instance
## create templates for nodes
## understand how to type relationships
## prototype naming conventions
# Create a few example Discourse Graphs, drawing on content and conversations generated during the workshop
# Make the Discourse Graphs contained on the wiki visualizable and queryable through the Semantic Mediawiki SPARQL endpoint, as described above
# Document our process and create a guide to making wiki-supported Discourse Graphs
== Progress as of Day 1 ==
* We aligned on a workplan that largely harmonizes with the goals formulated before the workshop and integrates as many objectives from [[Making Discourse Graphs Indexable & Discoverable]]  and  [[Federated knowledge synthesis]] as feasible.
** We want to bootstrap a simple entrypoint into Discourse Graph construction, complete with example graphs, from a more familiar wiki environment.
** We hope to design a system that is compatible with later efforts at DG federation.
** We discussed the approaches to naming and conflict resolution employed by [https://anagora.org/agora an agora] and [https://everything2.com/?node=patriotism everything2].
* We decided to focus first on the problems of ''naming'' and  ''schemas''; beginning with designing templates for '''nodes''' and a wiki-friendly implementation of '''relations'''.
** We discussed the relative advantages and constraints of MW v SMW.
** We aligned on the criticality of naming to enable effective querying
** We decided that we should also develop names for frequent queries.
* We sketched a system for capturing and transforming conversations on this wiki into graphs, putting the "discourse" back into "Discourse Graphs"
** We made a first pass at designing templates for '''sources''', '''evidence''', '''claims''', and '''questions'''
** We discussed for the page relations enabled by SMW could be used to create DG edges.
* We annotated this page's [[Talk:Discourse Modeling|Discussion]] using simple DG syntax to experiment with transforming a "live" conversation into a DG
== Progress as of Day 2 ==
* We continued to build out the Discourse wiki on the talk page, including developing conventions for tagging parts of syntax and relations
* We discovered that what we are working towards is a set of  (mostly syntactical) conventions for creating Discourse Graphs -- almost like a Markdown for Discourse Graphs
* We extended the SPARQL query system
* We discussed discourse graph discovery algorithms
* We discussed visualization options
* We realized that the ability to notice and capture disparate mentions of  identical or similar topics would be a very desirable feature supporting collaboration
== Observations & Open Problems ==
* We immediately realized that we had seen very few Discourse Graphs "in the wild": the model makes intuitive sense in single player and small-group mode in Roam & Obsidian, but how gracefully will it scale to massively multiplayer synthesis?
** There are at least two possible models here: public-first writing in online mode (wiki, Roam) and local-first writing +push, probably via git. UX and conflict resolution will differ in these models.
* How to design with a federated future in mind?
** What does it mean for distinct graphs to share nodes? to "live" in adjacent namespaces?
* The challenge of using a wiki like git: simultaneous editing seems more cumbersome
* If creating templates is a large part of the work, more powerful text editing & transformation capabilities (e.g. sed, pandoc) seem in order
* Need to create a consistent way of sharing and editing templates - how do template changes propagate in a future federated system?
* Will graph visualization scale in a useful manner? How will traversal work?
* The relationship between naming and clustering: how do we name groups of related hypotheses? A family of experiments?
* Questions regarding feasible & appropriate levels of automation<br />
== Relevant Projects and Ideas ==
* [https://anagora.org/agora Agora]
* [https://everything2.com/ everything2]
* [https://cosma.graphlab.fr/en/ Cosma]
* Obsidian
* Roam
* Logseq
* [https://zettlr.com/ Zettlr]
* [https://tana.inc/ Tana]
* Kumu
* [https://discoursegraph.com The Discourse Graph Starter pack]
* [https://gtoolkit.com/components/lepiter/ Lepiter]
* [https://github.com/Massive-Wiki/massive-wiki Massive Wiki]
==Example Discourse==
[[Why do we expect increased concentrations of atmospheric carbon dioxide to change the climate?]]
==Example Discourse Graphs==
* [https://publish.obsidian.md/joelchan-notes/README Joel Chan's working notes]
* [https://civicdb.org/assertions/home CIViC] (Clinical Interpretation of Variance in Cancer]
==Tools==
[[Download SMW rdf data]]
[[Import SMW .jsonld as RDFStore in Wolfram Language]]
[[Example SPARQL queries in Wolfram Language]]
[[Execute SPARQL query against RDFStore]]
==Computation, Queries and Answers==
What is the act of synthesis, and what does it have to do with discourse graphs? 
Synthesis is the process by which one or more computational processes process the same set of information to generate a coherent understanding of (model of) the world.  The set of information in this case is the discourse graph, which contains  the information processed and shared in the act of attempting to answer a question, and information regarding the provenance of the information.   
‘This is an epistemic process made perhaps most explicit by the scientific process, but it is generalizable  in the sense that it can be used to describe two farmers sharing observations about the weather, or two parallel processes within a question answering system sharing results to synthesize a single answer. 
I suppose that this shouldn’t be surprising since since the discourse graph starts with a question, but the process that the discourse graph supports has much in common with query execution following an API call, but perhaps query execution that attempts to answer a question whose answer requires synthesis.  Perhaps a synthesis query? A query which returns multiple items of information (claims) that a computational process can synthesize to answer a question. 


== Discord ==
== Discord ==
42

edits