@prefix :     <https://w3id.org/atomgraph/linkeddatahub#> .
@prefix a:    <https://w3id.org/atomgraph/core#> .
@prefix ac:   <https://w3id.org/atomgraph/client#> .
@prefix dct:  <http://purl.org/dc/terms/> .
@prefix dh:   <https://www.w3.org/ns/ldt/document-hierarchy#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ldt:  <https://www.w3.org/ns/ldt#> .
@prefix nfo:  <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sd:   <http://www.w3.org/ns/sparql-service-description#> .
@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix sp:   <http://spinrdf.org/sp#> .
@prefix spin: <http://spinrdf.org/spin#> .
@prefix spl:  <http://spinrdf.org/spl#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .

:MissingDelimiter  rdf:type  :MissingPropertyValue ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing delimiter" ;
        sp:arg1           :delimiter .

:violationValue  rdf:type  owl:DatatypeProperty ;
        rdfs:domain       :URISyntaxViolation ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Violation value" ;
        rdfs:range        xsd:string .

:view   rdf:type          owl:ObjectProperty ;
        rdfs:comment      "Attaches a view to a property for forward relationships ($about property ?value)" ;
        rdfs:domain       rdf:Property ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Property view" ;
        rdfs:range        :View .

:MissingSeriesVarName
        rdf:type          :MissingPropertyValue ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing series variable name" ;
        sp:arg1           :seriesVarName .

ac:ScatterChart  rdf:type  owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  ac: ;
        rdfs:label        "Scatter chart" ;
        rdfs:subClassOf   ac:Chart .

sd:name  rdf:type  owl:ObjectProperty .

:SelectInstancesInGraphs
        rdf:type          sp:Select ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Select instances in graphs" ;
        dct:description   "Selects instances of type from named graphs" ;
        sp:text           "SELECT DISTINCT ?s\nWHERE\n  { GRAPH ?g\n      { ?s  a   $type ;\n            ?p  ?o\n      }\n  }" .

:ServiceConstructor  rdf:type  :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Service constructor" ;
        sp:text           "\n      PREFIX a:       <https://w3id.org/atomgraph/core#>\n      PREFIX lapp:    <https://w3id.org/atomgraph/linkeddatahub/apps#>\n      PREFIX rdfs:    <http://www.w3.org/2000/01/rdf-schema#>\n      PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>\n      PREFIX sd:      <http://www.w3.org/ns/sparql-service-description#>\n\n      CONSTRUCT {\n          $this sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;\n              sd:endpoint [ a rdfs:Resource ] ;\n              a:graphStore [ a rdfs:Resource ] ;\n              a:authUser [ a xsd:string ] ;\n              a:authPwd [ a xsd:string ] ;\n              lapp:proxy [ a rdfs:Resource ] .\n      }\n      WHERE {}" .

:ChildrenView  rdf:type   :View ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Children view" ;
        spin:query        :SelectChildren .

:categoryVarName  rdf:type  owl:ObjectProperty ;
        rdfs:domain       :ResultSetChart ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Category variable name" ;
        rdfs:range        xsd:string .

:Import  rdf:type         owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Import" ;
        spin:constraint   :MissingFile ;
        spin:constructor  :ImportConstructor .

:GraphChartConstructor
        rdf:type          :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Model chart constructor" ;
        sp:text           "\n      PREFIX ldh:   <https://w3id.org/atomgraph/linkeddatahub#>\n      PREFIX rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n      PREFIX spin:  <http://spinrdf.org/spin#>\n      PREFIX sp:    <http://spinrdf.org/sp#>\n\n      CONSTRUCT {\n          $this spin:query [ a sp:Query ] ; # really a union of :Describe and :Construct\n            ldh:categoryProperty [ a rdf:Property ] ;\n            ldh:seriesProperty [ a rdf:Property ] .\n      }\n      WHERE {}" .

:CSVImport  rdf:type      owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "CSV import" ;
        rdfs:subClassOf   :Import ;
        spin:constraint   :MissingDelimiter , :MissingQuery ;
        spin:constructor  :CSVImportConstructor .

:DescriptionConstructor
        rdf:type          :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Description constructor" ;
        sp:text           "\n        PREFIX rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n        PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>\n        PREFIX dct:     <http://purl.org/dc/terms/>\n\n        CONSTRUCT {\n          $this dct:description [ a xsd:string ] .\n        }\n        WHERE {}" .

ac:Timeline  rdf:type     owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  ac: ;
        rdfs:label        "Timeline" ;
        rdfs:subClassOf   ac:Chart .

:seriesProperty  rdf:type  owl:ObjectProperty ;
        rdfs:domain       :GraphChart ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Series property" ;
        rdfs:range        rdf:Property .

:BlockInstanceConstructor
        rdf:type          :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Block constructor" ;
        sp:text           "\n      PREFIX xsd:   <http://www.w3.org/2001/XMLSchema#>\n      PREFIX dct:   <http://purl.org/dc/terms/>\n\n      CONSTRUCT {\n          $this dct:title [ a xsd:string ] .\n      }\n      WHERE {}" .

:RDFImport  rdf:type      owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "RDF import" ;
        rdfs:subClassOf   :Import ;
        spin:constructor  :RDFImportConstructor .

:ConstructMissingPropertyValue
        rdf:type          sp:Construct ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Construct missing property value" ;
        sp:text           "PREFIX spin:\t<http://spinrdf.org/spin#>\nCONSTRUCT {\n    _:b0 a spin:ConstraintViolation .\n    _:b0 spin:violationRoot ?this .\n    _:b0 spin:violationPath ?arg1 .\n}\nWHERE {\n    FILTER NOT EXISTS {\n        ?this ?arg1 ?arg2 .\n    }\n}" .

ac:ChartMode  rdf:type    ac:ContainerMode , ac:Mode ;
        rdfs:isDefinedBy  ac: ;
        rdfs:label        "Chart" .

:MissingCategoryProperty
        rdf:type          :MissingPropertyValue ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing category property" ;
        sp:arg1           :categoryProperty .

:ImportConstructor  rdf:type  :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Import constructor" ;
        sp:text           "PREFIX ldh:      <https://w3id.org/atomgraph/linkeddatahub#>\n        PREFIX nfo:   <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#>\n\n        CONSTRUCT {\n            $this ldh:file [ a nfo:FileDataObject ] .\n        }\n        WHERE {}" .

:MissingIsDefinedBy  rdf:type  :MissingPropertyValue ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing rdfs:isDefinedBy" ;
        sp:arg1           rdfs:isDefinedBy .

:categoryProperty  rdf:type  owl:ObjectProperty ;
        rdfs:domain       :GraphChart ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Category property" ;
        rdfs:range        rdf:Property .

:PropertyCardinality  rdf:type  spin:Template ;
        rdfs:isDefinedBy    : ;
        rdfs:label          "Missing property value" ;
        spin:body           :ConstructPropertyCardinality ;
        spin:constraint     [ rdf:type       spl:Argument ;
                              spl:predicate  sp:arg2 ;
                              spl:valueType  xsd:integer
                            ] ;
        spin:constraint     [ rdf:type       spl:Argument ;
                              spl:predicate  sp:arg1 ;
                              spl:valueType  rdf:Property
                            ] ;
        spin:labelTemplate  "Instance violates the cardinality of RDF property {?arg1}: {?arg2}" .

:MissingCategoryVarName
        rdf:type          :MissingPropertyValue ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing category variable name" ;
        sp:arg1           :categoryVarName .

:ViewConstructor  rdf:type  :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "View constructor" ;
        sp:text           "\n      PREFIX spin:  <http://spinrdf.org/spin#>\n      PREFIX sp:    <http://spinrdf.org/sp#>\n      PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>\n      PREFIX ac:    <https://w3id.org/atomgraph/client#>\n\n      CONSTRUCT {\n          $this spin:query [ a sp:Select ] ;\n              ac:mode [ a rdfs:Resource ] .\n      }\n      WHERE {}" .

:service  rdf:type        owl:ObjectProperty ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Service" ;
        rdfs:range        sd:Service .

:MissingSeriesProperty
        rdf:type          :MissingPropertyValue ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing series property" ;
        sp:arg1           :seriesProperty .

:Object  rdf:type         owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Object" ;
        rdfs:subClassOf   :Block ;
        spin:constraint   :ValueCardinality , :MissingValue ;
        spin:constructor  :ObjectConstructor .

ac:BarChart  rdf:type     owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  ac: ;
        rdfs:label        "Bar chart" ;
        rdfs:subClassOf   ac:Chart .

:View   rdf:type          owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "View" ;
        spin:constraint   :MissingQuery ;
        spin:constructor  :ViewConstructor .

:CSVImportConstructor
        rdf:type          :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "CSV import constructor" ;
        sp:text           "PREFIX ldh:        <https://w3id.org/atomgraph/linkeddatahub#>\n        PREFIX sp:      <http://spinrdf.org/sp#>\n        PREFIX spin:    <http://spinrdf.org/spin#>\n\n        CONSTRUCT {\n            $this spin:query [ a sp:Construct ] ;\n                ldh:delimiter \",\" .\n        }\n        WHERE {}" .

:Chart  rdf:type          owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Chart" ;
        spin:constraint   :MissingChartType , :MissingQuery ;
        spin:constructor  :ChartConstructor .

:FileConstructor  rdf:type  :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "File constructor" ;
        sp:text           "PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>\n    PREFIX nfo:     <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#>\n    PREFIX rdfs:    <http://www.w3.org/2000/01/rdf-schema#>\n    PREFIX dct:     <http://purl.org/dc/terms/>\n\n    CONSTRUCT {\n        $this nfo:fileName [ a xsd:string ] ;\n            dct:format [ a rdfs:Resource ] .\n    }\n    WHERE {}" .

:ChildrenViewContructor
        rdf:type          :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Container content constructor" ;
        sp:text           "\n        PREFIX ldh:     <https://w3id.org/atomgraph/linkeddatahub#>\n        PREFIX rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n        PREFIX spin:    <http://spinrdf.org/spin#>\n\n        CONSTRUCT {\n            $this rdf:_1 [\n                a ldh:Object ;\n                rdf:value ldh:ChildrenView ;\n            ] .\n        }\n        WHERE {}" .

:seriesVarName  rdf:type  owl:ObjectProperty ;
        rdfs:domain       :ResultSetChart ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Series variable name" ;
        rdfs:range        xsd:string .

:TitleConstructor  rdf:type  :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Title constructor" ;
        sp:text           "\n        PREFIX rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n        PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>\n        PREFIX dct:     <http://purl.org/dc/terms/>\n\n        CONSTRUCT {\n          $this dct:title [ a xsd:string ] .\n        }\n        WHERE {}" .

:ValueCardinality  rdf:type  :PropertyCardinality ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "More than one value" ;
        sp:arg1           rdf:value ;
        sp:arg2           1 .

:RDFImportConstructor
        rdf:type          :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "RDF import constructor" ;
        sp:text           "PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>\n        PREFIX sd:    <http://www.w3.org/ns/sparql-service-description#>\n        PREFIX sp:      <http://spinrdf.org/sp#>\n        PREFIX spin:    <http://spinrdf.org/spin#>\n\n        CONSTRUCT {\n            $this sd:name [ a rdfs:Resource ] ;\n                spin:query [ a sp:Construct ] .\n        }\n        WHERE {}" .

:MissingQuery  rdf:type   :MissingPropertyValue ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing query" ;
        sp:arg1           spin:query .

dh:Item  spin:constructor  :BlockConstructor , :PrimaryTopicConstructor , :DescriptionConstructor , :TitleConstructor .

sd:Service  spin:constraint  [ rdf:type    :MissingPropertyValue ;
                               rdfs:label  "Missing SPARQL endpoint" ;
                               sp:arg1     sd:endpoint
                             ] ;
        spin:constraint   [ rdf:type    :MissingPropertyValue ;
                            rdfs:label  "Missing supported language" ;
                            sp:arg1     sd:supportedLanguage
                          ] ;
        spin:constructor  :ServiceConstructor .

:MissingValue  rdf:type   :MissingPropertyValue ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing value" ;
        sp:arg1           rdf:value .

:chartType  rdf:type      owl:ObjectProperty ;
        rdfs:domain       :Chart ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Chart type" ;
        rdfs:range        ac:Chart .

:GraphChart  rdf:type     owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Graph chart" ;
        rdfs:subClassOf   :Chart ;
        spin:constraint   :MissingSeriesProperty ;
        spin:constructor  :GraphChartConstructor .

:MissingSPText  rdf:type  :MissingPropertyValue ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing sp:text" ;
        sp:arg1           sp:text .

dh:Container  spin:constructor  :ChildrenViewContructor , :PrimaryTopicConstructor , :DescriptionConstructor , :TitleConstructor .

:MissingContainer  rdf:type  :MissingPropertyValue ;
        rdfs:comment      "Requires items to have a parent container" ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing container" ;
        sp:arg1           sioc:has_container .

:URISyntaxViolation  rdf:type  owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "URI syntax violation" .

:delimiter  rdf:type      owl:DatatypeProperty ;
        rdfs:domain       :CSVImport ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Delimiter" ;
        rdfs:range        xsd:string .

