diff --git a/doc/report/applications.tex b/doc/report/applications.tex index 1af30c10545eb41d99ea221b3d0acc4b4b7ae918..46ae8d67487791e1586aef8a671d1d567c3039c9 100644 --- a/doc/report/applications.tex +++ b/doc/report/applications.tex @@ -191,34 +191,37 @@ implementations. argument for adding support directly to ULO is that ULO aims to be universal and as such should not be without algorithms. An argument for a separate ontology is that what we understand as ULO - data sets (Isabelle, Coq) exports already contain triplets from + data sets (Isabelle, Coq exports) already contain triplets from other ontologies (e.g.\ Dublin Core meta data~\cite{dcreport, dcowl}) and keeping concepts separate is not entirely unattractive in itself. \item \textbf{$\mathcal{Q}_3$ ``All areas of math that {Nicolas G.\ de Bruijn} has worked in and his main contributions.''} This query - is asking by works of a given author~$A$. It also ask for their + is asking by works of a given author~$A$. It also asks for their main contributions, e.g.\ what paragraphs or code~$A$ has authored. \textbf{Organizational Aspect} ULO has no concept of authors, - contributors dates and so on. Rather, the idea is to take advantage - of the Dublin Core project which provides an ontology for such - metadata~\cite{dcreport, dcowl}. For example, Dublin Core provides - us with the \texttt{dcterms:creator} predicate. Servicing this - query would mean looking for the creator~$A$ and then listing all - associated \texttt{dcterms:title} that~$A$ has worked on. For a - first working version, the exports managed by \emph{ulo-storage} - are enough to service this query. - - As~$\mathcal{Q}_3$ is also asking for the main contributions + contributors, dates and so on. Rather, the idea is to take + advantage of the Dublin Core project which provides an ontology + for such metadata~\cite{dcreport, dcowl}. For example, Dublin Core + provides us with the \texttt{dcterms:creator} and + \texttt{dcterms:contributor} predicates. Servicing~$\mathcal{Q}_3$ + requires us to look for creator~$A$ and then list all associated + \texttt{dcterms:title}s that they have worked on. Of course this + requires above authorship predicates to actually be in use. With + the Isabelle and Coq exports this was hardly the case; running + some experiments we found less than 15 unique contributors and + creators, raising suspicion that meat data is missing in the + original library files. Regardless, in theory ULO allows us to + query for objects ordered by authors. + + Query $\mathcal{Q}_3$ is also asking for the main contributions of~$A$, that is those works that~$A$ authored that are the most important. Importance is a quality measure, simply sorting the - result by number of references might be a good start. Again, this - is something that should serviceable with just organizational - knowledge. + result by number of references might be a good start. - \textbf{Implementation} Search for contributions by a given author + \textbf{Implementation} A search for contributions by a given author can easily be formulated in {SPARQL}. \begin{lstlisting} PREFIX ulo: <https://mathhub.info/ulo#> @@ -226,32 +229,37 @@ implementations. SELECT ?work WHERE { - ?work dcterms:contributor "John Smith" . + ?work dcterms:creator|dcterms:contributor "John Smith" . } GROUP BY ?work \end{lstlisting} - To get all main contributions, we rate each - individual \texttt{?work} by its number of \texttt{ulo:uses} - references. Extending the {SPARQL} query, we can query the database - for a ordered list of works, starting with the one that has the - most references. + To get the main contributions, we rate each individual + \texttt{?work} by its number of \texttt{ulo:uses} + references. Extending the {SPARQL} query above, we can query the + database for a ordered list of works, starting with the one that + has the most references. \begin{lstlisting} PREFIX ulo: <https://mathhub.info/ulo#> PREFIX dcterms: <http://purl.org/dc/terms/> SELECT ?work (COUNT(?user) as ?refcount) WHERE { - ?work dcterms:contributor "John Smith" . + ?work dcterms:creator|dcterms:contributor "John Smith" . ?user ulo:uses ?work . } GROUP BY ?work ORDER BY DESC(?refcount) \end{lstlisting} - We see that we can formulate the idea behind~$\mathcal{Q}_3$ with - one not very complicated SPARQL query. Because here everything is - handled by the database access should be quick. + We can formulate~$\mathcal{Q}_3$ with just one SPARQL + query. Because everything is handled by the database, access + should be quick. \end{itemize} +%Finally, ULO provides us with the \texttt{aligned-with} predicate to +%express equality between concepts~$C_1$ and $C_2$ where $C_1$ and +%$C_2$ typically originate from different formal +%libraries~\cite{align}. + \subsection{Organizational Queries}\label{sec:miscq} \emph{{TODO}: SPARQL Queries references in ULO paper}