spdx_tools.spdx.writer.rdf.extracted_licensing_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.model import ExtractedLicensingInfo
 7from spdx_tools.spdx.rdfschema.namespace import SPDX_NAMESPACE
 8from spdx_tools.spdx.writer.rdf.writer_utils import add_literal_or_no_assertion, add_optional_literal
 9
10
11def add_extracted_licensing_info_to_graph(
12    extracted_licensing_info: ExtractedLicensingInfo, graph: Graph, doc_node, doc_namespace: str
13):
14    if extracted_licensing_info.license_id:
15        extracted_licensing_info_resource = URIRef(f"{doc_namespace}#{extracted_licensing_info.license_id}")
16        graph.add((extracted_licensing_info_resource, RDF.type, SPDX_NAMESPACE.ExtractedLicensingInfo))
17    else:
18        extracted_licensing_info_resource = BNode()
19    add_optional_literal(
20        extracted_licensing_info.license_id, graph, extracted_licensing_info_resource, SPDX_NAMESPACE.licenseId
21    )
22    add_optional_literal(
23        extracted_licensing_info.extracted_text, graph, extracted_licensing_info_resource, SPDX_NAMESPACE.extractedText
24    )
25    add_literal_or_no_assertion(
26        extracted_licensing_info.license_name, graph, extracted_licensing_info_resource, SPDX_NAMESPACE.name
27    )
28    for cross_reference in extracted_licensing_info.cross_references:
29        graph.add((extracted_licensing_info_resource, RDFS.seeAlso, Literal(cross_reference)))
30    add_optional_literal(extracted_licensing_info.comment, graph, extracted_licensing_info_resource, RDFS.comment)
31
32    graph.add((doc_node, SPDX_NAMESPACE.hasExtractedLicensingInfo, extracted_licensing_info_resource))
def add_extracted_licensing_info_to_graph( extracted_licensing_info: spdx_tools.spdx.model.extracted_licensing_info.ExtractedLicensingInfo, graph: rdflib.graph.Graph, doc_node, doc_namespace: str):
12def add_extracted_licensing_info_to_graph(
13    extracted_licensing_info: ExtractedLicensingInfo, graph: Graph, doc_node, doc_namespace: str
14):
15    if extracted_licensing_info.license_id:
16        extracted_licensing_info_resource = URIRef(f"{doc_namespace}#{extracted_licensing_info.license_id}")
17        graph.add((extracted_licensing_info_resource, RDF.type, SPDX_NAMESPACE.ExtractedLicensingInfo))
18    else:
19        extracted_licensing_info_resource = BNode()
20    add_optional_literal(
21        extracted_licensing_info.license_id, graph, extracted_licensing_info_resource, SPDX_NAMESPACE.licenseId
22    )
23    add_optional_literal(
24        extracted_licensing_info.extracted_text, graph, extracted_licensing_info_resource, SPDX_NAMESPACE.extractedText
25    )
26    add_literal_or_no_assertion(
27        extracted_licensing_info.license_name, graph, extracted_licensing_info_resource, SPDX_NAMESPACE.name
28    )
29    for cross_reference in extracted_licensing_info.cross_references:
30        graph.add((extracted_licensing_info_resource, RDFS.seeAlso, Literal(cross_reference)))
31    add_optional_literal(extracted_licensing_info.comment, graph, extracted_licensing_info_resource, RDFS.comment)
32
33    graph.add((doc_node, SPDX_NAMESPACE.hasExtractedLicensingInfo, extracted_licensing_info_resource))