PREFIX st: PREFIX rdf: PREFIX owl: PREFIX dcterms: PREFIX dc: PREFIX fun: PREFIX rdfs: PREFIX skos: PREFIX obo: PREFIX foaf: PREFIX schema: TEMPLATE ( ?versionIRI ) { TEMPLATE ( st:call-template(, ?onto ) , ?pathToStatic , true ) . """

{ st:call-template(, ?onto ) }

Latest version:
{?onto}
{ TEMPLATE { "
Permanent IRI for this version (" ?versionInfo ")
{?versionIRI}
" } WHERE { ?onto owl:versionInfo ?versionInfo ; owl:versionIRI ?versionIRI } . } { TEMPLATE { "
" fun:property(, 'previousversion') "
{?onto}
" } WHERE { ?onto owl:priorVersion ?o } . } { TEMPLATE { "
" fun:property(, 'etsiSource') "
" ?source "
" } WHERE { ?onto dcterms:source ?source } ORDER BY DESC(?source) . } { TEMPLATE { "
" fun:property(, 'publicationDate') "
" ?date "
" } WHERE { ?onto dcterms:issued ?date } ORDER BY DESC(?date) . } { TEMPLATE { "
" fun:property(, 'modificationDate') "
" ?date "
" } WHERE { ?onto dcterms:modified ?date } ORDER BY DESC(?date) . } { TEMPLATE { before="
{fun:property(, 'creators')}
\n" ; TEMPLATE (?uri) . ; separator = "
\n" ; after = "
" } WHERE { ?onto dcterms:creator ?uri OPTIONAL { { ?uri schema:familyName ?contributorName } UNION { ?uri foaf:name ?contributorName } } } ORDER BY ?contributorName ?uri . } { TEMPLATE { before="
{fun:property(, 'contributors')}
\n" ; TEMPLATE (?uri) . ; separator = "
\n" ; after = "
" } WHERE { ?onto dcterms:contributor ?uri OPTIONAL { { ?uri schema:familyName ?contributorName } UNION { ?uri foaf:name ?contributorName } } } ORDER BY ?contributorName ?uri . } { TEMPLATE { before="
{fun:property(, 'importedontologies')}
\n" ; """<{?o}&ht;""" ; separator="\n" ; after = "
" } WHERE { ?onto owl:imports ?o } . }
Prefix and namespace declaration:
Turtle: @prefix {?prefix} <{?onto}> .
SPARQL: PREFIX {?prefix} <{?onto}>
License
https://forge.etsi.org/etsi-software-license
{ TEMPLATE { TEMPLATE { before = "

{ fun:property(, 'abstract') }

\n" ; TEMPLATE (?abstract) . ; separator = "\n" ; after = "\n" } WHERE { ?subject dcterms:abstract ?abstract . } . "
" BOX { "\n

{ fun:property(, 'toc') }

" "\n
    " BOX { "\n
  1. { fun:property(, 'introduction') }
  2. " TEMPLATE { "\n
  3. { fun:property(, 'classes') }
  4. " } WHERE { {?class a owl:Class} UNION {?class a rdfs:Class} } LIMIT 1 . TEMPLATE { "\n
  5. { fun:property(, 'objectproperties') }
  6. " } WHERE { ?op a owl:ObjectProperty } LIMIT 1 . TEMPLATE { "\n
  7. { fun:property(, 'dataproperties') }
  8. " } WHERE { ?dp a owl:DatatypeProperty } LIMIT 1 . TEMPLATE { "\n
  9. { fun:property(, 'namedindividuals') }
  10. " } WHERE { ?ni a owl:NamedIndividual } LIMIT 1 . TEMPLATE { "\n
  11. { fun:property(, 'annotationproperties') }
  12. " } WHERE { ?ap a owl:AnnotationProperty } LIMIT 1 . TEMPLATE { "\n
  13. { fun:property(, 'generalaxioms') }
  14. " } WHERE { {?ga a owl:AllDisjointClasses} UNION { { ?class a owl:Class} UNION { ?class a rdfs:Class} UNION { ?class a owl:Restriction } FILTER( ISBLANK( ?class) ) { ?class rdfs:subClassOf []} UNION { ?class owl:equivalentClass []} } } LIMIT 1 . "\n
  15. { fun:property(, 'namespaces') }
  16. " "\n
  17. Hierarchies of Terms
  18. " } "\n
" } "\n
" TEMPLATE { before = "

{ fun:property(, 'introduction') }

\n" ; TEMPLATE (?description) . ; separator = "\n" ; after = "\n" } WHERE { ?subject dcterms:description ?description . } . "\n\n\n" TEMPLATE () WHERE { {?c a owl:Class} UNION {?c a rdfs:Class} } LIMIT 1 . "\n\n\n" TEMPLATE () WHERE { ?op a owl:ObjectProperty } LIMIT 1 . "\n\n\n" TEMPLATE () WHERE { ?op a owl:DatatypeProperty } LIMIT 1 . "\n\n\n" TEMPLATE ( ) . "\n\n\n" TEMPLATE () . }. }
""" TEMPLATE ( ?pathToStatic , true ) . } FROM ?versionIRI WHERE { BIND( fun:regex( str(?versionIRI), "^https://saref.etsi.org/([a-z4]+)/([^/]+)/$", 1 ) AS ?ext ) BIND( IF( ?ext = "core" , "saref" , "s{SUBSTR(?ext,6)}" ) AS ?short ) BIND( UCASE( ?short ) AS ?name ) BIND( "{?short}:" AS ?prefix ) BIND( fun:regex( str(?versionIRI), "^https://saref.etsi.org/([a-z4]+)/(v[0-9]+\\.[0-9]+\\.[0-9]+)/$", 2 ) AS ?versionInfo ) BIND( IRI( fun:regex( str(?versionIRI), "^(https://saref.etsi.org/[a-z4]+/)", 1 ) ) AS ?onto ) BIND( "../../static" AS ?pathToStatic ) ?onto a owl:Ontology . } #LIMIT 1