From d1e9e2629d79725efa7ba5090d67bd564d1dbe77 Mon Sep 17 00:00:00 2001 From: ryahiaoui Date: Sat, 5 Nov 2016 15:30:57 +0100 Subject: [PATCH] Suports intermediate nodes as variables --- src/main/java/org/inra/yedodba/Processor.java | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/inra/yedodba/Processor.java b/src/main/java/org/inra/yedodba/Processor.java index b0b1543..4f74ec2 100644 --- a/src/main/java/org/inra/yedodba/Processor.java +++ b/src/main/java/org/inra/yedodba/Processor.java @@ -687,15 +687,29 @@ private void write( String outFile ) throws Exception { ) ) { - if(!sujet.getType().startsWith(":")) { - - target.put( tmpUris.get(sujet.getHash()) , - tmpUris.get(sujet.getHash()) + - " a " + PREFIX_PREDICAT + ":" + - sujet.getType() + " ; " + - objectProperty + " " + - objet.getLabel() ) ; + if(!sujet.getType().startsWith(":") && !sujet.getType().startsWith("?")) { + + if(objet.getLabel().startsWith("?") && objet.getCode() > 0 ) { + + target.put( tmpUris.get(sujet.getHash()) , + tmpUris.get(sujet.getHash()) + + " a " + PREFIX_PREDICAT + ":" + + sujet.getType() + " ; " + + objectProperty + " :" + + tmpUris.get(objet.getHash()) ) ; + } + + else { + + target.put( tmpUris.get(sujet.getHash()) , + tmpUris.get(sujet.getHash()) + + " a " + PREFIX_PREDICAT + ":" + + sujet.getType() + " ; " + + objectProperty + " " + + objet.getLabel() ) ; + } } + else { target.put( tmpUris.get(sujet.getHash()) , @@ -1156,9 +1170,10 @@ private List getOutForPattern( String patternId ) { .replace("?id", keyByURI+"_"+classe+ "_"+num_start++ ) .replace("?target" , uri + " a " + type + " ; " + OF_ENTITY_PATTERN + " :" + classe + " ; " + - target.get(MATCHER_PATTERN_CONTEXT).replace("_+_ .", ".") ) - .replace(" _+_ ", " ; ") - .replace("?source" , query ) + target.getOrDefault(MATCHER_PATTERN_CONTEXT, "") + .replace("_+_ .", ".") ) + .replace(" _+_ ", " ; ") + .replace("?source" , query ) ) ; }