125 lines
3.5 KiB
Markdown
125 lines
3.5 KiB
Markdown
# 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 | |String |H
|
|
|complement |s |String |H
|
|
|complement |v |String |H
|
|
|complement |c |String |H/S
|
|
|Entity |val |String |S
|
|
|
|
|
|
|
|
|TAD |Nom d'attribut |Type | Polarité
|
|
|----------------|-----------------|---------------------|---------|
|
|
|turtle |val |list(Phrase) |S
|
|
|phrase |sujet_p |String |H
|
|
|phrase |affs |list(Aff) |S
|
|
|aff |sujet_a |String |H
|
|
|aff |vebre_a |String |H
|
|
|aff |comps |list(comp) |S
|
|
|complement |sujet_c |String |H
|
|
|complement |verbe_c |String |H
|
|
|complement |comp_c |String |H/S
|
|
|Entity |val |String |S
|
|
|
|
|
|
```
|
|
Ntriples ::= Ntriples(phrase*)
|
|
phrase ::= Phrases(entity1,entity2,complement)
|
|
phrase.s = entity1.val
|
|
phrase.v = entity2.val
|
|
phrase.c = complent.ent
|
|
complement ::= Complement(entity)
|
|
complement.ent = entity.val
|
|
| Complement_Text(String)
|
|
complement.ent = String.self
|
|
entity ::= Entity(String)
|
|
entity.val=String.self
|
|
|
|
|
|
```
|
|
|
|
TAD Nom Type Polarité Descp
|
|
Ntriples val list(phrase) H
|
|
phrase s String H
|
|
v String H
|
|
c String H
|
|
complement ent String H/S
|
|
entity val String S
|
|
|
|
## Compatibilité
|
|
|
|
- Java JDK 21
|
|
- ANTLR3 3.5.2
|
|
- Gradle 8.5
|
|
|
|
## Construction, exécution
|
|
|
|
Pour construire le projet, depuis la racine du projet :
|
|
|
|
```bash
|
|
./gradlew build
|
|
```
|
|
|
|
Pour exécuter le programme Java TP1.Main, depuis la racine du projet :
|
|
```bash
|
|
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 |