Bonsoir à tous,
Il y a peu, je me "plaignais" de l'absence de coloration syntaxique pour RDF/N3 dans kate.
Je me suis donc lancé et je souhaitais partager ce petit morceau de "code". Ça donne ça :
Exemple de coloration syntaxique
En deux mots (je suis débutant dans le domaine), RDF/N3 (pour Notation3) est une syntaxe très compacte permettant d'écrire des modèles RDF. Ces modèles sont en fait des suites de triplets (sujet, prédicat, objet), permettant de décrire tout et n'importe quoi et font partie des technologies clef du Web sémantique.
Ce premier jet de coloration syntaxique reconnaît les classes et propriétés des modèles rdf, rdfs (schéma) et OWL comme des commandes "prédéfinies" et reconnaît plusieurs espaces de nommages souvent utilisés dans le monde du web sémantique: dc, doap et foaf.
Ces espaces de nommage sont codés en dur dans le fichier de syntaxe xml, en attendant de trouver mieux.
Pour générer facilement de nouveaux espaces de nommages pour ceux qui souhaiteraient ajouter leur propres définitions, vous pouvez utiliser ce mini script écrit vite fait (mal fait ?) :
from rdflib import Graph
rdfs = [
('rdfs','http://www.w3.org/2000/01/rdf-schema#', None),
('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',None),
('owl', 'http://www.w3.org/2002/07/owl#', 'n3'),
('foaf', 'http://xmlns.com/foaf/0.1/', None),
('doap', 'http://usefulinc.com/ns/doap#', None),
]
for prefix, rdf, fmt in rdfs :
subjects = set([])
g = Graph()
g.parse(rdf, format=fmt)
for subject in g.subjects() :
subjects.add(subject)
for subject in sorted(subjects) :
if str(rdf) == str(subject) : continue
term = subject.replace(rdf, '')
if term.startswith('http') : # ignore other namespaces
continue
print ' <item>%s:%s</item>' % (prefix, term)
En espérant que ce sera utile…
J'attends aussi vos commentaires et suggestions (syntaxe kate dynamique, oubli de mots clefs, etc.).
Le lien : les sources sur gitorious
PS : j'ai hésité à poster cela dans les forums, n'hésitez pas à me le dire si c'était la chose à faire.
# Concision pythonique
Posté par GuieA_7 (site web personnel) . Évalué à 8.
"set([])" peut être écrit simplement "set()". En fait, pour aller plus loin :
pourrait être plus court:
[^] # Re: Concision pythonique
Posté par GuiBrother . Évalué à 1.
Merci pour la remarque. C'est effectivement plus concis, je n'y avais même pas pensé.
# Github → Gitorious
Posté par Oles . Évalué à 3.
Le lien est mauvais.
"Never trust a statistic you haven't faked yourself."
[^] # Re: Github → Gitorious
Posté par GuiBrother . Évalué à 2.
Ahaha ! Il s'agit vraiment d'une erreur. Vu le lien, j'imagine que je ne suis pas le premier ;) Merci pour la correction.
Si un modérateur veut bien corriger …
[^] # Re: Github → Gitorious
Posté par claudex . Évalué à 4.
Corriger, merci.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.