Closed davidamichelson closed 7 years ago
For a place, work, and bibl records the above should work with the following changes:
lawd:place and lawd:conceptualWork and dcterms:bibliographicResource instead of lawd:person
and the bibl records should be a rdfs:Resource not skos:Concept
Here are some notes on the paths for the content:
skos:prefLabel "Ephrem"@en, "ܐܦܪܝܡ"@syr;
We need to leave these separate as they name the concept, we can mash them up in the visualization.
skos:closeMatch <http://viaf.org/viaf/sourceID/SRP|person_13>, <http://viaf.org/viaf/100177778>
These are all from TEI/text/body/listPerson/person/IDNO@type=URI, please exclude the URI of the record being generated
dcterms:relation <http://viaf.org/viaf/sourceID/SRP|person_13>, <http://viaf.org
p://www.csc.org.il/db/browse.aspx?db=SB&sL=E&sK=Ephrem&sT=keywords>
These are exactly the same as the list above from TEI/text/body/listPerson/person/IDNO@type=URI, please exclude the URI of the record being generated
dcterms:relation <http://syriaca.org/bibl/206>, <http://syriaca.org/bibl/4>
These are from the TEI/text/body/listPerson/person/bibl
dcterms:relation <http://syriaca.org/person/13/html>, <http://syriaca.org/person/13/tei>, <http://syriaca.org/person/13/ttl>
These are auto-generated based on the URI of the record. These would be excluded, maybe? from the bibl URIs? Confused about them since they are more like resources than concepts.
foaf:primaryTopicOf <http://syriaca.org/person/13/html>;
foaf:primaryTopicOf <http://syriaca.org/person/13/tei>;
foaf:primaryTopicOf <http://syriaca.org/person/13/ttl>;
These are auto-generated based on the URI of the record.
skos:related <http://syriaca.org/place/142>, <http://syriaca.org/place/78>, <http://syriaca.org/work/315>; <http://syriaca.org/place/502>, <http://syriaca.org/place/216>
These would be scraped from all Syriaca.org URIS in the tei:body but not in relation elements (refs, targets). This should exclude bibl URIS. Also we will need the script to deduplicate multiple mentions of a URI.
syriaca:hasLiteraryConnectionToPlace <http://syriaca.org/place/502>
Render from tei:relation using existing vocabularies passive, mutual, active
There are definitely some issues to work out on how to model bibl URIS
@davidamichelson and @wsalesky This is exciting!
A small comment: we should note capitalization issues. E.g., lawd:Person, lawd:Place, lawd:ConceptualWork (http://lawd.info/ontology), and dcterms:BibliographicResource (http://dublincore.org/documents/dcmi-terms/).
As far as I know, a typical RDF practice is to use upper camel case (first letter capitalized) for RDF classes and lower camel case (first letter not capitalized) for RDF properties. I'm not sure this practice can be applied across the board, but classes and properties are case-sensitive, right?
@nathangibson Yes, that is my understanding for properties vrs. classes as well.
Edited: For any relationships using the ref attribute, I will translate that attribute directly to a RDF class name, what should I do with the other name attribute values? Will they be migrated to @ref
? Or should I build in some logic to handle them on the fly?
example person/19 has the following relationships:
<relation name="has-literary-connection-to-place" active="http://syriaca.org/person/13" passive="http://syriaca.org/place/502 http://syriaca.org/place/216 http://syriaca.org/place/1450 http://syriaca.org/place/1451" source="#bib13-2">
<desc xml:lang="en">This author has a literary connection to places.</desc>
</relation>
<relation name="has-relation-to-place" active="http://syriaca.org/person/13" passive="http://syriaca.org/place/142 http://syriaca.org/place/78 http://syriaca.org/place/319 http://syriaca.org/place/8" source="#bib13-2">
<desc xml:lang="en">This author has an unspecified connection to places.</desc>
</relation>
OK, this is kind of complicated....
relation/@ref
should be turned into an RDF property (rather than class name). relation/@name
. I would like to switch these to @ref
(or at least add @ref
) but need to get input from the other editors first. This is related to https://github.com/srophe/srophe-app-data/issues/676 , except that what I was discussing there would not have required any changes to places. Maybe you can wait to build in any extra logic for @name
until the editors can discuss? This is condensed and translated in <ref target="http://syriaca.org/bibl/1204">Notes on the Indo-Scythians, The Indian Antiquary (1903) 32:381-389 and (1904) 33:10-16</ref>.
@nathangibson Thanks! I have a rough draft written, will do some testing over the weekend.
@nathangibson Let's discuss this on Wed with Winona. Would it be better to change all the @ref to @name?
On bibls, we will be using relations, so let's not lose that data or functionality.
Basic transform written. You can review results here (swap in any record you want to check by changing the 'work/13' with 'person', 'place', etc):
http://wwwb.library.vanderbilt.edu/exist/restxq/srophe/work/13/ttl
I am working on extracting a full list from eXist to up load to a triplestore, will try locally first.
Getting the following error:
HTTP Status 500 - An error occurred while processing request to /exist/restxq/srophe/work/13/ttl: err:XPTY0004 xs:string(1 Chronicles (Peshitta Version)Syriaca.org: The Syriac Reference PortalThe International Balzan Prize FoundationThe National Endowment for the HumanitiesDavid A. MichelsonNathan P. GibsonDavid A. MichelsonNathan P. GibsonDavid A. MichelsonTucker D. HannahEditing, data entry, and reconciling byNathan P. GibsonEditing, proofreading, data architecture, and encoding byDavid A. MichelsonData entry byTucker D. HannahSyriaca.org: The Syriac Reference Portalhttp://syriaca.org/work/13/teiDistributed under a Creative Commons Attribution 3.0 Unported
type Exception report
message An error occurred while processing request to /exist/restxq/srophe/work/13/ttl: err:XPTY0004 xs:string(1 Chronicles (Peshitta Version)Syriaca.org: The Syriac Reference PortalThe International Balzan Prize FoundationThe National Endowment for the HumanitiesDavid A. MichelsonNathan P. GibsonDavid A. MichelsonNathan P. GibsonDavid A. MichelsonTucker D. HannahEditing, data entry, and reconciling byNathan P. GibsonEditing, proofreading, data architecture, and encoding byDavid A. MichelsonData entry byTucker D. HannahSyriaca.org: The Syriac Reference Portalhttp://syriaca.org/work/13/teiDistributed under a Creative Commons Attribution 3.0 Unported
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: An error occurred while processing request to /exist/restxq/srophe/work/13/ttl: err:XPTY0004 xs:string(1 Chronicles (Peshitta Version)Syriaca.org: The Syriac Reference PortalThe International Balzan Prize FoundationThe National Endowment for the HumanitiesDavid A. MichelsonNathan P. GibsonDavid A. MichelsonNathan P. GibsonDavid A. MichelsonTucker D. HannahEditing, data entry, and reconciling byNathan P. GibsonEditing, proofreading, data architecture, and encoding byDavid A. MichelsonData entry byTucker D. HannahSyriaca.org: The Syriac Reference Portalhttp://syriaca.org/work/13/teiDistributed under a Creative Commons Attribution 3.0 Unported License.2016-12-16+01:00New Handbook of Syriac LiteratureNathan P. GibsonDavid A. MichelsonEdited byNathan P. GibsonEdited byDavid A. Michelsonhttp://syriaca.org/nhslClavis of Syriac Biblical Workshttp://syriaca.org/bibleBorn digital.This record created following the Syriaca.org guidelines. Documentation available at: http://syriaca.org/documentation.Approximate dates described in terms of centuries or partial centuries have been interpreted as documented in Syriaca.org Dates.The name used by Syriaca.org for document titles, citation, and disambiguation. These names have been created according to the Syriac.org guidelines for headwords: http://syriaca.org/documentation/headwords.html.An anglicized version of a name, included to facilitate searching.Unvocalized Syriac of any variety or periodVocalized West SyriacVocalized East SyriacEnglishNames or terms Romanized into English according to the standards adopted by the Gorgias Encyclopedic Dictionary of the Syriac HeritageArabicFrenchGermanLatinAdded manuscript citationCREATED: work1 Chronicles (Peshitta Version)1st ChroniclesThe first book of Chronicles, according to the Peshitta version.ܣܦܪ ܕܘܒܪ ܝܘܡ̈ܬܐ ܕܡ̈ܠܟܐ ܕܝܗܘܕܐ ܕܡܬܩܪܐ ܣܦܪ ܕܒܪܝܡܝܢ.http://syriaca.org/work/13Egerton MS 704153a-160xviith centuryAdd MS 17104Foll. 1-49vith centdefectiveDavid A. michelsonBL Egerton MS 704A Digital Catalogue of Syriac Manuscripts in the British LibrarySyriaca.orgforthcoming1st ChroniclesDigital catalogue based on William Wright. See the citation from the print catalogue.William WrightCatalogue of Syriac Manuscripts in the British Museum Acquired since the Year 1838London1870II:1-3BL Egerton MS 704David A. MichelsonBL Add MS 17104A Digital Catalogue of Syriac Manuscripts in the British LibrarySyriaca.orgforthcomingThe first book of Chronicles, according to the Peshitta versionDigital catalogue based on William Wright. See the citation from the print catalogue.William WrightCatalogue of Syriac Manuscripts in the British Museum Acquired since the Year 1838London1870XXVI:16-17BL Add MS 17104book 1part 1) is not a sub-type of node() [at line 301, column 33, source: /db/apps/srophe/modules/rest.xqm] In function: api:get-tei-rec(xs:string, xs:string) [190:24:/db/apps/srophe/modules/rest.xqm] tei2ttl:ttl-output(item()*) [190:5:/db/apps/srophe/modules/lib/tei2ttl.xqm] api:get-ttl(xs:string, xs:string) [-1:-1:/db/apps/srophe/modules/rest.xqm] org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:383) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
javax.servlet.ServletException: err:XPTY0004 xs:string(1 Chronicles (Peshitta Version)Syriaca.org: The Syriac Reference PortalThe International Balzan Prize FoundationThe National Endowment for the HumanitiesDavid A. MichelsonNathan P. GibsonDavid A. MichelsonNathan P. GibsonDavid A. MichelsonTucker D. HannahEditing, data entry, and reconciling byNathan P. GibsonEditing, proofreading, data architecture, and encoding byDavid A. MichelsonData entry byTucker D. HannahSyriaca.org: The Syriac Reference Portalhttp://syriaca.org/work/13/teiDistributed under a Creative Commons Attribution 3.0 Unported License.2016-12-16+01:00New Handbook of Syriac LiteratureNathan P. GibsonDavid A. MichelsonEdited byNathan P. GibsonEdited byDavid A. Michelsonhttp://syriaca.org/nhslClavis of Syriac Biblical Workshttp://syriaca.org/bibleBorn digital.This record created following the Syriaca.org guidelines. Documentation available at: http://syriaca.org/documentation.Approximate dates described in terms of centuries or partial centuries have been interpreted as documented in Syriaca.org Dates.The name used by Syriaca.org for document titles, citation, and disambiguation. These names have been created according to the Syriac.org guidelines for headwords: http://syriaca.org/documentation/headwords.html.An anglicized version of a name, included to facilitate searching.Unvocalized Syriac of any variety or periodVocalized West SyriacVocalized East SyriacEnglishNames or terms Romanized into English according to the standards adopted by the Gorgias Encyclopedic Dictionary of the Syriac HeritageArabicFrenchGermanLatinAdded manuscript citationCREATED: work1 Chronicles (Peshitta Version)1st ChroniclesThe first book of Chronicles, according to the Peshitta version.ܣܦܪ ܕܘܒܪ ܝܘܡ̈ܬܐ ܕܡ̈ܠܟܐ ܕܝܗܘܕܐ ܕܡܬܩܪܐ ܣܦܪ ܕܒܪܝܡܝܢ.http://syriaca.org/work/13Egerton MS 704153a-160xviith centuryAdd MS 17104Foll. 1-49vith centdefectiveDavid A. michelsonBL Egerton MS 704A Digital Catalogue of Syriac Manuscripts in the British LibrarySyriaca.orgforthcoming1st ChroniclesDigital catalogue based on William Wright. See the citation from the print catalogue.William WrightCatalogue of Syriac Manuscripts in the British Museum Acquired since the Year 1838London1870II:1-3BL Egerton MS 704David A. MichelsonBL Add MS 17104A Digital Catalogue of Syriac Manuscripts in the British LibrarySyriaca.orgforthcomingThe first book of Chronicles, according to the Peshitta versionDigital catalogue based on William Wright. See the citation from the print catalogue.William WrightCatalogue of Syriac Manuscripts in the British Museum Acquired since the Year 1838London1870XXVI:16-17BL Add MS 17104book 1part 1) is not a sub-type of node() [at line 301, column 33, source: /db/apps/srophe/modules/rest.xqm] In function: api:get-tei-rec(xs:string, xs:string) [190:24:/db/apps/srophe/modules/rest.xqm] tei2ttl:ttl-output(item()*) [190:5:/db/apps/srophe/modules/lib/tei2ttl.xqm] api:get-ttl(xs:string, xs:string) [-1:-1:/db/apps/srophe/modules/rest.xqm] org.exist.extensions.exquery.restxq.impl.RestXqServlet.service(RestXqServlet.java:124) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:50) org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:221) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
org.exquery.restxq.RestXqServiceException: err:XPTY0004 xs:string(1 Chronicles (Peshitta Version)Syriaca.org: The Syriac Reference PortalThe International Balzan Prize FoundationThe National Endowment for the HumanitiesDavid A. MichelsonNathan P. GibsonDavid A. MichelsonNathan P. GibsonDavid A. MichelsonTucker D. HannahEditing, data entry, and reconciling byNathan P. GibsonEditing, proofreading, data architecture, and encoding byDavid A. MichelsonData entry byTucker D. HannahSyriaca.org: The Syriac Reference Portalhttp://syriaca.org/work/13/teiDistributed under a Creative Commons Attribution 3.0 Unported License.2016-12-16+01:00New Handbook of Syriac LiteratureNathan P. GibsonDavid A. MichelsonEdited byNathan P. GibsonEdited byDavid A. Michelsonhttp://syriaca.org/nhslClavis of Syriac Biblical Workshttp://syriaca.org/bibleBorn digital.This record created following the Syriaca.org guidelines. Documentation available at: http://syriaca.org/documentation.Approximate dates described in terms of centuries or partial centuries have been interpreted as documented in Syriaca.org Dates.The name used by Syriaca.org for document titles, citation, and disambiguation. These names have been created according to the Syriac.org guidelines for headwords: http://syriaca.org/documentation/headwords.html.An anglicized version of a name, included to facilitate searching.Unvocalized Syriac of any variety or periodVocalized West SyriacVocalized East SyriacEnglishNames or terms Romanized into English according to the standards adopted by the Gorgias Encyclopedic Dictionary of the Syriac HeritageArabicFrenchGermanLatinAdded manuscript citationCREATED: work1 Chronicles (Peshitta Version)1st ChroniclesThe first book of Chronicles, according to the Peshitta version.ܣܦܪ ܕܘܒܪ ܝܘܡ̈ܬܐ ܕܡ̈ܠܟܐ ܕܝܗܘܕܐ ܕܡܬܩܪܐ ܣܦܪ ܕܒܪܝܡܝܢ.http://syriaca.org/work/13Egerton MS 704153a-160xviith centuryAdd MS 17104Foll. 1-49vith centdefectiveDavid A. michelsonBL Egerton MS 704A Digital Catalogue of Syriac Manuscripts in the British LibrarySyriaca.orgforthcoming1st ChroniclesDigital catalogue based on William Wright. See the citation from the print catalogue.William WrightCatalogue of Syriac Manuscripts in the British Museum Acquired since the Year 1838London1870II:1-3BL Egerton MS 704David A. MichelsonBL Add MS 17104A Digital Catalogue of Syriac Manuscripts in the British LibrarySyriaca.orgforthcomingThe first book of Chronicles, according to the Peshitta versionDigital catalogue based on William Wright. See the citation from the print catalogue.William WrightCatalogue of Syriac Manuscripts in the British Museum Acquired since the Year 1838London1870XXVI:16-17BL Add MS 17104book 1part 1) is not a sub-type of node() [at line 301, column 33, source: /db/apps/srophe/modules/rest.xqm] In function: api:get-tei-rec(xs:string, xs:string) [190:24:/db/apps/srophe/modules/rest.xqm] tei2ttl:ttl-output(item()*) [190:5:/db/apps/srophe/modules/lib/tei2ttl.xqm] api:get-ttl(xs:string, xs:string) [-1:-1:/db/apps/srophe/modules/rest.xqm] org.exist.extensions.exquery.restxq.impl.ResourceFunctionExecutorImpl.execute(ResourceFunctionExecutorImpl.java:177) org.exquery.restxq.impl.AbstractRestXqService.service(AbstractRestXqService.java:190) org.exist.extensions.exquery.restxq.impl.RestXqServiceImpl.service(RestXqServiceImpl.java:119) org.exist.extensions.exquery.restxq.impl.RestXqServlet.service(RestXqServlet.java:102) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:50) org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:221) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
org.exist.xquery.XPathException: err:XPTY0004 xs:string(1 Chronicles (Peshitta Version)Syriaca.org: The Syriac Reference PortalThe International Balzan Prize FoundationThe National Endowment for the HumanitiesDavid A. MichelsonNathan P. GibsonDavid A. MichelsonNathan P. GibsonDavid A. MichelsonTucker D. HannahEditing, data entry, and reconciling byNathan P. GibsonEditing, proofreading, data architecture, and encoding byDavid A. MichelsonData entry byTucker D. HannahSyriaca.org: The Syriac Reference Portalhttp://syriaca.org/work/13/teiDistributed under a Creative Commons Attribution 3.0 Unported License.2016-12-16+01:00New Handbook of Syriac LiteratureNathan P. GibsonDavid A. MichelsonEdited byNathan P. GibsonEdited byDavid A. Michelsonhttp://syriaca.org/nhslClavis of Syriac Biblical Workshttp://syriaca.org/bibleBorn digital.This record created following the Syriaca.org guidelines. Documentation available at: http://syriaca.org/documentation.Approximate dates described in terms of centuries or partial centuries have been interpreted as documented in Syriaca.org Dates.The name used by Syriaca.org for document titles, citation, and disambiguation. These names have been created according to the Syriac.org guidelines for headwords: http://syriaca.org/documentation/headwords.html.An anglicized version of a name, included to facilitate searching.Unvocalized Syriac of any variety or periodVocalized West SyriacVocalized East SyriacEnglishNames or terms Romanized into English according to the standards adopted by the Gorgias Encyclopedic Dictionary of the Syriac HeritageArabicFrenchGermanLatinAdded manuscript citationCREATED: work1 Chronicles (Peshitta Version)1st ChroniclesThe first book of Chronicles, according to the Peshitta version.ܣܦܪ ܕܘܒܪ ܝܘܡ̈ܬܐ ܕܡ̈ܠܟܐ ܕܝܗܘܕܐ ܕܡܬܩܪܐ ܣܦܪ ܕܒܪܝܡܝܢ.http://syriaca.org/work/13Egerton MS 704153a-160xviith centuryAdd MS 17104Foll. 1-49vith centdefectiveDavid A. michelsonBL Egerton MS 704A Digital Catalogue of Syriac Manuscripts in the British LibrarySyriaca.orgforthcoming1st ChroniclesDigital catalogue based on William Wright. See the citation from the print catalogue.William WrightCatalogue of Syriac Manuscripts in the British Museum Acquired since the Year 1838London1870II:1-3BL Egerton MS 704David A. MichelsonBL Add MS 17104A Digital Catalogue of Syriac Manuscripts in the British LibrarySyriaca.orgforthcomingThe first book of Chronicles, according to the Peshitta versionDigital catalogue based on William Wright. See the citation from the print catalogue.William WrightCatalogue of Syriac Manuscripts in the British Museum Acquired since the Year 1838London1870XXVI:16-17BL Add MS 17104book 1part 1) is not a sub-type of node() [at line 301, column 33, source: /db/apps/srophe/modules/rest.xqm] In function: api:get-tei-rec(xs:string, xs:string) [190:24:/db/apps/srophe/modules/rest.xqm] tei2ttl:ttl-output(item()*) [190:5:/db/apps/srophe/modules/lib/tei2ttl.xqm] api:get-ttl(xs:string, xs:string) [-1:-1:/db/apps/srophe/modules/rest.xqm] org.exist.xquery.DynamicTypeCheck.check(DynamicTypeCheck.java:145) org.exist.xquery.DynamicTypeCheck.eval(DynamicTypeCheck.java:67) org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:328) org.exist.xquery.FunctionCall.eval(FunctionCall.java:232) org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:74) org.exist.xquery.FunctionCall.eval(FunctionCall.java:214) org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71) org.exist.xquery.PathExpr.eval(PathExpr.java:264) org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:84) org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:155) org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:328) org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:270) org.exist.xquery.value.FunctionReference.evalFunction(FunctionReference.java:88) org.exist.extensions.exquery.restxq.impl.ResourceFunctionExecutorImpl.execute(ResourceFunctionExecutorImpl.java:169) org.exquery.restxq.impl.AbstractRestXqService.service(AbstractRestXqService.java:190) org.exist.extensions.exquery.restxq.impl.RestXqServiceImpl.service(RestXqServiceImpl.java:119) org.exist.extensions.exquery.restxq.impl.RestXqServlet.service(RestXqServlet.java:102) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:50) org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:221) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.54 logs. Apache Tomcat/7.0.54
I think this has been resolved.
The purpose of this issue is to create generic lowest common denominator transformation for persons, places, works, and bibl records so we can generate linked data.
This is a draft.
@wsalesky Please write a transform for the following:
For a each record we need to generate four sets of triples. This is the model for a person record: