"VirtRDFViewODSGlobalDeplRules" . . "VirtRDFViewODSGlobalDeplRules" . . . "2017-06-13T05:39:17.508010"^^ . . "2017-06-13T05:39:17.508010"^^ . "2017-06-13T05:39:17Z" . . "VirtRDFViewODSGlobalDeplRules" . "---+++URL Rewrite Rules for ODS\n\nThis article contains the script for defining the URL Rewrite Rules for ODS Data Space:\n\n\ncreate procedure DB.DBA.URL_REW_ODS_ACCEPT ()\n{\n declare accept, ret any;\n accept := http_request_header (http_request_header (), 'Accept');\n if (not isstring (accept))\n return null;\n ret := null;\n if (regexp_match ('(application|text)/rdf.(xml|n3|turtle|ttl)', accept) is not null)\n {\n if (regexp_match ('application/rdf.xml', accept) is not null)\n\t{\n\t ret := 'rdf';\n\t}\n else if (regexp_match ('text/rdf.n3', accept) is not null)\n\t{\n\t ret := 'n3';\n\t}\n else if (regexp_match ('application/rdf.turtle', accept) is not null or\n\t regexp_match ('application/rdf.ttl', accept) is not null)\n\t{\n\t ret := 'n3';\n\t}\n }\n return ret;\n};\n\ncreate procedure DB.DBA.URL_REW_ODS_SPQ (in graph varchar, in iri varchar, in acc varchar)\n{\n declare q, ret any;\n iri := replace (iri, '''', '%27');\n iri := replace (iri, '<', '%3C');\n iri := replace (iri, '>', '%3E');\n q := sprintf ('define input:inference <%s> DESCRIBE <%s> FROM <%s>', graph, iri, graph);\n ret := sprintf ('/sparql?query=%U&format=%U', q, acc);\n return ret;\n};\n\ncreate procedure DB.DBA.URL_REW_ODS_USER (in par varchar, in fmt varchar, in val varchar)\n{\n-- dbg_obj_print (current_proc_name ());\n declare acc, ret any;\n declare q, iri, graph any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n graph := sioc..get_graph ();\n iri := sprintf ('%s/%U', graph, val);\n if (val like 'person/%')\n\t{\n\t val := substring (val, 8, length (val));\n\t ret := sprintf ('/ods/foaf.vsp?uname=%U&fmt=%U', val, acc);\n\t}\n else\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n }\n else\n {\n http_header (http_header_get ()||sprintf ('X-XRDS-Location: %s\\r\\n',\n\t DB.DBA.wa_link (1, '/dataspace/'||val||'/yadis.xrds')));\n\n if (val like 'person/%')\n\tval := substring (val, 8, length (val));\n ret := sprintf ('/ods/uhome.vspx?page=1&ufname=%s', val);\n }\n return ret;\n};\n\ncreate procedure DB.DBA.URL_REW_ODS_USER_GEM (in par varchar, in fmt varchar, in val varchar)\n{\n-- dbg_obj_print (current_proc_name ());\n declare acc, ret any;\n declare q, iri, graph, path, is_person any;\n\n path := http_path ();\n if (path like '%.rdf')\n acc := 'rdf';\n else if (path like '%.n3')\n acc := 'n3';\n else if (path like '%.ttl')\n acc := 'n3';\n else if (path like '%/yadis.xrds')\n acc := 'yadis';\n else\n acc := 'rdf';\n\n if (acc <> 'yadis')\n {\n is_person := matches_like (path, '%/about.%');\n graph := sioc..get_graph ();\n if (is_person)\n\t{\n --iri := sprintf ('%s/person/%U', graph, val);\n\t ret := sprintf ('/ods/foaf.vsp?uname=%U&fmt=%U', val, acc);\n\t}\n else\n\t{\n iri := sprintf ('%s/%U', graph, val);\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n\t}\n }\n else\n {\n ret := sprintf ('/ods/yadis.vsp?uname=%U', val);\n }\n return ret;\n};\n\ncreate procedure DB.DBA.URL_REW_ODS_GEM (in par varchar, in fmt varchar, in val varchar)\n{\n-- dbg_obj_print (current_proc_name ());\n declare acc, ret any;\n declare q, iri, graph, path, pos any;\n\n path := http_path ();\n if (path like '%.rdf')\n acc := 'rdf';\n else if (path like '%.n3')\n acc := 'n3';\n else if (path like '%.ttl')\n acc := 'n3';\n else\n acc := 'rdf';\n graph := sioc..get_graph ();\n pos := strrchr (path, '/');\n path := subseq (path, 0, pos);\n\n if (val = 'person')\n {\n pos := strrchr (path, '/');\n val := subseq (path, pos+1, length (path));\n ret := sprintf ('/ods/foaf.vsp?uname=%U&fmt=%U', val, acc);\n }\n else\n {\n iri := sprintf ('http://%s%s', sioc..get_cname (), path);\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n }\n return ret;\n};\n\n\ncreate procedure DB.DBA.URL_REW_ODS_APP (in par varchar, in fmt varchar, in val varchar)\n{\n-- dbg_obj_print (current_proc_name (), val);\n if (par = 'app')\n return sprintf (fmt, wa_app_to_type (val));\n return sprintf (fmt, val);\n};\n\ncreate procedure DB.DBA.URL_REW_ODS_BLOG (in par varchar, in fmt varchar, in val varchar)\n{\n-- dbg_obj_print (par, fmt, val);\n-- dbg_obj_print (current_proc_name (), val);\n declare acc, ret any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n if (par = 'inst')\n\t{\n declare q, iri, graph any;\n graph := sioc..get_graph ();\n iri := 'http://' || sioc..get_cname () || http_path ();\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n return ret;\n\t}\n else\n\treturn '';\n }\n else if (par = 'inst')\n {\n declare url any;\n val := split_and_decode (val)[0];\n url := (select WAM_HOME_PAGE from WA_MEMBER where WAM_INST = val and WAM_MEMBER_TYPE = 1);\n if (url is not null)\n val := url;\n return sprintf (fmt, val);\n }\n else if (par = 'id' and val <> '')\n {\n if (atoi (val) = 0 and val <> '0')\n\tfmt := '%s';\n else\n fmt := '?id=%s';\n return sprintf (fmt, val);\n }\n};\n\ncreate procedure DB.DBA.URL_REW_ODS_NNTP (in par varchar, in fmt varchar, in val varchar)\n{\n-- dbg_obj_print (par, fmt, val);\n-- dbg_obj_print (current_proc_name (), val);\n declare acc, ret any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n declare q, iri, graph any;\n graph := sioc..get_graph ();\n iri := 'http://' || sioc..get_cname () || http_path ();\n-- dbg_obj_print (iri);\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n return ret;\n }\n else if (par = 'grp')\n {\n declare gid int;\n val := split_and_decode (val)[0];\n gid := (select NG_GROUP from DB.DBA.NEWS_GROUPS where NG_NAME = val);\n ret := sprintf ('/nntpf/nntpf_nthread_view.vspx?group=%d', gid);\n return ret;\n }\n else if (par = 'post')\n {\n ret := sprintf ('/nntpf/nntpf_disp_article.vspx?id=%U', encode_base64 (val));\n return ret;\n }\n}\n;\n\ncreate procedure DB.DBA.URL_REW_ODS_XD (in par varchar, in fmt varchar, in val varchar)\n{\n-- dbg_obj_print (par, fmt, val);\n-- dbg_obj_print (current_proc_name (), val);\n declare acc, ret any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n declare q, iri, graph any;\n graph := sioc..get_graph ();\n iri := 'http://' || sioc..get_cname () || http_path ();\n-- dbg_obj_print (iri);\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n return ret;\n }\n else if (par = 'inst')\n {\n val := split_and_decode (val)[0];\n ret := (select WAM_HOME_PAGE from WA_MEMBER where WAM_INST = val and WAM_MEMBER_TYPE = 1);\n return ret;\n }\n}\n;\n\ncreate procedure DB.DBA.URL_REW_ODS_WIKI (in par varchar, in fmt varchar, in val varchar)\n{\n-- dbg_obj_print (par, fmt, val);\n-- dbg_obj_print (current_proc_name (), val);\n declare acc, ret any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n declare q, iri, graph any;\n graph := sioc..get_graph ();\n iri := 'http://' || sioc..get_cname () || http_path ();\n-- dbg_obj_print (iri);\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n return ret;\n }\n else if (par = 'inst')\n {\n declare _inst DB.DBA.web_app;\n _inst := (select WAI_INST from WA_INSTANCE where WAI_NAME = val);\n ret := _inst.wa_post_url (null, null, val, val);\n-- dbg_obj_print ('ret', ret);\n return ret;\n }\n else if (par = 'post')\n {\n return '/'||val;\n }\n}\n;\n\ncreate procedure DB.DBA.URL_REW_ODS_PHOTO (in par varchar, in fmt varchar, in val varchar)\n{\n-- dbg_obj_print (par, fmt, val);\n-- dbg_obj_print (current_proc_name (), val);\n declare acc, ret any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n declare q, iri, graph any;\n graph := sioc..get_graph ();\n iri := 'http://' || sioc..get_cname () || http_path ();\n-- dbg_obj_print (iri);\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n return ret;\n }\n else if (par = 'inst')\n {\n val := split_and_decode (val)[0];\n ret := (select WAM_HOME_PAGE from WA_MEMBER where WAM_INST = val and WAM_MEMBER_TYPE = 1);\n return ret;\n }\n else if (par = 'post')\n {\n declare id int;\n declare col, nam varchar;\n declare exit handler for not found\n\t{\n\t signal ('22023', sprintf ('The resource %d doesn''t exists', id));\n\t};\n id := atoi(ltrim(val, '/'));\n select RES_FULL_PATH into nam from WS.WS.SYS_DAV_RES where RES_ID = id;\n return nam;\n }\n}\n;\n\ncreate procedure DB.DBA.URL_REW_ODS_ADDRESSBOOK (in par varchar, in fmt varchar, in val varchar)\n{\n declare acc, ret any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n if (par = 'instance')\n \t{\n declare q, iri, graph any;\n graph := sioc..get_graph ();\n iri := 'http://' || sioc..get_cname () || http_path ();\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n return ret;\n\t }\n else\n\t return '';\n }\n else if (par = 'instance')\n {\n declare id, url any;\n val := split_and_decode (val)[0];\n id := AB.WA.domain_id (val);\n if (id is not null) {\n url := AB.WA.ab_url (id);\n if (url is not null)\n val := url;\n }\n return sprintf (fmt, val);\n }\n else if (par = 'params')\n {\n if (atoi (val) = 0 and val <> '0')\n \tfmt := '%s';\n else\n fmt := '?id=%s';\n return sprintf (fmt, val);\n }\n}\n;\n\ncreate procedure DB.DBA.URL_REW_ODS_BOOKMARK (in par varchar, in fmt varchar, in val varchar)\n{\n declare acc, ret any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n if (par = 'instance')\n \t{\n declare q, iri, graph any;\n graph := sioc..get_graph ();\n iri := 'http://' || sioc..get_cname () || http_path ();\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n return ret;\n\t }\n else\n\t return '';\n }\n else if (par = 'instance')\n {\n declare id, url any;\n val := split_and_decode (val)[0];\n id := BMK.WA.domain_id (val);\n if (id is not null) {\n url := BMK.WA.bookmark_url (id);\n if (url is not null)\n val := url;\n }\n return sprintf (fmt, val);\n }\n else if (par = 'params')\n {\n if (atoi (val) = 0 and val <> '0')\n \tfmt := '%s';\n else\n fmt := '?id=%s';\n return sprintf (fmt, val);\n }\n}\n;\n\ncreate procedure DB.DBA.URL_REW_ODS_BRIEFCASE (in par varchar, in fmt varchar, in val varchar)\n{\n declare acc, ret any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n if (par = 'instance')\n \t{\n declare q, iri, graph any;\n graph := sioc..get_graph ();\n iri := 'http://' || sioc..get_cname () || http_path ();\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n return ret;\n\t }\n else\n\t return '';\n }\n else if (par = 'instance')\n {\n declare id, url any;\n val := split_and_decode (val)[0];\n id := ODRIVE.WA.domain_id (val);\n if (id is not null) {\n url := ODRIVE.WA.odrive_url (id);\n if (url is not null)\n val := url;\n }\n return sprintf (fmt, val);\n }\n else if (par = 'params')\n {\n if (atoi (val) = 0 and val <> '0')\n \tfmt := '%s';\n else\n fmt := '?id=%s';\n return sprintf (fmt, val);\n }\n}\n;\n\ncreate procedure DB.DBA.URL_REW_ODS_CALENDAR (in par varchar, in fmt varchar, in val varchar)\n{\n declare acc, ret any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n if (par = 'instance')\n \t{\n declare q, iri, graph any;\n graph := sioc..get_graph ();\n iri := 'http://' || sioc..get_cname () || http_path ();\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n return ret;\n\t }\n else\n\t return '';\n }\n else if (par = 'instance')\n {\n declare id, url any;\n val := split_and_decode (val)[0];\n id := CAL.WA.domain_id (val);\n if (id is not null) {\n url := CAL.WA.calendar_url (id);\n if (url is not null)\n val := url;\n }\n return sprintf (fmt, val);\n }\n else if (par = 'params')\n {\n if (atoi (val) = 0 and val <> '0')\n \tfmt := '%s';\n else\n fmt := '?id=%s';\n return sprintf (fmt, val);\n }\n}\n;\n\ncreate procedure DB.DBA.URL_REW_ODS_FEEDS (in par varchar, in fmt varchar, in val varchar)\n{\n declare acc, ret any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n if (par = 'instance')\n \t{\n declare q, iri, graph any;\n graph := sioc..get_graph ();\n iri := 'http://' || sioc..get_cname () || http_path ();\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n return ret;\n\t }\n else\n\t return '';\n }\n else if (par = 'instance')\n {\n declare id, url any;\n val := split_and_decode (val)[0];\n id := ENEWS.WA.domain_id (val);\n if (id is not null) {\n url := ENEWS.WA.enews_url (id) || 'news.vspx';\n if (url is not null)\n val := url;\n }\n return sprintf (fmt, val);\n }\n else if (par = 'params')\n {\n if (atoi (val) = 0 and val <> '0')\n \tfmt := '%s';\n else\n fmt := '?id=%s';\n return sprintf (fmt, val);\n }\n}\n;\n\ncreate procedure DB.DBA.URL_REW_ODS_POLLS (in par varchar, in fmt varchar, in val varchar)\n{\n declare acc, ret any;\n\n acc := DB.DBA.URL_REW_ODS_ACCEPT ();\n if (acc is not null)\n {\n if (par = 'instance')\n \t{\n declare q, iri, graph any;\n graph := sioc..get_graph ();\n iri := 'http://' || sioc..get_cname () || http_path ();\n ret := DB.DBA.URL_REW_ODS_SPQ (graph, iri, acc);\n return ret;\n\t }\n else\n\t return '';\n }\n else if (par = 'instance')\n {\n declare id, url any;\n val := split_and_decode (val)[0];\n id := POLLS.WA.domain_id (val);\n if (id is not null) {\n url := POLLS.WA.polls_url (id);\n if (url is not null)\n val := url;\n }\n return sprintf (fmt, val);\n }\n else if (par = 'params')\n {\n if (atoi (val) = 0 and val <> '0')\n \tfmt := '%s';\n else\n fmt := '?id=%s';\n return sprintf (fmt, val);\n }\n}\n;\n\ncreate procedure DB.DBA.URL_REW_ODS_FOAF_EXT (in par varchar, in fmt varchar, in val varchar)\n{\n if (par = '*accept*')\n {\n declare ext any;\n ext := 'rdf';\n if (val = 'text/rdf+n3')\n\text := 'n3';\n return sprintf (fmt, ext);\n }\n else\n return sprintf (fmt, val);\n}\n;\n\ncreate procedure ur_ods_rdf_doc (in path varchar)\n{\n declare r any;\n r := regexp_match ('[^/]*\\x24', path);\n return r||'#this';\n};\n\ncreate procedure ur_ods_html_doc (in path varchar)\n{\n declare pos, r any;\n if (path like '%/foaf.%')\n {\n pos := strrchr (path, '/');\n }\n else if (path like '%#%')\n {\n pos := strrchr (path, '#');\n }\n if (pos > 0)\n r := subseq (path, 0, pos);\n else\n r := '/';\n return r;\n};\n-- ODS Rules\n\n-- http://cname/dataspace/uname\n-- http://cname/dataspace/person/uname\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_rule1', 1,\n '/dataspace/((person/)?[^/#]*)', vector('ufname'), 1,\n '%s', vector('ufname'),\n 'DB.DBA.URL_REW_ODS_USER');\n\n-- http://cname/dataspace/uname with Accept will do 303 to the /sparql\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_rule2', 1,\n '/dataspace/([^/]*)', vector('ufname'), 1,\n '/sparql?query=define+input%%3Ainference+%%3Chttp%%3A//^{URIQADefaultHost}^/dataspace%%3E+DESCRIBE+%%3Chttp%%3A//^{URIQADefaultHost}^/dataspace/%U%%3E+FROM+%%3Chttp%%3A//^{URIQADefaultHost}^/dataspace%%3E&format=%U', vector('ufname', '*accept*'),\n null,\n '(application|text)/rdf.(xml|n3|turtle|ttl)',\n 0,\n 303);\n\n-- http://cname/dataspace/uname/app_type\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_rule3', 1,\n '/dataspace/((?!person)[^/]*)/([^\\\\./]*)', vector('ufname', 'app'), 2,\n '/ods/app_inst.vspx?app=%s&ufname=%s&l=1', vector('app', 'ufname'),\n 'DB.DBA.URL_REW_ODS_APP');\n\n-- http://cname/dataspace/uname/file.ext\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_rule4', 1,\n '/dataspace/([^/]*)/(sioc|about|yadis)\\\\.(rdf|n3|ttl|xrds)', vector('ufname', 'file', 'fmt'), 3,\n '%s', vector('ufname'),\n 'DB.DBA.URL_REW_ODS_USER_GEM');\n\n-- Rules for FOAF profile\n\n-- http://cname/dataspace/person/uname with Accept, do 303 to http://cname/dataspace/person/uname/foaf.ext\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_rule5', 1,\n '/dataspace/person/([^/#]*)/?', vector('ufname'), 1,\n '/dataspace/person/%U/foaf.%s', vector('ufname', '*accept*'),\n 'DB.DBA.URL_REW_ODS_FOAF_EXT',\n '(application|text)/rdf.(xml|n3|turtle|ttl)',\n 2,\n 303);\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_rule6', 1,\n '/dataspace/person/([^/]*)/page/([^/]*)/?', vector('ufname', 'page'), 1,\n '/dataspace/person/%U/foaf.%s?page=%s', vector('ufname', '*accept*', 'page'),\n 'DB.DBA.URL_REW_ODS_FOAF_EXT',\n '(application|text)/rdf.(xml|n3|turtle|ttl)',\n 2,\n 303);\n\n-- http://cname/dataspace/person/uname/foaf.ext\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_rule7', 1,\n '/dataspace/person/([^/]*)/foaf.(rdf|n3|ttl)', vector('ufname', 'fmt'), 1,\n '/ods/foaf.vsp?uname=%U&fmt=%U', vector('ufname', 'fmt'),\n null,\n null,\n 2,\n null);\n\n-- App Instance Gem\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_post_gem_rule', 1,\n '/dataspace/([^/]*)/([^/]*)/([^/]*/)?([^/]*/)?(sioc|about)\\\\.(rdf|n3|ttl)', vector('ufname', 'app', 'inst'), 4,\n '%s', vector('ufname'),\n 'DB.DBA.URL_REW_ODS_GEM');\n\n\n-- Weblog Rules\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_blog_rule1', 1,\n '/dataspace/([^/]*)/weblog/([^/]*)', vector('ufname', 'inst'), 2,\n '%s', vector('inst'),\n 'DB.DBA.URL_REW_ODS_BLOG');\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_blog_rule2', 1,\n '/dataspace/([^/]*)/weblog/([^/]*)/([^/]*)', vector('ufname', 'inst', 'id'), 3,\n '%s%s', vector('inst', 'id'),\n 'DB.DBA.URL_REW_ODS_BLOG');\n\n-- Discussion rules\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_nntp_rule1', 1,\n '/dataspace/discussion/([^/]*)', vector('grp'), 1,\n '%s', vector('grp'),\n 'DB.DBA.URL_REW_ODS_NNTP');\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_nntp_rule2', 1,\n '/dataspace/discussion/([^/]*)/((?!sioc)(?!about)[^/]*)', vector('grp', 'post'), 2,\n '%s', vector('post'),\n 'DB.DBA.URL_REW_ODS_NNTP');\n\n-- Community\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_xd_rule1', 1,\n '/dataspace/([^/]*)/community/([^/]*)', vector('ufname', 'inst'), 2,\n '%s', vector('inst'),\n 'DB.DBA.URL_REW_ODS_XD');\n\n-- Wiki\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_wiki_rule1', 1,\n '/dataspace/([^/]*)/wiki/([^/]*)', vector('ufname', 'inst'), 2,\n '%s', vector('inst'),\n 'DB.DBA.URL_REW_ODS_WIKI');\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_wiki_rule2', 1,\n '/dataspace/([^/]*)/wiki/([^/]*)/([^/]*)', vector('ufname', 'inst', 'post'), 2,\n '%s%s', vector('inst', 'post'),\n 'DB.DBA.URL_REW_ODS_WIKI');\n\n-- Gallery\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_photo_rule1', 1,\n '/dataspace/([^/]*)/photos/([^/]*)', vector('ufname', 'inst'), 2,\n '%s', vector('inst'),\n 'DB.DBA.URL_REW_ODS_PHOTO');\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_photo_rule2', 1,\n '/dataspace/([^/]*)/photos/([^/]*)/([^/]*)', vector('ufname', 'inst', 'post'), 2,\n '%s', vector('post'),\n 'DB.DBA.URL_REW_ODS_PHOTO');\n\n\n-- AddressBook\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_addressbook_rule1',\n 1,\n '/dataspace/([^/]*)/addressbook/([^/]*)',\n vector('uname', 'instance'),\n 2,\n '%s', vector('instance'),\n 'DB.DBA.URL_REW_ODS_ADDRESSBOOK');\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_addressbook_rule2',\n 1,\n '/dataspace/([^/]*)/addressbook/([^/]*)/(.*)',\n vector('uname', 'instance', 'params'),\n 3,\n '%s%s',\n vector('instance', 'params'),\n 'DB.DBA.URL_REW_ODS_ADDRESSBOOK');\n\n-- Bookmark\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_bookmark_rule1',\n 1,\n '/dataspace/([^/]*)/bookmark/([^/]*)',\n vector('uname', 'instance'),\n 2,\n '%s', vector('instance'),\n 'DB.DBA.URL_REW_ODS_BOOKMARK');\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_bookmark_rule2',\n 1,\n '/dataspace/([^/]*)/bookmark/([^/]*)/(.*)',\n vector('uname', 'instance', 'params'),\n 3,\n '%s%s',\n vector('instance', 'params'),\n 'DB.DBA.URL_REW_ODS_BOOKMARK');\n\n-- Briefcase\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_briefcase_rule1',\n 1,\n '/dataspace/([^/]*)/briefcase/([^/]*)',\n vector('uname', 'instance'),\n 2,\n '%s', vector('instance'),\n 'DB.DBA.URL_REW_ODS_BRIEFCASE');\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_briefcase_rule2',\n 1,\n '/dataspace/([^/]*)/briefcase/([^/]*)/(.*)',\n vector('uname', 'instance', 'params'),\n 3,\n '%s%s',\n vector('instance', 'params'),\n 'DB.DBA.URL_REW_ODS_BRIEFCASE');\n\n-- Calendar\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_calendar_rule1',\n 1,\n '/dataspace/([^/]*)/calendar/([^/]*)',\n vector('uname', 'instance'),\n 2,\n '%s', vector('instance'),\n 'DB.DBA.URL_REW_ODS_CALENDAR');\n\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_calendar_rule2',\n 1,\n '/dataspace/([^/]*)/calendar/([^/]*)/(.*)',\n vector('uname', 'instance', 'params'),\n 3,\n '%s%s',\n vector('instance', 'params'),\n 'DB.DBA.URL_REW_ODS_CALENDAR');\n\n-- Feeds\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_feeds_rule1',\n 1,\n '/dataspace/([^/]*)/feeds/([^/]*)',\n vector('uname', 'instance'),\n 2,\n '%s', vector('instance'),\n 'DB.DBA.URL_REW_ODS_FEEDS');\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_feeds_rule2',\n 1,\n '/dataspace/([^/]*)/feeds/([^/]*)/(.*)',\n vector('uname', 'instance', 'params'),\n 3,\n '%s%s',\n vector('instance', 'params'),\n 'DB.DBA.URL_REW_ODS_FEEDS');\n\n-- Polls\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_polls_rule1',\n 1,\n '/dataspace/([^/]*)/polls/([^/]*)',\n vector('uname', 'instance'),\n 2,\n '%s', vector('instance'),\n 'DB.DBA.URL_REW_ODS_POLLS');\n\nDB.DBA.URLREWRITE_CREATE_REGEX_RULE (\n 'ods_polls_rule2',\n 1,\n '/dataspace/([^/]*)/polls/([^/]*)/(.*)',\n vector('uname', 'instance', 'params'),\n 3,\n '%s%s',\n vector('instance', 'params'),\n 'DB.DBA.URL_REW_ODS_POLLS');\n\n-- ODS Base rules\nDB.DBA.URLREWRITE_CREATE_RULELIST ('ods_base_rule_list1', 1,\n \tvector(\n\t 'ods_rule1', 'ods_rule2', 'ods_rule3', 'ods_rule4'\n\t ));\n\nDB.DBA.URLREWRITE_CREATE_RULELIST ('ods_foaf_rule_list1', 1,\n \tvector(\n\t 'ods_rule5', 'ods_rule6', 'ods_rule7'\n\t ));\n\nDB.DBA.URLREWRITE_CREATE_RULELIST ('ods_gems_rule_list1', 1,\n \tvector(\n\t 'ods_post_gem_rule'\n\t ));\n\n-- ODS Blog rules\nDB.DBA.URLREWRITE_CREATE_RULELIST ('ods_blog_rule_list1', 1,\n \tvector(\n\t \t'ods_blog_rule1', 'ods_blog_rule2'\n\t ));\n\n-- ODS Discussion rules\nDB.DBA.URLREWRITE_CREATE_RULELIST ('ods_nntp_rule_list1', 1,\n \tvector(\n\t \t'ods_nntp_rule1', 'ods_nntp_rule2'\n\t ));\n\n-- ODS Community rules\nDB.DBA.URLREWRITE_CREATE_RULELIST ('ods_xd_rule_list1', 1,\n \tvector(\n\t \t'ods_xd_rule1'\n\t ));\n\n-- ODS Wiki rules\nDB.DBA.URLREWRITE_CREATE_RULELIST ('ods_wiki_rule_list1', 1,\n \tvector(\n\t \t'ods_wiki_rule1', 'ods_wiki_rule2'\n\t ));\n\n-- ODS Gallery rules\nDB.DBA.URLREWRITE_CREATE_RULELIST ('ods_photo_rule_list1', 1,\n \tvector(\n\t \t'ods_photo_rule1', 'ods_photo_rule2'\n\t ));\n\n-- ODS AddressBook rules\nDB.DBA.URLREWRITE_CREATE_RULELIST (\n 'ods_addressbook_rule_list1',\n 1,\n vector (\n \t \t'ods_addressbook_rule1',\n\t 'ods_addressbook_rule2'\n\t ));\n\n-- ODS Bookmark rules\nDB.DBA.URLREWRITE_CREATE_RULELIST (\n 'ods_bookmark_rule_list1',\n 1,\n vector (\n \t \t'ods_bookmark_rule1',\n\t 'ods_bookmark_rule2'\n\t ));\n\n-- ODS Briefcase rules\nDB.DBA.URLREWRITE_CREATE_RULELIST (\n 'ods_briefcase_rule_list1',\n 1,\n vector (\n \t \t'ods_briefcase_rule1',\n\t 'ods_briefcase_rule2'\n\t ));\n\n-- ODS Calendar rules\nDB.DBA.URLREWRITE_CREATE_RULELIST (\n 'ods_calendar_rule_list1',\n 1,\n vector (\n \t \t'ods_calendar_rule1',\n\t 'ods_calendar_rule2'\n\t ));\n\n-- ODS Feeds rules\nDB.DBA.URLREWRITE_CREATE_RULELIST (\n 'ods_feeds_rule_list1',\n 1,\n vector (\n \t \t'ods_feeds_rule1',\n\t 'ods_feeds_rule2'\n\t ));\n\n-- ODS Polls rules\nDB.DBA.URLREWRITE_CREATE_RULELIST (\n 'ods_polls_rule_list1',\n 1,\n vector (\n \t \t'ods_polls_rule1',\n\t 'ods_polls_rule2'\n\t ));\n\n-- All ODS Rules\nDB.DBA.URLREWRITE_CREATE_RULELIST ('ods_rule_list1', 1,\n \tvector(\n\t 'ods_base_rule_list1',\n\t 'ods_foaf_rule_list1',\n\t 'ods_blog_rule_list1',\n\t 'ods_nntp_rule_list1',\n\t 'ods_xd_rule_list1',\n\t 'ods_wiki_rule_list1',\n\t 'ods_photo_rule_list1',\n\t 'ods_addressbook_rule_list1',\n\t 'ods_bookmark_rule_list1',\n\t 'ods_briefcase_rule_list1',\n\t 'ods_calendar_rule_list1',\n\t 'ods_feeds_rule_list1',\n\t 'ods_polls_rule_list1',\n\t 'ods_gems_rule_list1'\n\t ));\n\nDB.DBA.XML_SET_NS_DECL ('ods', 'http://www.openlinksw.com/virtuoso/ods/', 2);\n\n" . . "2017-06-13T05:39:17Z" . . . . . . . . "5a4eb0e5e64b35eb1bdcd590d242287e" .