Would the use of the "IterateWhile" module work here?  Presumatly, I
could write an ASK query that returns TRUE when the number of
occurrences of a given delimiter is greater than 1.  The body could
then split off the first occurrence using the delimiter and then reset
the string that is used in the ASK query.  However, As I split them
off, I would need to construct the RDF I want.  The documentation
indicates the result of the last iteration is what is passed on to the
rest of the SPARQLMotion script, so I'm not sure how I would pass the
RDF that gets constructed from each iteration on into the remainder of
the SPARQLMotion script.  I'm starting to play with that line of
thinking now.  Some input from the TopQuadrant folks here would be
greatly appreciated!

Thanks,
Phil

On May 21, 9:24 am, "Smith, Tim" <[email protected]> wrote:
> Hi Phil,
>
> I also did not see a function that will split a string based on a delimiter 
> in the latest version.  I need to split strings based on arbitrary delimiters 
> all the time so I wrote a split string function in java and made it a 
> property function to use in CONSTRUCT queries.  
>
> In addition to splitting strings it also takes a parameter that when TRUE, 
> automatically trims the strings of leading/trailer whitespace before 
> returning them.  This is very useful since you would likely need to trim each 
> one before using it to generate a URI, etc.
>
> It would be a very helpful function to have in the base product.
>
> Tim
>
>
>
> > -----Original Message-----
> > From: [email protected] [mailto:topbraid-
> > [email protected]] On Behalf Of [email protected]
> > Sent: Thursday, May 21, 2009 8:05 AM
> > To: TopBraid Composer Users
> > Subject: [tbc-users] Re: How to extract multiple values from a space-
> > delimited string?
>
> > Scott -
>
> > I know how to use the string function to separate a SINGLE string out,
> > but how do I get them ALL parsed out given that the number of
> > individual elements is unknown (i.e. one drug might be related to 3
> > others and another drug might have 17 related drugs)?
>
> > On May 21, 8:01 am, Scott Henninger <[email protected]>
> > wrote:
> > > Phil, the "BBB CCC..." string will need to be parsed an individually
> > > turned into URIs.  See the String Functions in the SPARQLMotion
> > > Functions Reference in the Help files.
>
> > > -- Scott
>
> > > On May 21, 7:56 am, [email protected] wrote:
>
> > > > I have a sparql motion script that iterates over a series of xml
> > files
> > > > (1 drug per file), converts the XML into RDF, and creates instances
> > of
> > > > the classes/properties from an ontology.  One of the elements
> > within
> > > > the xml is a series space-separated values that I need to parse
> > into
> > > > individual triples of a given property. Here is a simple example:
>
> > > >   <?xml version="1.0" encoding="UTF-8" ?>
> > > > <Drug ID="AAA">
> > > >   <DrugName>
> > > >     <![CDATA[ dummy ]]>
> > > >   </DrugName>
> > > >   <RelatedDrug>
> > > >     <![CDATA[  BBB CCC DDD EEE FFF GGG ]]>
> > > >   </RelatedDrug>
> > > > </Drug>
>
> > > > I need to generate triples like the following:
>
> > > >      :AAA a :Drug .
> > > >      :AAA :hasName "dummy" .
> > > >      :AAA :isRelatedTo :BBB .
> > > >      :AAA :isRelatedTo :CCC .
> > > >      :AAA :isRelatedTo :DDD .
> > > >      :AAA :isRelatedTo :EEE .
> > > >      :AAA :isRelatedTo :FFF .
> > > >      :AAA :isRelatedTo :GGG .
>
> > > > The number of related drugs will differ from drug to drug (i.e.
> > file
> > > > to file).  The files are being processed via an IterateOverSelect
> > > > module where the body of that module is a series of construct
> > modules
> > > > that produce the individual triples you see above.  However, what I
> > am
> > > > getting now is:
>
> > > >      :AAA a :Drug .
> > > >      :AAA :hasName "dummy" .
> > > >      :AAA :isRelatedTo :BBB_CCC_DDD_EEE_FFF_GGG  .
>
> > > > How can I split that last element up into individual triples?
>
> > > > Phil- Hide quoted text -
>
> > > - Show quoted text -- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TopBraid Composer Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/topbraid-composer-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to