diff --git a/scripts/rdf.py b/scripts/rdf.py index d6f2fb0..9048145 100755 --- a/scripts/rdf.py +++ b/scripts/rdf.py @@ -17,7 +17,8 @@ if not DEBIMAN_SERVING_DIR: MANPAGE = Namespace('dokk:manpages:') -g_distro = Graph() +# A graph to store all the triples +g = Graph() for absolute_file_path in pathlib.Path(DEBIMAN_SERVING_DIR).glob('**/*.roff'): if not absolute_file_path.is_file(): @@ -58,7 +59,9 @@ for absolute_file_path in pathlib.Path(DEBIMAN_SERVING_DIR).glob('**/*.roff'): except: html = '' - # Create a graph node for this manpage + # Create a separate graph node for this manpage + # A separate, temporary graph for a manpage that is printed out immediately + # because I haven't got enough RAM for storing thousands of pages. g_page = Graph() page_ref = URIRef('dokk:manpages:debian/' + urllib.parse.quote(f'{distro_number}/{distro_package}/{filename}')) @@ -80,17 +83,18 @@ for absolute_file_path in pathlib.Path(DEBIMAN_SERVING_DIR).glob('**/*.roff'): # Create a graph node for this package # Link to the page node package_ref = URIRef('dokk:manpages:debian/' + urllib.parse.quote(f'{distro_number}/{distro_package}')) - g_distro.add((package_ref, RDF.type, URIRef(MANPAGE.Package))) - g_distro.add((package_ref, MANPAGE.name, Literal(distro_package))) - g_distro.add((package_ref, MANPAGE.page, page_ref)) + g.add((package_ref, RDF.type, URIRef(MANPAGE.Package))) + g.add((package_ref, MANPAGE.name, Literal(distro_package))) + g.add((package_ref, MANPAGE.page, page_ref)) # Create a graph node for this distro # Link to the package node distro_ref = URIRef('dokk:manpages:debian/' + urllib.parse.quote(f'{distro_number}')) - g_distro.add((distro_ref, RDF.type, URIRef(MANPAGE.Distribution))) - g_distro.add((distro_ref, MANPAGE.name, Literal('debian'))) - g_distro.add((distro_ref, MANPAGE.codename, Literal(distro_codename))) - g_distro.add((distro_ref, MANPAGE.number, Literal(distro_number))) - g_distro.add((distro_ref, MANPAGE.package, package_ref)) - -print(g_distro.serialize(format='nt')) + g.add((distro_ref, RDF.type, URIRef(MANPAGE.Distribution))) + g.add((distro_ref, MANPAGE.name, Literal('debian'))) + g.add((distro_ref, MANPAGE.codename, Literal(distro_codename))) + g.add((distro_ref, MANPAGE.number, Literal(distro_number))) + g.add((distro_ref, MANPAGE.package, package_ref)) + +# Print out the graph +print(g.serialize(format='nt'))