racket / racket/scribble

Semantic overhaul of Scribble with RDFa

Open
#228 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Racket
Stars
250
Forks
102
Avg merge
11d 11h
Merged PRs (30d)
1

Description

This is a proposal for an overhaul of current Scribble implementation.

The goal of the project is for every document generated by Scribble to be semantically annotated with RDFa + JSON-LD and search to be (also) implemented with HDT/SPARQL as engine.

The benefits:
  • Flexible Datalog like querying for every facet of document
  • Possibility of building Natural Language Querying on top of RDF data and SPARQL- Ease of extending properties thanks to Open World Assumption of OWL.
  • Data annotation can be as granular as needed (e.g. it could include source code line on github for every paragraph).
  • Semantic annotation is accessible for search engines crawlers.
  • If packagsrc would implement semantic data the data integration between these 2 would be seamless (e.g. you could search for all packages that use SomeFunction)
  • Ability to reason about documentation (e.g. list documentation that doesn't fulfill certain criteria)
The means/Required work:
  1. implement RDF toolset in Racket:
  • RDF turtle/NQuads
  • JSON-LD (implemented by @cwebber)
  • RDFa parser
  • HDT ffi (for data storage and querying)
  1. Building OWL ontology for Scribble documentation/code
  2. Rework of Scribble output to replace current class based annotation with RDFa. If you are not familiar with Semantic annotation take a look at https://schema.org/Article especially scroll to the bottom to the RDFa tab.
  3. Data querying based on data stored in HDT files for local documentation and possibly triple store (e.g. RDF4J) for the server side documentation. http://www.rdfhdt.org/what-is-hdt/

If you have any questions regarding benefits/implementation details feel free to ask here.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no repository files, tests, or entry points. Start by decomposing the required work—RDF Turtle/NQuads, JSON-LD, RDFa parsing, HDT FFI, an OWL ontology, Scribble output changes, and HDT or triple-store querying—and define the scope before implementation; done would require the semantic output and querying overhaul described.

Written by the indexing model from the issue text.

Assessment

Domain
documentation, search
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.