diff --git a/src/main/resources/com/atomgraph/linkeddatahub/app/admin/adm.ttl b/src/main/resources/com/atomgraph/linkeddatahub/app/admin/adm.ttl
index 548326de8..fb9e8e010 100644
--- a/src/main/resources/com/atomgraph/linkeddatahub/app/admin/adm.ttl
+++ b/src/main/resources/com/atomgraph/linkeddatahub/app/admin/adm.ttl
@@ -65,9 +65,10 @@ owl:Ontology spin:constructor [
owl:versionInfo "1.0-SNAPSHOT" .
}
WHERE {}"""
- ] ;
+ ] .
# spin:constraint :MissingRDFSLabel .
- ldh:template :OntologyClassView .
+
+rdfs:isDefinedBy ldh:inverseBlock :OntologyClassView .
:OntologyClassView a ldh:View ;
dct:title "Ontology classes" ;
@@ -215,8 +216,9 @@ acl:Authorization spin:constructor [
[
a ldh:MissingPropertyValue ;
sp:arg1 acl:mode
- ] ;
- ldh:template :AuthorizationAgentView .
+ ] .
+
+acl:agent ldh:block :AuthorizationAgentView .
:AuthorizationAgentView a ldh:View ;
dct:title "Authorization agents" ;
diff --git a/src/main/resources/com/atomgraph/linkeddatahub/ldh.ttl b/src/main/resources/com/atomgraph/linkeddatahub/ldh.ttl
index 00fd5770b..e999c90b9 100644
--- a/src/main/resources/com/atomgraph/linkeddatahub/ldh.ttl
+++ b/src/main/resources/com/atomgraph/linkeddatahub/ldh.ttl
@@ -91,9 +91,18 @@
rdfs:label "Series variable name" ;
rdfs:isDefinedBy : .
-:template a owl:ObjectProperty ;
- rdfs:domain rdfs:Class ;
- rdfs:label "Class-level content block" ;
+:block a owl:ObjectProperty ;
+ rdfs:domain rdf:Property ;
+ rdfs:range :View ;
+ rdfs:label "Property block" ;
+ rdfs:comment "Attaches a view block to a property for forward relationships ($about property ?value)" ;
+ rdfs:isDefinedBy : .
+
+:inverseBlock a owl:ObjectProperty ;
+ rdfs:domain rdf:Property ;
+ rdfs:range :View ;
+ rdfs:label "Inverse property block" ;
+ rdfs:comment "Attaches a view block to a property for inverse relationships (?value property $about)" ;
rdfs:isDefinedBy : .
# CLASSES
diff --git a/src/main/resources/com/linkeddatahub/packages/skos/ns.ttl b/src/main/resources/com/linkeddatahub/packages/skos/ns.ttl
index e97dbd5b3..ca443ad62 100644
--- a/src/main/resources/com/linkeddatahub/packages/skos/ns.ttl
+++ b/src/main/resources/com/linkeddatahub/packages/skos/ns.ttl
@@ -14,8 +14,7 @@
# Concept
skos:Concept spin:constructor :ConceptConstructor ;
- spin:constraint :MissingPrefLabel ;
- ldh:template :NarrowerConcepts .
+ spin:constraint :MissingPrefLabel .
:ConceptConstructor a ldh:Constructor ;
rdfs:label "Concept constructor" ;
@@ -37,6 +36,8 @@ skos:Concept spin:constructor :ConceptConstructor ;
# narrower
+skos:narrower ldh:block :NarrowerConcepts .
+
:NarrowerConcepts a ldh:View ;
dct:title "Narrower concepts" ;
spin:query :SelectNarrowerConcepts ;
@@ -64,7 +65,7 @@ ORDER BY ?prefLabel
# broader
-skos:Concept ldh:template :BroaderConcepts.
+skos:broader ldh:block :BroaderConcepts .
:BroaderConcepts a ldh:View ;
dct:title "Broader concepts" ;
@@ -94,8 +95,7 @@ ORDER BY ?prefLabel
# Collection
skos:Collection spin:constructor :CollectionConstructor ;
- spin:constraint :MissingPrefLabel ;
- ldh:template :CollectionMembers.
+ spin:constraint :MissingPrefLabel .
:CollectionConstructor a ldh:Constructor ;
rdfs:label "Collection constructor" ;
@@ -111,6 +111,8 @@ skos:Collection spin:constructor :CollectionConstructor ;
WHERE {}""" ;
rdfs:isDefinedBy : .
+skos:member ldh:block :CollectionMembers .
+
:CollectionMembers a ldh:View ;
dct:title "Collection members" ;
spin:query :SelectCollectionMembers ;
@@ -138,8 +140,7 @@ ORDER BY ?prefLabel
# ConceptScheme
-skos:ConceptScheme spin:constructor :ConceptSchemeConstructor ;
- ldh:template :ConceptsInScheme.
+skos:ConceptScheme spin:constructor :ConceptSchemeConstructor .
:ConceptSchemeConstructor a ldh:Constructor ;
rdfs:label "Concept scheme constructor" ;
@@ -156,6 +157,8 @@ skos:ConceptScheme spin:constructor :ConceptSchemeConstructor ;
WHERE {}""" ;
rdfs:isDefinedBy : .
+skos:inScheme ldh:inverseBlock :ConceptsInScheme .
+
:ConceptsInScheme a ldh:View ;
dct:title "Concepts in scheme" ;
spin:query :SelectConceptsInScheme ;
diff --git a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl
index 1cb4c8f1b..1060d7ba2 100644
--- a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl
+++ b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl
@@ -161,7 +161,7 @@ exclude-result-prefixes="#all"
-
+
diff --git a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/layout.xsl b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/layout.xsl
index b879ab199..fc8e0e666 100644
--- a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/layout.xsl
+++ b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/layout.xsl
@@ -119,11 +119,9 @@ exclude-result-prefixes="#all">
-
-
-
-
+
+
@@ -177,17 +175,37 @@ LIMIT 100
]]>
-
+
PREFIX ldh:
- SELECT *
+ SELECT DISTINCT ?block
WHERE
{
- $Type ldh:template ?block
+ ?property ldh:block ?block .
+ { ?property rdfs:domain $domain }
+ UNION
+ { ?property rdfs:subPropertyOf+/rdfs:domain $domain }
}
]]>
-
+
+
+
+
+ PREFIX ldh:
+
+ SELECT DISTINCT ?block
+ WHERE
+ {
+ ?property ldh:inverseBlock ?block .
+ { ?property rdfs:range $range }
+ UNION
+ { ?property rdfs:subPropertyOf+/rdfs:range $range }
+ }
+ ]]>
+
-
-
-
-
-
-
-
diff --git a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/resource.xsl b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/resource.xsl
index dfa0b2d41..efb67f99f 100644
--- a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/resource.xsl
+++ b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/resource.xsl
@@ -609,7 +609,7 @@ extension-element-prefixes="ixsl"
-
+
@@ -618,8 +618,12 @@ extension-element-prefixes="ixsl"
-
-
+
+
+
+
+
+
@@ -652,7 +656,7 @@ extension-element-prefixes="ixsl"
-
+