:ChartConstructor  rdf:type  :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Chart constructor" ;
        sp:text           "\n      PREFIX ldh:   <https://w3id.org/atomgraph/linkeddatahub#>\n      PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>\n\n      CONSTRUCT {\n          $this ldh:chartType [ a rdfs:Resource ] .\n      }\n      WHERE {}" .

:Constructor  rdf:type    owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Constructor" ;
        rdfs:subClassOf   sp:Query , sp:Construct .

:ContentMode  rdf:type    ac:Mode ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Content" .

:MissingPropertyValue
        rdf:type            spin:Template ;
        rdfs:isDefinedBy    : ;
        rdfs:label          "Missing property value" ;
        spin:body           :ConstructMissingPropertyValue ;
        spin:constraint     [ rdf:type       spl:Argument ;
                              spl:optional   true ;
                              spl:predicate  sp:arg2
                            ] ;
        spin:constraint     [ rdf:type       spl:Argument ;
                              spl:predicate  sp:arg1 ;
                              spl:valueType  rdf:Property
                            ] ;
        spin:labelTemplate  "Instance does not have a mandatory RDF property {?arg1} with value {?arg2}" .

:ResourceExistsException
        rdf:type          owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Resource already exists" .

sp:Query  spin:constraint  :MissingSPText ;
        spin:constructor  [ rdf:type    :Constructor ;
                            rdfs:label  "Query constructor" ;
                            sp:text     "\n          PREFIX rdfs:    <http://www.w3.org/2000/01/rdf-schema#>\n          PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>\n          PREFIX sp:      <http://spinrdf.org/sp#>\n          PREFIX sd:      <http://www.w3.org/ns/sparql-service-description#>\n          PREFIX :        <https://w3id.org/atomgraph/linkeddatahub#>\n\n          CONSTRUCT {\n              $this rdfs:label [ a xsd:string ] ;\n                  rdfs:comment [ a xsd:string ] ;\n                  sp:text [ a xsd:string ] ;\n                  :service [ a sd:Service ] .\n          }\n          WHERE {}"
                          ] .

:PrimaryTopicConstructor
        rdf:type          :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Primary topic constructor" ;
        sp:text           "\n        PREFIX foaf:    <http://xmlns.com/foaf/0.1/>\n        PREFIX rdfs:    <http://www.w3.org/2000/01/rdf-schema#>\n\n        CONSTRUCT {\n          $this foaf:primaryTopic [ a rdfs:Resource ] .\n        }\n        WHERE {}" .

:Block  rdf:type          owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Block" .

:count  rdf:type          owl:DatatypeProperty ;
        rdfs:domain       dh:Container ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Children count" ;
        rdfs:range        xsd:integer .

:ResultSetChart  rdf:type  owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Result set chart" ;
        rdfs:subClassOf   :Chart ;
        spin:constraint   :MissingSeriesVarName , :MissingCategoryVarName ;
        spin:constructor  :ResultSetChartConstructor .

:XHTMLConstructor  rdf:type  :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "XHTML constructor" ;
        sp:text           "\n      PREFIX rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n      CONSTRUCT {\n          $this rdf:value '<div xmlns=\"http://www.w3.org/1999/xhtml\"></div>'^^rdf:XMLLiteral .\n      }\n      WHERE {}" .

:       rdf:type         owl:Ontology ;
        rdfs:comment     "Should be imported and reused by all extending applications" ;
        rdfs:label       "LinkedDataHub ontology" ;
        owl:imports      foaf: , dh: , <http://spinrdf.org/spin> , nfo: , owl: , ac: , sd: ;
        owl:versionInfo  "1.1.6" .

ac:LineChart  rdf:type    owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  ac: ;
        rdfs:label        "Line chart" ;
        rdfs:subClassOf   ac:Chart .

:SelectInstances  rdf:type  sp:Select ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Select instances" ;
        dct:description   "Selects instances of type from the default graph" ;
        sp:text           "SELECT DISTINCT ?s\nWHERE\n  { ?s  a   $type ;\n        ?p  ?o\n  }" .

:SelectChildren  rdf:type  sp:Select ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Select children" ;
        sp:text           "\nPREFIX  dct:  <http://purl.org/dc/terms/>\nPREFIX  foaf: <http://xmlns.com/foaf/0.1/>\nPREFIX  sioc: <http://rdfs.org/sioc/ns#>\n\nSELECT DISTINCT  ?child ?thing\nWHERE\n{ GRAPH ?childGraph\n  {   { ?child  sioc:has_parent  $this }\n    UNION\n      { ?child  sioc:has_container  $this }\n    ?child  a                     ?Type\n    OPTIONAL\n      { ?child  dct:title  ?title }\n    OPTIONAL\n      { ?child  foaf:primaryTopic  ?thing }\n  }\n}\nORDER BY ?title\n" .

