madb-fuseki-docker/create_void.py

39 lines
1.2 KiB
Python
Raw Permalink Normal View History

2023-07-03 03:14:10 +09:00
import sys
from datetime import datetime
2023-07-03 23:46:20 +09:00
def create_void_description(version: str) -> str:
issued = datetime.strptime(version, "%Y%m%d").strftime("%Y-%m-%d")
2023-07-03 03:14:10 +09:00
data_dump_statements = ""
2023-07-03 23:46:20 +09:00
with open(f"./versions/{version}.txt") as f:
2023-07-03 03:14:10 +09:00
urls = f.read().splitlines()
for url in urls:
data_dump_statements += f" void:dataDump <{url}> ;\n"
2023-07-03 23:46:20 +09:00
2023-07-03 03:14:10 +09:00
return f"""
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://localhost:3030/madb/void/>
{{
2023-07-03 04:36:36 +09:00
<http://localhost:3030/madb/#dataset> a void:Dataset ;
2023-07-03 03:14:10 +09:00
dcterms:title "メディア芸術データベース ({issued}版)"@ja, "Media Arts Database (ver.{issued})"@en ;
dcterms:license <https://mediaarts-db.bunka.go.jp/user_terms> ;
dcterms:issued "{issued}"^^xsd:date ;
void:uriSpace "https://mediaarts-db.bunka.go.jp/id/" ;
void:sparqlEndpoint <http://localhost:3030/madb/sparql> ;
{data_dump_statements.strip()}
.
}}
""".strip()
2023-07-03 23:46:20 +09:00
if __name__ == "__main__":
2023-07-03 03:14:10 +09:00
if len(sys.argv) != 2:
2023-07-03 23:46:20 +09:00
print("Please specify date.", file=sys.stderr)
2023-07-03 03:14:10 +09:00
exit(1)
2023-07-03 23:46:20 +09:00
print(create_void_description(sys.argv[1]))