Skip to content
ceurwsPublic

About

Semantification of CEUR-WS publication workflow

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

semantify

Semantification of the CEUR-WS publication workflow

PyPi PyPI Status License pypi format downloads
GitHub Github Actions Build Release Contributors Last Commit GitHub issues GitHub closed issues
Code style-black imports-isort
Docs API Docs formatter-docformatter style-google

See Issue #1: Semantify CEUR-WS for the project vision and definition of done.

Installation

pip install pyCEURsemantify

The command line tool is ceursemantify; ceursemantify -h lists the options. Releases are on PyPI, the milestones on GitHub.

Generator

ceursemantify generates year, volume and paper pages for volume numbers and ranges, see #24. The JSON-LD of each volume is fetched from ceur-spt and mapped to the research model of cr.bitplan.com. The year of a volume is the year of the start date of its event.

# generate volumes into the year of their event
ceursemantify 3649-4202 -o /tmp/ceur-ws-yyyy --progress
# rebuild the page of a year from the volumes present
ceursemantify --year 2024 -o /tmp/ceur-ws-yyyy
# fetch and write the volumes of a year again and rebuild its page
ceursemantify --year 2024 --regenerate -o /tmp/ceur-ws-yyyy --progress
# load all JSON-LD files into memory and serve them as SPARQL endpoint, see #18
ceursemantify --serve -o /tmp/ceur-ws-yyyy

Written are yyyy/index.html, yyyy/Vol-N/index.html and yyyy/Vol-N/paperK/index.html, each volume and paper page with an index.jsonld beside it and the same JSON-LD as a json-ld fence in an HTML comment that semantify3 extracts again.

Embedding

For a volume published on ceur-ws.org the page of the proceedings chair stays as it is; --embed parses it, maps it to the research model and embeds the JSON-LD into it, see #28.

# embed the JSON-LD into the volume pages of the chairs and write index.jsonld next to them
ceursemantify --embed /path/to/Vol-4280 /path/to/Vol-4281/index.html

The page gets a CEURSTATE=embedded comment, the alternate link and the fence in its head; the page is only rewritten if the embedded page parses to the same proceedings as the original one. Embedding again replaces the embedded parts. Example: Vol-4280 with its index.jsonld.

Generating from local volume pages

--generate reads local volume pages instead of ceur-spt and writes the volume and paper pages from them, see #33 and #34. An embedded page is read from its index.jsonld; the fence in the page is only the copy and is read when there is no index.jsonld, see #42. So the DOIs that the registration script writes into index.jsonld reach the pages.

# volume and paper pages into the year tree of the output directory
ceursemantify --generate /path/to/Vol-4298 -o /tmp/ceur-ws-yyyy
# in place: index.html, index.jsonld and the paper pages Vol-N/paperK/ into the volume directory itself
ceursemantify --generate /path/to/Vol-4298 --in-place

With --in-place the page of the proceedings chair is replaced by the generated one, see #43. The sequence for a newly published volume per #14 is --embed, the DOI registration writing into index.jsonld, --generate --in-place.

Endpoint

--serve loads all index.jsonld files into memory and serves them over the SPARQL protocol as the single point of truth, see #18. The named queries of the competency questions are in ceursemantify/resources/queries.yaml:

# with an entry ceur-ws-spt for the endpoint in ~/.pylodstorage/endpoints.yaml
sparqlquery -qp ceursemantify/resources/queries.yaml -en ceur-ws-spt -qn AllVolumes -f csv
File Role
ceursemantify/model.py research model: Proceedings, Paper, Event, Scholar, Publisher, City, Country
ceursemantify/resources/ceurspt_mapping.yaml input mapping: ceur-spt JSON-LD to the research model
ceursemantify/volume_html.py input mapping: volume page of the proceedings chair to the research model
ceursemantify/loctime.py parser of the location and time text of a volume page
ceursemantify/embed.py embedding of the JSON-LD into a volume page
ceursemantify/resources/context.yaml JSON-LD context of the research model, with the terms the ontology does not have yet
ceursemantify/resources/queries.yaml named queries of the competency questions for the endpoint
ceursemantify/resources/site.yaml site configuration
ontology/ceur-ws.ttl CEUR-WS proceedings ontology, see discussion 6

Prototype: 2023, 2024, 2025, 2026

Related Projects

Project Role
pyCEURmake CEUR-WS metadata extraction and Volume Browser
ceur-spt Single Point of Truth server — content negotiation (FastAPI)
SemPubFlow Metadata-first publishing workflow (nicegui)
pyLoDStorage List-of-Dict storage with named query support
geograpy3 Location NER/NEL with Wikidata linking
semantify3 YAML-to-triples — syntax matters
snapquery Named parameterized query middleware

Papers

Paper Venue Status
Semantification of CEUR-WS with Wikidata as a target Knowledge Graph text2kg 2023 accepted
SemPubFlow: a novel Scientific Publishing Workflow using Knowledge Graphs, Wikidata and LLMs Semantic Web Journal rejected
Semantify CEUR-WS ISWC 2026 In-Use Track accepted

License

Apache 2.0 (under discussion)

About

Semantification of CEUR-WS publication workflow

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages