URI Policies

Syriaca.org maintains stable URIs for the entities it describes (persons, places, works, manuscripts, etc.). The following guidelines will usually be relevant only to Syriaca.org editors and partner projects, not to ordinary users.

Entity URIs

Syriaca.org uses the following URI formats to identify each entity. Navigating to one of these URIs will display a human-readable HTML page, but please note that these URIs identify the entity being described and not the page that describes it.

Entity Type URI Format Example XPath
Place http://syriaca.org/place/\d+ http://syriaca.org/place/78 /TEI/text/body/listPlace/place/idno[@type='URI' and starts-with(.,'http://syriaca.org')]
Person http://syriaca.org/person/\d+ http://syriaca.org/person/13 /TEI/text/body/listPerson/person/idno[@type='URI' and starts-with(.,'http://syriaca.org')]
Work http://syriaca.org/work/\d+ http://syriaca.org/work/694 /TEI/text/body/bibl/idno[@type='URI' and starts-with(.,'http://syriaca.org')]
Manuscript http://syriaca.org/manuscript/\d+ http://syriaca.org/manuscript/75 /TEI/teiHeader/fileDesc/sourceDesc/msDesc/msIdentifier/idno[@type='URI' and starts-with(.,'http://syriaca.org')]
Cited Work http://syriaca.org/bibl/\d+ http://syriaca.org/bibl/1396 /TEI/text/body/biblStruct/*[1]/idno[@type='URI' and starts-with(.,'http://syriaca.org')]*

* As of August 8, 2016, some records still contain the URI in /TEI/text/body/biblStruct/idno[@type='URI' and starts-with(.,'http://syriaca.org')]

Please see the home page of each volume for definitions of each entity.

URIs for each entity are displayed directly underneath the name or title of the entity. The entity URI may also be queried using the XPath code in the table above. (A TEI namespace is assumed.)

The numbers at the end of the URI are essentially random and do not correspond to any other numbered or ordered system. Due to the process by which records are created, there are sometimes unassigned URIs between URI numbers.

URIs for HTML Pages

Each entry describing a Syriaca.org entity has a human-readable HTML page. While this page may be reached by navigating to the entity URI, the URI for the HTML page itself is the entity URI plus the suffix ".html". This is important for RDF assertions. For example, http://syriaca.org/place/78.html is the page describing the place identified by http://syriaca.org/place/78.

URIs for TEI Records

Each entry describing a Syriaca.org entity also has a TEI-XML record. The URI for this record is the entity URI plus the suffix "/tei". For example, http://syriaca.org/place/78/tei is the TEI record describing the place identified by http://syriaca.org/place/78. The TEI URI may be queried using the XPath /TEI/teiHeader/fileDesc/publicationStmt/idno[@type='URI' and starts-with(.,'http://syriaca.org')].

Redirected and Deprecated URIs

On occasion, the Syriaca.org editors must deprecate an erroneous record. Usually these are duplicate records for a single entity. In these cases, data from the duplicate records are merged, and one of the records is deprecated. Browsers attempting to resolve a URI for one of these records will be redirected (with a 301 message) to the correct record. Since the data from the deprecated record is included in the record to which its URI redirects, there will usually be no need to view the deprecated record or retrieve it in queries. If necessary, however, deprecated records may be viewed at https://github.com/srophe/srophe-app-data/tree/master/data/deprecated. Queries on Syriaca.org data that might refer to deprecated URIs should include idno[@type='deprecated'] in the XPaths listed above. This will retrieve the record to which the deprecated record redirects.

Scripts to merge and deprecate records may be found at https://github.com/srophe/srophe-xQueries. To deprecate records manually, please do the following (see the example at https://github.com/srophe/srophe-xQueries/blob/master/merge-persons-example-deprecated-record.xml:

  1. Add " [deprecated]" to the end of TEI/teiHeader/fileDesc/titleStmt/title[@level='a']
  2. If the record should be redirected to another record,
    1. After the TEI record URI (see above) add an <idno type="redirect"> containing the URI of the TEI record to which the deprecated record should redirect. For example, <idno type="redirect">http://syriaca.org/person/44/tei</idno>
    2. After the entity URI (see above) add an <idno type="redirect"> containing the URI of the entity to which the deprecated entity should redirect. For example, <idno type="redirect">http://syriaca.org/person/44</idno>
  3. Change the TEI/teiHeader/revisionDesc/@status to "deprecated"
  4. Inside TEI/teiHeader/revisionDesc add a change element with a description of the deprecation. For example, "Merged into [http://syriaca.org/person/44] and deprecated."
  5. Optional: Include an @xml:id on the change element, and add a @change attribute to the elements modified above that points to this xml:id.
  6. In the TEI/text/body, include a desc element with @type="deprecation" explaining the deprecation. For example, <desc change="#change2001-1" type="deprecation">This record has been deprecated and merged into http://syriaca.org/person/44.</desc>

Feedback?