1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Run the pyRdfa package locally, ie, on a local file
"""
# You may want to adapt this to your environment...
import sys, getopt, platform, logging
sys.path.insert(0,"/Users/ivan/Library/Python")
sys.path.insert(0,"/Users/ivan/Library/Python/RDFa")
from pyRdfa import pyRdfa
from pyRdfa.transform.metaname import meta_transform
from pyRdfa.transform.OpenID import OpenID_transform
from pyRdfa.transform.DublinCore import DC_transform
from pyRdfa.options import Options
extraTransformers = [
# containers_collections,
#OpenID_transform,
#DC_transform,
# meta_transform
]
###########################################
usageText="""Usage: %s -[vjxtnpzsb:g:ryle] [filename[s]]
where:
-x: output format RDF/XML
-t: output format Turtle (default)
-j: output format JSON-LD
-n: output format N Triples
-p: output format pretty RDF/XML
-z: exceptions should be returned as graphs instead of exceptions raised
-b: give the base URI; if a file name is given, this can be left empty and the file name is used
-s: whitespace on plain literals are not preserved (default: preserved, per RDFa syntax document); this is a non-standard feture
-l: run in RDFa 1.1 Lite mode (non-RDFa Lite generate warnings) (default: False)
-r: report on the details of the vocabulary caching process
-y: bypass the vocabulary cache checking, generate a new cache every time (good for debugging) (default:False)
-v: perform vocabulary expansion (default: False)
-g: value can be 'output', 'processor', 'output,processor' or 'processor,output'; controls which graphs are returned
-e: embedded (in a <script> element) Turtle content or RDF/XML (in its own namespace) _not_ parsed and added to the output graph (default:True, i.e., parsed)
-w: value is a filename, to be used instead of the default standard error for logging errors, warnings, etc.
'Filename' can be a local file name or a URI. In case there is no filename, stdin is used.
The -g option may be unnecessary, the script tries to make a guess based on a default xmlns value for XHTML or SVG.
"""
def usage() :
print(usageText % sys.argv[0])
format = "turtle"
extras = []
value = ""
space_preserve = True
base = ""
value = []
rdfOutput = False
output_default_graph = True
output_processor_graph = True
vocab_cache_report = False
refresh_vocab_cache = False
vocab_expansion = False
vocab_cache = True
embedded_rdf = True
check_lite = False
log = None
try :
opts, value = getopt.getopt(sys.argv[1:],"vxetjnpzsb:g:rylw:",['graph='])
for o,a in opts:
if o == "-t" :
format = "turtle"
elif o == "-n" :
format = "nt"
elif o == "-j" :
format = "json-ld"
elif o == "-p" or o == "-x":
format = "pretty-xml"
elif o == "-z" :
rdfOutput = True
elif o == "-b" :
base = a
elif o == "-e" :
embedded_rdf = False
elif o == "-s" :
space_preserve = False
elif o == "-l" :
check_lite = True
elif o == "-r" :
vocab_cache_report = True
elif o == "-v" :
vocab_expansion = True
elif o == "-y" :
bypass_vocab_cache = True
elif o in ("-g", "--graph") :
if a == "processor" :
output_default_graph = False
output_processor_graph = True
elif a == "processor,default" or a == "default,processor" :
output_processor_graph = True
elif a == "default" :
output_default_graph = True
output_processor_graph = False
elif o == "-w" :
log = a
else :
usage()
sys.exit(1)
except :
usage()
sys.exit(1)
if log is not None :
logging.basicConfig(filename=log)
else :
logging.basicConfig()
options = Options(output_default_graph = output_default_graph,
output_processor_graph = output_processor_graph,
space_preserve=space_preserve,
transformers = extras,
embedded_rdf = embedded_rdf,
vocab_expansion = vocab_expansion,
vocab_cache = vocab_cache,
vocab_cache_report = vocab_cache_report,
refresh_vocab_cache = refresh_vocab_cache,
check_lite = check_lite,
experimental_features = True
)
processor = pyRdfa(options, base)
if len(value) >= 1 :
print(processor.rdf_from_sources(value, outputFormat = format, rdfOutput = rdfOutput))
else :
print(processor.rdf_from_source(sys.stdin, outputFormat = format, rdfOutput = rdfOutput))
|