- From: Andrea Perego <andrea.perego@uninsubria.it>
- Date: Mon, 14 May 2007 09:08:22 +0200
- To: Public CWM <public-cwm-talk@w3.org>
Thanks. Yes, this is what I did. However, I had to specify one rule for
each URI component:
#########################################################################
{?rsc a foaf:Document; log:uri ?uri . ?uri string:matches
"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"} => {
# Scheme
{(?uri "^([^:/?#]+):") string:scrape ?scheme} => {?rsc uri:scheme
?scheme} .
# Authority
{(?uri "//([^/?#]*)") string:scrape ?authority} => {
?rsc uri:authority ?authority .
# Userinfo
{(?authority "^([^/?#]*)@") string:scrape ?userinfo} => {?rsc
uri:userinfo ?userinfo} .
# Host
{(?authority "([^/?#@:]*)(:[0-9]+)?$") string:scrape ?host} => {?rsc
uri:host ?host} .
# Port
{(?authority ":([0-9]+)") string:scrape ?port} => {?rsc uri:port
?port} .
} .
# Path
{(?uri "//[^/?#]*(/[^?#]*)") string:scrape ?path} => {?rsc uri:path
?path} .
# Query
{(?uri "\\?([^#]*)") string:scrape ?query} => {?rsc uri:query ?query}
.
# Fragment identifier
{(?uri "#([^#]*)") string:scrape ?fragment} => {?rsc uri:fragment
?fragment} .
} .
#########################################################################
Can this be obtained in a simpler way?
Andrea
Tim Berners-Lee wrote:
> You could use string:match and string:scrape with regexps.
>
> Tim BL
>
> On 2007-04 -23, at 04:52, Andrea Perego wrote:
>
>>
>> I'm trying to use N3+Cwm in order to decompose a URI into its components
>> (scheme, authority, path, etc.).
>>
>> Suppose we have a resource
>>
>> <http://www.example.com/example1?sec=1#note2> a foaf:Document .
>>
>> and we wish to extend it as follows
>>
>> <http://www.example.com/example1?sec=1#note2> a foaf:Document;
>> uri:scheme "http";
>> uri:host "www.example.com";
>> uri:path "/example1";
>> uri:query "sec=1";
>> uri:fragment "note2" .
>>
>> Is it possible to obtain this through a rule? I checked Cwm's built-ins
>> (especially LOG and STRING), but I couldn't find any tip explaining how
>> this can be done.
>>
>> Thanks
>>
>> Andrea
Received on Monday, 14 May 2007 07:05:27 UTC