3 Responses to Extending CiTO to enable use of the Open Annotation Data Model to describe citations

  1. Jan Meijer says:

    Do you have suggestions how to select a graph of citations when using the cito:CitationAct class?
    When using “:paperA cito:cites :paperB”, you can select a graph of cited documents with a maximum distance of 3 with a property path construction in a sparql statement like
    SELECT DISTINCT ?paper WHERE { ?paper cito:cites{,3}|(^cito:cites){,3} :paperA }
    How can I do this when using instances of cito:CitationAct?

    • essepuntato says:

      Dear Jan,

      a possible solution to your question could be to replicate the behaviour you would like to track through the use of the following query:

      SELECT DISTINCT ?paper
      WHERE {
      ?paper (^cito:hasCitingEntity/cito:hasCitedEntity){,3} | (^cito:hasCitedEntity/cito:hasCitingEntity){,3} :paperA
      }

      This would be possible since

      ?paper1 cito:cites ?paper2

      actually is equivalent to:

      ?paper1 ^cito:hasCitingEntity/cito:hasCitedEntity ?paper2

      Does this answer your concern?

      • Jan Meijer says:

        Thanks for your reply. (^cito:hasCitingEntity/cito:hasCitedEntity){,3}|… is an interesting expression I have not used before. It does the job.

        I have been playing around with the CiTO ontology for some time. First I thought the new cito:CitationAct class was meant to replace the use of cito:cites as a predicate. Now I think I can use them both. cito:cites connects my publications and I create instances of cito:CitationAct to reify the cito:cites assertions.

        NB. The property path in the sparql query in my first posting is not correct. To get cited and citedBy publications of publication (with max. distance of 3) you should use parentheses, like:
        SELECT DISTINCT ?paper WHERE { (cito:cites|^cito:cites){,3} ?paper) }

Leave a comment