Skip to content
Snippets Groups Projects
Commit 8d8e7841 authored by Andreas Schärtl's avatar Andreas Schärtl
Browse files

report: review Q3

parent 5e10a048
No related branches found
No related tags found
No related merge requests found
...@@ -191,34 +191,37 @@ implementations. ...@@ -191,34 +191,37 @@ implementations.
argument for adding support directly to ULO is that ULO aims to be argument for adding support directly to ULO is that ULO aims to be
universal and as such should not be without algorithms. An universal and as such should not be without algorithms. An
argument for a separate ontology is that what we understand as ULO 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, other ontologies (e.g.\ Dublin Core meta data~\cite{dcreport,
dcowl}) and keeping concepts separate is not entirely dcowl}) and keeping concepts separate is not entirely
unattractive in itself. unattractive in itself.
\item \textbf{$\mathcal{Q}_3$ ``All areas of math that {Nicolas G.\ \item \textbf{$\mathcal{Q}_3$ ``All areas of math that {Nicolas G.\
de Bruijn} has worked in and his main contributions.''} This query 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. main contributions, e.g.\ what paragraphs or code~$A$ has authored.
\textbf{Organizational Aspect} ULO has no concept of authors, \textbf{Organizational Aspect} ULO has no concept of authors,
contributors dates and so on. Rather, the idea is to take advantage contributors, dates and so on. Rather, the idea is to take
of the Dublin Core project which provides an ontology for such advantage of the Dublin Core project which provides an ontology
metadata~\cite{dcreport, dcowl}. For example, Dublin Core provides for such metadata~\cite{dcreport, dcowl}. For example, Dublin Core
us with the \texttt{dcterms:creator} predicate. Servicing this provides us with the \texttt{dcterms:creator} and
query would mean looking for the creator~$A$ and then listing all \texttt{dcterms:contributor} predicates. Servicing~$\mathcal{Q}_3$
associated \texttt{dcterms:title} that~$A$ has worked on. For a requires us to look for creator~$A$ and then list all associated
first working version, the exports managed by \emph{ulo-storage} \texttt{dcterms:title}s that they have worked on. Of course this
are enough to service this query. requires above authorship predicates to actually be in use. With
the Isabelle and Coq exports this was hardly the case; running
As~$\mathcal{Q}_3$ is also asking for the main contributions 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 of~$A$, that is those works that~$A$ authored that are the most
important. Importance is a quality measure, simply sorting the important. Importance is a quality measure, simply sorting the
result by number of references might be a good start. Again, this result by number of references might be a good start.
is something that should serviceable with just organizational
knowledge.
\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}. can easily be formulated in {SPARQL}.
\begin{lstlisting} \begin{lstlisting}
PREFIX ulo: <https://mathhub.info/ulo#> PREFIX ulo: <https://mathhub.info/ulo#>
...@@ -226,32 +229,37 @@ implementations. ...@@ -226,32 +229,37 @@ implementations.
SELECT ?work SELECT ?work
WHERE { WHERE {
?work dcterms:contributor "John Smith" . ?work dcterms:creator|dcterms:contributor "John Smith" .
} }
GROUP BY ?work GROUP BY ?work
\end{lstlisting} \end{lstlisting}
To get all main contributions, we rate each To get the main contributions, we rate each individual
individual \texttt{?work} by its number of \texttt{ulo:uses} \texttt{?work} by its number of \texttt{ulo:uses}
references. Extending the {SPARQL} query, we can query the database references. Extending the {SPARQL} query above, we can query the
for a ordered list of works, starting with the one that has the database for a ordered list of works, starting with the one that
most references. has the most references.
\begin{lstlisting} \begin{lstlisting}
PREFIX ulo: <https://mathhub.info/ulo#> PREFIX ulo: <https://mathhub.info/ulo#>
PREFIX dcterms: <http://purl.org/dc/terms/> PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?work (COUNT(?user) as ?refcount) SELECT ?work (COUNT(?user) as ?refcount)
WHERE { WHERE {
?work dcterms:contributor "John Smith" . ?work dcterms:creator|dcterms:contributor "John Smith" .
?user ulo:uses ?work . ?user ulo:uses ?work .
} }
GROUP BY ?work GROUP BY ?work
ORDER BY DESC(?refcount) ORDER BY DESC(?refcount)
\end{lstlisting} \end{lstlisting}
We see that we can formulate the idea behind~$\mathcal{Q}_3$ with We can formulate~$\mathcal{Q}_3$ with just one SPARQL
one not very complicated SPARQL query. Because here everything is query. Because everything is handled by the database, access
handled by the database access should be quick. should be quick.
\end{itemize} \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} \subsection{Organizational Queries}\label{sec:miscq}
\emph{{TODO}: SPARQL Queries references in ULO paper} \emph{{TODO}: SPARQL Queries references in ULO paper}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment