private void populateValueShape(LocalIndividual constraint, LocalIndividual shape) { if(shape!=null) { constraint.addValue(shaclTerm("valueShape"),shape); } }
private void populateDatatype(LocalIndividual constraint, URI datatype) { if(datatype!=null) { constraint.addValue(shaclTerm("datatype"),externalIndividual(datatype)); } }
private void populateValueType(LocalIndividual constraint, URI valueType) { if(valueType!=null) { constraint.addValue(shaclTerm("valueType"),externalIndividual(valueType)); } }
private void populateCardinality(Individual<?,?> individual, Cardinality cardinality) { if(cardinality.min()>0) { individual.addValue(shaclTerm("minCount"), typedLiteral(cardinality.min(),"integer")); } if(cardinality.max()>=0) { individual.addValue(shaclTerm("maxCount"), typedLiteral(cardinality.max(),"integer")); } }
String prefix = individual.id().id()+"_allowedValues_"; Individual<?,?> current=localIndividual(prefix+i); individual.addValue(shaclTerm("allowedValues"), current); while(values.hasNext()) { Value value=values.next();
String shapeId = cache.id(shape); reportInd().addValue(ldp4jTerm("hasShape"), shapeInd); shapeInd.addValue(vocabularyTerm(RDF.TYPE), externalIndividual(shaclTerm("Shape"))); populateDescription(shapeInd, shape); List<PropertyConstraint> pcs = shape.propertyConstraints(); PropertyConstraint pc = pcs.get(j); LocalIndividual pcInd = localIndividual(shapeId+"_pc"+j); shapeInd.addValue(shaclTerm("property"), pcInd); pcInd.addValue(vocabularyTerm(RDF.TYPE), externalIndividual(shaclTerm("PropertyConstraint"))); pcInd.addValue(shaclTerm("predicate"), externalIndividual(pc.predicate())); populateDescription(pcInd, pc); populateCardinality(pcInd, pc.cardinality()); InversePropertyConstraint ipc = ipcs.get(j); LocalIndividual ipcInd = localIndividual(shapeId+"_ipc"+j); shapeInd.addValue(shaclTerm("property"), ipcInd); ipcInd.addValue(vocabularyTerm(RDF.TYPE), externalIndividual(shaclTerm("InversePropertyConstraint"))); ipcInd.addValue(shaclTerm("predicate"), externalIndividual(ipc.predicate())); populateDescription(ipcInd, ipc); populateCardinality(ipcInd, ipc.cardinality());
private void populateConstraintReportIndividual() { Constraints constraints = this.report.getConstraints(); LOGGER.debug("Populating constraints: {}",constraints); reportInd().addValue(vocabularyTerm(RDF.TYPE), externalIndividual(ldp4jTerm("ConstraintReport"))); reportInd().addValue(ldp4jTerm("failureId"), literal(this.report.id().failureId())); reportInd().addValue(ldp4jTerm("failureDate"), literal(this.report.getDate())); reportInd().addValue(ldp4jTerm("failureRequest"), requestInd()); IndividualTranslator translator = new IndividualTranslator(); ShapeIndividualCache shapeCache=new ShapeIndividualCache(); Queue<Shape> pendingShapes=Lists.newLinkedList(constraints.shapes()); while(!pendingShapes.isEmpty()) { Shape shape=pendingShapes.poll(); if(!shapeCache.isPopulated(shape)) { shapeCache.populate(shape); Set<Shape> foundShapes = populateShapeDefinition(shape, shapeCache, translator); pendingShapes.addAll(foundShapes); } } for(URI type:constraints.types()) { Individual<?,?> typeInd=externalIndividual(type); typeInd.addValue(shaclTerm("typeShape"), shapeCache.individual(constraints.typeShape(type))); } for(Individual<?, ?> node:constraints.nodes(dataset)) { Individual<?, ?> individual = translator.translate(node); individual.addValue(shaclTerm("nodeShape"), shapeCache.individual(constraints.nodeShape(node))); } }