TP1 PDS - Traducteur RDF/Turtle vers RDF/Ntriples

Réalisé par Thibaut ROCHAS et Tuan Minh VU

Implémentation du ASD

turtle ::= Turtle(phrase*)
phrase 	::= Phrase(entity, aff*)
aff ::= Aff(ntity, complement*)
complement ::= Complement(entity) 
		| Complement_Text(text)
text ::= Text(entity)
		|TextSTR(String)
entity ::= Entity(String)

Conversion vers Ntriples par ASD attribuée


turtle ::= Turtle(phrase*)
phrase 	::= Phrase(entity, aff*)
			aff*.s = entity.val
aff ::= Aff(entity, complement*)
			complement*.s = aff.s
			complement*.v = entity.val
complement ::= Complement(entity) 
			complement.c = entity.val
		| Complement_Text(text)
			complement.c = text.val
text ::= Text(entity)
			text.val = entity.val
		|TextSTR(String)
			text.val = String.self
entity ::= Entity(String)
			entity.val=String.self


TAD Nom d'attribut Type Polarité
phrase String H
aff s String H
complement s String H
complement v String H
complement c String H/S
Entity val String S

##Analyse lexicale et syntaxique

#Lexer

#Parser Au début on créer un objet TutrleAST, il génère la structure Ntriple. On transmet le TurtleAST aux "phrase" enfants

#Difficulté : Nous avons ID qui est un String avec composé de lettres (non accentuées) et de chiffres, commençant obligatoirement par une lettre, et STRING qui peut être n'importe quelle chaîne de caractères (hors "). La grammaire était ambiguë, ce qui provoquait une erreur de compilation de Java

Compatibilité

  • Java JDK 21
  • ANTLR3 3.5.2
  • Gradle 8.5

Construction, exécution

Pour construire le projet, depuis la racine du projet :

./gradlew build

Pour exécuter le programme Java TP1.Main, depuis la racine du projet :

java -jar /build/libs/TP1.jar [args]

Structure du projet

Fichiers de code source et de tests

  • src/main/java/ : fichiers sources Java à compléter
  • src/main/antlr/ : fichier sources ANTLR à compléter
  • tests/ : fichiers textes à utiliser pour les tests

Moteur de production Gradle

  • settings.gradle, build.gradle : configuration Gradle
  • gradle/wrapper : exécutable de Wrapper Gradle
  • gradlew, gradlew.bat : scripts (unix/windows) à exécuter depuis le terminal pour lancer le moteur de production

Environnement VSCode

  • .vscode : configuration de VSCode
  • eclipse-formatter.xml : formatage de code source Java, optionnel

Git

  • .gitignore : configuration pour ignorer certains fichiers et répertoires
Description
tp1 RDF
Readme 123 KiB
Languages
Java 78.6%
GAP 21.4%