Cædmon Citation Network – Week 12+13
Posted: August 23, 2016 Filed under: caedmon-citation, digital-humanities | Tags: anglo-saxon studies, bibliographies, caedmon, citation, citation management, citation managers, citation practice, citations, database, digital humanities, humanities, humanities research, old english, publication patterns, publishing patterns, Research Leave a comment »Hi all!
Summer is winding to a close, and our project continues to progress. The database is working, and is currently being made faster for even easier use. Books and articles are still being collected and scanned, and I am trying to split my time between scanning sources and collecting data.
At our last meeting Dan and I went over the exact specifications for the references I am collecting. Information is sorted into four types:
Text Quotes (TQ)
Text Mentions ™
Read the rest of this entry »Cædmon Citation Network – Week 9
Posted: July 18, 2016 Filed under: caedmon-citation, digital-humanities | Tags: anglo-saxon england, anglo-saxon studies, blogging, caedmon, citation, citation management, citation practice, citations, database, digital humanities, humanities, humanities research, old english, publication patterns, publishing patterns, Research, student blogs Leave a comment »Hi all!
I finally get to start reading this week!!! While I am still not 100% complete in my sourcing of all the books and articles, it is looking as though I will definitely be able to start reading by Wednesday if not earlier.
I also have a bunch of books from inter-library loans that I need to scan portions of. That will be part of my job today.
The database will be ready this week as well. Garret says that there will be a few improvements that he will want to make, but I will be able to start using it this week. Read the rest of this entry »
Cædmon Citation Network – Week 6
Posted: June 24, 2016 Filed under: caedmon-citation, digital-humanities | Tags: caedmon, citation, citation management, citation managers, citation practice, citations, database, digital humanities, digital medievalist, old english, publication patterns, transparency, university of lethbridge, zotero Leave a comment »Hi all!
This week I have been gathering sources for the pieces in our Cædmon bibliography. This is not a speedy task by any means! I admit that I have felt a bit impatient with myself and have been concerned that I should be at the point where I am gathering data by now, but I try to remind myself that it is important to make sure that we have a complete pool of sources from which to pull data, otherwise people could poke holes in our findings when we are all done. All of the proper experimental procedures that I learned way back in 7th grade science fair still apply here!
Dan gave me the key to the Digital Humanities lab on Monday, and I was able to go in and dig through Rachel’s drawer in the filing cabinet from last summer. I was excited to find that she had a ton of articles in there that simply need to be scanned. This will be time consuming, but worth it to have them all organized in the GLOBUS folder and accessible to everyone in our group. Read the rest of this entry »
Cædmon Citation Network – Week 5
Posted: June 17, 2016 Filed under: caedmon-citation, digital-humanities | Tags: anglo-saxon studies, bibliographies, caedmon, citation, citation management, citation practice, citations, Computers, database, digital humanities, old english, publication patterns, university of lethbridge Leave a comment »Hi all!
Painfully short blog entry this week, I’m afraid. A lot has been accomplished this week, but there is not a lot to report.
The bibliography has been completed, with the final count being approximately 700 pieces of Cædmon scholarship. This number may increase or decrease as I read through the actual works. Some may have nothing to do with Cædmon (I erred on the side of having to much rather than too little), and others may point me in the direction of something I might have missed.
I have also begun to search out access to the pieces that make up the bibliography. Read the rest of this entry »
Understanding Relation Models in Yii
Posted: February 24, 2012 Filed under: Applications, Technical Notes, Yii | Tags: Computers, database, queries, relational queries, scaffolding, Tips, YII Leave a comment » The core of any database driven website is its ability to handle table relations (if that sentence didn’t mean anything to you, you should first do some reading about relational databases, database design, and normalising data: an introduction aimed at textual editors can be found in my article “What digital editors can learn from print editorial practice.” Literary and Linguistic Computing 24 (2009): 113-125) One of the really useful things about the Yii MVC framework is the extent to which it allows you to systematise and automate the process of establishing these relations. Read the rest of this entry »Creating compound attributes in Yii
Posted: February 24, 2012 Filed under: Applications, Technical Notes, Yii | Tags: compound queries, Computers, database, queries, scaffolding, Tips, YII Leave a comment » Let’s say you have a database table called persons with separate attributes (fields) forlastName
and firstNames
. Elsewhere in your website, you want to refer to the underlying record in this table using the person’s whole name as a single entity (e.g. to provide a link, for example: <a href="http://example.com/index.php?r=Person/view&id=1">Jane Q. Public</a>
.
Sometimes, you might be able to refer to the two attributes separately. For example, if you simply wanted to echo the content in a view somewhere you could use code like this:
<?php echo CHtml::encode($data->person->firstNames) . ' ' . CHtml::encode($data->person->lastName); ?>
This is a little inefficient if you are doing it a lot throughout your site, because you need to keep re-entering the same code correctly over and over again (and avoiding this is a main reason for going with an MVC framework like Yii in the first place). But the real trouble comes if you want to use the attributes in a context where the method you are invoking expects a single attribute—as is the case, for example, with the yii linking method CHtml::link.
The way round this is to create a new compound attribute in your model. This means taking the two underlying attributes in your table and combining them into a single attribute already arranged the way you want that you can then invoke in other methods. Read the rest of this entry » MYSQL Searches for use with Zencart [2]
Posted: October 22, 2009 Filed under: Technical Notes | Tags: Computers, database, MySQL, TEI, Zencart Leave a comment »2011 extract badge info
SELECT
DISTINCT
o.orders_id,
name.products_options_values,
affiliation.products_options_values,
o.customers_email_address
FROM
orders_products_attributes AS name,
orders_products_attributes AS affiliation,
orders_products_attributes AS opa,
orders AS o,
orders_products AS op
WHERE
name.orders_products_id = affiliation.orders_products_id
AND name.products_options = 'Name'
AND affiliation.products_options = 'Affiliation'
AND name.orders_id = o.orders_id
AND op.orders_id = o.orders_id
AND (op.products_id = '66'
OR op.products_id = '68')
2011 extract registrations
SELECT o.orders_id, o.date_purchased, o.customers_id,
o.customers_name, op.products_id, op.products_name,
opa.products_options, opa.products_options_values, op.final_price
FROM orders AS o, orders_products AS op
LEFT JOIN orders_products_attributes AS opa
ON op.orders_products_id = opa.orders_products_id
AND opa.products_options = 'Register for the 2011 TEI Conference'
WHERE op.orders_id = o.orders_id
AND (op.products_id = '66'
OR op.products_id = '68')
AND o.date_purchased > '2011-07-01 00:00:00'
ORDER BY op.products_id
Extract workshop registrations:
SELECT opa.products_options_id, opa.products_options,
opa.products_options_values, o.customers_name
FROM orders AS o, orders_products AS op
LEFT JOIN orders_products_attributes AS opa
ON op.orders_products_id = opa.orders_products_id
WHERE o.date_purchased > '2011-07-01 00:00:00'
AND products_options_id > '27'
AND op.orders_id = o.orders_id
AND opa.products_options_values != 'No optional activity'
AND op.products_id='66'
OR op.orders_id = o.orders_id AND op.products_id='68'
ORDER BY opa.products_options
Extract all orders on a product by product basis, ordered by product, including the option for year end of subscription if it is present and including any comments about refunds (note: the last two work only because I specifically the options I am looking for have excluded everything else).
SELECT o.orders_id, o.date_purchased, o.customers_id,
o.customers_name, op.products_id, op.products_name,
opa.products_options, opa.products_options_values, op.final_price,
osh.comments
FROM orders AS o, orders_products AS op
LEFT JOIN orders_products_attributes AS opa
ON op.orders_products_id = opa.orders_products_id
AND opa.products_options = 'Valid until the last day of'
LEFT JOIN orders_status_history AS osh
ON op.orders_id = osh.orders_id
AND osh.comments LIKE '%REFUND INITIATED%'
WHERE op.orders_id = o.orders_id
AND o.date_purchased > '2011-09-30 23:59:59'
AND o.date_purchased < '2011-11-01 00:00:00'
ORDER BY op.products_id
To build a list of names and affiliations for conference badges (<2010):
SELECT name.products_options_values, affiliation.products_options_values
FROM orders_products_attributes AS name,
orders_products_attributes AS affiliation
WHERE name.orders_products_id = affiliation.orders_products_id
AND name.products_options = 'Name'
AND affiliation.products_options = 'Affiliation';
Same thing, with email addresses:
SELECT name.products_options_values,
affiliation.products_options_values,
customers.customers_email_address
FROM orders_products_attributes AS name,
orders_products_attributes AS affiliation, orders AS customers
WHERE name.orders_products_id = affiliation.orders_products_id
AND name.products_options = 'Name'
AND affiliation.products_options = 'Affiliation'
AND name.orders_id = customers.orders_id
The gets a list of subscribers:
SELECT customers.customers_name, customers.customers_email_address,
workshop.products_options_values
FROM orders AS customers, orders_products_attributes AS workshop
WHERE customers.orders_id = workshop.orders_id
AND (workshop.products_options_values = '2009'
OR workshop.products_options_values = '2010'
OR workshop.products_options_values = '2011'
OR workshop.products_options_values = '2012'
OR workshop.products_options_values = '2013')
This search pulls all the registrations for a specific workshop plus the number of orders in each case:
SELECT customers.customers_name, customers.customers_email_address,
workshop.products_options_values, orders.products_quantity
FROM orders AS customers, orders_products_attributes AS workshop,
orders_products AS orders
WHERE orders.products_name = 'Register for a Preconference Workshop'
AND orders.orders_id = customers.orders_id
AND orders.orders_id = workshop.orders_id
AND workshop.products_options_values =
'A TEI-based Publishing Workflow, Nov. 11, 15:00-18:00.'
This one builds a list of all invoices:
SELECT
orders.lp_trans_num AS 1stData_Invoice_No,
lp.transaction_reference_number AS 1stData_Reference_No,
orders.orders_id AS Zencart_Invoice_No,
orders.date_purchased AS Purchase_Date,
orders.billing_name AS Invoice_Name,
orders.order_total AS Invoice_Tot
FROM
orders,
linkpoint_api AS lp
WHERE
orders.lp_trans_num > 0
AND
lp.lp_trans_num = orders.lp_trans_num;
This breaks the invoices down by item. It has one weakness: it can’t accommodate discount information from the table orders_total: this is because I need to do some kind of self-join on orders_total before using it: the table has 2-3 rows for each order (1 for sub-total, 1 for discounts (if any), potentially one more for coupons, and 1 for total), all in the same column.
SELECT
orders.lp_trans_num AS 1stData_Invoice_No,
lp.transaction_reference_number AS 1stData_Reference_No,
orders.orders_id AS Zencart_Invoice_No,
orders.date_purchased AS Purchase_Date,
orders.billing_name AS Invoice_Name,
orders.order_total AS Invoice_Tot,
products.products_name AS Item,
CONCAT(attributes.products_options,': ',attributes.products_options_values) AS Options,
products.final_price AS Unit_Price,
products.products_quantity AS Quantity,
products.final_price * products.products_quantity AS Item_SubTotal
FROM
orders,
orders_products AS products,
orders_products_attributes AS attributes,
linkpoint_api AS lp
WHERE
orders.lp_trans_num > 0
AND
orders.orders_id = products.orders_id
AND
products.orders_id = attributes.orders_id
AND
products.orders_products_id = attributes.orders_products_id
AND
lp.lp_trans_num = orders.lp_trans_num
AND
(attributes.products_options = 'Valid until the last day of'
OR
attributes.products_options = 'Registration Category'
OR
attributes.products_options = 'Pre-conference Workshop')
;