Forums : Template et RDF

Aller à la discussion :  Plus récente Plus ancienne

# [résolu] Utilisation de plusieurs triple

Envoyé par : ferry jeremie

Date : 08/06/2006 14:55

Bonjour : j'ai un petit problème avec un template xul :

1/ Mon RDF :

 <?xml version="1.0" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"   xmlns:clist="http://agro.com/rdf#">
 <rdf:Seq rdf:about="http://agro.com/companiesType">
   <rdf:li>
     <rdf:Seq rdf:about="http://agro.com/companiesType/0">
       <rdf:li rdf:resource="http://agro.com/companiesType/0/0" />
       <rdf:li rdf:resource="http://agro.com/companiesType/0/1" />
     </rdf:Seq>
   </rdf:li>
   <rdf:li>
     <rdf:Seq rdf:about="http://agro.com/companiesType/1">
       <rdf:li rdf:resource="http://agro.com/companiesType/1/0" />
       <rdf:li rdf:resource="http://agro.com/companiesType/1/1" />
     </rdf:Seq>
   </rdf:li>
 </rdf:Seq>
 <rdf:Description rdf:about="http://agro.com/companiesType/0" clist:type="Société de Formation" />
 <rdf:Description rdf:about="http://agro.com/companiesType/1" clist:type="Société cliente" />
 <rdf:Description rdf:about="http://agro.com/companiesType/0/0">
   <clist:name>entreprise de formation1</clist:name>
 </rdf:Description>
 <rdf:Description rdf:about="http://agro.com/companiesType/0/1">
   <clist:name>entreprise de formation2</clist:name>
 </rdf:Description>
 <rdf:Description rdf:about="http://agro.com/companiesType/1/0">
   <clist:name>Client1</clist:name>
 </rdf:Description>
 <rdf:Description rdf:about="http://agro.com/companiesType/1/1">
   <clist:name>Client2</clist:name>
 </rdf:Description>
</rdf:RDF>

2/ le template :

       <tree flags="dont-build-content" id="tree" hidecolumnpicker="true" style="margin:0.5em;" flex="2" datasources="http://127.0.0.1/agro-alimentaire/companies_list.rdf" ref="http://agro.com/companiesType">
         <treecols>
           <treecol label="Type de société" primary="true" flex="1" />
           <treecol label="Type de société" primary="true" flex="1" />            
         </treecols>
         <template>
           <rule>
             <conditions>
               <content uri="?companies" />
               <member container="?companies" child="?company" />
               <triple subject="?company" predicate="http://agro.com/rdf#type" object="?type" />
               <triple subject="?company" predicate="http://agro.com/rdf#name" object="?name" />
             </conditions>
             <action>
               <treechildren>
                 <treeitem  uri="?company" container="true" open="true">
                   <treerow>
                     <treecell properties="enabled" label="?type"/>
                     <treecell properties="enabled" label="?name"/>
                   </treerow>
                 </treeitem>
               </treechildren>
             </action>
           </rule>
         </template>
       </tree>
       <tree style="margin:2em;" flags="dont-build-content" flex="3" datasources="http://127.0.0.1/agro-alimentaire/companies_list.rdf" ref="http://agro.com/companiesType">
         <treecols>
           <treecol id="name" label="id" flex="1" />
           <treecol id="name" label="Company" flex="1" />
         </treecols>
         <template>
           <treechildren>
             <treeitem uri="rdf:*">
               <treerow>
                 <treecell label="rdf:http://agro.com/rdf#type"/>
                 <treecell label="rdf:http://agro.com/rdf#name"/>
               </treerow>
             </treeitem>
           </treechildren>
         </template>
       </tree>

Je précise que le code affiche bien le "?type" dans le cas ou le triple du "?name" est supprimé. Mon RDF est-il mal formé? (pourtant il passe au validateur...)

Merci de vos lumières!

# Re: Utilisation de plusieurs triple

Envoyé par : laurentj

Date : 08/06/2006 15:33

Et sinon, c'est quoi le problème ? ;-)

# Re: Utilisation de plusieurs triple

Envoyé par : ferry jeremie

Date : 08/06/2006 15:43

