Forums : Template et RDF

Aller à la discussion :  Plus récente Plus ancienne

# Regles multiples fonctionnant partiellement

Envoyé par : syl

Date : 11/08/2006 16:12

Voici mon souci, Je veux filtrer un tree peuplé en RDF selon 2 critères : "type" et "thème".

Regle 1 : Je veux exclure les lignes de type "système" (balise action vide).

Regle 2 : Ensuite je veux selectionner uniquement les données ayant pour theme "patrimoine" (action = génération de mon tree)

Et ça ne fonctionne pas (moi qui croyait avoir bien lu les tutos !) Le problème c'est :

  • la premiere regle n'est pas prise en compte (pas de filtrage) alors que la 2ème fonctionne
  • Je ne peux utiliser que les variables de mes rules pour peupler les balises "label" de mes treerows. j'ai alors la bonne valeur, mais je ne peux pas faire afficher "rdf:http://www.aase.org/rdf#libelle" par exemple.

Voici le template

<template>
		<rule>
			<conditions>
				<content uri="?uri"/>
				<member container="?uri" child="?vues"/>
				<triple subject="?vues"	predicate = "http://www.aase.org/rdf#type" object="systeme"/>
			</conditions>
			<action></action>
		</rule>
		<rule>
			<conditions>
				<content uri="?uri"/>
				<member container="?uri" child="?vues"/>
				<triple subject="?vues" predicate = "http://www.aase.org/rdf#theme"	object="?themes"/>
			</conditions>
			<action>
				<treechildren>
					<treeitem uri="?vues">
						<treerow>
							<treecell label="?vues" />
							<treecell label="rdf:http://www.aase.org/rdf#libelle"/>
							<treecell label="?themes"/>
							<treecell label="rdf:http://www.aase.org/rdf#type"/>
						</treerow>
					</treeitem>
				</treechildren>
			</action>
		</rule>
	</template>	
</tree>

et voici le RDF :

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

       xmlns:aa="http://www.aase.org/rdf#">
<rdf:Seq rdf:about="urn:vues">
	
	<rdf:li>
    <rdf:Description rdf:about="urn:vue2" aa:nom = "vue2" aa:type="systeme" aa:theme="partenaires">
		<aa:libelle>hjfsfs</aa:libelle>
	</rdf:Description>
	</rdf:li>
	<rdf:li>
	<rdf:Description rdf:about="urn:vue4" aa:nom = "vue4" aa:type="systeme" aa:theme="patrimoine">
	    <aa:libelle>hjfsfs</aa:libelle>
	</rdf:Description>
	</rdf:li>
	<rdf:li>
    <rdf:Description rdf:about="urn:vue5" aa:nom = "vue5" aa:type="utilisateur" aa:theme="patrimoine">
		<aa:libelle>hjfsfs</aa:libelle>
	</rdf:Description>
	</rdf:li>
	<rdf:li>
    </rdf:Seq>
</rdf:RDF>

Que se passe-t-il ? j'ai pas du tout comprendre

Merci par avance

Syl

# Re: Regles multiples fonctionnant partiellement

Envoyé par : erwan

Date : 31/08/2006 22:44

Effectivement quand tu utilises les regles avancees tu ne peux utiliser que les variables pour assigner des valeurs. Donc tu dois creer une variable ?libelle pour y acceder.

Si tu ajoutes un <triple>, tu ajoutes aussi une condition (le predicat doit exister sinon la regle est rejetee). Pour eviter ca, tu peux utiliser les bindings:

<conditions>
  [...]
</conditions>
<bindings>
  <binding subject="?vues" predicate="http://www.aase.org/rdf#libelle" object="?libelle"/>
</bindings>
<action>
  [...]
</action>

A part ca, tu n'as pas besoin d'une regle pour filtrer tes lignes du theme "systeme", il te suffit d'avoir une seule regle (la deuxieme) avec la condition:

<triple subject="?vues"	predicate="http://www.aase.org/rdf#type" object="patrimoine"/>

# Re: Regles multiples fonctionnant partiellement

Envoyé par : syl

Date : 01/09/2006 08:48

Merci de ta réponse Erwan, j'étais arrivé à la même conclusion concernant ton premier point. Par contre, ce que je n'ai pas éclairci et qui m'arrangerait bien, c'est pouvoir faire une rule qui renvoi tous les triples sauf celui spécifié dans la règle.

En SQL ceci correspondrait à une clause

SELECT * FROM table WHERE champs NOT LIKE 'toto'

Peut-on et comment réaliser le NOT LIKE à l'aide d'une simple rule ?

Merci

Syl

# Re: Regles multiples fonctionnant partiellement

Envoyé par : erwan

Date : 01/09/2006 09:05

Je ne pense pas que ce soit possible actuellement la negation, donc la regle vide comme tu as fait est la seule solution. Je ne sais pas pourquoi ca ne marche pas.

Visiblement ce sera possible avec Mozilla 1.9 (Firefox 3): http://wiki.mozilla.org/XUL:Template_Features_in_1.9

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.