Rule-Transf-TitulacionCToourseGroup Titulacion(?x) → p1:CourseGroup(?x) Rule-Transf-NombreTitulacionDToDiplayNameCourseGroup Titulacion(?x) ∧ nombre(?x, ?n) ∧ p1:CourseGroup(?x) → p1:displayName(?x, ?n) Rule-Transf-AsignaturaToCanonicalCourse Asignatura(?x) → p1:CanonicalCourse(?x) Rule-Transf-NombreAsignaturaToTitleCanonicalCourse Asignatura(?x) ∧ nombre(?x, ?n) ∧ p1:CanonicalCourse(?x) → p1:title(?x, ?n) Rule-Transf-CodigoAsignaturaToNumberCanonicalCourse Asignatura(?x) ∧ codigo(?x, ?n) ∧ p1:CanonicalCourse(?x) → p1:number(?x, ?n) Rule-Transf-DescripcionAsignaturaToDescriptionCanonicalCourse Asignatura(?x) ∧ descripcion(?x, ?n) ∧ p1:CanonicalCourse(?x) → p1:description(?x, ?n) Rule-Transf-ContenidosAsignaturaToTopicsCanonicalCourse Asignatura(?x) ∧ contenidos(?x, ?n) ∧ p1:CanonicalCourse(?x) → p1:topics(?x, ?n) Rule-Transf-TipoAsignaturaToTypeCanonicalCourse Asignatura(?x) ∧ tipoAsignatura(?x, ?n) ∧ p1:CanonicalCourse(?x) → p1:type(?x, ?n) Rule-Transf-CursoAcAdemicoToTerm CursoAcademico(?x) → p1:Term(?x) Rule-Transf-CursoToCourseOffering Curso(?x) → p1:CourseOffering(?x) Rule-Transf-NombreCursoToTitleCourseOffering Curso(?x) ∧ nombre(?x, ?nc) ∧ p1:CourseOffering(?x) → p1:title(?x, ?nc) Rule-Transf-CodigoCursoToNumberCourseOffering Curso(?x) ∧ codigo(?x, ?nc) ∧ p1:CourseOffering(?x) → p1:number(?x, ?nc) Rule-Transf-EvaluacionToCourseGradeType Curso(?x) ∧ evaluacionCurso(?x, ?e) ∧ p1:CourseOffering(?x) → p1:courseGradeType(?x, ?e) Rule-Transf-EventoToScheduleItem Evento(?x) → p1:ScheduleItem(?x) Rule-Transf-DescripcionEventoToDescriptionScheduleItem Evento(?x) ∧ descripcion(?x, ?d) ∧ p1:ScheduleItem(?x) → p1:description(?x, ?d) Rule-Transf-FechaClaveEventoSTotartScheduleItem Evento(?x) ∧ fechaClave(?x, ?n) ∧ p1:ScheduleItem(?x) → p1:start(?x, ?n) Rule-Transf-MaterialToAsset Material(?x) → p1:Asset(?x) Rule-Transf-TipoMaterialToAssetTypeAsset Material(?x) ∧ tipoMaterial(?x, ?n) ∧ p1:Asset(?x) → p1:assetType(?x, ?n) Rule-Transf-DescripcionMaterialToDescriptionAsset Material(?x) ∧ descripcion(?x, ?n) ∧ p1:Asset(?x) → p1:description(?x, ?n) Rule-Transf-CodigoMaterialToIdAsset Material(?x) ∧ codigo(?x, ?n) ∧ p1:Asset(?x) → p1:id(?x, ?n) Rule-Transf-ClaseToCourseSection Clase(?x) → p1:CourseSection(?x) Rule-Transf-CodigoClaseToNumberCourseSection Clase(?x) ∧ codigo(?x, ?n) ∧ p1:CourseSection(?x) → p1:number(?x, ?n) Rule-Transf-LugarDeImparticionClaseToLocationCourseSection Clase(?x) ∧ lugarDeImparticion(?x, ?n) ∧ p1:CourseSection(?x) → p1:location(?x, ?n) Rule-Transf-EvaluacionDescripcionToCourseGradeType Evaluacion(?x) ∧ cursoAEvaluar(?x, ?c) ∧ p1:CourseOffering(?c) ∧ descripcion(?x, ?d) → p1:courseGradeType(?c, ?d) Rule-Transf-CodigoActividadToIdAssessmentPublished Actividad(?x) ∧ codigo(?x, ?c) ∧ p1:AssessmentPublished(?x) → p1:id(?x, ?c) Rule-Transf-DescripcionActividadToDescriptionAssessmentPublished Actividad(?x) ∧ descripcion(?x, ?c) ∧ p1:AssessmentPublished(?x) → p1:description(?x, ?c) Rule-Transf-ContenidoActividadToDataAssessmentPublished Actividad(?x) ∧ contenidos(?x, ?c) ∧ p1:AssessmentPublished(?x) → p1:data(?x, ?c) Rule-Transf-PersonaToAgent Persona(?x) → p1:Agent(?) Rule-Transf-DniPersonaToIdAgent Persona(?x) ∧ dni(?x, ?d) ∧ p1:Agent(?x) → p1:id(?x,?d) Rule-Transf-NombrePersonaToDisplayNameAgent Persona(?x) ∧ nombre(?x, ?d) ∧ p1:Agent(?) → p1:displayName(?x,?d) Rule-Transf-TipoPersonaPersonaToTypeAgent Persona(?x) ∧ tipoPersona(?x, ?d) ∧ p1:Agent(?x) → p1:type(?x,?d) Rule-Transf-ProfesorToGroup Persona(?x) ∧ tipoPersona(?x, p_Profesor) → p1:Group(Profesor) Rule-Transf-ProfesorCoordinadorToGroup Persona(?x) ∧ tipoPersona(?x, p_ProfesorCoordinador) → p1:Group(ProfesorCoordinador) Rule-Transf-GestorDocenteToGroup Persona(?x) ∧ tipoPersona(?x, p_GestorDocente) → p1:Group(GestorDocente) Rule-Transf-EstudianteToGroup Persona(?x) ∧ tipoPersona(?x, p_Estudiante) → p1:Group(Estudiante) Rule-Transf-EntregaActividadToAssessmentTaken EntregaActividad(?x) ∧ actividadDeLaEntrega(?x, ?y) → p1:AssessmentTaken(?y) Rule-Transf-FechaEntregaEntregaActividadToDateAssessmentTaken EntregaActividad(?x) ∧ actividadDeLaEntrega(?x, ?y) ∧ fechaEntrega(?y, ?c) ∧ p1:AssessmentTaken(?x) → p1:date(?y, ?c) Rule-Transf-AsignacionTareaDocenteToScheduleItem cursoAsignadoAunaTarea(?ad, ?c) ∧ profesorAsignadoAClase(?ad, ?p) ∧ AsignacionTareaDocente(?ad) ∧ p1:courseSections(?c, ?cl) ∧ p1:schedule(?cl, ?s) → p1:ScheduleItem(?s) Rule-Transf-AsignacionTareaDocenteToAgentcommitment cursoAsignadoAunaTarea(?ad, ?c) ∧ profesorAsignadoAClase(?ad, ?p) ∧ AsignacionTareaDocente(?ad) ∧ p1:courseSections(?c, ?cl) ∧ p1:schedule(?cl, ?s) ∧ p1:agentCommitments(?s, ?t) → p1:AgentCommitment(?t) Rule-Transf-TareaAsignacionTareaDocenteToDescriptionScheduleItem cursoAsignadoAunaTarea(?ad, ?c) ∧ profesorAsignadoAClase(?ad, ?p) ∧ AsignacionTareaDocente(?ad) ∧ p1:agentId(?s, ?p) ∧ p1:schedule(?c, ?s) ∧ tarea(?ad, ?t) → p1:description(?s, ?t) Rule-Transf-FechaInicioAsignacionTareaDocenteToStartcheduleItem cursoAsignadoAunaTarea(?ad, ?c) ∧ profesorAsignadoAClase(?ad, ?p) ∧ AsignacionTareaDocente(?ad) ∧ p1:agentId(?s, ?p) ∧ p1:schedule(?c, ?s) ∧ fechaInicio(?ad, t?) → p1:start(?s, ?t) Rule-Transf-FechaFinAsignacionTareaDocenteToFinScheduleItem cursoAsignadoAunaTarea(?ad, ?c) ∧ profesorAsignadoAClase(?ad, ?p) ∧ AsignacionTareaDocente(?ad) ∧ p1:agentId(?s, ?p) ∧ p1:schedule(?c, ?s) ∧ fechaFin(?ad, ?t) → p1:end(?s, ?t) Rule-Transf-EstadoTareaAsignacionTareaDocenteToAStatusgentcommitment cursoAsignadoAunaTarea(?ad, ?c) ∧ AsignacionTareaDocente(?ad) ∧ p1:courseSections(?c, ?cl) ∧ p1:schedule(?cl, ?s) ∧ p1:agentCommitments(?s, ?t) ∧ p1:AgentCommitment(?t) ∧ estadoTarea(?ad, ?e) → p1:status(?t, ?e) Rule-Transf-AsigaacionEstudianteCursoToCourseGradeRecord cursoEnLaAsignacion(?ae, ?c) ∧ estudianteEnLaAsignacion(?ae, ?e) ∧ AsignacionEstudianteCurso(?ae) ∧ p1:courseOffering(?gr, ?c) ∧ p1:agentId(?gr, ?e) → p1:CourseGradeRecord(?gr) Rule-Transf-NumMatriculaAsignacionEstudianteCursoToIdCourseGradeRecord cursoEnLaAsignacion(?ae, ? c) ∧ estudianteEnLaAsignacion(?ae, ?e) ∧ AsignacionEstudianteCurso(?ae) ∧ p1:courseOffering(?gr, ?c) ∧ p1:agentId(?gr, ?e) ∧ numMatricula(?gr,?m)→ p1:id(?gr, ?m) Rule-Transf-EstadoMatriculaAsignacionEstudianteCursoToStatusCourseGradeRecord cursoEnLaAsignacion(?ae, ?c) ∧ estudianteEnLaAsignacion(?ae, ?e) ∧ AsignacionEstudianteCurso(?ae) ∧ p1:courseOffering(?gr, ?c) ∧ p1:agentId(?gr, ?e) ∧ estadoMatricula(?gr,?m)→ p1:status(?gr, ?m) Rule-Transf-AsignacionEstudianteCursoToEnrollmentRecord cursoEnAsignacion(?ae, c?) ∧ estudianteEnAsignacion(?ae, e?) ∧ AsignacionEstudianteCurso(?ae) ∧ p1:courseOffering(?er, ?c?) ∧ p1:student(?gr?, e?) → CourseGradeRecord(?er) Rule-Transf-CalificacionFinalAsigancionEstudianteCursoToCourseGradeEnrollmentRecord cursoEnAsignacion(?ae, c?) ∧ esudianteEnAsignacion(?ae, e?) ∧ AsignacionEstudianteCurso(?ae) ∧ p1:courseOffering(?er, ?c?) ∧ p1:student(?gr?, e?) ∧ calificacionFinal(?gr, f?) → CourseGradeRecord(?gr, f?) Rule-Transf-asignaturaEquivalenteToequivalentCourses asignaturaEquivalente(?x, ?y) → p1:equivalentCourses(?x, ?y) Rule-Transf-inluyeAssignaturaToCanonicalCourse incluyeAsignatura (?t, ?a) ∧ p1:CanonicalCourse (?c) ∧ p1:CourseGroup (?t) → p1:courses (?t, ?c) Rule-cursoAcademicoToTerm CursoAcademico(?x) → p1:Term(?x) Rule-Transf-esDeUnaAsignaturaTocanonicalCourse esDeUnaAsignatura(?x, ?y) → p1:canonicalCourse(?x, ?y) Rule-Transf-coursesToCourseOferings cursos(?x, ?y) → p1:courseOfferings(?x, ?y) Rule-Transf-esDeUnCursoTocourseOffering esDeUnCurso(?x, ?y) ∧ p1:CourseSection(?x) → p1:courseOffering(?x, ?y) Rule-Transf-clasesTocourseSections clases(?x, ?y) ∧ p1:CourseSection(?x) → p1:courseSections(?x, ?y) Rule-Transf-evaluacionCursoTocourseGradeType evaluacionCurso(?x, ?y) → p1:courseGradeType(?x, ?y) Rule-estudianteQueEnrtregaToAgentId estudianteQueEntrega(?x, ?y) ∧ p1:AssessmentTaken (?x) → p1:agentId (?x, ?y) Rule-Transf-cursoAsignadotocourseOffering cursoAsignado(?e, ?ae) ∧ AsignacionEstudianteCurso(?ae) ∧ p1:EnrollmentRecord(?x) ∧ curso(?ae, ?c) ∧ student(?x, ?e) → p1:courseOffering(?x, ?e) Rule-Transf-estudianteAsignadotostudent estudianteAsignado(?e, ?ae) ∧ AsignacionEstudianteCurso(?ae) ∧ p1:EnrollmentRecord(?x) ∧ p1:courseOffering(?x, ?e) → student(?ae, ?c) Rule-Transf-materialDelCursoToassets materialDelCurso(?x, ?y) → p1:assets(?x, ?y) Rule-actividadCursoToexteralReferenceId actividadCurso(?c, ?a) ∧ p1:CourseOffering(?c) ∧ p1:courseSections(?c, ?cl) → p1:externalReferenceId(?cl, ?a) Rule-actividadDeLaEntregaToAssessmentTaken actividadDeLaEntrega(?e, ?a) ∧ p1:courseSectionId(?e, ?cl) ∧ p1:courseOffering(?cl, ?c) → p1:AssessmentTaken(?a) *********************LaTEX Rule-Transf-TitulacionToCourseGroup Titulacion(?x) $\rightarrow$ p1:CourseGroup(?x) Rule-Transf-NombreTitulacionDToDiplayNameCourseGroup p1:Titulacion(?x) $\wedge$ p1:nombre(?x, ?n) $\wedge$ CourseGroup(?x) $\rightarrow$ displayName(?x, ?n) Rule-Transf-AsignaturaToCanonicalCourse Asignatura(?x) $\rightarrow$ p1:CanonicalCourse(?x) Rule-Transf-NombreAsignaturaToTitleCanonicalCourse Asignatura(?x) $\wedge$ nombre(?x, ?n) $\wedge$ p1:CanonicalCourse(?x) $\rightarrow$ p1:title(?x, ?n) Rule-Transf-CodigoAsignaturaToNumberCanonicalCourse Asignatura(?x) $\wedge$ codigo(?x, ?n) $\wedge$ p1:CanonicalCourse(?x) $\rightarrow$ p1:number(?x, ?n) Rule-Transf-DescripcionAsignaturaToDescriptionCanonicalCourse Asignatura(?x) $\wedge$ descripcion(?x, ?n) $\wedge$ p1:CanonicalCourse(?x) $\rightarrow$ p1:description(?x, ?n) Rule-Transf-ContenidosAsignaturaToTopicsCanonicalCourse Asignatura(?x) $\wedge$ contenidos(?x, ?n) $\wedge$ p1:CanonicalCourse(?x) $\rightarrow$ p1:topics(?x, ?n) Rule-Transf-TipoAsignaturaToTypeCanonicalCourse Asignatura(?x) $\wedge$ tipoAsignatura(?x, ?n) $\wedge$ p1:CanonicalCourse(?x) $\rightarrow$ p1:type(?x, ?n) Rule-Transf-CursoATocAdemicoTerm CursoAcademico(?x) $\rightarrow$ p1:Term(?x) Rule-Transf-CursoToCourseOffering Curso(?x) $\wedge$ p1:CourseOffering(?x) Rule-Transf-NombreCursoToTitleCourseOffering Curso(?x) $\wedge$ nombre(?x, ?nc) $\wedge$ p1:CourseOffering(?x) $\rightarrow$ p1:title(?x, ?nc) Rule-Transf-CodigoCursoToNumberCourseOffering Curso(?x) $\wedge$ codigo(?x, ?nc) $\wedge$ p1:CourseOffering(?x) $\rightarrow$ p1:number(?x, ?nc) Rule-Transf-EvaluacionToCourseGradeType Curso(?x) $\wedge$ evaluacionCurso(?x, ?e) $\wedge$ p1:CourseOffering(?x) $\rightarrow$ p1:courseGradeType(?x, ?e) Rule-Transf-EventoToScheduleItem Evento(?x) $\rightarrow$ p1:ScheduleItem(?x) Rule-Transf-DescripcionEventoToDescriptionScheduleItem Evento(?x) $\wedge$ descripcion(?x, ?d) $\wedge$ p1:ScheduleItem(?x) $\rightarrow$ p1:description(?x, ?d) Rule-Transf-FechaClaveEventoSTotartScheduleItem Evento(?x) $\wedge$ fechaClave(?x, ?n) $\wedge$ p1:ScheduleItem(?x) $\rightarrow$ p1:start(?x, ?n) Rule-Transf-MaterialToAsset Material(?x) $\rightarrow$ p1:Asset(?x) Rule-Transf-TipoMaterialToAssetTypeAsset Material(?x) $\wedge$ tipoMaterial(?x, ?n) $\wedge$ p1:Asset(?x) ? p1:assetType(?x, ?n) Rule-Transf-DescripcionMaterialToDescriptionAsset Material(?x) $\wedge$ descripcion(?x, ?n) $\wedge$ p1:Asset(?x) $\rightarrow$ p1:description(?x, ?n) Rule-Transf-CodigoMaterialToIdAsset Material(?x) $\wedge$ codigo(?x, ?n) $\wedge$ p1:Asset(?x) $\rightarrow$ p1:id(?x, ?n) Rule-Transf-ClaseCourseToSection Clase(?x) $\rightarrow$ p1:CourseSection(?x) Rule-Transf-CodigoClaseToNumberCourseSection Clase(?x) $\wedge$ codigo(?x, ?n) $\wedge$ p1:CourseSection(?x) $\rightarrow$ p1:number(?x, ?n) Rule-Transf-LugarDeImparticionClaseToLocationCourseSection Clase(?x) $\wedge$ lugarDeImparticion(?x, ?n) $\wedge$ p1:CourseSection(?x) $\rightarrow$ p1:location(?x, ?n) Rule-Transf-EvaluacionDescripcionToCourseGradeType Evaluacion(?x) $\wedge$ cursoAEvaluar(?x, ?c) $\wedge$ p1:CourseOffering(?c) $\rightarrow$ descripcion(?x, ?d) ? p1:courseGradeType(?c, ?d) Rule-Transf-CodigoActividadToIdAssessmentPublished Actividad(?x) $\wedge$ codigo(?x, ?c) $\wedge$ p1:AssessmentPublished(?x) $\rightarrow$ p1:id(?x, ?c) Rule-Transf-DescripcionActividadToDescriptionAssessmentPublished Actividad(?x) $\wedge$ descripcion(?x, ?c) $\wedge$ p1:AssessmentPublished(?x) $\rightarrow$ p1:description(?x, ?c) Rule-Transf-ContenidoActividadToDataAssessmentPublished Actividad(?x) $\wedge$ contenido(?x, ?c) $\wedge$ p1:AssessmentPublished(?x) $\rightarrow$ p1:data(?x, ?c) Rule-Transf-PersonaToAgent Persona(?x) $\rightarrow$ Agent(?) Rule-Transf-DniPersonaToIdAgent Persona(?x) $\wedge$ dni(?x, ?d) $\wedge$ p1:Agent(?) $\rightarrow$ p1:id(?x,?d) Rule-Transf-NombrePersonaToDisplayNameAgent Persona(?x) $\wedge$ nombre(?x, ?d) $\wedge$ p1:Agent(?) $\rightarrow$ p1:displayName(?x,?d) Rule-Transf-TipoPersonaPersonaTotypeAgent Persona(?x) $\wedge$ tipoPersona(?x, ?d) $\wedge$ p1:Agent(?) $\rightarrow$ p1:typeAgent(?x,?d) Rule-Transf-ProfesorToGroup Persona(?x) $\wedge$ tipoPersona(?x, p\_Profesor) $\rightarrow$ p1:Group(Profesor) Rule-Transf-ProfesorCoordinadorToGroup Persona(?x) $\wedge$ tipoPersona(?x, p\_ProfesorCoordinador) $\rightarrow$ p1:Group(ProfesorCoordinador) Rule-Transf-GestorDocenteToGroup Persona(?x) $\wedge$ tipoPersona(?x, p\_GestorDocente) $\rightarrow$ p1:Group(GestorDocente) Rule-Transf-EstudianteToGroup Persona(?x) $\wedge$ tipoPersona(?x, p\_Estudiante) $\rightarrow$ p1:Group(Estudiante) Rule-Transf-EntregaActividadToAssessmentTaken EntregaActividad(?x) $\wedge$ actividadDeLaEntrega(?x, ?y) $\rightarrow$ p1:AssessmentTaken(?y) Rule-Transf-FechaEntregaEntregaActividadToDateAssessmentTaken EntregaActividad(?x) $\wedge$ actividadDeLaEntrega(?x, ?y) $\wedge$ fechaEntrega(?y, ?c) $\wedge$ p1:AssessmentTaken(?x) $\rightarrow$ p1:date(?y, ?c) Rule-Transf-AsignacionTareaDocenteToScheduleItem cursoAsignadoAunaTarea( ?ad, ?c) $\wedge$ profesorAsignadoAClase(?ad, ?p) $\wedge$ AsignacionTareaDocente(?ad) $\wedge$ agentID(?s, p?) $\wedge$ Schedule(?c, ?s) $\rightarrow$ ScheduleItem(?s) Rule-Transf-TareaAsignacionTareaDocenteToDescriptionScheduleItem cursoAsignadoAunaTarea(?ad, ?c) $\wedge$ profesorAsignadoAClase(?ad, ?p) $\wedge$ AsignacionTareaDocente(?ad) $\wedge$ p1:agentID(?s, p?) $\wedge$ p1:Schedule(?c, ?s) $\wedge$ tarea(?ad, t?) $\rightarrow$ p1:description(?s, ?d) Rule-Transf-FechaInicioAsignacionTareaDocenteToStartcheduleItem cursoAsignadoAunaTarea(?ad, ?c) $\wedge$ profesorAsignadoAClase(?ad, ?p) $\wedge$ AsignacionTareaDocente(?ad) $\wedge$ p1:agentID(?s, p?) $\wedge$ p1:Schedule(?c, ?s) $\wedge$ fechaInicio(?ad, t?) $\rightarrow$ p1:start(?s, ?d) Rule-Transf-FechaFinAsignacionTareaDocenteToStartcheduleItem cursoAsignadoAunaTarea(?ad, ?c) $\wedge$ profesorAsignadoAClase(?ad, ?p) $\wedge$ AsignacionTareaDocente(?ad) $\wedge$ p1:agentID(?s, p?) $\wedge$ p1:Schedule(?c, ?s) $\wedge$ fechaFin(?ad, t?) $\rightarrow$ p1:end(?s, ?d) Rule-Transf-AsignacionEstudianteCursoToCourseGradeRecord cursoEnAsignacion(?ae, c?) $\wedge$ esudianteEnAsignacion(?ae, e?) $\wedge$ AsignacionEstudianteCurso(?ae) $\wedge$ p1:courseOffering(?gr, ?c?) $\wedge$ p1:agentId(?gr?, e?) $\rightarrow$ CourseGradeRecord(?gr) Rule-Transf-NumMatriculaAsignacionEstudianteCursoToIdCourseGradeRecord cursoEnAsignacion(?ae, c?) $\wedge$ estudianteEnAsignacion(?ae, e?) $\wedge$ AsignacionEstudianteCurso(?ae) $\wedge$ p1:courseOffering(?gr, ?c?) $\wedge$ p1:agentId(?gr?, e?) $\wedge$ numMatricula(?gr,m?)$\rightarrow$ p1:Id(?gr, ?m) Rule-Transf-EstadoMatriculaAsignacionEstudianteCursoToStatusCourseGradeRecord cursoEnAsignacion(?ae, c?) $\wedge$ estudianteEnAsignacion(?ae, e?) $\wedge$ AsignacionEstudianteCurso(?ae) $\wedge$ p1:courseOffering(?gr, ?c?) $\wedge$ p1:agentId(?gr?, e?) $\wedge$ estadoMatricula(?gr,m?) $\rightarrow$ p1:status(?gr, ?m) Rule-Transf-AsignacionEstudianteCursoToEnrollmentRecord cursoEnAsignacion(?ae, c?) $\wedge$ esudianteEnAsignacion(?ae, e?) $\wedge$ AsignacionEstudianteCurso(?ae) $\wedge$ p1:courseOffering(?er, ?c?) $\wedge$ p1:student(?gr?, e?) $\rightarrow$ CourseGradeRecord(?er) Rule-Transf-CalificacionFinalAsignacionEstudianteCursoToCourseGradeEnrollmentRecord cursoEnAsignacion(?ae, c?) $\wedge$ esudianteEnAsignacion(?ae, e?) $\wedge$ AsignacionEstudianteCurso(?ae) $\wedge$ p1:courseOffering(?er, ?c?) $\wedge$ p1:student(?gr?, e?) $\wedge$ calificacionFinal(?gr, f?) $\rightarrow$ CourseGradeRecord(?gr, f?) ********** equivalentCourses