diff -r 544bc92e6fe7 -r 08cffedf6e60 src/p4l/semantictree/forms/forms.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/p4l/semantictree/forms/forms.py Wed Sep 04 16:56:55 2013 +0200 @@ -0,0 +1,289 @@ +from django import forms +from .widgets import SemanticTreeWidget, SemanticTagItWidget + + +class SubjectForm(forms.Form): + # __reg__ is updated with the real regexp by the js + subject = forms.CharField(required=True, label="Subjects", + widget=SemanticTreeWidget(attrs={ + 'size': 25, + 'class': "form-control", + 'data-url': "http://localhost:8080/openrdf-sesame/repositories/plan4learning", + 'data-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri a skos:Concept. + ?uri skos:inScheme . + ?uri skos:prefLabel ?label. + FILTER (lang(?label) = ?language). + ?uri skos:prefLabel ?lab. + FILTER regex (str(?lab), ?reg, 'i'). + FILTER (lang (?lab) = ?language). + BIND (STRLEN(STRBEFORE (str(?lab), ?reg)) AS ?place). + BIND (STRLEN(STR(?lab)) AS ?len) +} +ORDER BY ?place ?len ?lab +""", + 'data-root-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri a skos:Collection ; + skos:inScheme ; + rdfs:label ?label . + FILTER (lang(?label) = ?language). + FILTER NOT EXISTS { [skos:member ?uri] } +} +""", + 'data-childs-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri skos:inScheme . + { ?uri a ?type + FILTER (?type = skos:Collection || ?type = skos:Concept) }. + ?root skos:narrower|skos:member ?uri. + ?uri skos:prefLabel|rdfs:label ?label. + FILTER (lang(?label) = ?language). +} +""", + 'data-child-count-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT (COUNT(?uri) as ?nb) +WHERE { + ?uri skos:inScheme . + ?root skos:narrower|skos:member ?uri. +} +""" + })) + + + + +class SemForm(forms.Form): + # __reg__ is updated with the real regexp by the js + sem = forms.CharField(required=True, label="Dude, sem", + widget=SemanticTreeWidget(attrs={ + 'size': 25, + 'class': "dude", + 'data-url': "http://localhost:8080/openrdf-sesame/repositories/plan4learning", + 'data-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri a skos:Concept. + ?uri skos:inScheme . + ?uri skos:prefLabel ?label. + FILTER (lang(?label) = ?language). + ?uri skos:prefLabel ?lab. + FILTER regex (str(?lab), ?reg, 'i'). + FILTER (lang (?lab) = ?language). + BIND (STRLEN(STRBEFORE (str(?lab), ?reg)) AS ?place). + BIND (STRLEN(STR(?lab)) AS ?len) +} +ORDER BY ?place ?len ?lab +""", + 'data-root-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri a skos:Collection ; + skos:inScheme ; + rdfs:label ?label . + FILTER (lang(?label) = ?language). + FILTER NOT EXISTS { [skos:member ?uri] } +} +""", + 'data-childs-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri skos:inScheme . + { ?uri a ?type + FILTER (?type = skos:Collection || ?type = skos:Concept) }. + ?root skos:narrower|skos:member ?uri. + ?uri skos:prefLabel|rdfs:label ?label. + FILTER (lang(?label) = ?language). +} +""", + 'data-child-count-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT (COUNT(?uri) as ?nb) +WHERE { + ?uri skos:inScheme . + ?root skos:narrower|skos:member ?uri. +} +""" + })) + iam = forms.CharField(required=True, label="Dude, iam", widget=SemanticTreeWidget(attrs={ + 'size': 25, + 'class': "dude", + 'data-url': "http://localhost:8080/openrdf-sesame/repositories/plan4learning", + 'data-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri a skos:Concept. + ?uri skos:inScheme . + ?uri skos:prefLabel ?label. + FILTER (lang(?label) = ?language). + ?uri skos:prefLabel ?lab. + FILTER regex (str(?lab), ?reg, 'i'). + FILTER (lang (?lab) = ?language). + BIND (STRLEN(STRBEFORE (str(?lab), ?reg)) AS ?place). + BIND (STRLEN(STR(?lab)) AS ?len) +} +ORDER BY ?place ?len ?lab +""", + 'data-root-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri a skos:Concept ; + skos:inScheme ; + skos:prefLabel ?label . + FILTER (lang(?label) = ?language). + FILTER NOT EXISTS { [skos:narrower ?uri] } +} +""", + 'data-childs-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri skos:inScheme . + { ?uri a ?type + FILTER (?type = skos:Collection || ?type = skos:Concept) }. + ?root skos:narrower|skos:member ?uri. + ?uri skos:prefLabel|rdfs:label ?label. + FILTER (lang(?label) = ?language). +} +""", + 'data-child-count-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT (COUNT(?uri) as ?nb) +WHERE { + ?uri skos:inScheme . + ?root skos:narrower|skos:member ?uri. +} +""" + })) + ntm = forms.CharField(required=True, label="Dude, ntm", widget=SemanticTagItWidget(attrs={ + 'size': 25, + 'class': "dude", + 'data-url': "http://localhost:8080/openrdf-sesame/repositories/plan4learning", + 'data-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri a skos:Concept. + ?uri skos:inScheme . + ?uri skos:prefLabel ?label. + FILTER (lang(?label) = ?language). + ?uri skos:prefLabel ?lab. + FILTER regex (str(?lab), ?reg, 'i'). + FILTER (lang (?lab) = ?language). + BIND (STRLEN(STRBEFORE (str(?lab), ?reg)) AS ?place). + BIND (STRLEN(STR(?lab)) AS ?len) +} +ORDER BY ?place ?len ?lab +""", + 'data-root-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri a skos:Concept ; + skos:inScheme ; + skos:prefLabel ?label . + FILTER (lang(?label) = ?language). + FILTER NOT EXISTS { [skos:narrower ?uri] } +} +""", + 'data-childs-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT DISTINCT ?uri ?label +WHERE { + ?uri skos:inScheme . + { ?uri a ?type + FILTER (?type = skos:Collection || ?type = skos:Concept) }. + ?root skos:narrower|skos:member ?uri. + ?uri skos:prefLabel|rdfs:label ?label. + FILTER (lang(?label) = ?language). +} +""", + 'data-child-count-query': +""" +PREFIX skos: +PREFIX rdf: +PREFIX owl: +PREFIX rdfs: +SELECT (COUNT(?uri) as ?nb) +WHERE { + ?uri skos:inScheme . + ?root skos:narrower|skos:member ?uri. +} +""" + })) + + +