/** * Convert quads from a skolemized form to an external form. * * @param svc the resource service * @param baseUrl the base URL * @return a mapping function */ public static Function<Quad, Quad> unskolemizeQuads(final ResourceService svc, final String baseUrl) { return quad -> rdf.createQuad(quad.getGraphName().orElse(PreferUserManaged), (BlankNodeOrIRI) svc.toExternal(svc.unskolemize(quad.getSubject()), baseUrl), quad.getPredicate(), svc.toExternal(svc.unskolemize(quad.getObject()), baseUrl)); }
/** * Convert triples from a skolemized form to an externa form. * * @param svc the resourceService * @param baseUrl the base URL * @return a mapping function */ public static Function<Triple, Triple> unskolemizeTriples(final ResourceService svc, final String baseUrl) { return triple -> rdf.createTriple((BlankNodeOrIRI) svc.toExternal(svc.unskolemize(triple.getSubject()), baseUrl), triple.getPredicate(), svc.toExternal(svc.unskolemize(triple.getObject()), baseUrl)); }
@BeforeEach public void setUp() { initMocks(this); doCallRealMethod().when(mockResourceService).skolemize(any()); doCallRealMethod().when(mockResourceService).unskolemize(any()); doCallRealMethod().when(mockResourceService).toInternal(any(), any()); doCallRealMethod().when(mockResourceService).toExternal(any(), any()); doCallRealMethod().when(mockResourceService).create(any(), any()); when(mockRetrievalService.get(eq(existing))).thenAnswer(inv -> completedFuture(mockResource)); }
when(mockResourceService.get(eq(userDeletedIdentifier))).thenAnswer(inv -> completedFuture(DELETED_RESOURCE)); when(mockResourceService.generateIdentifier()).thenReturn(RANDOM_VALUE); when(mockResourceService.unskolemize(any(IRI.class))).thenCallRealMethod(); when(mockResourceService.toInternal(any(RDFTerm.class), any())).thenCallRealMethod(); when(mockResourceService.toExternal(any(RDFTerm.class), any())).thenCallRealMethod(); when(mockResourceService.replace(any(Metadata.class), any(Dataset.class))).thenReturn(completedFuture(null)); when(mockResourceService.create(any(Metadata.class), any(Dataset.class))).thenReturn(completedFuture(null)); when(mockResourceService.unskolemize(any(Literal.class))).then(returnsFirstArg()); when(mockResourceService.skolemize(any(Literal.class))).then(returnsFirstArg()); when(mockResourceService.skolemize(any(IRI.class))).then(returnsFirstArg());
@Test public void testSkolemization() { final BlankNode bnode = rdf.createBlankNode("testing"); final IRI iri = rdf.createIRI("trellis:bnode/testing"); final IRI resource = rdf.createIRI("trellis:data/resource"); assertTrue(mockResourceService.skolemize(bnode) instanceof IRI, "Blank node not skolemized into IRI!"); assertTrue(((IRI) mockResourceService.skolemize(bnode)).getIRIString().startsWith("trellis:bnode/"), "Skolem node has wrong prefix!"); assertTrue(mockResourceService.unskolemize(iri) instanceof BlankNode, "Skolem IRI not unskolemized to bnode!"); assertEquals(mockResourceService.unskolemize(iri), mockResourceService.unskolemize(iri), "Unskolemized bnodes (from the same skolem node) don't match!"); assertFalse(mockResourceService.unskolemize(rdf.createLiteral("Test")) instanceof BlankNode, "Unskolemized literal transformed into blank node!"); assertFalse(mockResourceService.unskolemize(resource) instanceof BlankNode, "Unskolemized resource IRI transformed into blank node!"); assertFalse(mockResourceService.skolemize(rdf.createLiteral("Test2")) instanceof IRI, "Unskolemized literal transformed into IRI!"); }
when(mockResourceService.skolemize(any(BlankNode.class))).thenAnswer(inv -> rdf.createIRI(TRELLIS_BNODE_PREFIX + ((BlankNode) inv.getArgument(0)).uniqueReference())); when(mockResourceService.unskolemize(any(IRI.class))) .thenAnswer(inv -> { final String uri = ((IRI) inv.getArgument(0)).getIRIString(); }); when(mockResourceService.unskolemize(any(Literal.class))).then(returnsFirstArg());