Ben, ça n'affiche tout simplement plus rien : je n'ai aucun accès au ?name...

# Re: Utilisation de plusieurs triple

Envoyé par : thefab

Date : 08/06/2006 16:02

Tes ressources n'ont pas les 2 valeurs (type ET name) renseignées, elles ne correspondent donc plus à ta règle. Si tu enlèves le triple pour name type s'affiche (il faut aussi enlevé ?name dans le treecell)

# Re: Utilisation de plusieurs triple

Envoyé par : ferry jeremie

Date : 08/06/2006 16:06

tu veux dire qu'il faut obligatoirement appliqué 2 règles (<rule>)?

# Re: Utilisation de plusieurs triple

Envoyé par : thefab

Date : 08/06/2006 16:22

2 règles si tu as des ressources vraiment différentes, sinon 1 règle avec des éléments optionnels <binding> peut suffir.

# Re: Utilisation de plusieurs triple

Envoyé par : ferry jeremie

Date : 08/06/2006 20:04

Ok, le problème vient peut-être bien de la structuration de mes données avec RDF alors? Comme précisé plus haut : j'ai plusieurs types d'intervenants (des investisseurs, des prestataires de services, des porteurs de projets etc.) Pour chaque type il y a un ou plusieurs intervenants. Ensuite, il y a des attributs communs (name) à tous les intervenants et d'autres plus particuliers donc optionnel.

# Re: Utilisation de plusieurs triple

Envoyé par : thefab

Date : 09/06/2006 08:32

Comme toujours il n'y a pas une seule manière de faire les choses, mais d'après ton RDF il me semble que tu essayes de faire 2 choses (type et name) sur 2 colonnes, ce qui donne:

+ Société de Formation                (vide)
     (vide)                            Entreprise de formation 1

Si (ce que je pense) tu veux arriver à:

+ Société de Formation
     Entreprise de formation 1

Tu dois soit:

  1. Modifier ton RDF pour ne garder que type OU name et n'avoir qu'une seule règle. (name peut très bien être le nom de l'entreprise et un nom de type d'entreprise)
  2. Modifier ton template pour avoir 2 règles, une pour type et une pour name.

Avec la deuxième option ça donne:

<tree datasources="test.rdf" ref="http://agro.com/companiesType" flex="1">
<treecols>
	<treecol label="Type" primary="true" flex="1"/>
</treecols>
<template>
	<rule>
		<conditions>
			<content uri="?companies"/>
			<member container="?companies" child="?company"/>
			<triple subject="?company" predicate="http://agro.com/rdf#type" object="?type"/>
		</conditions>
		<action>
			<treechildren>
				<treeitem uri="?company" container="true" open="true">
					<treerow>
						<treecell properties="enabled" label="?type"/>
					</treerow>
				</treeitem>
			</treechildren>
		</action>
	</rule>
	<rule>
		<conditions>
			<content uri="?companies"/>
			<member container="?companies" child="?company"/>
			<triple subject="?company" predicate="http://agro.com/rdf#name" object="?name"/>
		</conditions>
		<action>
			<treechildren>
				<treeitem uri="?company" container="true" open="true">
					<treerow>
						<treecell properties="enabled" label="?name"/>
					</treerow>
				</treeitem>
			</treechildren>
		</action>
	</rule>
</template>
</tree>

# Re: Utilisation de plusieurs triple

Envoyé par : ferry jeremie

Date : 09/06/2006 13:20

Ok, merci pour tn investissement thefab : j'ai choisit la 1er méthode et ça marche très bien! C'est cool, ça m'a permis de comprendre l'utilité des rules multiples et de l'utilité des bindings : j'en utilise finalement-> le cas présenté ci-dessus a été volontairement simplifié.

# [résolu] Utilisation de plusieurs triple

Envoyé par : thefab

Date : 09/06/2006 13:25

Ok, merci pour tn investissement thefab

De rien, c'est avec plaisir

le cas présenté ci-dessus a été volontairement simplifié.

J'avais supposé, c'est pour ça que je t'ai plutôt orienté vers des règles multiples (dans lesquelles il peut aussi y avoir des élément optionnels ;-).

Fabrice

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.