def to_rdf(self, subj: BNode, namespace: Namespace, graph: Graph, node_cache: NodeCache) -> None: """Graph this link on a BNode in a Graph using a given Namespace to create the full predicate. Args: subj: subject portion of triple - graph this link's pred, obj against it. namespace: RDF namespace to use for this triple's predicate graph: RDF graph node_cache: NodeCache to use to find cached nodes. """ link_node = node_cache.setdefault(self.obj, URIRef(self.obj)) graph.add((subj, getattr(namespace, self.pred), link_node))
def to_rdf(self, namespace: Namespace, graph: Graph, node_cache: NodeCache) -> None: """Graph this Resource as a URIRef on a Graph. Args: namespace: RDF namespace to use for predicates and objects when graphing this resource's links graph: RDF graph node_cache: NodeCache to use for any cached URIRef lookups """ node = node_cache.setdefault(self.resource_id, URIRef(self.resource_id)) graph.add((node, RDF.type, getattr(namespace, self.type_name))) graph.add((node, getattr(namespace, "id"), Literal(self.resource_id))) for link in self.links: link.to_rdf(subj=node, namespace=namespace, graph=graph, node_cache=node_cache)