spdx_tools.spdx.writer.rdf.creation_info_writer
1# SPDX-FileCopyrightText: 2023 spdx contributors 2# 3# SPDX-License-Identifier: Apache-2.0 4from rdflib import RDF, RDFS, BNode, Graph, Literal, URIRef 5 6from spdx_tools.spdx.datetime_conversions import datetime_to_iso_string 7from spdx_tools.spdx.model import CreationInfo 8from spdx_tools.spdx.rdfschema.namespace import LICENSE_NAMESPACE, SPDX_NAMESPACE 9from spdx_tools.spdx.writer.rdf.external_document_ref_writer import add_external_document_ref_to_graph 10from spdx_tools.spdx.writer.rdf.writer_utils import add_optional_literal 11 12 13def add_creation_info_to_graph(creation_info: CreationInfo, graph: Graph): 14 doc_node = URIRef(f"{creation_info.document_namespace}#{creation_info.spdx_id}") 15 graph.add((doc_node, RDF.type, SPDX_NAMESPACE.SpdxDocument)) 16 graph.add((doc_node, SPDX_NAMESPACE.specVersion, Literal(creation_info.spdx_version))) 17 graph.add((doc_node, SPDX_NAMESPACE.dataLicense, LICENSE_NAMESPACE[creation_info.data_license])) 18 graph.add((doc_node, SPDX_NAMESPACE.name, Literal(creation_info.name))) 19 add_optional_literal(creation_info.document_comment, graph, doc_node, RDFS.comment) 20 21 creation_info_node = BNode() 22 graph.add((creation_info_node, RDF.type, SPDX_NAMESPACE.CreationInfo)) 23 24 graph.add((creation_info_node, SPDX_NAMESPACE.created, Literal(datetime_to_iso_string(creation_info.created)))) 25 26 for creator in creation_info.creators: 27 graph.add((creation_info_node, SPDX_NAMESPACE.creator, Literal(creator.to_serialized_string()))) 28 29 add_optional_literal( 30 creation_info.license_list_version, graph, creation_info_node, SPDX_NAMESPACE.licenseListVersion 31 ) 32 add_optional_literal(creation_info.creator_comment, graph, creation_info_node, RDFS.comment) 33 34 graph.add((doc_node, SPDX_NAMESPACE.creationInfo, creation_info_node)) 35 36 for external_document_ref in creation_info.external_document_refs: 37 add_external_document_ref_to_graph(external_document_ref, graph, doc_node, creation_info.document_namespace) 38 39 return doc_node
def
add_creation_info_to_graph( creation_info: spdx_tools.spdx.model.document.CreationInfo, graph: rdflib.graph.Graph):
14def add_creation_info_to_graph(creation_info: CreationInfo, graph: Graph): 15 doc_node = URIRef(f"{creation_info.document_namespace}#{creation_info.spdx_id}") 16 graph.add((doc_node, RDF.type, SPDX_NAMESPACE.SpdxDocument)) 17 graph.add((doc_node, SPDX_NAMESPACE.specVersion, Literal(creation_info.spdx_version))) 18 graph.add((doc_node, SPDX_NAMESPACE.dataLicense, LICENSE_NAMESPACE[creation_info.data_license])) 19 graph.add((doc_node, SPDX_NAMESPACE.name, Literal(creation_info.name))) 20 add_optional_literal(creation_info.document_comment, graph, doc_node, RDFS.comment) 21 22 creation_info_node = BNode() 23 graph.add((creation_info_node, RDF.type, SPDX_NAMESPACE.CreationInfo)) 24 25 graph.add((creation_info_node, SPDX_NAMESPACE.created, Literal(datetime_to_iso_string(creation_info.created)))) 26 27 for creator in creation_info.creators: 28 graph.add((creation_info_node, SPDX_NAMESPACE.creator, Literal(creator.to_serialized_string()))) 29 30 add_optional_literal( 31 creation_info.license_list_version, graph, creation_info_node, SPDX_NAMESPACE.licenseListVersion 32 ) 33 add_optional_literal(creation_info.creator_comment, graph, creation_info_node, RDFS.comment) 34 35 graph.add((doc_node, SPDX_NAMESPACE.creationInfo, creation_info_node)) 36 37 for external_document_ref in creation_info.external_document_refs: 38 add_external_document_ref_to_graph(external_document_ref, graph, doc_node, creation_info.document_namespace) 39 40 return doc_node