diff --git a/src/mmt-api/src/main/info/kwarc/mmt/api/ontology/RelationGraphExporter.scala b/src/mmt-api/src/main/info/kwarc/mmt/api/ontology/RelationGraphExporter.scala index 5af8e4fc9..ba5ee5a51 100644 --- a/src/mmt-api/src/main/info/kwarc/mmt/api/ontology/RelationGraphExporter.scala +++ b/src/mmt-api/src/main/info/kwarc/mmt/api/ontology/RelationGraphExporter.scala @@ -47,7 +47,8 @@ abstract class RelationGraphExporter extends StructurePresenter { val svg = try { dot(dg) } catch { - case e: Exception => throw LocalError("error while producing graph").setCausedBy(e) + case e: Exception => + throw LocalError("error while producing graph").setCausedBy(e) } rh(svg) } diff --git a/src/mmt-api/src/main/info/kwarc/mmt/api/ontology/ULO.scala b/src/mmt-api/src/main/info/kwarc/mmt/api/ontology/ULO.scala index 85e720d92..bca34e61d 100644 --- a/src/mmt-api/src/main/info/kwarc/mmt/api/ontology/ULO.scala +++ b/src/mmt-api/src/main/info/kwarc/mmt/api/ontology/ULO.scala @@ -901,8 +901,22 @@ trait RDFRelStoreLike extends RelStoreLike { this : RDFStore => def query(start: Path, q: RelationExp)(implicit add: Path => Unit) = { val qv = SparqlBuilder.`var`("qv") - val p = makeQuery(q) - val query = Queries.SELECT(qv).where(GraphPatterns.tp(qv, p, pathToIri(start))) + val (nq,tps) = q match { + case Sequence(qs @ _*) => + val tps = qs.collect { + case q@HasType(_, Nil) => q + case HasType(_,_) => + println("HERE!") + ??? + } + val nq = qs.filterNot(tps.contains) + val ntps = tps.flatMap(_.mustHave).flatten + if (nq.length == 1) (nq.head,ntps.toList) + else (Choice(nq:_*),ntps.toList) + case _ => (q,Nil) + } + val p = makeQuery(nq) + val query = Queries.SELECT(qv).where(GraphPatterns.tp(qv, p, pathToIri(start)) :: tps.map(tp => GraphPatterns.tp(qv, RDF.TYPE, tp.toULO.toIri)) :_*) import scala.jdk.CollectionConverters._ repo.getConnection.prepareTupleQuery(query.getQueryString).evaluate().forEach { res => val vl = res.getBinding("qv").getValue @@ -923,6 +937,8 @@ trait RDFRelStoreLike extends RelStoreLike { this : RDFStore => () => "(" + qs.map(makeQuery(_).getQueryString).mkString("|") + ")" case Transitive(q) => () => "(" + makeQuery(q).getQueryString + ")+" + case Sequence(qs@_*) => + () => qs.map(makeQuery(_).getQueryString).mkString(", ") case _ => ??? } diff --git a/src/mmt-stex/src/info/kwarc/mmt/stex/parsing/Rules.scala b/src/mmt-stex/src/info/kwarc/mmt/stex/parsing/Rules.scala index 6078c6274..2d34568e9 100644 --- a/src/mmt-stex/src/info/kwarc/mmt/stex/parsing/Rules.scala +++ b/src/mmt-stex/src/info/kwarc/mmt/stex/parsing/Rules.scala @@ -483,8 +483,10 @@ object TeXRules { SkipCommand("DeclareRobustCommand", "vv"), SkipCommand("NewDocumentEnvironment", "vvvv"), SkipCommand("DeclareDocumentEnvironment", "vvvv"), + SkipCommand("hbox","t"),SkipCommand("vbox","t"),SkipCommand("fbox","t"),SkipCommand("text","t"), SkipCommand("texttt","t"),SkipCommand("ensuremath","m"),SkipCommand("scalebox","vt"), + SkipCommand("ref", "v"), SkipCommand("label", "v"), SkipCommand("cite", "v"), SkipCommand("includegraphics","ov"),SkipCommand("url","ov") )