\n\n".format(
+ res=nodeShape.targetClass[0].rsplit('/', 1)[-1], type=nodeShape.targetClass[0]))
+
+ for nodes in nodeShape.targetNode:
+ self.logger.debug(nodes)
+ self.logger.debug(
+ 'The following ressources need to be Objects of those predicates'
+ )
+
+ for nodes in nodeShape.targetObjectsOf:
+ self.logger.debug(nodes)
+
+ for nodes in nodeShape.targetSubjectsOf:
+ self.logger.debug(nodes)
+
+ for property in nodeShape.properties:
+ if len(nodeShape.targetClass) > 0:
+ shapeName = nodeShape.targetClass[0].rsplit('/', 1)[-1]
+ else:
+ shapeName = "Temporary Shapename"
+ content = self.propertyShapeEvaluation(property, fp, shapeName)
+
+ self.content.append(content)
+
+ if len(nodeShape.targetClass) > 0:
+ resource_hack = nodeShape.targetClass[0].rsplit('/', 1)[-1]
+ self.content.append(
+ '{{% assign {resource} = page.rdf | rdf_property: '.format(
+ resource=resource_hack.lower()))
+ self.content.append(
+ '"<{type}/{resource}>", nil, true %}} \n'.format(
+ type=nodeShape.targetClass[0].rsplit('/', 1)[-2],
+ resource=resource_hack.lower()))
+ self.content.append(
+ '\n{{% for {instance}_instance in {resource} '.format(
+ instance=nodeShape.targetClass[0].rsplit('/', 1)[-1].lower(),
+ resource=resource_hack.lower()))
+ self.content.append(
+ '%}}\n
{{{{ {instance}_instance.iri }}}}
\n'.format(
+ instance=nodeShape.targetClass[0].rsplit('/', 1)[-1].lower()))
+
+ if len(nodeShape.targetClass) == 1:
+ self.content.append("\n{% endfor %}\n{% endif %}\n")
+
+ def propertyShapeEvaluation(self, propertyShape, fp, shapeName):
+ """Evaluate propertyShape and return HTML.
+ args: propertyShape a propertyShape object
+ fp
+ return: html string
+ """
+ html = ''
+
+ if isinstance(propertyShape.path, dict):
+ # TODO handle complex paths (inverse, oneOrMorePath ...)
+ self.logger.info('Complex path not supported, yet')
+ elif isinstance(propertyShape.path, list):
+ # TODO handle sequence paths
+ self.logger.info('Sequence path not supported, yet')
+ else:
+ uri = propertyShape.path
+ lowercase_str = uuid.uuid4().hex[:4]
+ label_jekyll = propertyShape.name['default'].lower() \
+ if propertyShape.isSet['name'] and 'default' in propertyShape.name \
+ else propertyShape.path.lower().rsplit('/', 1)[-1]
+ label_jekyll += "_" + lowercase_str
+ label = propertyShape.name.lower() \
+ if propertyShape.isSet['name'] and 'default' in propertyShape.name \
+ else propertyShape.path.lower().rsplit('/', 1)[-1]
+
+ html += """{{% assign {label} = page.rdf | """.format(label=label_jekyll)
+ html += """rdf_property: "<{uri}>", nil, true %}}\n""".format(uri=uri)
+
+ html += """{{% if {label} %}}\n""".format(label=label_jekyll)
+
+ html += """
"""
+ html += """
{label}
""".format(label=label)
+ html += """{{% for each_{label} in {label} %}}\n""".format(label=label_jekyll)
+ html += """{{% if each_{label}.iri %}}\n""".format(label=label_jekyll)
+ html += """