From d7e2de55047e357ca6a4db4709885ca59946a484 Mon Sep 17 00:00:00 2001
From: OszkarSemerath
Date: Sat, 24 Feb 2018 19:03:35 -0500
Subject: Translated PQueryies are added to annotation.
---
.../TransfomedViatraQuery.java | 27 +
.../Viatra2LogicAnnotationsPackage.java | 30 +-
.../impl/TransfomedViatraQueryImpl.java | 52 ++
.../impl/Viatra2LogicAnnotationsPackageImpl.java | 11 +
.../model/ViatraModelAnnotations.aird | 804 +++++++++++----------
.../model/ViatraModelAnnotations.ecore | 3 +
.../dslreasoner/viatra2logic/Viatra2Logic.xtend | 1 +
.../ModelGenerationMethodProvider.xtend | 19 +-
.../logic2viatra/patterns/PatternProvider.xtend | 18 +-
.../patterns/RelationDefinitionIndexer.xtend | 15 +-
.../viatrasolver/reasoner/ViatraReasoner.xtend | 4 +-
.../reasoner/ViatraReasonerConfiguration.xtend | 7 +-
12 files changed, 587 insertions(+), 404 deletions(-)
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/TransfomedViatraQuery.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/TransfomedViatraQuery.java
index 9eb911d5..717b0436 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/TransfomedViatraQuery.java
+++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/TransfomedViatraQuery.java
@@ -14,6 +14,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.RelationAnnotation;
*
*
* - {@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getPatternFullyQualifiedName Pattern Fully Qualified Name}
+ * - {@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getPatternPQuery Pattern PQuery}
*
*
* @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage#getTransfomedViatraQuery()
@@ -47,4 +48,30 @@ public interface TransfomedViatraQuery extends RelationAnnotation {
* @generated
*/
void setPatternFullyQualifiedName(String value);
+
+ /**
+ * Returns the value of the 'Pattern PQuery' attribute.
+ *
+ *
+ * If the meaning of the 'Pattern PQuery' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Pattern PQuery' attribute.
+ * @see #setPatternPQuery(Object)
+ * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage#getTransfomedViatraQuery_PatternPQuery()
+ * @model required="true" transient="true"
+ * @generated
+ */
+ Object getPatternPQuery();
+
+ /**
+ * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getPatternPQuery Pattern PQuery}' attribute.
+ *
+ *
+ * @param value the new value of the 'Pattern PQuery' attribute.
+ * @see #getPatternPQuery()
+ * @generated
+ */
+ void setPatternPQuery(Object value);
} // TransfomedViatraQuery
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsPackage.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsPackage.java
index 0c3de242..97df7608 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsPackage.java
+++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsPackage.java
@@ -86,6 +86,15 @@ public interface Viatra2LogicAnnotationsPackage extends EPackage {
*/
int TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME = LogicproblemPackage.RELATION_ANNOTATION_FEATURE_COUNT + 0;
+ /**
+ * The feature id for the 'Pattern PQuery' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY = LogicproblemPackage.RELATION_ANNOTATION_FEATURE_COUNT + 1;
+
/**
* The number of structural features of the 'Transfomed Viatra Query' class.
*
@@ -93,7 +102,7 @@ public interface Viatra2LogicAnnotationsPackage extends EPackage {
* @generated
* @ordered
*/
- int TRANSFOMED_VIATRA_QUERY_FEATURE_COUNT = LogicproblemPackage.RELATION_ANNOTATION_FEATURE_COUNT + 1;
+ int TRANSFOMED_VIATRA_QUERY_FEATURE_COUNT = LogicproblemPackage.RELATION_ANNOTATION_FEATURE_COUNT + 2;
/**
* The number of operations of the 'Transfomed Viatra Query' class.
@@ -219,6 +228,17 @@ public interface Viatra2LogicAnnotationsPackage extends EPackage {
*/
EAttribute getTransfomedViatraQuery_PatternFullyQualifiedName();
+ /**
+ * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getPatternPQuery Pattern PQuery}'.
+ *
+ *
+ * @return the meta object for the attribute 'Pattern PQuery'.
+ * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getPatternPQuery()
+ * @see #getTransfomedViatraQuery()
+ * @generated
+ */
+ EAttribute getTransfomedViatraQuery_PatternPQuery();
+
/**
* Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransformedViatraWellformednessConstraint Transformed Viatra Wellformedness Constraint}'.
*
@@ -302,6 +322,14 @@ public interface Viatra2LogicAnnotationsPackage extends EPackage {
*/
EAttribute TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME = eINSTANCE.getTransfomedViatraQuery_PatternFullyQualifiedName();
+ /**
+ * The meta object literal for the 'Pattern PQuery' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY = eINSTANCE.getTransfomedViatraQuery_PatternPQuery();
+
/**
* The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.TransformedViatraWellformednessConstraintImpl Transformed Viatra Wellformedness Constraint}' class.
*
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransfomedViatraQueryImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransfomedViatraQueryImpl.java
index f0d18ee9..d7f9ff68 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransfomedViatraQueryImpl.java
+++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransfomedViatraQueryImpl.java
@@ -20,6 +20,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
*
*
* - {@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.TransfomedViatraQueryImpl#getPatternFullyQualifiedName Pattern Fully Qualified Name}
+ * - {@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.TransfomedViatraQueryImpl#getPatternPQuery Pattern PQuery}
*
*
* @generated
@@ -44,6 +45,24 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements
*/
protected String patternFullyQualifiedName = PATTERN_FULLY_QUALIFIED_NAME_EDEFAULT;
+ /**
+ * The default value of the '{@link #getPatternPQuery() Pattern PQuery}' attribute.
+ *
+ *
+ * @see #getPatternPQuery()
+ * @generated
+ * @ordered
+ */
+ protected static final Object PATTERN_PQUERY_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getPatternPQuery() Pattern PQuery}' attribute.
+ *
+ *
+ * @see #getPatternPQuery()
+ * @generated
+ * @ordered
+ */
+ protected Object patternPQuery = PATTERN_PQUERY_EDEFAULT;
/**
*
*
@@ -84,6 +103,27 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements
eNotify(new ENotificationImpl(this, Notification.SET, Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME, oldPatternFullyQualifiedName, patternFullyQualifiedName));
}
+ /**
+ *
+ *
+ * @generated
+ */
+ public Object getPatternPQuery() {
+ return patternPQuery;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setPatternPQuery(Object newPatternPQuery) {
+ Object oldPatternPQuery = patternPQuery;
+ patternPQuery = newPatternPQuery;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY, oldPatternPQuery, patternPQuery));
+ }
+
/**
*
*
@@ -94,6 +134,8 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements
switch (featureID) {
case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME:
return getPatternFullyQualifiedName();
+ case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY:
+ return getPatternPQuery();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -109,6 +151,9 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements
case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME:
setPatternFullyQualifiedName((String)newValue);
return;
+ case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY:
+ setPatternPQuery(newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -124,6 +169,9 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements
case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME:
setPatternFullyQualifiedName(PATTERN_FULLY_QUALIFIED_NAME_EDEFAULT);
return;
+ case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY:
+ setPatternPQuery(PATTERN_PQUERY_EDEFAULT);
+ return;
}
super.eUnset(featureID);
}
@@ -138,6 +186,8 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements
switch (featureID) {
case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME:
return PATTERN_FULLY_QUALIFIED_NAME_EDEFAULT == null ? patternFullyQualifiedName != null : !PATTERN_FULLY_QUALIFIED_NAME_EDEFAULT.equals(patternFullyQualifiedName);
+ case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY:
+ return PATTERN_PQUERY_EDEFAULT == null ? patternPQuery != null : !PATTERN_PQUERY_EDEFAULT.equals(patternPQuery);
}
return super.eIsSet(featureID);
}
@@ -154,6 +204,8 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements
StringBuffer result = new StringBuffer(super.toString());
result.append(" (patternFullyQualifiedName: ");
result.append(patternFullyQualifiedName);
+ result.append(", patternPQuery: ");
+ result.append(patternPQuery);
result.append(')');
return result.toString();
}
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsPackageImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsPackageImpl.java
index b6992bf9..06965e87 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsPackageImpl.java
+++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsPackageImpl.java
@@ -130,6 +130,15 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements
return (EAttribute)transfomedViatraQueryEClass.getEStructuralFeatures().get(0);
}
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getTransfomedViatraQuery_PatternPQuery() {
+ return (EAttribute)transfomedViatraQueryEClass.getEStructuralFeatures().get(1);
+ }
+
/**
*
*
@@ -196,6 +205,7 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements
// Create classes and their features
transfomedViatraQueryEClass = createEClass(TRANSFOMED_VIATRA_QUERY);
createEAttribute(transfomedViatraQueryEClass, TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME);
+ createEAttribute(transfomedViatraQueryEClass, TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY);
transformedViatraWellformednessConstraintEClass = createEClass(TRANSFORMED_VIATRA_WELLFORMEDNESS_CONSTRAINT);
createEReference(transformedViatraWellformednessConstraintEClass, TRANSFORMED_VIATRA_WELLFORMEDNESS_CONSTRAINT__QUERY);
@@ -242,6 +252,7 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements
// Initialize classes, features, and operations; add parameters
initEClass(transfomedViatraQueryEClass, TransfomedViatraQuery.class, "TransfomedViatraQuery", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getTransfomedViatraQuery_PatternFullyQualifiedName(), ecorePackage.getEString(), "patternFullyQualifiedName", null, 1, 1, TransfomedViatraQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTransfomedViatraQuery_PatternPQuery(), ecorePackage.getEJavaObject(), "patternPQuery", null, 1, 1, TransfomedViatraQuery.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(transformedViatraWellformednessConstraintEClass, TransformedViatraWellformednessConstraint.class, "TransformedViatraWellformednessConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getTransformedViatraWellformednessConstraint_Query(), this.getTransfomedViatraQuery(), null, "query", null, 1, 1, TransformedViatraWellformednessConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.aird b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.aird
index b4c8ec92..1af6ebf0 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.aird
+++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.aird
@@ -1,394 +1,442 @@
-
- ViatraModelAnnotations.ecore
- platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore
- platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore
- http://www.eclipse.org/emf/2002/Ecore
-
-
-
-
-
-
-
- bold
-
-
-
-
-
-
-
-
+
+
+ ViatraModelAnnotations.ecore
+ platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore
+ platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore
+ http://www.eclipse.org/emf/2002/Ecore
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
bold
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ bold
+
+
+
+
+
+ bold
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- KEEP_LOCATION
- KEEP_SIZE
- KEEP_RATIO
-
-
-
-
-
-
-
-
- bold
-
-
-
-
-
-
-
- KEEP_LOCATION
- KEEP_SIZE
- KEEP_RATIO
-
-
-
-
-
-
-
-
-
-
- bold
-
-
-
-
-
-
-
-
-
-
-
- KEEP_LOCATION
- KEEP_SIZE
- KEEP_RATIO
-
-
-
-
-
-
-
-
-
-
-
- italic
-
-
-
-
-
-
-
-
-
-
-
- KEEP_LOCATION
- KEEP_SIZE
- KEEP_RATIO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- italic
-
-
-
-
-
-
-
-
-
-
-
- KEEP_LOCATION
- KEEP_SIZE
- KEEP_RATIO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- italic
-
-
-
-
-
-
-
-
-
-
-
- italic
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ KEEP_LOCATION
+ KEEP_SIZE
+ KEEP_RATIO
+
+
+
+
+
+
+
+
+ bold
-
-
-
-
-
- KEEP_LOCATION
- KEEP_SIZE
- KEEP_RATIO
-
-
+
+
+
+
+
+
+ bold
-
-
-
-
-
-
-
-
- italic
-
-
+
+
+
+
+
+
+ KEEP_LOCATION
+ KEEP_SIZE
+ KEEP_RATIO
+
+
+
+
+
+
+
+
+
+
+ bold
+
+
+
+
+
+
+
+
+
+
+
+ KEEP_LOCATION
+ KEEP_SIZE
+ KEEP_RATIO
+
+
+
+
+
+
+
+
+ bold
-
-
-
-
-
-
-
- bold
-
-
+
+
+
+
+
+
+
+
+
+ italic
+
+
+
+
+
+
+
+
+
+
+
+ KEEP_LOCATION
+ KEEP_SIZE
+ KEEP_RATIO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ italic
+
+
+
+
+
+
+
+
+
+
+
+ KEEP_LOCATION
+ KEEP_SIZE
+ KEEP_RATIO
+
+
+
+
+
+
+
+
+ bold
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ italic
+
+
+
+
+
+
+
+
+
+
+
+ italic
+
+
+
+
+
+
+
+
+ KEEP_LOCATION
+ KEEP_SIZE
+ KEEP_RATIO
+
+
+
+
+
+
+
+
+
+
+
+ italic
+
+
+
+
+
+
+
+
+
+
+ bold
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.ecore b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.ecore
index e4632b1c..b7d2dcc3 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.ecore
+++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.ecore
@@ -5,6 +5,9 @@
+
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend
index ae22af1c..d0c57db1 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend
+++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend
@@ -125,6 +125,7 @@ class Viatra2Logic {
val annotation = createTransfomedViatraQuery => [
it.target = lRelation
it.patternFullyQualifiedName = pquery.fullyQualifiedName
+ it.patternPQuery = pquery
]
viatra2LogicTrace.query2Annotation.put(pquery,annotation)
ecore2LogicTrace.output.annotations += annotation
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/ModelGenerationMethodProvider.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/ModelGenerationMethodProvider.xtend
index 656f806b..ff8ab437 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/ModelGenerationMethodProvider.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/ModelGenerationMethodProvider.xtend
@@ -1,5 +1,6 @@
package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra
+import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternProvider
import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.rules.GoalConstraintProvider
@@ -14,6 +15,8 @@ import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher
import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery
import org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRule
import org.eclipse.xtend.lib.annotations.Data
+import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery
+import java.util.Set
class ModelGenerationStatistics {
public var long transformationExecutionTime = 0
@@ -47,13 +50,23 @@ class ModelGenerationMethodProvider {
public def ModelGenerationMethod createModelGenerationMethod(
LogicProblem logicProblem,
PartialInterpretation emptySolution,
- Iterable existingQueries,
ReasonerWorkspace workspace,
boolean nameNewElements,
- TypeInferenceMethod typeInferenceMethod
+ TypeInferenceMethod typeInferenceMethod,
+ DocumentationLevel debugLevel
) {
val statistics = new ModelGenerationStatistics
- val queries = patternProvider.generateQueries(logicProblem,emptySolution,statistics,existingQueries,workspace,typeInferenceMethod)
+ val writeFiles = (debugLevel === DocumentationLevel.NORMAL || debugLevel === DocumentationLevel.FULL)
+
+ val Set existingQueries = logicProblem
+ .relations
+ .map[annotations]
+ .flatten
+ .filter(TransfomedViatraQuery)
+ .map[it.patternPQuery as PQuery]
+ .toSet
+
+ val queries = patternProvider.generateQueries(logicProblem,emptySolution,statistics,existingQueries,workspace,typeInferenceMethod,writeFiles)
val //LinkedHashMap, BatchTransformationRule>>
objectRefinementRules = refinementRuleProvider.createObjectRefinementRules(queries,nameNewElements,statistics)
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend
index cc8860b4..0e13a5e1 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend
@@ -20,6 +20,7 @@ import org.eclipse.xtend.lib.annotations.Data
import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.*
import java.util.Collection
+import java.util.Set
@Data class GeneratedPatterns {
public Map>> invalidWFQueries
@@ -39,10 +40,11 @@ class PatternProvider {
LogicProblem problem,
PartialInterpretation emptySolution,
ModelGenerationStatistics statistics,
- Iterable existingQueries,
+ Set existingQueries,
ReasonerWorkspace workspace,
- TypeInferenceMethod typeInferenceMethod
- ) {
+ TypeInferenceMethod typeInferenceMethod,
+ boolean writeToFile)
+ {
val fqn2Query = existingQueries.toMap[it.fullyQualifiedName]
val PatternGenerator patternGenerator = new PatternGenerator(typeInferenceMethod)
val typeAnalysisResult = if(patternGenerator.requiresTypeAnalysis) {
@@ -55,19 +57,15 @@ class PatternProvider {
null
}
val baseIndexerFile = patternGenerator.transformBaseProperties(problem,emptySolution,fqn2Query,typeAnalysisResult)
- writeQueries(baseIndexerFile,"GeneratedQueries",workspace)
+ if(writeToFile) {
+ workspace.writeText('''generated3valued.vql_deactivated''',baseIndexerFile)
+ }
val ParseUtil parseUtil = new ParseUtil
val generatedQueries = parseUtil.parse(baseIndexerFile)
val runtimeQueries = calclulateRuntimeQueries(patternGenerator,problem,emptySolution,typeAnalysisResult,generatedQueries);
return runtimeQueries
}
- private def writeQueries(CharSequence content, String name,ReasonerWorkspace workspace) {
- if(workspace!=null) {
- workspace.writeText('''«name».vql_deactivated''',content)
- }
- }
-
private def GeneratedPatterns calclulateRuntimeQueries(
PatternGenerator patternGenerator,
LogicProblem problem,
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend
index 1e86f826..794e706b 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend
@@ -3,10 +3,13 @@ package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns
import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition
import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery
+import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.Modality
import java.util.Map
import org.eclipse.emf.ecore.EAttribute
+import org.eclipse.emf.ecore.EEnumLiteral
import org.eclipse.emf.ecore.EReference
import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey
+import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey
import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey
import org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint
import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable
@@ -21,8 +24,6 @@ import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeCo
import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery
import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.*
-import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey
-import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.Modality
class RelationDefinitionIndexer {
val PatternGenerator base;
@@ -193,13 +194,15 @@ class RelationDefinitionIndexer {
var String targetString;
var String additionalDefinition;
- if(target instanceof Enum>) {
- targetString = '''const_«target.name»_«target.declaringClass.simpleName»'''
- additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.declaringClass.simpleName»"); LogicProblem.elements(problem,«targetString»);'''
+ if(target instanceof EEnumLiteral) {
+ targetString = '''const_«target.name»_«target.EEnum.name»'''
+ additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.EEnum.name»"); LogicProblem.elements(problem,«targetString»);'''
} else if(target instanceof Integer) {
targetString = target.toString
additionalDefinition = ''''''
- } else throw new UnsupportedOperationException('''Unknown constant type: «target.class»''')
+ } else {
+ throw new UnsupportedOperationException('''Unknown constant type: «target.class»''')
+ }
val source = c.variablesTuple
var String sourceName
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend
index 438767cd..613c68b3 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend
@@ -60,10 +60,10 @@ class ViatraReasoner extends LogicReasoner{
val method = modelGenerationMethodProvider.createModelGenerationMethod(
problem,
emptySolution,
- viatraConfig.existingQueries,
workspace,
viatraConfig.nameNewElements,
- viatraConfig.typeInferenceMethod
+ viatraConfig.typeInferenceMethod,
+ viatraConfig.documentationLevel
)
dse.addObjective(new ModelGenerationCompositeObjective(
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasonerConfiguration.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasonerConfiguration.xtend
index f32078a2..c4d7e231 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasonerConfiguration.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasonerConfiguration.xtend
@@ -4,21 +4,20 @@ import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration
import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration
import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration
+import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethod
import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.TypeInferenceMethod
import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualiser
-import java.util.Set
-import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery
import java.util.LinkedList
import java.util.List
+import java.util.Set
import org.eclipse.xtext.xbase.lib.Functions.Function1
-import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethod
public enum StateCoderStrategy {
Neighbourhood, NeighbourhoodWithEquivalence, IDBased, DefinedByDiversity
}
class ViatraReasonerConfiguration extends LogicSolverConfiguration{
- public var Iterable existingQueries
+ //public var Iterable existingQueries
public var nameNewElements = false
public var StateCoderStrategy stateCoderStrategy = StateCoderStrategy.Neighbourhood
--
cgit v1.2.3-54-g00ecf