Sorry for spamming this list; just to let you know that the next  
version 3.2 will also support putting language tags into the default  
values template sections of the create dialogs. For example, {name} 
{...@fr} will create french labels.

Holger


On Sep 17, 2009, at 8:15 PM, Holger Knublauch wrote:

> Jeen,
>
> I took a closer look at our code base and found that Gokhan had  
> already implemented a SPARQL function for that purpose - it just  
> wasn't in the smf ontology yet and so I missed it (I have added it  
> now). With this you can generate rdfs:labels (with any language tag)  
> and assign it to newly created instances. Import spin.owl and then  
> add the following CONSTRUCT query to owl:Thing using spin:constructor:
>
> CONSTRUCT {
>     ?this rdfs:label ?label .
> }
> WHERE {
>     FILTER isIRI(?this) .
>     LET (?str := smf:generateLabel(?this, "{name}")) .
>     LET (?label := smf:setLanguage(?str, "nl")) .
> }
>
> Whenever you create a new instance with the create instance dialog,  
> the system will run this constructor. Note the smf:generateLabel  
> function, which may not auto-complete in your version, but it's  
> there. For example, for the resource MyInstance, it will return "My  
> instance". Attach a language tag using smf:setLanguage and you're  
> done.
>
> If you prefer not to use SPIN, you can use a query like the above in  
> the SPARQL view and assert or infer the results. For example, you  
> could check whether a resource does not have a label yet, and then  
> construct one.
>
> I will also look at improving the create dialog to allow language  
> tags as suggested before.
>
> Holger
>
>
>
> On Sep 17, 2009, at 8:18 AM, Holger Knublauch wrote:
>
>>
>> Hi Jeen,
>>
>> yes that would make sense. I have no easy immediate solution for you.
>> My first attempt was to try to use SPIN constructors for that, in
>> which case you could derive the new label from the local name.
>> Unfortunately, I don't think we have a built-in function to make this
>> string transformation, e.g. so that "hasCustomer" becomes "has
>> customer". I will try to add this for the next release. Meanwhile,  
>> you
>> could theoretically implement this function yourself, using  
>> JavaScript
>> and SPINx. The problem here would be that such SPIN constructors  
>> would
>> need to be stored in the model, and therefore would make it difficult
>> to set up a system in which international co-workers use different
>> default languages.
>>
>> A more convenient approach would be if the string templates in the
>> create dialogs would indeed allow something like {...@en} as you  
>> suggest,
>> and this could be added. Or another mechanism would be to have a
>> global default setting so that all new values for selected properties
>> (rdfs:label and rdfs:comment for example) would get a language tag.
>> This however looks like a more difficult change, because there are
>> multiple places in which such literals are created.
>>
>> Holger
>>
>>
>>
>> On Sep 17, 2009, at 4:53 AM, Jeen wrote:
>>
>>>
>>> Is it possible to have TBC automatically add a particular language  
>>> tag
>>> to a literal value in an annotations template?
>>>
>>> What I want is to be able to create a new class, and automatically
>>> generate the rdfs:label (using the annotations template), _but_ I
>>> would like to have this value annotated with the @en language tag.
>>>
>>> I thought at first this might do the trick:
>>>
>>> {name} {...@en}
>>>
>>> Unfortunately this does not work. I've tried various ways to escape
>>> the accolades but to no avail.
>>>
>>>
>>>
>>>
>>>
>>>>
>>
>>
>>
>>
>
>
> >


--~--~---------~--~----~------------~-------~--~----~
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