:ConstructPropertyCardinality
        rdf:type          sp:Construct ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Construct property cardinality" ;
        sp:text           "PREFIX  spin: <http://spinrdf.org/spin#>\n\nCONSTRUCT \n  { \n    _:c0 a spin:ConstraintViolation .\n    _:c0 spin:violationRoot ?this .\n    _:c0 spin:violationPath ?arg1 .\n  }\nWHERE\n  { SELECT  ?this ?arg1\n    WHERE\n      { ?this  ?arg1  ?o }\n    GROUP BY ?this ?arg1\n    HAVING ( COUNT(DISTINCT ?o) > ?arg2 )\n  }" .

:violation  rdf:type      owl:ObjectProperty ;
        rdfs:domain       :Import ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Constraint violation" ;
        rdfs:range        spin:ConstraintViolation .

:XHTML  rdf:type          owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "XHTML" ;
        rdfs:subClassOf   :Block ;
        spin:constraint   :ValueCardinality , :MissingValue ;
        spin:constructor  :XHTMLConstructor .

:file   rdf:type          owl:ObjectProperty ;
        rdfs:domain       :Import ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "File" ;
        rdfs:range        nfo:FileDataObject .

ac:Table  rdf:type        owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  ac: ;
        rdfs:label        "Table" ;
        rdfs:subClassOf   ac:Chart .

nfo:    rdfs:label  "NEPOMUK File Ontology" .

:inverseView  rdf:type    owl:ObjectProperty ;
        rdfs:comment      "Attaches a view to a property for inverse relationships (?value property $about)" ;
        rdfs:domain       rdf:Property ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Inverse property view" ;
        rdfs:range        :View .

sd:     rdfs:label  "SPARQL Service Description" .

ac:Chart  rdf:type        owl:Class , rdfs:Class ;
        rdfs:isDefinedBy  ac: ;
        rdfs:label        "Chart" .

:ResultSetChartConstructor
        rdf:type          :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Model chart constructor" ;
        sp:text           "\n      PREFIX ldh:   <https://w3id.org/atomgraph/linkeddatahub#>\n      PREFIX xsd:   <http://www.w3.org/2001/XMLSchema#>\n      PREFIX spin:  <http://spinrdf.org/spin#>\n      PREFIX sp:    <http://spinrdf.org/sp#>\n\n      CONSTRUCT {\n          $this spin:query [ a sp:Select ] ;\n            ldh:categoryVarName [ a xsd:string ] ;\n            ldh:seriesVarName [ a xsd:string ] .\n      }\n      WHERE {}" .

:MissingChartType  rdf:type  :MissingPropertyValue ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing chart type" ;
        sp:arg1           :chartType .

:ObjectConstructor  rdf:type  :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Object constructor" ;
        sp:text           "\n      PREFIX rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n      PREFIX ldh:   <https://w3id.org/atomgraph/linkeddatahub#>\n      PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>\n      PREFIX ac:    <https://w3id.org/atomgraph/client#>\n\n      CONSTRUCT {\n          $this rdf:value [ a rdfs:Resource ] ;\n              ldh:graph [ a rdfs:Resource ] ;\n              ac:mode [ a rdfs:Resource ] .\n      }\n      WHERE {}" .

:BlockConstructor  rdf:type  :Constructor ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Content constructor" ;
        sp:text           "\n        PREFIX ldh:     <https://w3id.org/atomgraph/linkeddatahub#>\n        PREFIX rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n        CONSTRUCT {\n          $this rdf:_1 [ a ldh:Block ] .\n        }\n        WHERE {}" .

:MissingParent  rdf:type  :MissingPropertyValue ;
        rdfs:comment      "Requires containers to have a parent container" ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing parent" ;
        sp:arg1           sioc:has_parent .

nfo:FileDataObject  spin:constraint  [ rdf:type    :MissingPropertyValue ;
                                       rdfs:label  "Missing nfo:fileName" ;
                                       sp:arg1     nfo:fileName
                                     ] ;
        spin:constructor  :FileConstructor .

:MissingFile  rdf:type    :MissingPropertyValue ;
        rdfs:comment      "Requires resources to have a file" ;
        rdfs:isDefinedBy  : ;
        rdfs:label        "Missing file" ;
        sp:arg1           :file .
