Difference between revisions of "Osgeo-knowledge-base"

From OSGeo
Jump to navigation Jump to search
(Created page with "OSGeo Knowledge Base - Automated wiki/WordPress/Planet content sync and processing GitHub: https://github.com/ominiverdi/osgeo-knowledge Cron: wiki (6h), WordPress (d...")
 
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
OSGeo Knowledge Base - Automated wiki/WordPress/Planet content sync and processing
+
= OSGeo Knowledge Base =
  
    GitHub: https://github.com/ominiverdi/osgeo-knowledge
+
Automated OSGeo Wiki, osgeo.org WordPress, and Planet OSGeo content sync and processing service running on [[Gallery_Container]].
    Cron: wiki (6h), WordPress (daily), Planet (4h), chunk processing (hourly)
+
 
 +
It is used by the [[LLM-based_Chat_Assistant|Matrix chat assistant]] to answer OSGeo-specific questions.
 +
 
 +
* GitHub: https://github.com/ominiverdi/osgeo-knowledge
 +
* Local path: <code>/home/ominiverdi/github/osgeo-knowledge</code>
 +
* Database: PostgreSQL on [[Gallery_Container|Gallery]]
 +
 
 +
== What can users ask? ==
 +
 
 +
Examples:
 +
 
 +
<pre>
 +
!oc search the OSGeo wiki for QGIS
 +
!oc find content about the incubation committee
 +
!oc get the QGIS wiki page
 +
!oc search entities for QGIS
 +
!oc what relationships are known for QGIS?
 +
!oc show OSGeo knowledge base statistics
 +
</pre>
 +
 
 +
== Scheduled jobs ==
 +
 
 +
Verified in the <code>ominiverdi</code> crontab on <code>osgeo7-gallery</code>:
 +
 
 +
<pre>
 +
15 */6 * * * wiki_sync.py --days 2
 +
0 3 * * * wordpress_sync.py --days 14
 +
30 */4 * * * planet_sync.py --all
 +
0 * * * * process_chunks.py --limit 100
 +
</pre>
 +
 
 +
Summary:
 +
 
 +
* Wiki sync: every 6 hours
 +
* WordPress sync: daily
 +
* Planet OSGeo sync: every 4 hours
 +
* Chunk processing: hourly
 +
 
 +
== MCP server ==
 +
 
 +
The MCP tools are provided by the <code>osgeo-knowledge</code> MCP server:
 +
 
 +
<pre>
 +
/home/ominiverdi/github/osgeo-knowledge/venv/bin/python -m osgeo_knowledge.servers.mcp
 +
</pre>
 +
 
 +
In the [[LLM-based_Chat_Assistant|Matrix chat bridge]], these tools appear with the <code>osgeo-knowledge_</code> prefix.
 +
 
 +
== MCP tools and examples ==
 +
 
 +
=== <code>osgeo-knowledge_search_wiki</code> ===
 +
 
 +
Searches LLM-generated summaries, keywords, and page titles.
 +
 
 +
Example visible tool call:
 +
 
 +
<pre>
 +
query=QGIS, source=wiki, limit=2 [osgeo-knowledge_search_wiki]
 +
</pre>
 +
 
 +
Live result examples included:
 +
 
 +
* <code>QGIS LATAM</code>
 +
* <code>QGIS-user-meeting-fr-2015</code>
 +
 
 +
=== <code>osgeo-knowledge_search_content</code> ===
 +
 
 +
Searches raw page content chunks and returns highlighted matches.
 +
 
 +
Example visible tool call:
 +
 
 +
<pre>
 +
query=incubation committee, source=wiki, limit=2 [osgeo-knowledge_search_content]
 +
</pre>
 +
 
 +
Live result examples included:
 +
 
 +
* <code>Incubation Committee</code>
 +
* highlighted matches for <code>Incubation</code> and <code>Committee</code>
 +
 
 +
=== <code>osgeo-knowledge_search_entities</code> ===
 +
 
 +
Searches extracted entities using fuzzy matching.
 +
 
 +
Example visible tool call:
 +
 
 +
<pre>
 +
query=QGIS, entity_type=project, limit=3 [osgeo-knowledge_search_entities]
 +
</pre>
 +
 
 +
Live result example:
 +
 
 +
<pre>
 +
QGIS (project)
 +
</pre>
 +
 
 +
Entity types currently include:
 +
 
 +
<pre>
 +
person
 +
organization
 +
topic
 +
location
 +
meeting
 +
conference
 +
sprint
 +
project
 +
year
 +
software
 +
</pre>
 +
 
 +
=== <code>osgeo-knowledge_get_entity_relationships</code> ===
 +
 
 +
Queries the OSGeo knowledge graph.
 +
 
 +
Example visible tool call:
 +
 
 +
<pre>
 +
entity_name=QGIS, limit=5 [osgeo-knowledge_get_entity_relationships]
 +
