-
-
Save RubenVerborgh/39f0e8d63e33e435371a to your computer and use it in GitHub Desktop.
[ | |
{ | |
"@context": {"@base": "http://a/bb/ccc/d;p?q", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s001", "urn:ex:p": "g:h"}, | |
{"@id": "urn:ex:s002", "urn:ex:p": "g"}, | |
{"@id": "urn:ex:s003", "urn:ex:p": "./g"}, | |
{"@id": "urn:ex:s004", "urn:ex:p": "g/"}, | |
{"@id": "urn:ex:s005", "urn:ex:p": "/g"}, | |
{"@id": "urn:ex:s006", "urn:ex:p": "//g"}, | |
{"@id": "urn:ex:s007", "urn:ex:p": "?y"}, | |
{"@id": "urn:ex:s008", "urn:ex:p": "g?y"}, | |
{"@id": "urn:ex:s009", "urn:ex:p": "#s"}, | |
{"@id": "urn:ex:s010", "urn:ex:p": "g#s"}, | |
{"@id": "urn:ex:s011", "urn:ex:p": "g?y#s"}, | |
{"@id": "urn:ex:s012", "urn:ex:p": ";x"}, | |
{"@id": "urn:ex:s013", "urn:ex:p": "g;x"}, | |
{"@id": "urn:ex:s014", "urn:ex:p": "g;x?y#s"}, | |
{"@id": "urn:ex:s015", "urn:ex:p": ""}, | |
{"@id": "urn:ex:s016", "urn:ex:p": "."}, | |
{"@id": "urn:ex:s017", "urn:ex:p": "./"}, | |
{"@id": "urn:ex:s018", "urn:ex:p": ".."}, | |
{"@id": "urn:ex:s019", "urn:ex:p": "../"}, | |
{"@id": "urn:ex:s020", "urn:ex:p": "../g"}, | |
{"@id": "urn:ex:s021", "urn:ex:p": "../.."}, | |
{"@id": "urn:ex:s022", "urn:ex:p": "../../"}, | |
{"@id": "urn:ex:s023", "urn:ex:p": "../../g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://a/bb/ccc/d;p?q", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s024", "urn:ex:p": "../../../g"}, | |
{"@id": "urn:ex:s025", "urn:ex:p": "../../../../g"}, | |
{"@id": "urn:ex:s026", "urn:ex:p": "/./g"}, | |
{"@id": "urn:ex:s027", "urn:ex:p": "/../g"}, | |
{"@id": "urn:ex:s028", "urn:ex:p": "g."}, | |
{"@id": "urn:ex:s029", "urn:ex:p": ".g"}, | |
{"@id": "urn:ex:s030", "urn:ex:p": "g.."}, | |
{"@id": "urn:ex:s031", "urn:ex:p": "..g"}, | |
{"@id": "urn:ex:s032", "urn:ex:p": "./../g"}, | |
{"@id": "urn:ex:s033", "urn:ex:p": "./g/."}, | |
{"@id": "urn:ex:s034", "urn:ex:p": "g/./h"}, | |
{"@id": "urn:ex:s035", "urn:ex:p": "g/../h"}, | |
{"@id": "urn:ex:s036", "urn:ex:p": "g;x=1/./y"}, | |
{"@id": "urn:ex:s037", "urn:ex:p": "g;x=1/../y"}, | |
{"@id": "urn:ex:s038", "urn:ex:p": "g?y/./x"}, | |
{"@id": "urn:ex:s039", "urn:ex:p": "g?y/../x"}, | |
{"@id": "urn:ex:s040", "urn:ex:p": "g#s/./x"}, | |
{"@id": "urn:ex:s041", "urn:ex:p": "g#s/../x"}, | |
{"@id": "urn:ex:s042", "urn:ex:p": "http:g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://a/bb/ccc/d/", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s043", "urn:ex:p": "g:h"}, | |
{"@id": "urn:ex:s044", "urn:ex:p": "g"}, | |
{"@id": "urn:ex:s045", "urn:ex:p": "./g"}, | |
{"@id": "urn:ex:s046", "urn:ex:p": "g/"}, | |
{"@id": "urn:ex:s047", "urn:ex:p": "/g"}, | |
{"@id": "urn:ex:s048", "urn:ex:p": "//g"}, | |
{"@id": "urn:ex:s049", "urn:ex:p": "?y"}, | |
{"@id": "urn:ex:s050", "urn:ex:p": "g?y"}, | |
{"@id": "urn:ex:s051", "urn:ex:p": "#s"}, | |
{"@id": "urn:ex:s052", "urn:ex:p": "g#s"}, | |
{"@id": "urn:ex:s053", "urn:ex:p": "g?y#s"}, | |
{"@id": "urn:ex:s054", "urn:ex:p": ";x"}, | |
{"@id": "urn:ex:s055", "urn:ex:p": "g;x"}, | |
{"@id": "urn:ex:s056", "urn:ex:p": "g;x?y#s"}, | |
{"@id": "urn:ex:s057", "urn:ex:p": ""}, | |
{"@id": "urn:ex:s058", "urn:ex:p": "."}, | |
{"@id": "urn:ex:s059", "urn:ex:p": "./"}, | |
{"@id": "urn:ex:s060", "urn:ex:p": ".."}, | |
{"@id": "urn:ex:s061", "urn:ex:p": "../"}, | |
{"@id": "urn:ex:s062", "urn:ex:p": "../g"}, | |
{"@id": "urn:ex:s063", "urn:ex:p": "../.."}, | |
{"@id": "urn:ex:s064", "urn:ex:p": "../../"}, | |
{"@id": "urn:ex:s065", "urn:ex:p": "../../g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://a/bb/ccc/d/", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s066", "urn:ex:p": "../../../g"}, | |
{"@id": "urn:ex:s067", "urn:ex:p": "../../../../g"}, | |
{"@id": "urn:ex:s068", "urn:ex:p": "/./g"}, | |
{"@id": "urn:ex:s069", "urn:ex:p": "/../g"}, | |
{"@id": "urn:ex:s070", "urn:ex:p": "g."}, | |
{"@id": "urn:ex:s071", "urn:ex:p": ".g"}, | |
{"@id": "urn:ex:s072", "urn:ex:p": "g.."}, | |
{"@id": "urn:ex:s073", "urn:ex:p": "..g"}, | |
{"@id": "urn:ex:s074", "urn:ex:p": "./../g"}, | |
{"@id": "urn:ex:s075", "urn:ex:p": "./g/."}, | |
{"@id": "urn:ex:s076", "urn:ex:p": "g/./h"}, | |
{"@id": "urn:ex:s077", "urn:ex:p": "g/../h"}, | |
{"@id": "urn:ex:s078", "urn:ex:p": "g;x=1/./y"}, | |
{"@id": "urn:ex:s079", "urn:ex:p": "g;x=1/../y"}, | |
{"@id": "urn:ex:s080", "urn:ex:p": "g?y/./x"}, | |
{"@id": "urn:ex:s081", "urn:ex:p": "g?y/../x"}, | |
{"@id": "urn:ex:s082", "urn:ex:p": "g#s/./x"}, | |
{"@id": "urn:ex:s083", "urn:ex:p": "g#s/../x"}, | |
{"@id": "urn:ex:s084", "urn:ex:p": "http:g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://a/bb/ccc/./d;p?q", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s085", "urn:ex:p": "g:h"}, | |
{"@id": "urn:ex:s086", "urn:ex:p": "g"}, | |
{"@id": "urn:ex:s087", "urn:ex:p": "./g"}, | |
{"@id": "urn:ex:s088", "urn:ex:p": "g/"}, | |
{"@id": "urn:ex:s089", "urn:ex:p": "/g"}, | |
{"@id": "urn:ex:s090", "urn:ex:p": "//g"}, | |
{"@id": "urn:ex:s091", "urn:ex:p": "?y"}, | |
{"@id": "urn:ex:s092", "urn:ex:p": "g?y"}, | |
{"@id": "urn:ex:s093", "urn:ex:p": "#s"}, | |
{"@id": "urn:ex:s094", "urn:ex:p": "g#s"}, | |
{"@id": "urn:ex:s095", "urn:ex:p": "g?y#s"}, | |
{"@id": "urn:ex:s096", "urn:ex:p": ";x"}, | |
{"@id": "urn:ex:s097", "urn:ex:p": "g;x"}, | |
{"@id": "urn:ex:s098", "urn:ex:p": "g;x?y#s"}, | |
{"@id": "urn:ex:s099", "urn:ex:p": ""}, | |
{"@id": "urn:ex:s100", "urn:ex:p": "."}, | |
{"@id": "urn:ex:s101", "urn:ex:p": "./"}, | |
{"@id": "urn:ex:s102", "urn:ex:p": ".."}, | |
{"@id": "urn:ex:s103", "urn:ex:p": "../"}, | |
{"@id": "urn:ex:s104", "urn:ex:p": "../g"}, | |
{"@id": "urn:ex:s105", "urn:ex:p": "../.."}, | |
{"@id": "urn:ex:s106", "urn:ex:p": "../../"}, | |
{"@id": "urn:ex:s107", "urn:ex:p": "../../g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://a/bb/ccc/./d;p?q", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s108", "urn:ex:p": "../../../g"}, | |
{"@id": "urn:ex:s109", "urn:ex:p": "../../../../g"}, | |
{"@id": "urn:ex:s110", "urn:ex:p": "/./g"}, | |
{"@id": "urn:ex:s111", "urn:ex:p": "/../g"}, | |
{"@id": "urn:ex:s112", "urn:ex:p": "g."}, | |
{"@id": "urn:ex:s113", "urn:ex:p": ".g"}, | |
{"@id": "urn:ex:s114", "urn:ex:p": "g.."}, | |
{"@id": "urn:ex:s115", "urn:ex:p": "..g"}, | |
{"@id": "urn:ex:s116", "urn:ex:p": "./../g"}, | |
{"@id": "urn:ex:s117", "urn:ex:p": "./g/."}, | |
{"@id": "urn:ex:s118", "urn:ex:p": "g/./h"}, | |
{"@id": "urn:ex:s119", "urn:ex:p": "g/../h"}, | |
{"@id": "urn:ex:s120", "urn:ex:p": "g;x=1/./y"}, | |
{"@id": "urn:ex:s121", "urn:ex:p": "g;x=1/../y"}, | |
{"@id": "urn:ex:s122", "urn:ex:p": "g?y/./x"}, | |
{"@id": "urn:ex:s123", "urn:ex:p": "g?y/../x"}, | |
{"@id": "urn:ex:s124", "urn:ex:p": "g#s/./x"}, | |
{"@id": "urn:ex:s125", "urn:ex:p": "g#s/../x"}, | |
{"@id": "urn:ex:s126", "urn:ex:p": "http:g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://a/bb/ccc/../d;p?q", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s127", "urn:ex:p": "g:h"}, | |
{"@id": "urn:ex:s128", "urn:ex:p": "g"}, | |
{"@id": "urn:ex:s129", "urn:ex:p": "./g"}, | |
{"@id": "urn:ex:s130", "urn:ex:p": "g/"}, | |
{"@id": "urn:ex:s131", "urn:ex:p": "/g"}, | |
{"@id": "urn:ex:s132", "urn:ex:p": "//g"}, | |
{"@id": "urn:ex:s133", "urn:ex:p": "?y"}, | |
{"@id": "urn:ex:s134", "urn:ex:p": "g?y"}, | |
{"@id": "urn:ex:s135", "urn:ex:p": "#s"}, | |
{"@id": "urn:ex:s136", "urn:ex:p": "g#s"}, | |
{"@id": "urn:ex:s137", "urn:ex:p": "g?y#s"}, | |
{"@id": "urn:ex:s138", "urn:ex:p": ";x"}, | |
{"@id": "urn:ex:s139", "urn:ex:p": "g;x"}, | |
{"@id": "urn:ex:s140", "urn:ex:p": "g;x?y#s"}, | |
{"@id": "urn:ex:s141", "urn:ex:p": ""}, | |
{"@id": "urn:ex:s142", "urn:ex:p": "."}, | |
{"@id": "urn:ex:s143", "urn:ex:p": "./"}, | |
{"@id": "urn:ex:s144", "urn:ex:p": ".."}, | |
{"@id": "urn:ex:s145", "urn:ex:p": "../"}, | |
{"@id": "urn:ex:s146", "urn:ex:p": "../g"}, | |
{"@id": "urn:ex:s147", "urn:ex:p": "../.."}, | |
{"@id": "urn:ex:s148", "urn:ex:p": "../../"}, | |
{"@id": "urn:ex:s149", "urn:ex:p": "../../g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://a/bb/ccc/../d;p?q", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s150", "urn:ex:p": "../../../g"}, | |
{"@id": "urn:ex:s151", "urn:ex:p": "../../../../g"}, | |
{"@id": "urn:ex:s152", "urn:ex:p": "/./g"}, | |
{"@id": "urn:ex:s153", "urn:ex:p": "/../g"}, | |
{"@id": "urn:ex:s154", "urn:ex:p": "g."}, | |
{"@id": "urn:ex:s155", "urn:ex:p": ".g"}, | |
{"@id": "urn:ex:s156", "urn:ex:p": "g.."}, | |
{"@id": "urn:ex:s157", "urn:ex:p": "..g"}, | |
{"@id": "urn:ex:s158", "urn:ex:p": "./../g"}, | |
{"@id": "urn:ex:s159", "urn:ex:p": "./g/."}, | |
{"@id": "urn:ex:s160", "urn:ex:p": "g/./h"}, | |
{"@id": "urn:ex:s161", "urn:ex:p": "g/../h"}, | |
{"@id": "urn:ex:s162", "urn:ex:p": "g;x=1/./y"}, | |
{"@id": "urn:ex:s163", "urn:ex:p": "g;x=1/../y"}, | |
{"@id": "urn:ex:s164", "urn:ex:p": "g?y/./x"}, | |
{"@id": "urn:ex:s165", "urn:ex:p": "g?y/../x"}, | |
{"@id": "urn:ex:s166", "urn:ex:p": "g#s/./x"}, | |
{"@id": "urn:ex:s167", "urn:ex:p": "g#s/../x"}, | |
{"@id": "urn:ex:s168", "urn:ex:p": "http:g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://a/bb/ccc/.", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s169", "urn:ex:p": "g:h"}, | |
{"@id": "urn:ex:s170", "urn:ex:p": "g"}, | |
{"@id": "urn:ex:s171", "urn:ex:p": "./g"}, | |
{"@id": "urn:ex:s172", "urn:ex:p": "g/"}, | |
{"@id": "urn:ex:s173", "urn:ex:p": "/g"}, | |
{"@id": "urn:ex:s174", "urn:ex:p": "//g"}, | |
{"@id": "urn:ex:s175", "urn:ex:p": "?y"}, | |
{"@id": "urn:ex:s176", "urn:ex:p": "g?y"}, | |
{"@id": "urn:ex:s177", "urn:ex:p": "#s"}, | |
{"@id": "urn:ex:s178", "urn:ex:p": "g#s"}, | |
{"@id": "urn:ex:s179", "urn:ex:p": "g?y#s"}, | |
{"@id": "urn:ex:s180", "urn:ex:p": ";x"}, | |
{"@id": "urn:ex:s181", "urn:ex:p": "g;x"}, | |
{"@id": "urn:ex:s182", "urn:ex:p": "g;x?y#s"}, | |
{"@id": "urn:ex:s183", "urn:ex:p": ""}, | |
{"@id": "urn:ex:s184", "urn:ex:p": "."}, | |
{"@id": "urn:ex:s185", "urn:ex:p": "./"}, | |
{"@id": "urn:ex:s186", "urn:ex:p": ".."}, | |
{"@id": "urn:ex:s187", "urn:ex:p": "../"}, | |
{"@id": "urn:ex:s188", "urn:ex:p": "../g"}, | |
{"@id": "urn:ex:s189", "urn:ex:p": "../.."}, | |
{"@id": "urn:ex:s190", "urn:ex:p": "../../"}, | |
{"@id": "urn:ex:s191", "urn:ex:p": "../../g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://a/bb/ccc/.", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s192", "urn:ex:p": "../../../g"}, | |
{"@id": "urn:ex:s193", "urn:ex:p": "../../../../g"}, | |
{"@id": "urn:ex:s194", "urn:ex:p": "/./g"}, | |
{"@id": "urn:ex:s195", "urn:ex:p": "/../g"}, | |
{"@id": "urn:ex:s196", "urn:ex:p": "g."}, | |
{"@id": "urn:ex:s197", "urn:ex:p": ".g"}, | |
{"@id": "urn:ex:s198", "urn:ex:p": "g.."}, | |
{"@id": "urn:ex:s199", "urn:ex:p": "..g"}, | |
{"@id": "urn:ex:s200", "urn:ex:p": "./../g"}, | |
{"@id": "urn:ex:s201", "urn:ex:p": "./g/."}, | |
{"@id": "urn:ex:s202", "urn:ex:p": "g/./h"}, | |
{"@id": "urn:ex:s203", "urn:ex:p": "g/../h"}, | |
{"@id": "urn:ex:s204", "urn:ex:p": "g;x=1/./y"}, | |
{"@id": "urn:ex:s205", "urn:ex:p": "g;x=1/../y"}, | |
{"@id": "urn:ex:s206", "urn:ex:p": "g?y/./x"}, | |
{"@id": "urn:ex:s207", "urn:ex:p": "g?y/../x"}, | |
{"@id": "urn:ex:s208", "urn:ex:p": "g#s/./x"}, | |
{"@id": "urn:ex:s209", "urn:ex:p": "g#s/../x"}, | |
{"@id": "urn:ex:s210", "urn:ex:p": "http:g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://a/bb/ccc/..", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s211", "urn:ex:p": "g:h"}, | |
{"@id": "urn:ex:s212", "urn:ex:p": "g"}, | |
{"@id": "urn:ex:s213", "urn:ex:p": "./g"}, | |
{"@id": "urn:ex:s214", "urn:ex:p": "g/"}, | |
{"@id": "urn:ex:s215", "urn:ex:p": "/g"}, | |
{"@id": "urn:ex:s216", "urn:ex:p": "//g"}, | |
{"@id": "urn:ex:s217", "urn:ex:p": "?y"}, | |
{"@id": "urn:ex:s218", "urn:ex:p": "g?y"}, | |
{"@id": "urn:ex:s219", "urn:ex:p": "#s"}, | |
{"@id": "urn:ex:s220", "urn:ex:p": "g#s"}, | |
{"@id": "urn:ex:s221", "urn:ex:p": "g?y#s"}, | |
{"@id": "urn:ex:s222", "urn:ex:p": ";x"}, | |
{"@id": "urn:ex:s223", "urn:ex:p": "g;x"}, | |
{"@id": "urn:ex:s224", "urn:ex:p": "g;x?y#s"}, | |
{"@id": "urn:ex:s225", "urn:ex:p": ""}, | |
{"@id": "urn:ex:s226", "urn:ex:p": "."}, | |
{"@id": "urn:ex:s227", "urn:ex:p": "./"}, | |
{"@id": "urn:ex:s228", "urn:ex:p": ".."}, | |
{"@id": "urn:ex:s229", "urn:ex:p": "../"}, | |
{"@id": "urn:ex:s230", "urn:ex:p": "../g"}, | |
{"@id": "urn:ex:s231", "urn:ex:p": "../.."}, | |
{"@id": "urn:ex:s232", "urn:ex:p": "../../"}, | |
{"@id": "urn:ex:s233", "urn:ex:p": "../../g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://a/bb/ccc/..", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s234", "urn:ex:p": "../../../g"}, | |
{"@id": "urn:ex:s235", "urn:ex:p": "../../../../g"}, | |
{"@id": "urn:ex:s236", "urn:ex:p": "/./g"}, | |
{"@id": "urn:ex:s237", "urn:ex:p": "/../g"}, | |
{"@id": "urn:ex:s238", "urn:ex:p": "g."}, | |
{"@id": "urn:ex:s239", "urn:ex:p": ".g"}, | |
{"@id": "urn:ex:s240", "urn:ex:p": "g.."}, | |
{"@id": "urn:ex:s241", "urn:ex:p": "..g"}, | |
{"@id": "urn:ex:s242", "urn:ex:p": "./../g"}, | |
{"@id": "urn:ex:s243", "urn:ex:p": "./g/."}, | |
{"@id": "urn:ex:s244", "urn:ex:p": "g/./h"}, | |
{"@id": "urn:ex:s245", "urn:ex:p": "g/../h"}, | |
{"@id": "urn:ex:s246", "urn:ex:p": "g;x=1/./y"}, | |
{"@id": "urn:ex:s247", "urn:ex:p": "g;x=1/../y"}, | |
{"@id": "urn:ex:s248", "urn:ex:p": "g?y/./x"}, | |
{"@id": "urn:ex:s249", "urn:ex:p": "g?y/../x"}, | |
{"@id": "urn:ex:s250", "urn:ex:p": "g#s/./x"}, | |
{"@id": "urn:ex:s251", "urn:ex:p": "g#s/../x"}, | |
{"@id": "urn:ex:s252", "urn:ex:p": "http:g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "file:///a/bb/ccc/d;p?q", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s253", "urn:ex:p": "g:h"}, | |
{"@id": "urn:ex:s254", "urn:ex:p": "g"}, | |
{"@id": "urn:ex:s255", "urn:ex:p": "./g"}, | |
{"@id": "urn:ex:s256", "urn:ex:p": "g/"}, | |
{"@id": "urn:ex:s257", "urn:ex:p": "/g"}, | |
{"@id": "urn:ex:s258", "urn:ex:p": "//g"}, | |
{"@id": "urn:ex:s259", "urn:ex:p": "?y"}, | |
{"@id": "urn:ex:s260", "urn:ex:p": "g?y"}, | |
{"@id": "urn:ex:s261", "urn:ex:p": "#s"}, | |
{"@id": "urn:ex:s262", "urn:ex:p": "g#s"}, | |
{"@id": "urn:ex:s263", "urn:ex:p": "g?y#s"}, | |
{"@id": "urn:ex:s264", "urn:ex:p": ";x"}, | |
{"@id": "urn:ex:s265", "urn:ex:p": "g;x"}, | |
{"@id": "urn:ex:s266", "urn:ex:p": "g;x?y#s"}, | |
{"@id": "urn:ex:s267", "urn:ex:p": ""}, | |
{"@id": "urn:ex:s268", "urn:ex:p": "."}, | |
{"@id": "urn:ex:s269", "urn:ex:p": "./"}, | |
{"@id": "urn:ex:s270", "urn:ex:p": ".."}, | |
{"@id": "urn:ex:s271", "urn:ex:p": "../"}, | |
{"@id": "urn:ex:s272", "urn:ex:p": "../g"}, | |
{"@id": "urn:ex:s273", "urn:ex:p": "../.."}, | |
{"@id": "urn:ex:s274", "urn:ex:p": "../../"}, | |
{"@id": "urn:ex:s275", "urn:ex:p": "../../g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "file:///a/bb/ccc/d;p?q", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s276", "urn:ex:p": "../../../g"}, | |
{"@id": "urn:ex:s277", "urn:ex:p": "../../../../g"}, | |
{"@id": "urn:ex:s278", "urn:ex:p": "/./g"}, | |
{"@id": "urn:ex:s279", "urn:ex:p": "/../g"}, | |
{"@id": "urn:ex:s280", "urn:ex:p": "g."}, | |
{"@id": "urn:ex:s281", "urn:ex:p": ".g"}, | |
{"@id": "urn:ex:s282", "urn:ex:p": "g.."}, | |
{"@id": "urn:ex:s283", "urn:ex:p": "..g"}, | |
{"@id": "urn:ex:s284", "urn:ex:p": "./../g"}, | |
{"@id": "urn:ex:s285", "urn:ex:p": "./g/."}, | |
{"@id": "urn:ex:s286", "urn:ex:p": "g/./h"}, | |
{"@id": "urn:ex:s287", "urn:ex:p": "g/../h"}, | |
{"@id": "urn:ex:s288", "urn:ex:p": "g;x=1/./y"}, | |
{"@id": "urn:ex:s289", "urn:ex:p": "g;x=1/../y"}, | |
{"@id": "urn:ex:s290", "urn:ex:p": "g?y/./x"}, | |
{"@id": "urn:ex:s291", "urn:ex:p": "g?y/../x"}, | |
{"@id": "urn:ex:s292", "urn:ex:p": "g#s/./x"}, | |
{"@id": "urn:ex:s293", "urn:ex:p": "g#s/../x"}, | |
{"@id": "urn:ex:s294", "urn:ex:p": "http:g"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://abc/def/ghi", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s295", "urn:ex:p": "."}, | |
{"@id": "urn:ex:s296", "urn:ex:p": ".?a=b"}, | |
{"@id": "urn:ex:s297", "urn:ex:p": ".#a=b"}, | |
{"@id": "urn:ex:s298", "urn:ex:p": ".."}, | |
{"@id": "urn:ex:s299", "urn:ex:p": "..?a=b"}, | |
{"@id": "urn:ex:s300", "urn:ex:p": "..#a=b"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://ab//de//ghi", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s301", "urn:ex:p": "xyz"}, | |
{"@id": "urn:ex:s302", "urn:ex:p": "./xyz"}, | |
{"@id": "urn:ex:s303", "urn:ex:p": "../xyz"} | |
] | |
}, | |
{ | |
"@context": {"@base": "http://abc/d:f/ghi", "urn:ex:p": {"@type": "@id"}}, | |
"@graph": [ | |
{"@id": "urn:ex:s304", "urn:ex:p": "xyz"}, | |
{"@id": "urn:ex:s305", "urn:ex:p": "./xyz"}, | |
{"@id": "urn:ex:s306", "urn:ex:p": "../xyz"} | |
] | |
} | |
] |
# RFC3986 normal examples | |
<urn:ex:s001> <urn:ex:p> <g:h>. | |
<urn:ex:s002> <urn:ex:p> <http://a/bb/ccc/g>. | |
<urn:ex:s003> <urn:ex:p> <http://a/bb/ccc/g>. | |
<urn:ex:s004> <urn:ex:p> <http://a/bb/ccc/g/>. | |
<urn:ex:s005> <urn:ex:p> <http://a/g>. | |
<urn:ex:s006> <urn:ex:p> <http://g>. | |
<urn:ex:s007> <urn:ex:p> <http://a/bb/ccc/d;p?y>. | |
<urn:ex:s008> <urn:ex:p> <http://a/bb/ccc/g?y>. | |
<urn:ex:s009> <urn:ex:p> <http://a/bb/ccc/d;p?q#s>. | |
<urn:ex:s010> <urn:ex:p> <http://a/bb/ccc/g#s>. | |
<urn:ex:s011> <urn:ex:p> <http://a/bb/ccc/g?y#s>. | |
<urn:ex:s012> <urn:ex:p> <http://a/bb/ccc/;x>. | |
<urn:ex:s013> <urn:ex:p> <http://a/bb/ccc/g;x>. | |
<urn:ex:s014> <urn:ex:p> <http://a/bb/ccc/g;x?y#s>. | |
<urn:ex:s015> <urn:ex:p> <http://a/bb/ccc/d;p?q>. | |
<urn:ex:s016> <urn:ex:p> <http://a/bb/ccc/>. | |
<urn:ex:s017> <urn:ex:p> <http://a/bb/ccc/>. | |
<urn:ex:s018> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s019> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s020> <urn:ex:p> <http://a/bb/g>. | |
<urn:ex:s021> <urn:ex:p> <http://a/>. | |
<urn:ex:s022> <urn:ex:p> <http://a/>. | |
<urn:ex:s023> <urn:ex:p> <http://a/g>. | |
# RFC3986 abnormal examples | |
<urn:ex:s024> <urn:ex:p> <http://a/g>. | |
<urn:ex:s025> <urn:ex:p> <http://a/g>. | |
<urn:ex:s026> <urn:ex:p> <http://a/g>. | |
<urn:ex:s027> <urn:ex:p> <http://a/g>. | |
<urn:ex:s028> <urn:ex:p> <http://a/bb/ccc/g.>. | |
<urn:ex:s029> <urn:ex:p> <http://a/bb/ccc/.g>. | |
<urn:ex:s030> <urn:ex:p> <http://a/bb/ccc/g..>. | |
<urn:ex:s031> <urn:ex:p> <http://a/bb/ccc/..g>. | |
<urn:ex:s032> <urn:ex:p> <http://a/bb/g>. | |
<urn:ex:s033> <urn:ex:p> <http://a/bb/ccc/g/>. | |
<urn:ex:s034> <urn:ex:p> <http://a/bb/ccc/g/h>. | |
<urn:ex:s035> <urn:ex:p> <http://a/bb/ccc/h>. | |
<urn:ex:s036> <urn:ex:p> <http://a/bb/ccc/g;x=1/y>. | |
<urn:ex:s037> <urn:ex:p> <http://a/bb/ccc/y>. | |
<urn:ex:s038> <urn:ex:p> <http://a/bb/ccc/g?y/./x>. | |
<urn:ex:s039> <urn:ex:p> <http://a/bb/ccc/g?y/../x>. | |
<urn:ex:s040> <urn:ex:p> <http://a/bb/ccc/g#s/./x>. | |
<urn:ex:s041> <urn:ex:p> <http://a/bb/ccc/g#s/../x>. | |
<urn:ex:s042> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with trailing slash in base IRI | |
<urn:ex:s043> <urn:ex:p> <g:h>. | |
<urn:ex:s044> <urn:ex:p> <http://a/bb/ccc/d/g>. | |
<urn:ex:s045> <urn:ex:p> <http://a/bb/ccc/d/g>. | |
<urn:ex:s046> <urn:ex:p> <http://a/bb/ccc/d/g/>. | |
<urn:ex:s047> <urn:ex:p> <http://a/g>. | |
<urn:ex:s048> <urn:ex:p> <http://g>. | |
<urn:ex:s049> <urn:ex:p> <http://a/bb/ccc/d/?y>. | |
<urn:ex:s050> <urn:ex:p> <http://a/bb/ccc/d/g?y>. | |
<urn:ex:s051> <urn:ex:p> <http://a/bb/ccc/d/#s>. | |
<urn:ex:s052> <urn:ex:p> <http://a/bb/ccc/d/g#s>. | |
<urn:ex:s053> <urn:ex:p> <http://a/bb/ccc/d/g?y#s>. | |
<urn:ex:s054> <urn:ex:p> <http://a/bb/ccc/d/;x>. | |
<urn:ex:s055> <urn:ex:p> <http://a/bb/ccc/d/g;x>. | |
<urn:ex:s056> <urn:ex:p> <http://a/bb/ccc/d/g;x?y#s>. | |
<urn:ex:s057> <urn:ex:p> <http://a/bb/ccc/d/>. | |
<urn:ex:s058> <urn:ex:p> <http://a/bb/ccc/d/>. | |
<urn:ex:s059> <urn:ex:p> <http://a/bb/ccc/d/>. | |
<urn:ex:s060> <urn:ex:p> <http://a/bb/ccc/>. | |
<urn:ex:s061> <urn:ex:p> <http://a/bb/ccc/>. | |
<urn:ex:s062> <urn:ex:p> <http://a/bb/ccc/g>. | |
<urn:ex:s063> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s064> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s065> <urn:ex:p> <http://a/bb/g>. | |
# RFC3986 abnormal examples with trailing slash in base IRI | |
<urn:ex:s066> <urn:ex:p> <http://a/g>. | |
<urn:ex:s067> <urn:ex:p> <http://a/g>. | |
<urn:ex:s068> <urn:ex:p> <http://a/g>. | |
<urn:ex:s069> <urn:ex:p> <http://a/g>. | |
<urn:ex:s070> <urn:ex:p> <http://a/bb/ccc/d/g.>. | |
<urn:ex:s071> <urn:ex:p> <http://a/bb/ccc/d/.g>. | |
<urn:ex:s072> <urn:ex:p> <http://a/bb/ccc/d/g..>. | |
<urn:ex:s073> <urn:ex:p> <http://a/bb/ccc/d/..g>. | |
<urn:ex:s074> <urn:ex:p> <http://a/bb/ccc/g>. | |
<urn:ex:s075> <urn:ex:p> <http://a/bb/ccc/d/g/>. | |
<urn:ex:s076> <urn:ex:p> <http://a/bb/ccc/d/g/h>. | |
<urn:ex:s077> <urn:ex:p> <http://a/bb/ccc/d/h>. | |
<urn:ex:s078> <urn:ex:p> <http://a/bb/ccc/d/g;x=1/y>. | |
<urn:ex:s079> <urn:ex:p> <http://a/bb/ccc/d/y>. | |
<urn:ex:s080> <urn:ex:p> <http://a/bb/ccc/d/g?y/./x>. | |
<urn:ex:s081> <urn:ex:p> <http://a/bb/ccc/d/g?y/../x>. | |
<urn:ex:s082> <urn:ex:p> <http://a/bb/ccc/d/g#s/./x>. | |
<urn:ex:s083> <urn:ex:p> <http://a/bb/ccc/d/g#s/../x>. | |
<urn:ex:s084> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with /. in the base IRI | |
<urn:ex:s085> <urn:ex:p> <g:h>. | |
<urn:ex:s086> <urn:ex:p> <http://a/bb/ccc/g>. | |
<urn:ex:s087> <urn:ex:p> <http://a/bb/ccc/g>. | |
<urn:ex:s088> <urn:ex:p> <http://a/bb/ccc/g/>. | |
<urn:ex:s089> <urn:ex:p> <http://a/g>. | |
<urn:ex:s090> <urn:ex:p> <http://g>. | |
<urn:ex:s091> <urn:ex:p> <http://a/bb/ccc/./d;p?y>. | |
<urn:ex:s092> <urn:ex:p> <http://a/bb/ccc/g?y>. | |
<urn:ex:s093> <urn:ex:p> <http://a/bb/ccc/./d;p?q#s>. | |
<urn:ex:s094> <urn:ex:p> <http://a/bb/ccc/g#s>. | |
<urn:ex:s095> <urn:ex:p> <http://a/bb/ccc/g?y#s>. | |
<urn:ex:s096> <urn:ex:p> <http://a/bb/ccc/;x>. | |
<urn:ex:s097> <urn:ex:p> <http://a/bb/ccc/g;x>. | |
<urn:ex:s098> <urn:ex:p> <http://a/bb/ccc/g;x?y#s>. | |
<urn:ex:s099> <urn:ex:p> <http://a/bb/ccc/./d;p?q>. | |
<urn:ex:s100> <urn:ex:p> <http://a/bb/ccc/>. | |
<urn:ex:s101> <urn:ex:p> <http://a/bb/ccc/>. | |
<urn:ex:s102> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s103> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s104> <urn:ex:p> <http://a/bb/g>. | |
<urn:ex:s105> <urn:ex:p> <http://a/>. | |
<urn:ex:s106> <urn:ex:p> <http://a/>. | |
<urn:ex:s107> <urn:ex:p> <http://a/g>. | |
# RFC3986 abnormal examples with /. in the base IRI | |
<urn:ex:s108> <urn:ex:p> <http://a/g>. | |
<urn:ex:s109> <urn:ex:p> <http://a/g>. | |
<urn:ex:s110> <urn:ex:p> <http://a/g>. | |
<urn:ex:s111> <urn:ex:p> <http://a/g>. | |
<urn:ex:s112> <urn:ex:p> <http://a/bb/ccc/g.>. | |
<urn:ex:s113> <urn:ex:p> <http://a/bb/ccc/.g>. | |
<urn:ex:s114> <urn:ex:p> <http://a/bb/ccc/g..>. | |
<urn:ex:s115> <urn:ex:p> <http://a/bb/ccc/..g>. | |
<urn:ex:s116> <urn:ex:p> <http://a/bb/g>. | |
<urn:ex:s117> <urn:ex:p> <http://a/bb/ccc/g/>. | |
<urn:ex:s118> <urn:ex:p> <http://a/bb/ccc/g/h>. | |
<urn:ex:s119> <urn:ex:p> <http://a/bb/ccc/h>. | |
<urn:ex:s120> <urn:ex:p> <http://a/bb/ccc/g;x=1/y>. | |
<urn:ex:s121> <urn:ex:p> <http://a/bb/ccc/y>. | |
<urn:ex:s122> <urn:ex:p> <http://a/bb/ccc/g?y/./x>. | |
<urn:ex:s123> <urn:ex:p> <http://a/bb/ccc/g?y/../x>. | |
<urn:ex:s124> <urn:ex:p> <http://a/bb/ccc/g#s/./x>. | |
<urn:ex:s125> <urn:ex:p> <http://a/bb/ccc/g#s/../x>. | |
<urn:ex:s126> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with /.. in the base IRI | |
<urn:ex:s127> <urn:ex:p> <g:h>. | |
<urn:ex:s128> <urn:ex:p> <http://a/bb/g>. | |
<urn:ex:s129> <urn:ex:p> <http://a/bb/g>. | |
<urn:ex:s130> <urn:ex:p> <http://a/bb/g/>. | |
<urn:ex:s131> <urn:ex:p> <http://a/g>. | |
<urn:ex:s132> <urn:ex:p> <http://g>. | |
<urn:ex:s133> <urn:ex:p> <http://a/bb/ccc/../d;p?y>. | |
<urn:ex:s134> <urn:ex:p> <http://a/bb/g?y>. | |
<urn:ex:s135> <urn:ex:p> <http://a/bb/ccc/../d;p?q#s>. | |
<urn:ex:s136> <urn:ex:p> <http://a/bb/g#s>. | |
<urn:ex:s137> <urn:ex:p> <http://a/bb/g?y#s>. | |
<urn:ex:s138> <urn:ex:p> <http://a/bb/;x>. | |
<urn:ex:s139> <urn:ex:p> <http://a/bb/g;x>. | |
<urn:ex:s140> <urn:ex:p> <http://a/bb/g;x?y#s>. | |
<urn:ex:s141> <urn:ex:p> <http://a/bb/ccc/../d;p?q>. | |
<urn:ex:s142> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s143> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s144> <urn:ex:p> <http://a/>. | |
<urn:ex:s145> <urn:ex:p> <http://a/>. | |
<urn:ex:s146> <urn:ex:p> <http://a/g>. | |
<urn:ex:s147> <urn:ex:p> <http://a/>. | |
<urn:ex:s148> <urn:ex:p> <http://a/>. | |
<urn:ex:s149> <urn:ex:p> <http://a/g>. | |
# RFC3986 abnormal examples with /.. in the base IRI | |
<urn:ex:s150> <urn:ex:p> <http://a/g>. | |
<urn:ex:s151> <urn:ex:p> <http://a/g>. | |
<urn:ex:s152> <urn:ex:p> <http://a/g>. | |
<urn:ex:s153> <urn:ex:p> <http://a/g>. | |
<urn:ex:s154> <urn:ex:p> <http://a/bb/g.>. | |
<urn:ex:s155> <urn:ex:p> <http://a/bb/.g>. | |
<urn:ex:s156> <urn:ex:p> <http://a/bb/g..>. | |
<urn:ex:s157> <urn:ex:p> <http://a/bb/..g>. | |
<urn:ex:s158> <urn:ex:p> <http://a/g>. | |
<urn:ex:s159> <urn:ex:p> <http://a/bb/g/>. | |
<urn:ex:s160> <urn:ex:p> <http://a/bb/g/h>. | |
<urn:ex:s161> <urn:ex:p> <http://a/bb/h>. | |
<urn:ex:s162> <urn:ex:p> <http://a/bb/g;x=1/y>. | |
<urn:ex:s163> <urn:ex:p> <http://a/bb/y>. | |
<urn:ex:s164> <urn:ex:p> <http://a/bb/g?y/./x>. | |
<urn:ex:s165> <urn:ex:p> <http://a/bb/g?y/../x>. | |
<urn:ex:s166> <urn:ex:p> <http://a/bb/g#s/./x>. | |
<urn:ex:s167> <urn:ex:p> <http://a/bb/g#s/../x>. | |
<urn:ex:s168> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with trailing /. in the base IRI | |
<urn:ex:s169> <urn:ex:p> <g:h>. | |
<urn:ex:s170> <urn:ex:p> <http://a/bb/ccc/g>. | |
<urn:ex:s171> <urn:ex:p> <http://a/bb/ccc/g>. | |
<urn:ex:s172> <urn:ex:p> <http://a/bb/ccc/g/>. | |
<urn:ex:s173> <urn:ex:p> <http://a/g>. | |
<urn:ex:s174> <urn:ex:p> <http://g>. | |
<urn:ex:s175> <urn:ex:p> <http://a/bb/ccc/.?y>. | |
<urn:ex:s176> <urn:ex:p> <http://a/bb/ccc/g?y>. | |
<urn:ex:s177> <urn:ex:p> <http://a/bb/ccc/.#s>. | |
<urn:ex:s178> <urn:ex:p> <http://a/bb/ccc/g#s>. | |
<urn:ex:s179> <urn:ex:p> <http://a/bb/ccc/g?y#s>. | |
<urn:ex:s180> <urn:ex:p> <http://a/bb/ccc/;x>. | |
<urn:ex:s181> <urn:ex:p> <http://a/bb/ccc/g;x>. | |
<urn:ex:s182> <urn:ex:p> <http://a/bb/ccc/g;x?y#s>. | |
<urn:ex:s183> <urn:ex:p> <http://a/bb/ccc/.>. | |
<urn:ex:s184> <urn:ex:p> <http://a/bb/ccc/>. | |
<urn:ex:s185> <urn:ex:p> <http://a/bb/ccc/>. | |
<urn:ex:s186> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s187> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s188> <urn:ex:p> <http://a/bb/g>. | |
<urn:ex:s189> <urn:ex:p> <http://a/>. | |
<urn:ex:s190> <urn:ex:p> <http://a/>. | |
<urn:ex:s191> <urn:ex:p> <http://a/g>. | |
# RFC3986 abnormal examples with trailing /. in the base IRI | |
<urn:ex:s192> <urn:ex:p> <http://a/g>. | |
<urn:ex:s193> <urn:ex:p> <http://a/g>. | |
<urn:ex:s194> <urn:ex:p> <http://a/g>. | |
<urn:ex:s195> <urn:ex:p> <http://a/g>. | |
<urn:ex:s196> <urn:ex:p> <http://a/bb/ccc/g.>. | |
<urn:ex:s197> <urn:ex:p> <http://a/bb/ccc/.g>. | |
<urn:ex:s198> <urn:ex:p> <http://a/bb/ccc/g..>. | |
<urn:ex:s199> <urn:ex:p> <http://a/bb/ccc/..g>. | |
<urn:ex:s200> <urn:ex:p> <http://a/bb/g>. | |
<urn:ex:s201> <urn:ex:p> <http://a/bb/ccc/g/>. | |
<urn:ex:s202> <urn:ex:p> <http://a/bb/ccc/g/h>. | |
<urn:ex:s203> <urn:ex:p> <http://a/bb/ccc/h>. | |
<urn:ex:s204> <urn:ex:p> <http://a/bb/ccc/g;x=1/y>. | |
<urn:ex:s205> <urn:ex:p> <http://a/bb/ccc/y>. | |
<urn:ex:s206> <urn:ex:p> <http://a/bb/ccc/g?y/./x>. | |
<urn:ex:s207> <urn:ex:p> <http://a/bb/ccc/g?y/../x>. | |
<urn:ex:s208> <urn:ex:p> <http://a/bb/ccc/g#s/./x>. | |
<urn:ex:s209> <urn:ex:p> <http://a/bb/ccc/g#s/../x>. | |
<urn:ex:s210> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with trailing /.. in the base IRI | |
<urn:ex:s211> <urn:ex:p> <g:h>. | |
<urn:ex:s212> <urn:ex:p> <http://a/bb/ccc/g>. | |
<urn:ex:s213> <urn:ex:p> <http://a/bb/ccc/g>. | |
<urn:ex:s214> <urn:ex:p> <http://a/bb/ccc/g/>. | |
<urn:ex:s215> <urn:ex:p> <http://a/g>. | |
<urn:ex:s216> <urn:ex:p> <http://g>. | |
<urn:ex:s217> <urn:ex:p> <http://a/bb/ccc/..?y>. | |
<urn:ex:s218> <urn:ex:p> <http://a/bb/ccc/g?y>. | |
<urn:ex:s219> <urn:ex:p> <http://a/bb/ccc/..#s>. | |
<urn:ex:s220> <urn:ex:p> <http://a/bb/ccc/g#s>. | |
<urn:ex:s221> <urn:ex:p> <http://a/bb/ccc/g?y#s>. | |
<urn:ex:s222> <urn:ex:p> <http://a/bb/ccc/;x>. | |
<urn:ex:s223> <urn:ex:p> <http://a/bb/ccc/g;x>. | |
<urn:ex:s224> <urn:ex:p> <http://a/bb/ccc/g;x?y#s>. | |
<urn:ex:s225> <urn:ex:p> <http://a/bb/ccc/..>. | |
<urn:ex:s226> <urn:ex:p> <http://a/bb/ccc/>. | |
<urn:ex:s227> <urn:ex:p> <http://a/bb/ccc/>. | |
<urn:ex:s228> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s229> <urn:ex:p> <http://a/bb/>. | |
<urn:ex:s230> <urn:ex:p> <http://a/bb/g>. | |
<urn:ex:s231> <urn:ex:p> <http://a/>. | |
<urn:ex:s232> <urn:ex:p> <http://a/>. | |
<urn:ex:s233> <urn:ex:p> <http://a/g>. | |
# RFC3986 abnormal examples with trailing /.. in the base IRI | |
<urn:ex:s234> <urn:ex:p> <http://a/g>. | |
<urn:ex:s235> <urn:ex:p> <http://a/g>. | |
<urn:ex:s236> <urn:ex:p> <http://a/g>. | |
<urn:ex:s237> <urn:ex:p> <http://a/g>. | |
<urn:ex:s238> <urn:ex:p> <http://a/bb/ccc/g.>. | |
<urn:ex:s239> <urn:ex:p> <http://a/bb/ccc/.g>. | |
<urn:ex:s240> <urn:ex:p> <http://a/bb/ccc/g..>. | |
<urn:ex:s241> <urn:ex:p> <http://a/bb/ccc/..g>. | |
<urn:ex:s242> <urn:ex:p> <http://a/bb/g>. | |
<urn:ex:s243> <urn:ex:p> <http://a/bb/ccc/g/>. | |
<urn:ex:s244> <urn:ex:p> <http://a/bb/ccc/g/h>. | |
<urn:ex:s245> <urn:ex:p> <http://a/bb/ccc/h>. | |
<urn:ex:s246> <urn:ex:p> <http://a/bb/ccc/g;x=1/y>. | |
<urn:ex:s247> <urn:ex:p> <http://a/bb/ccc/y>. | |
<urn:ex:s248> <urn:ex:p> <http://a/bb/ccc/g?y/./x>. | |
<urn:ex:s249> <urn:ex:p> <http://a/bb/ccc/g?y/../x>. | |
<urn:ex:s250> <urn:ex:p> <http://a/bb/ccc/g#s/./x>. | |
<urn:ex:s251> <urn:ex:p> <http://a/bb/ccc/g#s/../x>. | |
<urn:ex:s252> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with file path | |
<urn:ex:s253> <urn:ex:p> <g:h>. | |
<urn:ex:s254> <urn:ex:p> <file:///a/bb/ccc/g>. | |
<urn:ex:s255> <urn:ex:p> <file:///a/bb/ccc/g>. | |
<urn:ex:s256> <urn:ex:p> <file:///a/bb/ccc/g/>. | |
<urn:ex:s257> <urn:ex:p> <file:///g>. | |
<urn:ex:s258> <urn:ex:p> <file://g>. | |
<urn:ex:s259> <urn:ex:p> <file:///a/bb/ccc/d;p?y>. | |
<urn:ex:s260> <urn:ex:p> <file:///a/bb/ccc/g?y>. | |
<urn:ex:s261> <urn:ex:p> <file:///a/bb/ccc/d;p?q#s>. | |
<urn:ex:s262> <urn:ex:p> <file:///a/bb/ccc/g#s>. | |
<urn:ex:s263> <urn:ex:p> <file:///a/bb/ccc/g?y#s>. | |
<urn:ex:s264> <urn:ex:p> <file:///a/bb/ccc/;x>. | |
<urn:ex:s265> <urn:ex:p> <file:///a/bb/ccc/g;x>. | |
<urn:ex:s266> <urn:ex:p> <file:///a/bb/ccc/g;x?y#s>. | |
<urn:ex:s267> <urn:ex:p> <file:///a/bb/ccc/d;p?q>. | |
<urn:ex:s268> <urn:ex:p> <file:///a/bb/ccc/>. | |
<urn:ex:s269> <urn:ex:p> <file:///a/bb/ccc/>. | |
<urn:ex:s270> <urn:ex:p> <file:///a/bb/>. | |
<urn:ex:s271> <urn:ex:p> <file:///a/bb/>. | |
<urn:ex:s272> <urn:ex:p> <file:///a/bb/g>. | |
<urn:ex:s273> <urn:ex:p> <file:///a/>. | |
<urn:ex:s274> <urn:ex:p> <file:///a/>. | |
<urn:ex:s275> <urn:ex:p> <file:///a/g>. | |
# RFC3986 abnormal examples with file path | |
<urn:ex:s276> <urn:ex:p> <file:///g>. | |
<urn:ex:s277> <urn:ex:p> <file:///g>. | |
<urn:ex:s278> <urn:ex:p> <file:///g>. | |
<urn:ex:s279> <urn:ex:p> <file:///g>. | |
<urn:ex:s280> <urn:ex:p> <file:///a/bb/ccc/g.>. | |
<urn:ex:s281> <urn:ex:p> <file:///a/bb/ccc/.g>. | |
<urn:ex:s282> <urn:ex:p> <file:///a/bb/ccc/g..>. | |
<urn:ex:s283> <urn:ex:p> <file:///a/bb/ccc/..g>. | |
<urn:ex:s284> <urn:ex:p> <file:///a/bb/g>. | |
<urn:ex:s285> <urn:ex:p> <file:///a/bb/ccc/g/>. | |
<urn:ex:s286> <urn:ex:p> <file:///a/bb/ccc/g/h>. | |
<urn:ex:s287> <urn:ex:p> <file:///a/bb/ccc/h>. | |
<urn:ex:s288> <urn:ex:p> <file:///a/bb/ccc/g;x=1/y>. | |
<urn:ex:s289> <urn:ex:p> <file:///a/bb/ccc/y>. | |
<urn:ex:s290> <urn:ex:p> <file:///a/bb/ccc/g?y/./x>. | |
<urn:ex:s291> <urn:ex:p> <file:///a/bb/ccc/g?y/../x>. | |
<urn:ex:s292> <urn:ex:p> <file:///a/bb/ccc/g#s/./x>. | |
<urn:ex:s293> <urn:ex:p> <file:///a/bb/ccc/g#s/../x>. | |
<urn:ex:s294> <urn:ex:p> <http:g>. | |
# additional cases | |
<urn:ex:s295> <urn:ex:p> <http://abc/def/>. | |
<urn:ex:s296> <urn:ex:p> <http://abc/def/?a=b>. | |
<urn:ex:s297> <urn:ex:p> <http://abc/def/#a=b>. | |
<urn:ex:s298> <urn:ex:p> <http://abc/>. | |
<urn:ex:s299> <urn:ex:p> <http://abc/?a=b>. | |
<urn:ex:s300> <urn:ex:p> <http://abc/#a=b>. | |
<urn:ex:s301> <urn:ex:p> <http://ab//de//xyz>. | |
<urn:ex:s302> <urn:ex:p> <http://ab//de//xyz>. | |
<urn:ex:s303> <urn:ex:p> <http://ab//de/xyz>. | |
<urn:ex:s304> <urn:ex:p> <http://abc/d:f/xyz>. | |
<urn:ex:s305> <urn:ex:p> <http://abc/d:f/xyz>. | |
<urn:ex:s306> <urn:ex:p> <http://abc/xyz>. |
<outer xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:urn="urn:"> | |
<rdf:RDF xml:base="http://a/bb/ccc/d;p?q"> | |
<!-- RFC3986 normal examples --> | |
<rdf:Description rdf:about="urn:ex:s001"><urn:ex:p rdf:resource="g:h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s002"><urn:ex:p rdf:resource="g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s003"><urn:ex:p rdf:resource="./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s004"><urn:ex:p rdf:resource="g/"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s005"><urn:ex:p rdf:resource="/g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s006"><urn:ex:p rdf:resource="//g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s007"><urn:ex:p rdf:resource="?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s008"><urn:ex:p rdf:resource="g?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s009"><urn:ex:p rdf:resource="#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s010"><urn:ex:p rdf:resource="g#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s011"><urn:ex:p rdf:resource="g?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s012"><urn:ex:p rdf:resource=";x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s013"><urn:ex:p rdf:resource="g;x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s014"><urn:ex:p rdf:resource="g;x?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s015"><urn:ex:p rdf:resource=""/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s016"><urn:ex:p rdf:resource="."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s017"><urn:ex:p rdf:resource="./"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s018"><urn:ex:p rdf:resource=".."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s019"><urn:ex:p rdf:resource="../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s020"><urn:ex:p rdf:resource="../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s021"><urn:ex:p rdf:resource="../.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s022"><urn:ex:p rdf:resource="../../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s023"><urn:ex:p rdf:resource="../../g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://a/bb/ccc/d;p?q"> | |
<!-- RFC3986 abnormal examples --> | |
<rdf:Description rdf:about="urn:ex:s024"><urn:ex:p rdf:resource="../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s025"><urn:ex:p rdf:resource="../../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s026"><urn:ex:p rdf:resource="/./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s027"><urn:ex:p rdf:resource="/../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s028"><urn:ex:p rdf:resource="g."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s029"><urn:ex:p rdf:resource=".g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s030"><urn:ex:p rdf:resource="g.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s031"><urn:ex:p rdf:resource="..g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s032"><urn:ex:p rdf:resource="./../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s033"><urn:ex:p rdf:resource="./g/."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s034"><urn:ex:p rdf:resource="g/./h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s035"><urn:ex:p rdf:resource="g/../h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s036"><urn:ex:p rdf:resource="g;x=1/./y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s037"><urn:ex:p rdf:resource="g;x=1/../y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s038"><urn:ex:p rdf:resource="g?y/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s039"><urn:ex:p rdf:resource="g?y/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s040"><urn:ex:p rdf:resource="g#s/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s041"><urn:ex:p rdf:resource="g#s/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s042"><urn:ex:p rdf:resource="http:g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://a/bb/ccc/d/"> | |
<!-- RFC3986 normal examples with trailing slash in base IRI --> | |
<rdf:Description rdf:about="urn:ex:s043"><urn:ex:p rdf:resource="g:h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s044"><urn:ex:p rdf:resource="g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s045"><urn:ex:p rdf:resource="./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s046"><urn:ex:p rdf:resource="g/"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s047"><urn:ex:p rdf:resource="/g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s048"><urn:ex:p rdf:resource="//g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s049"><urn:ex:p rdf:resource="?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s050"><urn:ex:p rdf:resource="g?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s051"><urn:ex:p rdf:resource="#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s052"><urn:ex:p rdf:resource="g#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s053"><urn:ex:p rdf:resource="g?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s054"><urn:ex:p rdf:resource=";x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s055"><urn:ex:p rdf:resource="g;x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s056"><urn:ex:p rdf:resource="g;x?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s057"><urn:ex:p rdf:resource=""/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s058"><urn:ex:p rdf:resource="."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s059"><urn:ex:p rdf:resource="./"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s060"><urn:ex:p rdf:resource=".."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s061"><urn:ex:p rdf:resource="../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s062"><urn:ex:p rdf:resource="../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s063"><urn:ex:p rdf:resource="../.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s064"><urn:ex:p rdf:resource="../../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s065"><urn:ex:p rdf:resource="../../g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://a/bb/ccc/d/"> | |
<!-- RFC3986 abnormal examples with trailing slash in base IRI --> | |
<rdf:Description rdf:about="urn:ex:s066"><urn:ex:p rdf:resource="../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s067"><urn:ex:p rdf:resource="../../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s068"><urn:ex:p rdf:resource="/./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s069"><urn:ex:p rdf:resource="/../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s070"><urn:ex:p rdf:resource="g."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s071"><urn:ex:p rdf:resource=".g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s072"><urn:ex:p rdf:resource="g.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s073"><urn:ex:p rdf:resource="..g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s074"><urn:ex:p rdf:resource="./../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s075"><urn:ex:p rdf:resource="./g/."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s076"><urn:ex:p rdf:resource="g/./h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s077"><urn:ex:p rdf:resource="g/../h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s078"><urn:ex:p rdf:resource="g;x=1/./y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s079"><urn:ex:p rdf:resource="g;x=1/../y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s080"><urn:ex:p rdf:resource="g?y/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s081"><urn:ex:p rdf:resource="g?y/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s082"><urn:ex:p rdf:resource="g#s/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s083"><urn:ex:p rdf:resource="g#s/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s084"><urn:ex:p rdf:resource="http:g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://a/bb/ccc/./d;p?q"> | |
<!-- RFC3986 normal examples0 with ./ in the base IRI --> | |
<rdf:Description rdf:about="urn:ex:s085"><urn:ex:p rdf:resource="g:h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s086"><urn:ex:p rdf:resource="g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s087"><urn:ex:p rdf:resource="./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s088"><urn:ex:p rdf:resource="g/"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s089"><urn:ex:p rdf:resource="/g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s090"><urn:ex:p rdf:resource="//g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s091"><urn:ex:p rdf:resource="?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s092"><urn:ex:p rdf:resource="g?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s093"><urn:ex:p rdf:resource="#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s094"><urn:ex:p rdf:resource="g#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s095"><urn:ex:p rdf:resource="g?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s096"><urn:ex:p rdf:resource=";x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s097"><urn:ex:p rdf:resource="g;x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s098"><urn:ex:p rdf:resource="g;x?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s099"><urn:ex:p rdf:resource=""/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s100"><urn:ex:p rdf:resource="."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s101"><urn:ex:p rdf:resource="./"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s102"><urn:ex:p rdf:resource=".."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s103"><urn:ex:p rdf:resource="../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s104"><urn:ex:p rdf:resource="../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s105"><urn:ex:p rdf:resource="../.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s106"><urn:ex:p rdf:resource="../../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s107"><urn:ex:p rdf:resource="../../g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://a/bb/ccc/./d;p?q"> | |
<!-- RFC3986 abnormal examples with ./ in the base IRI --> | |
<rdf:Description rdf:about="urn:ex:s108"><urn:ex:p rdf:resource="../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s109"><urn:ex:p rdf:resource="../../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s110"><urn:ex:p rdf:resource="/./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s111"><urn:ex:p rdf:resource="/../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s112"><urn:ex:p rdf:resource="g."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s113"><urn:ex:p rdf:resource=".g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s114"><urn:ex:p rdf:resource="g.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s115"><urn:ex:p rdf:resource="..g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s116"><urn:ex:p rdf:resource="./../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s117"><urn:ex:p rdf:resource="./g/."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s118"><urn:ex:p rdf:resource="g/./h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s119"><urn:ex:p rdf:resource="g/../h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s120"><urn:ex:p rdf:resource="g;x=1/./y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s121"><urn:ex:p rdf:resource="g;x=1/../y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s122"><urn:ex:p rdf:resource="g?y/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s123"><urn:ex:p rdf:resource="g?y/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s124"><urn:ex:p rdf:resource="g#s/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s125"><urn:ex:p rdf:resource="g#s/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s126"><urn:ex:p rdf:resource="http:g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://a/bb/ccc/../d;p?q"> | |
<!-- RFC3986 normal examples with ../ in the base IRI --> | |
<rdf:Description rdf:about="urn:ex:s127"><urn:ex:p rdf:resource="g:h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s128"><urn:ex:p rdf:resource="g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s129"><urn:ex:p rdf:resource="./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s130"><urn:ex:p rdf:resource="g/"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s131"><urn:ex:p rdf:resource="/g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s132"><urn:ex:p rdf:resource="//g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s133"><urn:ex:p rdf:resource="?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s134"><urn:ex:p rdf:resource="g?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s135"><urn:ex:p rdf:resource="#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s136"><urn:ex:p rdf:resource="g#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s137"><urn:ex:p rdf:resource="g?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s138"><urn:ex:p rdf:resource=";x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s139"><urn:ex:p rdf:resource="g;x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s140"><urn:ex:p rdf:resource="g;x?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s141"><urn:ex:p rdf:resource=""/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s142"><urn:ex:p rdf:resource="."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s143"><urn:ex:p rdf:resource="./"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s144"><urn:ex:p rdf:resource=".."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s145"><urn:ex:p rdf:resource="../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s146"><urn:ex:p rdf:resource="../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s147"><urn:ex:p rdf:resource="../.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s148"><urn:ex:p rdf:resource="../../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s149"><urn:ex:p rdf:resource="../../g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://a/bb/ccc/../d;p?q"> | |
<!-- RFC3986 abnormal examples with ../ in the base IRI --> | |
<rdf:Description rdf:about="urn:ex:s150"><urn:ex:p rdf:resource="../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s151"><urn:ex:p rdf:resource="../../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s152"><urn:ex:p rdf:resource="/./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s153"><urn:ex:p rdf:resource="/../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s154"><urn:ex:p rdf:resource="g."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s155"><urn:ex:p rdf:resource=".g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s156"><urn:ex:p rdf:resource="g.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s157"><urn:ex:p rdf:resource="..g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s158"><urn:ex:p rdf:resource="./../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s159"><urn:ex:p rdf:resource="./g/."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s160"><urn:ex:p rdf:resource="g/./h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s161"><urn:ex:p rdf:resource="g/../h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s162"><urn:ex:p rdf:resource="g;x=1/./y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s163"><urn:ex:p rdf:resource="g;x=1/../y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s164"><urn:ex:p rdf:resource="g?y/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s165"><urn:ex:p rdf:resource="g?y/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s166"><urn:ex:p rdf:resource="g#s/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s167"><urn:ex:p rdf:resource="g#s/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s168"><urn:ex:p rdf:resource="http:g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://a/bb/ccc/."> | |
<!-- RFC3986 normal examples with trailing ./ in the base IRI --> | |
<rdf:Description rdf:about="urn:ex:s169"><urn:ex:p rdf:resource="g:h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s170"><urn:ex:p rdf:resource="g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s171"><urn:ex:p rdf:resource="./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s172"><urn:ex:p rdf:resource="g/"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s173"><urn:ex:p rdf:resource="/g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s174"><urn:ex:p rdf:resource="//g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s175"><urn:ex:p rdf:resource="?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s176"><urn:ex:p rdf:resource="g?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s177"><urn:ex:p rdf:resource="#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s178"><urn:ex:p rdf:resource="g#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s179"><urn:ex:p rdf:resource="g?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s180"><urn:ex:p rdf:resource=";x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s181"><urn:ex:p rdf:resource="g;x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s182"><urn:ex:p rdf:resource="g;x?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s183"><urn:ex:p rdf:resource=""/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s184"><urn:ex:p rdf:resource="."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s185"><urn:ex:p rdf:resource="./"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s186"><urn:ex:p rdf:resource=".."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s187"><urn:ex:p rdf:resource="../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s188"><urn:ex:p rdf:resource="../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s189"><urn:ex:p rdf:resource="../.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s190"><urn:ex:p rdf:resource="../../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s191"><urn:ex:p rdf:resource="../../g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://a/bb/ccc/."> | |
<!-- RFC3986 abnormal examples with trailing ./ in the base IRI --> | |
<rdf:Description rdf:about="urn:ex:s192"><urn:ex:p rdf:resource="../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s193"><urn:ex:p rdf:resource="../../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s194"><urn:ex:p rdf:resource="/./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s195"><urn:ex:p rdf:resource="/../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s196"><urn:ex:p rdf:resource="g."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s197"><urn:ex:p rdf:resource=".g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s198"><urn:ex:p rdf:resource="g.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s199"><urn:ex:p rdf:resource="..g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s200"><urn:ex:p rdf:resource="./../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s201"><urn:ex:p rdf:resource="./g/."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s202"><urn:ex:p rdf:resource="g/./h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s203"><urn:ex:p rdf:resource="g/../h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s204"><urn:ex:p rdf:resource="g;x=1/./y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s205"><urn:ex:p rdf:resource="g;x=1/../y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s206"><urn:ex:p rdf:resource="g?y/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s207"><urn:ex:p rdf:resource="g?y/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s208"><urn:ex:p rdf:resource="g#s/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s209"><urn:ex:p rdf:resource="g#s/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s210"><urn:ex:p rdf:resource="http:g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://a/bb/ccc/.."> | |
<!-- RFC3986 normal examples with trailing ../ in the base IRI --> | |
<rdf:Description rdf:about="urn:ex:s211"><urn:ex:p rdf:resource="g:h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s212"><urn:ex:p rdf:resource="g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s213"><urn:ex:p rdf:resource="./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s214"><urn:ex:p rdf:resource="g/"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s215"><urn:ex:p rdf:resource="/g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s216"><urn:ex:p rdf:resource="//g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s217"><urn:ex:p rdf:resource="?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s218"><urn:ex:p rdf:resource="g?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s219"><urn:ex:p rdf:resource="#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s220"><urn:ex:p rdf:resource="g#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s221"><urn:ex:p rdf:resource="g?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s222"><urn:ex:p rdf:resource=";x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s223"><urn:ex:p rdf:resource="g;x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s224"><urn:ex:p rdf:resource="g;x?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s225"><urn:ex:p rdf:resource=""/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s226"><urn:ex:p rdf:resource="."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s227"><urn:ex:p rdf:resource="./"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s228"><urn:ex:p rdf:resource=".."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s229"><urn:ex:p rdf:resource="../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s230"><urn:ex:p rdf:resource="../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s231"><urn:ex:p rdf:resource="../.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s232"><urn:ex:p rdf:resource="../../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s233"><urn:ex:p rdf:resource="../../g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://a/bb/ccc/.."> | |
<!-- RFC3986 abnormal examples with trailing ../ in the base IRI --> | |
<rdf:Description rdf:about="urn:ex:s234"><urn:ex:p rdf:resource="../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s235"><urn:ex:p rdf:resource="../../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s236"><urn:ex:p rdf:resource="/./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s237"><urn:ex:p rdf:resource="/../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s238"><urn:ex:p rdf:resource="g."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s239"><urn:ex:p rdf:resource=".g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s240"><urn:ex:p rdf:resource="g.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s241"><urn:ex:p rdf:resource="..g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s242"><urn:ex:p rdf:resource="./../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s243"><urn:ex:p rdf:resource="./g/."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s244"><urn:ex:p rdf:resource="g/./h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s245"><urn:ex:p rdf:resource="g/../h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s246"><urn:ex:p rdf:resource="g;x=1/./y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s247"><urn:ex:p rdf:resource="g;x=1/../y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s248"><urn:ex:p rdf:resource="g?y/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s249"><urn:ex:p rdf:resource="g?y/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s250"><urn:ex:p rdf:resource="g#s/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s251"><urn:ex:p rdf:resource="g#s/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s252"><urn:ex:p rdf:resource="http:g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="file:///a/bb/ccc/d;p?q"> | |
<!-- RFC3986 normal examples with file path --> | |
<rdf:Description rdf:about="urn:ex:s253"><urn:ex:p rdf:resource="g:h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s254"><urn:ex:p rdf:resource="g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s255"><urn:ex:p rdf:resource="./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s256"><urn:ex:p rdf:resource="g/"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s257"><urn:ex:p rdf:resource="/g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s258"><urn:ex:p rdf:resource="//g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s259"><urn:ex:p rdf:resource="?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s260"><urn:ex:p rdf:resource="g?y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s261"><urn:ex:p rdf:resource="#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s262"><urn:ex:p rdf:resource="g#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s263"><urn:ex:p rdf:resource="g?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s264"><urn:ex:p rdf:resource=";x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s265"><urn:ex:p rdf:resource="g;x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s266"><urn:ex:p rdf:resource="g;x?y#s"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s267"><urn:ex:p rdf:resource=""/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s268"><urn:ex:p rdf:resource="."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s269"><urn:ex:p rdf:resource="./"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s270"><urn:ex:p rdf:resource=".."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s271"><urn:ex:p rdf:resource="../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s272"><urn:ex:p rdf:resource="../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s273"><urn:ex:p rdf:resource="../.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s274"><urn:ex:p rdf:resource="../../"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s275"><urn:ex:p rdf:resource="../../g"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="file:///a/bb/ccc/d;p?q"> | |
<!-- RFC3986 abnormal examples with file path --> | |
<rdf:Description rdf:about="urn:ex:s276"><urn:ex:p rdf:resource="../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s277"><urn:ex:p rdf:resource="../../../../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s278"><urn:ex:p rdf:resource="/./g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s279"><urn:ex:p rdf:resource="/../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s280"><urn:ex:p rdf:resource="g."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s281"><urn:ex:p rdf:resource=".g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s282"><urn:ex:p rdf:resource="g.."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s283"><urn:ex:p rdf:resource="..g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s284"><urn:ex:p rdf:resource="./../g"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s285"><urn:ex:p rdf:resource="./g/."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s286"><urn:ex:p rdf:resource="g/./h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s287"><urn:ex:p rdf:resource="g/../h"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s288"><urn:ex:p rdf:resource="g;x=1/./y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s289"><urn:ex:p rdf:resource="g;x=1/../y"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s290"><urn:ex:p rdf:resource="g?y/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s291"><urn:ex:p rdf:resource="g?y/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s292"><urn:ex:p rdf:resource="g#s/./x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s293"><urn:ex:p rdf:resource="g#s/../x"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s294"><urn:ex:p rdf:resource="http:g"/></rdf:Description> | |
</rdf:RDF> | |
<!-- additional cases --> | |
<rdf:RDF xml:base="http://abc/def/ghi"> | |
<rdf:Description rdf:about="urn:ex:s295"><urn:ex:p rdf:resource="."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s296"><urn:ex:p rdf:resource=".?a=b"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s297"><urn:ex:p rdf:resource=".#a=b"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s298"><urn:ex:p rdf:resource=".."/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s299"><urn:ex:p rdf:resource="..?a=b"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s300"><urn:ex:p rdf:resource="..#a=b"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://ab//de//ghi"> | |
<rdf:Description rdf:about="urn:ex:s301"><urn:ex:p rdf:resource="xyz"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s302"><urn:ex:p rdf:resource="./xyz"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s303"><urn:ex:p rdf:resource="../xyz"/></rdf:Description> | |
</rdf:RDF> | |
<rdf:RDF xml:base="http://abc/d:f/ghi"> | |
<rdf:Description rdf:about="urn:ex:s304"><urn:ex:p rdf:resource="xyz"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s305"><urn:ex:p rdf:resource="./xyz"/></rdf:Description> | |
<rdf:Description rdf:about="urn:ex:s306"><urn:ex:p rdf:resource="../xyz"/></rdf:Description> | |
</rdf:RDF> | |
</outer> |
# RFC3986 normal examples | |
@base <http://a/bb/ccc/d;p?q>. | |
<urn:ex:s001> <urn:ex:p> <g:h>. | |
<urn:ex:s002> <urn:ex:p> <g>. | |
<urn:ex:s003> <urn:ex:p> <./g>. | |
<urn:ex:s004> <urn:ex:p> <g/>. | |
<urn:ex:s005> <urn:ex:p> </g>. | |
<urn:ex:s006> <urn:ex:p> <//g>. | |
<urn:ex:s007> <urn:ex:p> <?y>. | |
<urn:ex:s008> <urn:ex:p> <g?y>. | |
<urn:ex:s009> <urn:ex:p> <#s>. | |
<urn:ex:s010> <urn:ex:p> <g#s>. | |
<urn:ex:s011> <urn:ex:p> <g?y#s>. | |
<urn:ex:s012> <urn:ex:p> <;x>. | |
<urn:ex:s013> <urn:ex:p> <g;x>. | |
<urn:ex:s014> <urn:ex:p> <g;x?y#s>. | |
<urn:ex:s015> <urn:ex:p> <>. | |
<urn:ex:s016> <urn:ex:p> <.>. | |
<urn:ex:s017> <urn:ex:p> <./>. | |
<urn:ex:s018> <urn:ex:p> <..>. | |
<urn:ex:s019> <urn:ex:p> <../>. | |
<urn:ex:s020> <urn:ex:p> <../g>. | |
<urn:ex:s021> <urn:ex:p> <../..>. | |
<urn:ex:s022> <urn:ex:p> <../../>. | |
<urn:ex:s023> <urn:ex:p> <../../g>. | |
# RFC3986 abnormal examples | |
@base <http://a/bb/ccc/d;p?q>. | |
<urn:ex:s024> <urn:ex:p> <../../../g>. | |
<urn:ex:s025> <urn:ex:p> <../../../../g>. | |
<urn:ex:s026> <urn:ex:p> </./g>. | |
<urn:ex:s027> <urn:ex:p> </../g>. | |
<urn:ex:s028> <urn:ex:p> <g.>. | |
<urn:ex:s029> <urn:ex:p> <.g>. | |
<urn:ex:s030> <urn:ex:p> <g..>. | |
<urn:ex:s031> <urn:ex:p> <..g>. | |
<urn:ex:s032> <urn:ex:p> <./../g>. | |
<urn:ex:s033> <urn:ex:p> <./g/.>. | |
<urn:ex:s034> <urn:ex:p> <g/./h>. | |
<urn:ex:s035> <urn:ex:p> <g/../h>. | |
<urn:ex:s036> <urn:ex:p> <g;x=1/./y>. | |
<urn:ex:s037> <urn:ex:p> <g;x=1/../y>. | |
<urn:ex:s038> <urn:ex:p> <g?y/./x>. | |
<urn:ex:s039> <urn:ex:p> <g?y/../x>. | |
<urn:ex:s040> <urn:ex:p> <g#s/./x>. | |
<urn:ex:s041> <urn:ex:p> <g#s/../x>. | |
<urn:ex:s042> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with trailing slash in base IRI | |
@base <http://a/bb/ccc/d/>. | |
<urn:ex:s043> <urn:ex:p> <g:h>. | |
<urn:ex:s044> <urn:ex:p> <g>. | |
<urn:ex:s045> <urn:ex:p> <./g>. | |
<urn:ex:s046> <urn:ex:p> <g/>. | |
<urn:ex:s047> <urn:ex:p> </g>. | |
<urn:ex:s048> <urn:ex:p> <//g>. | |
<urn:ex:s049> <urn:ex:p> <?y>. | |
<urn:ex:s050> <urn:ex:p> <g?y>. | |
<urn:ex:s051> <urn:ex:p> <#s>. | |
<urn:ex:s052> <urn:ex:p> <g#s>. | |
<urn:ex:s053> <urn:ex:p> <g?y#s>. | |
<urn:ex:s054> <urn:ex:p> <;x>. | |
<urn:ex:s055> <urn:ex:p> <g;x>. | |
<urn:ex:s056> <urn:ex:p> <g;x?y#s>. | |
<urn:ex:s057> <urn:ex:p> <>. | |
<urn:ex:s058> <urn:ex:p> <.>. | |
<urn:ex:s059> <urn:ex:p> <./>. | |
<urn:ex:s060> <urn:ex:p> <..>. | |
<urn:ex:s061> <urn:ex:p> <../>. | |
<urn:ex:s062> <urn:ex:p> <../g>. | |
<urn:ex:s063> <urn:ex:p> <../..>. | |
<urn:ex:s064> <urn:ex:p> <../../>. | |
<urn:ex:s065> <urn:ex:p> <../../g>. | |
# RFC3986 abnormal examples with trailing slash in base IRI | |
@base <http://a/bb/ccc/d/>. | |
<urn:ex:s066> <urn:ex:p> <../../../g>. | |
<urn:ex:s067> <urn:ex:p> <../../../../g>. | |
<urn:ex:s068> <urn:ex:p> </./g>. | |
<urn:ex:s069> <urn:ex:p> </../g>. | |
<urn:ex:s070> <urn:ex:p> <g.>. | |
<urn:ex:s071> <urn:ex:p> <.g>. | |
<urn:ex:s072> <urn:ex:p> <g..>. | |
<urn:ex:s073> <urn:ex:p> <..g>. | |
<urn:ex:s074> <urn:ex:p> <./../g>. | |
<urn:ex:s075> <urn:ex:p> <./g/.>. | |
<urn:ex:s076> <urn:ex:p> <g/./h>. | |
<urn:ex:s077> <urn:ex:p> <g/../h>. | |
<urn:ex:s078> <urn:ex:p> <g;x=1/./y>. | |
<urn:ex:s079> <urn:ex:p> <g;x=1/../y>. | |
<urn:ex:s080> <urn:ex:p> <g?y/./x>. | |
<urn:ex:s081> <urn:ex:p> <g?y/../x>. | |
<urn:ex:s082> <urn:ex:p> <g#s/./x>. | |
<urn:ex:s083> <urn:ex:p> <g#s/../x>. | |
<urn:ex:s084> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with /. in the base IRI | |
@base <http://a/bb/ccc/./d;p?q>. | |
<urn:ex:s085> <urn:ex:p> <g:h>. | |
<urn:ex:s086> <urn:ex:p> <g>. | |
<urn:ex:s087> <urn:ex:p> <./g>. | |
<urn:ex:s088> <urn:ex:p> <g/>. | |
<urn:ex:s089> <urn:ex:p> </g>. | |
<urn:ex:s090> <urn:ex:p> <//g>. | |
<urn:ex:s091> <urn:ex:p> <?y>. | |
<urn:ex:s092> <urn:ex:p> <g?y>. | |
<urn:ex:s093> <urn:ex:p> <#s>. | |
<urn:ex:s094> <urn:ex:p> <g#s>. | |
<urn:ex:s095> <urn:ex:p> <g?y#s>. | |
<urn:ex:s096> <urn:ex:p> <;x>. | |
<urn:ex:s097> <urn:ex:p> <g;x>. | |
<urn:ex:s098> <urn:ex:p> <g;x?y#s>. | |
<urn:ex:s099> <urn:ex:p> <>. | |
<urn:ex:s100> <urn:ex:p> <.>. | |
<urn:ex:s101> <urn:ex:p> <./>. | |
<urn:ex:s102> <urn:ex:p> <..>. | |
<urn:ex:s103> <urn:ex:p> <../>. | |
<urn:ex:s104> <urn:ex:p> <../g>. | |
<urn:ex:s105> <urn:ex:p> <../..>. | |
<urn:ex:s106> <urn:ex:p> <../../>. | |
<urn:ex:s107> <urn:ex:p> <../../g>. | |
# RFC3986 abnormal examples with /. in the base IRI | |
@base <http://a/bb/ccc/./d;p?q>. | |
<urn:ex:s108> <urn:ex:p> <../../../g>. | |
<urn:ex:s109> <urn:ex:p> <../../../../g>. | |
<urn:ex:s110> <urn:ex:p> </./g>. | |
<urn:ex:s111> <urn:ex:p> </../g>. | |
<urn:ex:s112> <urn:ex:p> <g.>. | |
<urn:ex:s113> <urn:ex:p> <.g>. | |
<urn:ex:s114> <urn:ex:p> <g..>. | |
<urn:ex:s115> <urn:ex:p> <..g>. | |
<urn:ex:s116> <urn:ex:p> <./../g>. | |
<urn:ex:s117> <urn:ex:p> <./g/.>. | |
<urn:ex:s118> <urn:ex:p> <g/./h>. | |
<urn:ex:s119> <urn:ex:p> <g/../h>. | |
<urn:ex:s120> <urn:ex:p> <g;x=1/./y>. | |
<urn:ex:s121> <urn:ex:p> <g;x=1/../y>. | |
<urn:ex:s122> <urn:ex:p> <g?y/./x>. | |
<urn:ex:s123> <urn:ex:p> <g?y/../x>. | |
<urn:ex:s124> <urn:ex:p> <g#s/./x>. | |
<urn:ex:s125> <urn:ex:p> <g#s/../x>. | |
<urn:ex:s126> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with /.. in the base IRI | |
@base <http://a/bb/ccc/../d;p?q>. | |
<urn:ex:s127> <urn:ex:p> <g:h>. | |
<urn:ex:s128> <urn:ex:p> <g>. | |
<urn:ex:s129> <urn:ex:p> <./g>. | |
<urn:ex:s130> <urn:ex:p> <g/>. | |
<urn:ex:s131> <urn:ex:p> </g>. | |
<urn:ex:s132> <urn:ex:p> <//g>. | |
<urn:ex:s133> <urn:ex:p> <?y>. | |
<urn:ex:s134> <urn:ex:p> <g?y>. | |
<urn:ex:s135> <urn:ex:p> <#s>. | |
<urn:ex:s136> <urn:ex:p> <g#s>. | |
<urn:ex:s137> <urn:ex:p> <g?y#s>. | |
<urn:ex:s138> <urn:ex:p> <;x>. | |
<urn:ex:s139> <urn:ex:p> <g;x>. | |
<urn:ex:s140> <urn:ex:p> <g;x?y#s>. | |
<urn:ex:s141> <urn:ex:p> <>. | |
<urn:ex:s142> <urn:ex:p> <.>. | |
<urn:ex:s143> <urn:ex:p> <./>. | |
<urn:ex:s144> <urn:ex:p> <..>. | |
<urn:ex:s145> <urn:ex:p> <../>. | |
<urn:ex:s146> <urn:ex:p> <../g>. | |
<urn:ex:s147> <urn:ex:p> <../..>. | |
<urn:ex:s148> <urn:ex:p> <../../>. | |
<urn:ex:s149> <urn:ex:p> <../../g>. | |
# RFC3986 abnormal examples with /.. in the base IRI | |
@base <http://a/bb/ccc/../d;p?q>. | |
<urn:ex:s150> <urn:ex:p> <../../../g>. | |
<urn:ex:s151> <urn:ex:p> <../../../../g>. | |
<urn:ex:s152> <urn:ex:p> </./g>. | |
<urn:ex:s153> <urn:ex:p> </../g>. | |
<urn:ex:s154> <urn:ex:p> <g.>. | |
<urn:ex:s155> <urn:ex:p> <.g>. | |
<urn:ex:s156> <urn:ex:p> <g..>. | |
<urn:ex:s157> <urn:ex:p> <..g>. | |
<urn:ex:s158> <urn:ex:p> <./../g>. | |
<urn:ex:s159> <urn:ex:p> <./g/.>. | |
<urn:ex:s160> <urn:ex:p> <g/./h>. | |
<urn:ex:s161> <urn:ex:p> <g/../h>. | |
<urn:ex:s162> <urn:ex:p> <g;x=1/./y>. | |
<urn:ex:s163> <urn:ex:p> <g;x=1/../y>. | |
<urn:ex:s164> <urn:ex:p> <g?y/./x>. | |
<urn:ex:s165> <urn:ex:p> <g?y/../x>. | |
<urn:ex:s166> <urn:ex:p> <g#s/./x>. | |
<urn:ex:s167> <urn:ex:p> <g#s/../x>. | |
<urn:ex:s168> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with trailing /. in the base IRI | |
@base <http://a/bb/ccc/.>. | |
<urn:ex:s169> <urn:ex:p> <g:h>. | |
<urn:ex:s170> <urn:ex:p> <g>. | |
<urn:ex:s171> <urn:ex:p> <./g>. | |
<urn:ex:s172> <urn:ex:p> <g/>. | |
<urn:ex:s173> <urn:ex:p> </g>. | |
<urn:ex:s174> <urn:ex:p> <//g>. | |
<urn:ex:s175> <urn:ex:p> <?y>. | |
<urn:ex:s176> <urn:ex:p> <g?y>. | |
<urn:ex:s177> <urn:ex:p> <#s>. | |
<urn:ex:s178> <urn:ex:p> <g#s>. | |
<urn:ex:s179> <urn:ex:p> <g?y#s>. | |
<urn:ex:s180> <urn:ex:p> <;x>. | |
<urn:ex:s181> <urn:ex:p> <g;x>. | |
<urn:ex:s182> <urn:ex:p> <g;x?y#s>. | |
<urn:ex:s183> <urn:ex:p> <>. | |
<urn:ex:s184> <urn:ex:p> <.>. | |
<urn:ex:s185> <urn:ex:p> <./>. | |
<urn:ex:s186> <urn:ex:p> <..>. | |
<urn:ex:s187> <urn:ex:p> <../>. | |
<urn:ex:s188> <urn:ex:p> <../g>. | |
<urn:ex:s189> <urn:ex:p> <../..>. | |
<urn:ex:s190> <urn:ex:p> <../../>. | |
<urn:ex:s191> <urn:ex:p> <../../g>. | |
# RFC3986 abnormal examples with trailing /. in the base IRI | |
@base <http://a/bb/ccc/.>. | |
<urn:ex:s192> <urn:ex:p> <../../../g>. | |
<urn:ex:s193> <urn:ex:p> <../../../../g>. | |
<urn:ex:s194> <urn:ex:p> </./g>. | |
<urn:ex:s195> <urn:ex:p> </../g>. | |
<urn:ex:s196> <urn:ex:p> <g.>. | |
<urn:ex:s197> <urn:ex:p> <.g>. | |
<urn:ex:s198> <urn:ex:p> <g..>. | |
<urn:ex:s199> <urn:ex:p> <..g>. | |
<urn:ex:s200> <urn:ex:p> <./../g>. | |
<urn:ex:s201> <urn:ex:p> <./g/.>. | |
<urn:ex:s202> <urn:ex:p> <g/./h>. | |
<urn:ex:s203> <urn:ex:p> <g/../h>. | |
<urn:ex:s204> <urn:ex:p> <g;x=1/./y>. | |
<urn:ex:s205> <urn:ex:p> <g;x=1/../y>. | |
<urn:ex:s206> <urn:ex:p> <g?y/./x>. | |
<urn:ex:s207> <urn:ex:p> <g?y/../x>. | |
<urn:ex:s208> <urn:ex:p> <g#s/./x>. | |
<urn:ex:s209> <urn:ex:p> <g#s/../x>. | |
<urn:ex:s210> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with trailing /.. in the base IRI | |
@base <http://a/bb/ccc/..>. | |
<urn:ex:s211> <urn:ex:p> <g:h>. | |
<urn:ex:s212> <urn:ex:p> <g>. | |
<urn:ex:s213> <urn:ex:p> <./g>. | |
<urn:ex:s214> <urn:ex:p> <g/>. | |
<urn:ex:s215> <urn:ex:p> </g>. | |
<urn:ex:s216> <urn:ex:p> <//g>. | |
<urn:ex:s217> <urn:ex:p> <?y>. | |
<urn:ex:s218> <urn:ex:p> <g?y>. | |
<urn:ex:s219> <urn:ex:p> <#s>. | |
<urn:ex:s220> <urn:ex:p> <g#s>. | |
<urn:ex:s221> <urn:ex:p> <g?y#s>. | |
<urn:ex:s222> <urn:ex:p> <;x>. | |
<urn:ex:s223> <urn:ex:p> <g;x>. | |
<urn:ex:s224> <urn:ex:p> <g;x?y#s>. | |
<urn:ex:s225> <urn:ex:p> <>. | |
<urn:ex:s226> <urn:ex:p> <.>. | |
<urn:ex:s227> <urn:ex:p> <./>. | |
<urn:ex:s228> <urn:ex:p> <..>. | |
<urn:ex:s229> <urn:ex:p> <../>. | |
<urn:ex:s230> <urn:ex:p> <../g>. | |
<urn:ex:s231> <urn:ex:p> <../..>. | |
<urn:ex:s232> <urn:ex:p> <../../>. | |
<urn:ex:s233> <urn:ex:p> <../../g>. | |
# RFC3986 abnormal examples with trailing /.. in the base IRI | |
@base <http://a/bb/ccc/..>. | |
<urn:ex:s234> <urn:ex:p> <../../../g>. | |
<urn:ex:s235> <urn:ex:p> <../../../../g>. | |
<urn:ex:s236> <urn:ex:p> </./g>. | |
<urn:ex:s237> <urn:ex:p> </../g>. | |
<urn:ex:s238> <urn:ex:p> <g.>. | |
<urn:ex:s239> <urn:ex:p> <.g>. | |
<urn:ex:s240> <urn:ex:p> <g..>. | |
<urn:ex:s241> <urn:ex:p> <..g>. | |
<urn:ex:s242> <urn:ex:p> <./../g>. | |
<urn:ex:s243> <urn:ex:p> <./g/.>. | |
<urn:ex:s244> <urn:ex:p> <g/./h>. | |
<urn:ex:s245> <urn:ex:p> <g/../h>. | |
<urn:ex:s246> <urn:ex:p> <g;x=1/./y>. | |
<urn:ex:s247> <urn:ex:p> <g;x=1/../y>. | |
<urn:ex:s248> <urn:ex:p> <g?y/./x>. | |
<urn:ex:s249> <urn:ex:p> <g?y/../x>. | |
<urn:ex:s250> <urn:ex:p> <g#s/./x>. | |
<urn:ex:s251> <urn:ex:p> <g#s/../x>. | |
<urn:ex:s252> <urn:ex:p> <http:g>. | |
# RFC3986 normal examples with file path | |
@base <file:///a/bb/ccc/d;p?q>. | |
<urn:ex:s253> <urn:ex:p> <g:h>. | |
<urn:ex:s254> <urn:ex:p> <g>. | |
<urn:ex:s255> <urn:ex:p> <./g>. | |
<urn:ex:s256> <urn:ex:p> <g/>. | |
<urn:ex:s257> <urn:ex:p> </g>. | |
<urn:ex:s258> <urn:ex:p> <//g>. | |
<urn:ex:s259> <urn:ex:p> <?y>. | |
<urn:ex:s260> <urn:ex:p> <g?y>. | |
<urn:ex:s261> <urn:ex:p> <#s>. | |
<urn:ex:s262> <urn:ex:p> <g#s>. | |
<urn:ex:s263> <urn:ex:p> <g?y#s>. | |
<urn:ex:s264> <urn:ex:p> <;x>. | |
<urn:ex:s265> <urn:ex:p> <g;x>. | |
<urn:ex:s266> <urn:ex:p> <g;x?y#s>. | |
<urn:ex:s267> <urn:ex:p> <>. | |
<urn:ex:s268> <urn:ex:p> <.>. | |
<urn:ex:s269> <urn:ex:p> <./>. | |
<urn:ex:s270> <urn:ex:p> <..>. | |
<urn:ex:s271> <urn:ex:p> <../>. | |
<urn:ex:s272> <urn:ex:p> <../g>. | |
<urn:ex:s273> <urn:ex:p> <../..>. | |
<urn:ex:s274> <urn:ex:p> <../../>. | |
<urn:ex:s275> <urn:ex:p> <../../g>. | |
# RFC3986 abnormal examples with file path | |
@base <file:///a/bb/ccc/d;p?q>. | |
<urn:ex:s276> <urn:ex:p> <../../../g>. | |
<urn:ex:s277> <urn:ex:p> <../../../../g>. | |
<urn:ex:s278> <urn:ex:p> </./g>. | |
<urn:ex:s279> <urn:ex:p> </../g>. | |
<urn:ex:s280> <urn:ex:p> <g.>. | |
<urn:ex:s281> <urn:ex:p> <.g>. | |
<urn:ex:s282> <urn:ex:p> <g..>. | |
<urn:ex:s283> <urn:ex:p> <..g>. | |
<urn:ex:s284> <urn:ex:p> <./../g>. | |
<urn:ex:s285> <urn:ex:p> <./g/.>. | |
<urn:ex:s286> <urn:ex:p> <g/./h>. | |
<urn:ex:s287> <urn:ex:p> <g/../h>. | |
<urn:ex:s288> <urn:ex:p> <g;x=1/./y>. | |
<urn:ex:s289> <urn:ex:p> <g;x=1/../y>. | |
<urn:ex:s290> <urn:ex:p> <g?y/./x>. | |
<urn:ex:s291> <urn:ex:p> <g?y/../x>. | |
<urn:ex:s292> <urn:ex:p> <g#s/./x>. | |
<urn:ex:s293> <urn:ex:p> <g#s/../x>. | |
<urn:ex:s294> <urn:ex:p> <http:g>. | |
# additional cases | |
@base <http://abc/def/ghi>. | |
<urn:ex:s295> <urn:ex:p> <.>. | |
<urn:ex:s296> <urn:ex:p> <.?a=b>. | |
<urn:ex:s297> <urn:ex:p> <.#a=b>. | |
<urn:ex:s298> <urn:ex:p> <..>. | |
<urn:ex:s299> <urn:ex:p> <..?a=b>. | |
<urn:ex:s300> <urn:ex:p> <..#a=b>. | |
@base <http://ab//de//ghi>. | |
<urn:ex:s301> <urn:ex:p> <xyz>. | |
<urn:ex:s302> <urn:ex:p> <./xyz>. | |
<urn:ex:s303> <urn:ex:p> <../xyz>. | |
@base <http://abc/d:f/ghi>. | |
<urn:ex:s304> <urn:ex:p> <xyz>. | |
<urn:ex:s305> <urn:ex:p> <./xyz>. | |
<urn:ex:s306> <urn:ex:p> <../xyz>. |
<!DOCTYPE xhtml> | |
<html><body> | |
<div xml:base="http://a/bb/ccc/d;p?q"> | |
<!-- RFC3986 normal examples --> | |
<link about="urn:ex:s001" property="urn:ex:p" href="g:h"/> | |
<link about="urn:ex:s002" property="urn:ex:p" href="g"/> | |
<link about="urn:ex:s003" property="urn:ex:p" href="./g"/> | |
<link about="urn:ex:s004" property="urn:ex:p" href="g/"/> | |
<link about="urn:ex:s005" property="urn:ex:p" href="/g"/> | |
<link about="urn:ex:s006" property="urn:ex:p" href="//g"/> | |
<link about="urn:ex:s007" property="urn:ex:p" href="?y"/> | |
<link about="urn:ex:s008" property="urn:ex:p" href="g?y"/> | |
<link about="urn:ex:s009" property="urn:ex:p" href="#s"/> | |
<link about="urn:ex:s010" property="urn:ex:p" href="g#s"/> | |
<link about="urn:ex:s011" property="urn:ex:p" href="g?y#s"/> | |
<link about="urn:ex:s012" property="urn:ex:p" href=";x"/> | |
<link about="urn:ex:s013" property="urn:ex:p" href="g;x"/> | |
<link about="urn:ex:s014" property="urn:ex:p" href="g;x?y#s"/> | |
<link about="urn:ex:s015" property="urn:ex:p" href=""/> | |
<link about="urn:ex:s016" property="urn:ex:p" href="."/> | |
<link about="urn:ex:s017" property="urn:ex:p" href="./"/> | |
<link about="urn:ex:s018" property="urn:ex:p" href=".."/> | |
<link about="urn:ex:s019" property="urn:ex:p" href="../"/> | |
<link about="urn:ex:s020" property="urn:ex:p" href="../g"/> | |
<link about="urn:ex:s021" property="urn:ex:p" href="../.."/> | |
<link about="urn:ex:s022" property="urn:ex:p" href="../../"/> | |
<link about="urn:ex:s023" property="urn:ex:p" href="../../g"/> | |
</div> | |
<div xml:base="http://a/bb/ccc/d;p?q"> | |
<!-- RFC3986 abnormal examples --> | |
<link about="urn:ex:s024" property="urn:ex:p" href="../../../g"/> | |
<link about="urn:ex:s025" property="urn:ex:p" href="../../../../g"/> | |
<link about="urn:ex:s026" property="urn:ex:p" href="/./g"/> | |
<link about="urn:ex:s027" property="urn:ex:p" href="/../g"/> | |
<link about="urn:ex:s028" property="urn:ex:p" href="g."/> | |
<link about="urn:ex:s029" property="urn:ex:p" href=".g"/> | |
<link about="urn:ex:s030" property="urn:ex:p" href="g.."/> | |
<link about="urn:ex:s031" property="urn:ex:p" href="..g"/> | |
<link about="urn:ex:s032" property="urn:ex:p" href="./../g"/> | |
<link about="urn:ex:s033" property="urn:ex:p" href="./g/."/> | |
<link about="urn:ex:s034" property="urn:ex:p" href="g/./h"/> | |
<link about="urn:ex:s035" property="urn:ex:p" href="g/../h"/> | |
<link about="urn:ex:s036" property="urn:ex:p" href="g;x=1/./y"/> | |
<link about="urn:ex:s037" property="urn:ex:p" href="g;x=1/../y"/> | |
<link about="urn:ex:s038" property="urn:ex:p" href="g?y/./x"/> | |
<link about="urn:ex:s039" property="urn:ex:p" href="g?y/../x"/> | |
<link about="urn:ex:s040" property="urn:ex:p" href="g#s/./x"/> | |
<link about="urn:ex:s041" property="urn:ex:p" href="g#s/../x"/> | |
<link about="urn:ex:s042" property="urn:ex:p" href="http:g"/> | |
</div> | |
<div xml:base="http://a/bb/ccc/d/"> | |
<!-- RFC3986 normal examples with trailing slash in base IRI --> | |
<link about="urn:ex:s043" property="urn:ex:p" href="g:h"/> | |
<link about="urn:ex:s044" property="urn:ex:p" href="g"/> | |
<link about="urn:ex:s045" property="urn:ex:p" href="./g"/> | |
<link about="urn:ex:s046" property="urn:ex:p" href="g/"/> | |
<link about="urn:ex:s047" property="urn:ex:p" href="/g"/> | |
<link about="urn:ex:s048" property="urn:ex:p" href="//g"/> | |
<link about="urn:ex:s049" property="urn:ex:p" href="?y"/> | |
<link about="urn:ex:s050" property="urn:ex:p" href="g?y"/> | |
<link about="urn:ex:s051" property="urn:ex:p" href="#s"/> | |
<link about="urn:ex:s052" property="urn:ex:p" href="g#s"/> | |
<link about="urn:ex:s053" property="urn:ex:p" href="g?y#s"/> | |
<link about="urn:ex:s054" property="urn:ex:p" href=";x"/> | |
<link about="urn:ex:s055" property="urn:ex:p" href="g;x"/> | |
<link about="urn:ex:s056" property="urn:ex:p" href="g;x?y#s"/> | |
<link about="urn:ex:s057" property="urn:ex:p" href=""/> | |
<link about="urn:ex:s058" property="urn:ex:p" href="."/> | |
<link about="urn:ex:s059" property="urn:ex:p" href="./"/> | |
<link about="urn:ex:s060" property="urn:ex:p" href=".."/> | |
<link about="urn:ex:s061" property="urn:ex:p" href="../"/> | |
<link about="urn:ex:s062" property="urn:ex:p" href="../g"/> | |
<link about="urn:ex:s063" property="urn:ex:p" href="../.."/> | |
<link about="urn:ex:s064" property="urn:ex:p" href="../../"/> | |
<link about="urn:ex:s065" property="urn:ex:p" href="../../g"/> | |
</div> | |
<div xml:base="http://a/bb/ccc/d/"> | |
<!-- RFC3986 abnormal examples with trailing slash in base IRI --> | |
<link about="urn:ex:s066" property="urn:ex:p" href="../../../g"/> | |
<link about="urn:ex:s067" property="urn:ex:p" href="../../../../g"/> | |
<link about="urn:ex:s068" property="urn:ex:p" href="/./g"/> | |
<link about="urn:ex:s069" property="urn:ex:p" href="/../g"/> | |
<link about="urn:ex:s070" property="urn:ex:p" href="g."/> | |
<link about="urn:ex:s071" property="urn:ex:p" href=".g"/> | |
<link about="urn:ex:s072" property="urn:ex:p" href="g.."/> | |
<link about="urn:ex:s073" property="urn:ex:p" href="..g"/> | |
<link about="urn:ex:s074" property="urn:ex:p" href="./../g"/> | |
<link about="urn:ex:s075" property="urn:ex:p" href="./g/."/> | |
<link about="urn:ex:s076" property="urn:ex:p" href="g/./h"/> | |
<link about="urn:ex:s077" property="urn:ex:p" href="g/../h"/> | |
<link about="urn:ex:s078" property="urn:ex:p" href="g;x=1/./y"/> | |
<link about="urn:ex:s079" property="urn:ex:p" href="g;x=1/../y"/> | |
<link about="urn:ex:s080" property="urn:ex:p" href="g?y/./x"/> | |
<link about="urn:ex:s081" property="urn:ex:p" href="g?y/../x"/> | |
<link about="urn:ex:s082" property="urn:ex:p" href="g#s/./x"/> | |
<link about="urn:ex:s083" property="urn:ex:p" href="g#s/../x"/> | |
<link about="urn:ex:s084" property="urn:ex:p" href="http:g"/> | |
</div> | |
<div xml:base="http://a/bb/ccc/./d;p?q"> | |
<!-- RFC3986 normal examples0 with ./ in the base IRI --> | |
<link about="urn:ex:s085" property="urn:ex:p" href="g:h"/> | |
<link about="urn:ex:s086" property="urn:ex:p" href="g"/> | |
<link about="urn:ex:s087" property="urn:ex:p" href="./g"/> | |
<link about="urn:ex:s088" property="urn:ex:p" href="g/"/> | |
<link about="urn:ex:s089" property="urn:ex:p" href="/g"/> | |
<link about="urn:ex:s090" property="urn:ex:p" href="//g"/> | |
<link about="urn:ex:s091" property="urn:ex:p" href="?y"/> | |
<link about="urn:ex:s092" property="urn:ex:p" href="g?y"/> | |
<link about="urn:ex:s093" property="urn:ex:p" href="#s"/> | |
<link about="urn:ex:s094" property="urn:ex:p" href="g#s"/> | |
<link about="urn:ex:s095" property="urn:ex:p" href="g?y#s"/> | |
<link about="urn:ex:s096" property="urn:ex:p" href=";x"/> | |
<link about="urn:ex:s097" property="urn:ex:p" href="g;x"/> | |
<link about="urn:ex:s098" property="urn:ex:p" href="g;x?y#s"/> | |
<link about="urn:ex:s099" property="urn:ex:p" href=""/> | |
<link about="urn:ex:s100" property="urn:ex:p" href="."/> | |
<link about="urn:ex:s101" property="urn:ex:p" href="./"/> | |
<link about="urn:ex:s102" property="urn:ex:p" href=".."/> | |
<link about="urn:ex:s103" property="urn:ex:p" href="../"/> | |
<link about="urn:ex:s104" property="urn:ex:p" href="../g"/> | |
<link about="urn:ex:s105" property="urn:ex:p" href="../.."/> | |
<link about="urn:ex:s106" property="urn:ex:p" href="../../"/> | |
<link about="urn:ex:s107" property="urn:ex:p" href="../../g"/> | |
</div> | |
<div xml:base="http://a/bb/ccc/./d;p?q"> | |
<!-- RFC3986 abnormal examples with ./ in the base IRI --> | |
<link about="urn:ex:s108" property="urn:ex:p" href="../../../g"/> | |
<link about="urn:ex:s109" property="urn:ex:p" href="../../../../g"/> | |
<link about="urn:ex:s110" property="urn:ex:p" href="/./g"/> | |
<link about="urn:ex:s111" property="urn:ex:p" href="/../g"/> | |
<link about="urn:ex:s112" property="urn:ex:p" href="g."/> | |
<link about="urn:ex:s113" property="urn:ex:p" href=".g"/> | |
<link about="urn:ex:s114" property="urn:ex:p" href="g.."/> | |
<link about="urn:ex:s115" property="urn:ex:p" href="..g"/> | |
<link about="urn:ex:s116" property="urn:ex:p" href="./../g"/> | |
<link about="urn:ex:s117" property="urn:ex:p" href="./g/."/> | |
<link about="urn:ex:s118" property="urn:ex:p" href="g/./h"/> | |
<link about="urn:ex:s119" property="urn:ex:p" href="g/../h"/> | |
<link about="urn:ex:s120" property="urn:ex:p" href="g;x=1/./y"/> | |
<link about="urn:ex:s121" property="urn:ex:p" href="g;x=1/../y"/> | |
<link about="urn:ex:s122" property="urn:ex:p" href="g?y/./x"/> | |
<link about="urn:ex:s123" property="urn:ex:p" href="g?y/../x"/> | |
<link about="urn:ex:s124" property="urn:ex:p" href="g#s/./x"/> | |
<link about="urn:ex:s125" property="urn:ex:p" href="g#s/../x"/> | |
<link about="urn:ex:s126" property="urn:ex:p" href="http:g"/> | |
</div> | |
<div xml:base="http://a/bb/ccc/../d;p?q"> | |
<!-- RFC3986 normal examples with ../ in the base IRI --> | |
<link about="urn:ex:s127" property="urn:ex:p" href="g:h"/> | |
<link about="urn:ex:s128" property="urn:ex:p" href="g"/> | |
<link about="urn:ex:s129" property="urn:ex:p" href="./g"/> | |
<link about="urn:ex:s130" property="urn:ex:p" href="g/"/> | |
<link about="urn:ex:s131" property="urn:ex:p" href="/g"/> | |
<link about="urn:ex:s132" property="urn:ex:p" href="//g"/> | |
<link about="urn:ex:s133" property="urn:ex:p" href="?y"/> | |
<link about="urn:ex:s134" property="urn:ex:p" href="g?y"/> | |
<link about="urn:ex:s135" property="urn:ex:p" href="#s"/> | |
<link about="urn:ex:s136" property="urn:ex:p" href="g#s"/> | |
<link about="urn:ex:s137" property="urn:ex:p" href="g?y#s"/> | |
<link about="urn:ex:s138" property="urn:ex:p" href=";x"/> | |
<link about="urn:ex:s139" property="urn:ex:p" href="g;x"/> | |
<link about="urn:ex:s140" property="urn:ex:p" href="g;x?y#s"/> | |
<link about="urn:ex:s141" property="urn:ex:p" href=""/> | |
<link about="urn:ex:s142" property="urn:ex:p" href="."/> | |
<link about="urn:ex:s143" property="urn:ex:p" href="./"/> | |
<link about="urn:ex:s144" property="urn:ex:p" href=".."/> | |
<link about="urn:ex:s145" property="urn:ex:p" href="../"/> | |
<link about="urn:ex:s146" property="urn:ex:p" href="../g"/> | |
<link about="urn:ex:s147" property="urn:ex:p" href="../.."/> | |
<link about="urn:ex:s148" property="urn:ex:p" href="../../"/> | |
<link about="urn:ex:s149" property="urn:ex:p" href="../../g"/> | |
</div> | |
<div xml:base="http://a/bb/ccc/../d;p?q"> | |
<!-- RFC3986 abnormal examples with ../ in the base IRI --> | |
<link about="urn:ex:s150" property="urn:ex:p" href="../../../g"/> | |
<link about="urn:ex:s151" property="urn:ex:p" href="../../../../g"/> | |
<link about="urn:ex:s152" property="urn:ex:p" href="/./g"/> | |
<link about="urn:ex:s153" property="urn:ex:p" href="/../g"/> | |
<link about="urn:ex:s154" property="urn:ex:p" href="g."/> | |
<link about="urn:ex:s155" property="urn:ex:p" href=".g"/> | |
<link about="urn:ex:s156" property="urn:ex:p" href="g.."/> | |
<link about="urn:ex:s157" property="urn:ex:p" href="..g"/> | |
<link about="urn:ex:s158" property="urn:ex:p" href="./../g"/> | |
<link about="urn:ex:s159" property="urn:ex:p" href="./g/."/> | |
<link about="urn:ex:s160" property="urn:ex:p" href="g/./h"/> | |
<link about="urn:ex:s161" property="urn:ex:p" href="g/../h"/> | |
<link about="urn:ex:s162" property="urn:ex:p" href="g;x=1/./y"/> | |
<link about="urn:ex:s163" property="urn:ex:p" href="g;x=1/../y"/> | |
<link about="urn:ex:s164" property="urn:ex:p" href="g?y/./x"/> | |
<link about="urn:ex:s165" property="urn:ex:p" href="g?y/../x"/> | |
<link about="urn:ex:s166" property="urn:ex:p" href="g#s/./x"/> | |
<link about="urn:ex:s167" property="urn:ex:p" href="g#s/../x"/> | |
<link about="urn:ex:s168" property="urn:ex:p" href="http:g"/> | |
</div> | |
<div xml:base="http://a/bb/ccc/."> | |
<!-- RFC3986 normal examples with trailing ./ in the base IRI --> | |
<link about="urn:ex:s169" property="urn:ex:p" href="g:h"/> | |
<link about="urn:ex:s170" property="urn:ex:p" href="g"/> | |
<link about="urn:ex:s171" property="urn:ex:p" href="./g"/> | |
<link about="urn:ex:s172" property="urn:ex:p" href="g/"/> | |
<link about="urn:ex:s173" property="urn:ex:p" href="/g"/> | |
<link about="urn:ex:s174" property="urn:ex:p" href="//g"/> | |
<link about="urn:ex:s175" property="urn:ex:p" href="?y"/> | |
<link about="urn:ex:s176" property="urn:ex:p" href="g?y"/> | |
<link about="urn:ex:s177" property="urn:ex:p" href="#s"/> | |
<link about="urn:ex:s178" property="urn:ex:p" href="g#s"/> | |
<link about="urn:ex:s179" property="urn:ex:p" href="g?y#s"/> | |
<link about="urn:ex:s180" property="urn:ex:p" href=";x"/> | |
<link about="urn:ex:s181" property="urn:ex:p" href="g;x"/> | |
<link about="urn:ex:s182" property="urn:ex:p" href="g;x?y#s"/> | |
<link about="urn:ex:s183" property="urn:ex:p" href=""/> | |
<link about="urn:ex:s184" property="urn:ex:p" href="."/> | |
<link about="urn:ex:s185" property="urn:ex:p" href="./"/> | |
<link about="urn:ex:s186" property="urn:ex:p" href=".."/> | |
<link about="urn:ex:s187" property="urn:ex:p" href="../"/> | |
<link about="urn:ex:s188" property="urn:ex:p" href="../g"/> | |
<link about="urn:ex:s189" property="urn:ex:p" href="../.."/> | |
<link about="urn:ex:s190" property="urn:ex:p" href="../../"/> | |
<link about="urn:ex:s191" property="urn:ex:p" href="../../g"/> | |
</div> | |
<div xml:base="http://a/bb/ccc/."> | |
<!-- RFC3986 abnormal examples with trailing ./ in the base IRI --> | |
<link about="urn:ex:s192" property="urn:ex:p" href="../../../g"/> | |
<link about="urn:ex:s193" property="urn:ex:p" href="../../../../g"/> | |
<link about="urn:ex:s194" property="urn:ex:p" href="/./g"/> | |
<link about="urn:ex:s195" property="urn:ex:p" href="/../g"/> | |
<link about="urn:ex:s196" property="urn:ex:p" href="g."/> | |
<link about="urn:ex:s197" property="urn:ex:p" href=".g"/> | |
<link about="urn:ex:s198" property="urn:ex:p" href="g.."/> | |
<link about="urn:ex:s199" property="urn:ex:p" href="..g"/> | |
<link about="urn:ex:s200" property="urn:ex:p" href="./../g"/> | |
<link about="urn:ex:s201" property="urn:ex:p" href="./g/."/> | |
<link about="urn:ex:s202" property="urn:ex:p" href="g/./h"/> | |
<link about="urn:ex:s203" property="urn:ex:p" href="g/../h"/> | |
<link about="urn:ex:s204" property="urn:ex:p" href="g;x=1/./y"/> | |
<link about="urn:ex:s205" property="urn:ex:p" href="g;x=1/../y"/> | |
<link about="urn:ex:s206" property="urn:ex:p" href="g?y/./x"/> | |
<link about="urn:ex:s207" property="urn:ex:p" href="g?y/../x"/> | |
<link about="urn:ex:s208" property="urn:ex:p" href="g#s/./x"/> | |
<link about="urn:ex:s209" property="urn:ex:p" href="g#s/../x"/> | |
<link about="urn:ex:s210" property="urn:ex:p" href="http:g"/> | |
</div> | |
<div xml:base="http://a/bb/ccc/.."> | |
<!-- RFC3986 normal examples with trailing ../ in the base IRI --> | |
<link about="urn:ex:s211" property="urn:ex:p" href="g:h"/> | |
<link about="urn:ex:s212" property="urn:ex:p" href="g"/> | |
<link about="urn:ex:s213" property="urn:ex:p" href="./g"/> | |
<link about="urn:ex:s214" property="urn:ex:p" href="g/"/> | |
<link about="urn:ex:s215" property="urn:ex:p" href="/g"/> | |
<link about="urn:ex:s216" property="urn:ex:p" href="//g"/> | |
<link about="urn:ex:s217" property="urn:ex:p" href="?y"/> | |
<link about="urn:ex:s218" property="urn:ex:p" href="g?y"/> | |
<link about="urn:ex:s219" property="urn:ex:p" href="#s"/> | |
<link about="urn:ex:s220" property="urn:ex:p" href="g#s"/> | |
<link about="urn:ex:s221" property="urn:ex:p" href="g?y#s"/> | |
<link about="urn:ex:s222" property="urn:ex:p" href=";x"/> | |
<link about="urn:ex:s223" property="urn:ex:p" href="g;x"/> | |
<link about="urn:ex:s224" property="urn:ex:p" href="g;x?y#s"/> | |
<link about="urn:ex:s225" property="urn:ex:p" href=""/> | |
<link about="urn:ex:s226" property="urn:ex:p" href="."/> | |
<link about="urn:ex:s227" property="urn:ex:p" href="./"/> | |
<link about="urn:ex:s228" property="urn:ex:p" href=".."/> | |
<link about="urn:ex:s229" property="urn:ex:p" href="../"/> | |
<link about="urn:ex:s230" property="urn:ex:p" href="../g"/> | |
<link about="urn:ex:s231" property="urn:ex:p" href="../.."/> | |
<link about="urn:ex:s232" property="urn:ex:p" href="../../"/> | |
<link about="urn:ex:s233" property="urn:ex:p" href="../../g"/> | |
<link about="urn:ex:s210" property="urn:ex:p" href="http:g"/> | |
</div> | |
<div xml:base="http://a/bb/ccc/.."> | |
<!-- RFC3986 abnormal examples with trailing ../ in the base IRI --> | |
<link about="urn:ex:s234" property="urn:ex:p" href="../../../g"/> | |
<link about="urn:ex:s235" property="urn:ex:p" href="../../../../g"/> | |
<link about="urn:ex:s236" property="urn:ex:p" href="/./g"/> | |
<link about="urn:ex:s237" property="urn:ex:p" href="/../g"/> | |
<link about="urn:ex:s238" property="urn:ex:p" href="g."/> | |
<link about="urn:ex:s239" property="urn:ex:p" href=".g"/> | |
<link about="urn:ex:s240" property="urn:ex:p" href="g.."/> | |
<link about="urn:ex:s241" property="urn:ex:p" href="..g"/> | |
<link about="urn:ex:s242" property="urn:ex:p" href="./../g"/> | |
<link about="urn:ex:s243" property="urn:ex:p" href="./g/."/> | |
<link about="urn:ex:s244" property="urn:ex:p" href="g/./h"/> | |
<link about="urn:ex:s245" property="urn:ex:p" href="g/../h"/> | |
<link about="urn:ex:s246" property="urn:ex:p" href="g;x=1/./y"/> | |
<link about="urn:ex:s247" property="urn:ex:p" href="g;x=1/../y"/> | |
<link about="urn:ex:s248" property="urn:ex:p" href="g?y/./x"/> | |
<link about="urn:ex:s249" property="urn:ex:p" href="g?y/../x"/> | |
<link about="urn:ex:s250" property="urn:ex:p" href="g#s/./x"/> | |
<link about="urn:ex:s251" property="urn:ex:p" href="g#s/../x"/> | |
<link about="urn:ex:s252" property="urn:ex:p" href="http:g"/> | |
</div> | |
<div xml:base="file:///a/bb/ccc/d;p?q"> | |
<!-- RFC3986 normal examples with file path --> | |
<link about="urn:ex:s253" property="urn:ex:p" href="g:h"/> | |
<link about="urn:ex:s254" property="urn:ex:p" href="g"/> | |
<link about="urn:ex:s255" property="urn:ex:p" href="./g"/> | |
<link about="urn:ex:s256" property="urn:ex:p" href="g/"/> | |
<link about="urn:ex:s257" property="urn:ex:p" href="/g"/> | |
<link about="urn:ex:s258" property="urn:ex:p" href="//g"/> | |
<link about="urn:ex:s259" property="urn:ex:p" href="?y"/> | |
<link about="urn:ex:s260" property="urn:ex:p" href="g?y"/> | |
<link about="urn:ex:s261" property="urn:ex:p" href="#s"/> | |
<link about="urn:ex:s262" property="urn:ex:p" href="g#s"/> | |
<link about="urn:ex:s263" property="urn:ex:p" href="g?y#s"/> | |
<link about="urn:ex:s264" property="urn:ex:p" href=";x"/> | |
<link about="urn:ex:s265" property="urn:ex:p" href="g;x"/> | |
<link about="urn:ex:s266" property="urn:ex:p" href="g;x?y#s"/> | |
<link about="urn:ex:s267" property="urn:ex:p" href=""/> | |
<link about="urn:ex:s268" property="urn:ex:p" href="."/> | |
<link about="urn:ex:s269" property="urn:ex:p" href="./"/> | |
<link about="urn:ex:s270" property="urn:ex:p" href=".."/> | |
<link about="urn:ex:s271" property="urn:ex:p" href="../"/> | |
<link about="urn:ex:s272" property="urn:ex:p" href="../g"/> | |
<link about="urn:ex:s273" property="urn:ex:p" href="../.."/> | |
<link about="urn:ex:s274" property="urn:ex:p" href="../../"/> | |
<link about="urn:ex:s275" property="urn:ex:p" href="../../g"/> | |
</div> | |
<div xml:base="file:///a/bb/ccc/d;p?q"> | |
<!-- RFC3986 abnormal examples with file path --> | |
<link about="urn:ex:s276" property="urn:ex:p" href="../../../g"/> | |
<link about="urn:ex:s277" property="urn:ex:p" href="../../../../g"/> | |
<link about="urn:ex:s278" property="urn:ex:p" href="/./g"/> | |
<link about="urn:ex:s279" property="urn:ex:p" href="/../g"/> | |
<link about="urn:ex:s280" property="urn:ex:p" href="g."/> | |
<link about="urn:ex:s281" property="urn:ex:p" href=".g"/> | |
<link about="urn:ex:s282" property="urn:ex:p" href="g.."/> | |
<link about="urn:ex:s283" property="urn:ex:p" href="..g"/> | |
<link about="urn:ex:s284" property="urn:ex:p" href="./../g"/> | |
<link about="urn:ex:s285" property="urn:ex:p" href="./g/."/> | |
<link about="urn:ex:s286" property="urn:ex:p" href="g/./h"/> | |
<link about="urn:ex:s287" property="urn:ex:p" href="g/../h"/> | |
<link about="urn:ex:s288" property="urn:ex:p" href="g;x=1/./y"/> | |
<link about="urn:ex:s289" property="urn:ex:p" href="g;x=1/../y"/> | |
<link about="urn:ex:s290" property="urn:ex:p" href="g?y/./x"/> | |
<link about="urn:ex:s291" property="urn:ex:p" href="g?y/../x"/> | |
<link about="urn:ex:s292" property="urn:ex:p" href="g#s/./x"/> | |
<link about="urn:ex:s293" property="urn:ex:p" href="g#s/../x"/> | |
<link about="urn:ex:s294" property="urn:ex:p" href="http:g"/> | |
</div> | |
<!-- additional cases --> | |
<div xml:base="http://abc/def/ghi"> | |
<link about="urn:ex:s295" property="urn:ex:p" href="."/> | |
<link about="urn:ex:s296" property="urn:ex:p" href=".?a=b"/> | |
<link about="urn:ex:s297" property="urn:ex:p" href=".#a=b"/> | |
<link about="urn:ex:s298" property="urn:ex:p" href=".."/> | |
<link about="urn:ex:s299" property="urn:ex:p" href="..?a=b"/> | |
<link about="urn:ex:s300" property="urn:ex:p" href="..#a=b"/> | |
</div> | |
<div xml:base="http://ab//de//ghi"> | |
<link about="urn:ex:s301" property="urn:ex:p" href="xyz"/> | |
<link about="urn:ex:s302" property="urn:ex:p" href="./xyz"/> | |
<link about="urn:ex:s303" property="urn:ex:p" href="../xyz"/> | |
</div> | |
<div xml:base="http://abc/d:f/ghi"> | |
<link about="urn:ex:s304" property="urn:ex:p" href="xyz"/> | |
<link about="urn:ex:s305" property="urn:ex:p" href="./xyz"/> | |
<link about="urn:ex:s306" property="urn:ex:p" href="../xyz"/> | |
</div> | |
</body></html> |
#!/usr/bin/env node | |
var fs = require('fs'), | |
assert = require('assert') | |
execFile = require('child_process').execFile; | |
var args = process.argv.slice(2); | |
if (!args.length) { | |
console.error('usage: node test-iri-resolution.js <parser_command> [<parser_arg1> ...]'); | |
process.exit(1); | |
} | |
var expected = fs.readFileSync('iri-resolution.nt', { encoding: 'utf8' }) | |
.split('\n') | |
.filter(function (l) { return l[0] === '<'; }) | |
.map(function (l) { return l.match(/<([^<>]*)>\.$/)[1]; }); | |
var base = '', match; | |
var input = fs.readFileSync('iri-resolution.ttl', { encoding: 'utf8' }) | |
.split('\n') | |
.reduce(function (all, l) { | |
if (match = l.match(/@base <([^<>]*)>/)) | |
base = match[1]; | |
else if (match = l.match(/<([^<>]*)>\.$/)) | |
all.push({ base: base, iri: match[1] }); | |
return all; | |
}, []); | |
assert.equal(expected.length, input.length, 'unequal number of test cases'); | |
console.log('Trying %s test cases', input.length); | |
var index = 0, passed = 0, errored = 0, total = expected.length, tmpfile = 'tmp.ttl'; | |
(function next() { | |
var base = input[index].base, iri = input[index].iri, correct = expected[index], | |
document = '@base <' + base + '>.\n<urn:ex:s> <urn:ex:p> <' + iri + '>.'; | |
fs.writeFileSync(tmpfile, document, { encoding: 'utf8' }); | |
process.stdout.write(' ' + pad((index + 1) + '.', 4) + | |
' resolving ' + pad('<' + iri + '>', 20) + | |
' against ' + pad('<' + base + '>', 30) + ': '); | |
execFile(args[0], args.slice(1).concat(tmpfile), function (error, stdout, stderr) { | |
try { fs.unlinkSync(tmpfile); } catch (e) {} | |
if (error) { | |
errored++; | |
process.stdout.write('ERROR (expected <' + correct + '>)\n'); | |
} | |
else { | |
// Find first URL after urn:ex:p | |
var url = /<([^>]+)>/g; | |
while ((match = url.exec(stdout.toString())) && (match[1] !== 'urn:ex:p')); | |
var result = (match = url.exec(stdout.toString())) ? match[1] : '(none)'; | |
if (result === correct) | |
process.stdout.write('PASS (<' + result + '>)\n'), passed++; | |
else | |
process.stdout.write('FAIL (got <' + result + '> instead of <' + correct + '>)\n'); | |
} | |
if (++index < total) | |
next(); | |
else | |
console.log('%s tests, %s passed, %s failed, %s errored', | |
total, passed, total - passed - errored, errored); | |
}); | |
})(); | |
function pad(s, length) { | |
while (s.length < length) | |
s += ' '; | |
return s; | |
} |
My reading of §5.2.2 suggests that urn:s134 should be http://a/bb/g?y
after resolution, not http://a/bb/ccc/g?y
(the algorithm in 5.2.2 includes T.path = remove_dot_segments(T.path);
in the branch that I think applies in this case). Did you come to a different conclusion reading the spec?
I have similar concerns about s136–s140, s142–s146, and s154–s167. I haven't stepped through them in detail as I have for s134, but I believe they exhibit similar reasoning about the 5.2.2 algorithm.
The reason my processor gets different results, is because the @base IRI is resolved against the document location, which causes dot segments to be normalized. As @base may have a relative IRI, it seems reasonable to always attempt to make it absolute by resolving it to the document location, yet this is at odds with your interpretation. Otherwise, it means conditionally resolving any IRIREF
against the current base only if it's not already an absolute IRI. However, the fact that RFC3986 5.2.2 explicitly considers the fact that the IRI to be resolved has a scheme, and that it's dot segments are removed implies to me that this is the correct interpretation: when seeing an IRI, resolve it against the current base IRI:
if defined(R.scheme) then
T.scheme = R.scheme;
T.authority = R.authority;
T.path = remove_dot_segments(R.path);
T.query = R.query;
else
...
Thus all emitted IRIs will have dot segments removed. The rule that must be resolved for Turtle, and other formats, if if an IRIREF
is unconditionally resolved against the base IRI using this algorithm, or if it is only resolved if it is not already an absolute IRI. The interpretation consistently used in RDF.rb is the former, as it is simpler.
More on the subject of @base resolution, imagine the following alternative:
# RFC3986 normal examples with ../ in the base IRI
@base <//a/bb/ccc/../d;p?q>.
...
Here the scheme is missing from @base, so it clearly needs to be resolved, but will yield different results from <http://a/bb/ccc/../d;p?q>
(assuming file location/previous base used http scheme), which would be pretty odd. Always resolving IRIs against the active base is the only consistent method, IMHO.
@gkellogg — I don't find the scheme-less example to be inconsistent. URIs with a scheme are absolute, while URIs without a scheme are relative. So the fact that they may be treated differently with respect to relative resolution doesn't seem that strange to me. I do agree, though, that we need to find consensus on whether a base declaration in Turtle that uses an absolute URI is meant to be resolved against the base URI (which I think we agree would be a no-op except for dot-segment removal?).
@gkellogg Base resolution is a very interesting case, and I believe a real gap in the Turtle spec. Perhaps you should bring this up in the mail thread?
Ruben, it would be great to have a couple of test cases with relative file URIs.
The resolve() method in Java URI seems borken (file:/tmp/foo vs. file:///tmp/foo), and that might surface in APIs using Java.
@kasei @gkellogg I've added a third revision with additional cases:
- trailing '../' in base
- trailing './' in base
- various cases not tested before
@aharth This seems interesting indeed. Any pointer on what is precisely broken in Java, so we can add targeted tests? Given your example, I'd assume that resolving ./bar
against file:///tmp/foo
would then be broken?
URI u = new URI("file:///tmp/foo");
System.out.println(u.resolve("./bar"));
Output: file:/tmp/bar
I would expect: file:///tmp/bar
The class java.net.URI has many issues with file URIs.
Some bugs related to the file URI scheme handling are referenced at http://wiki.eclipse.org/Eclipse/UNC_Paths
I would expect the test cases would also apply to @base URIs with the file scheme (or indeed, any other URI scheme).
@aharth Thanks, added the RFC3986 tests for files. Please verify whether they are correct.
urn:ex:s257 seems wrong. <file:///a/bb/ccc/d;p?q>
has an empty authority with path /a/bb/ccc/d;p
, and is an absolute path, so the result should be <file:///g>
.
Same reasoning for urn:ex:s277 through urn:ex:s279.
According to RFC 3986, the authority begins after //
and ends at the first /
.
The authority component is preceded by a double slash ("//") and is terminated by the next slash ("/"), question mark ("?"), or number sign ("#") character, or by the end of the URI.
Please consider pulling changes from my fork https://gist.github.com/gkellogg/278621acc9b627d486e6. This includes versions for XHTML5 (which allows the use of xml:base) and RDF/XML. It also corrects the expected results per my previous comment.
I added a JSON-LD version to the fork as well.
Thanks, @gkellogg, merged!
@gkellogg I think that urn:ex:s276 should also resolve to file:///g
rather than file:///a/g
. Could you confirm?
Fixed urn:ex:s276 to file:///g
.
Hey Ruben. I have some questions about these. Did you come up with all of them? Are these based on your reading of the URI RFC, an existing implementation, or existing tests somewhere?