</pre>
 +
 
 +
Live relationship examples included:
 +
 
 +
<pre>
 +
QGIS --[is_project_of]--> OSGeo
 +
Alexander Bruy --[contributed_to]--> QGIS
 +
Vicky Vergara --[contributed_to]--> QGIS
 +
</pre>
 +
 
 +
=== <code>osgeo-knowledge_get_page</code> ===
 +
 
 +
Retrieves a page by exact or fuzzy title match.
 +
 
 +
Example visible tool call:
 +
 
 +
<pre>
 +
title=QGIS [osgeo-knowledge_get_page]
 +
</pre>
 +
 
 +
Live result included the QGIS wiki page URL, summary, keywords, and page content.
 +
 
 +
=== <code>osgeo-knowledge_get_wiki_stats</code> ===
 +
 
 +
Shows database statistics and sync status.
 +
 
 +
Example visible tool call:
 +
 
 +
<pre>
 +
[osgeo-knowledge_get_wiki_stats]
 +
</pre>
 +
 
 +
Live statistics at last check:
 +
 
 +
<pre>
 +
Pages:          5784
 +
Content chunks: 57568
 +
Categories:    327
 +
Entities:      20528
 +
Relationships:  17401
 +
Extensions:    5468
 +
</pre>
 +
 
 +
== Related services ==
 +
 
 +
* [[LLM-based Chat Assistant]]
 +
* [[OSGeo-Knowledge-Embedding-Server]]
 +
 
 +
'''Contact:''' ominiverdi, Lorenzo Becchi, or SAC channel.
 +
 
 +
[[Category:Services]]
 +
[[Category:AI-Services]]

Latest revision as of 11:06, 5 June 2026

OSGeo Knowledge Base

Automated OSGeo Wiki, osgeo.org WordPress, and Planet OSGeo content sync and processing service running on Gallery_Container.

It is used by the Matrix chat assistant to answer OSGeo-specific questions.

What can users ask?

Examples:

!oc search the OSGeo wiki for QGIS
!oc find content about the incubation committee
!oc get the QGIS wiki page
!oc search entities for QGIS
!oc what relationships are known for QGIS?
!oc show OSGeo knowledge base statistics

Scheduled jobs

Verified in the ominiverdi crontab on osgeo7-gallery:

15 */6 * * * wiki_sync.py --days 2
0 3 * * * wordpress_sync.py --days 14
30 */4 * * * planet_sync.py --all
0 * * * * process_chunks.py --limit 100

Summary:

  • Wiki sync: every 6 hours
  • WordPress sync: daily
  • Planet OSGeo sync: every 4 hours
  • Chunk processing: hourly

MCP server

The MCP tools are provided by the osgeo-knowledge MCP server:

/home/ominiverdi/github/osgeo-knowledge/venv/bin/python -m osgeo_knowledge.servers.mcp

In the Matrix chat bridge, these tools appear with the osgeo-knowledge_ prefix.

MCP tools and examples

osgeo-knowledge_search_wiki

Searches LLM-generated summaries, keywords, and page titles.

Example visible tool call:

query=QGIS, source=wiki, limit=2 [osgeo-knowledge_search_wiki]

Live result examples included:

  • QGIS LATAM
  • QGIS-user-meeting-fr-2015

osgeo-knowledge_search_content

Searches raw page content chunks and returns highlighted matches.

Example visible tool call:

query=incubation committee, source=wiki, limit=2 [osgeo-knowledge_search_content]

Live result examples included:

  • Incubation Committee
  • highlighted matches for Incubation and Committee

osgeo-knowledge_search_entities

Searches extracted entities using fuzzy matching.

Example visible tool call:

query=QGIS, entity_type=project, limit=3 [osgeo-knowledge_search_entities]

Live result example:

QGIS (project)

Entity types currently include:

person
organization
topic
location
meeting
conference
sprint
project
year
software

osgeo-knowledge_get_entity_relationships

Queries the OSGeo knowledge graph.

Example visible tool call:

entity_name=QGIS, limit=5 [osgeo-knowledge_get_entity_relationships]

Live relationship examples included:

QGIS --[is_project_of]--> OSGeo
Alexander Bruy --[contributed_to]--> QGIS
Vicky Vergara --[contributed_to]--> QGIS

osgeo-knowledge_get_page

Retrieves a page by exact or fuzzy title match.

Example visible tool call:

title=QGIS [osgeo-knowledge_get_page]

Live result included the QGIS wiki page URL, summary, keywords, and page content.

osgeo-knowledge_get_wiki_stats

Shows database statistics and sync status.

Example visible tool call:

[osgeo-knowledge_get_wiki_stats]

Live statistics at last check:

Pages:          5784
Content chunks: 57568
Categories:     327
Entities:       20528
Relationships:  17401
Extensions:     5468

Related services

Contact: ominiverdi, Lorenzo Becchi, or SAC channel.