How can I put fit 4 items into a RDF triple? - metadata

I have this table, representing the refugee population for each country in each year.
| Country | 2000 | 2001 | 2002 | 2003 |
|---------|-------|-------|-------|-------|
| USA | 56213 | 67216 | 67233 | 12367 |
| Chile | 26137 | 12345 | 23345 | 21312 |
How can I make it clear in the RDF triple that it's the population for the year? I can not find any existing vocabulary to reuse. My idea is to coin my own URI and then the local name to be year2000population and then the statement will be:
dbo:USA :year2000population 56213 ;
:year2001population 67216 .
But I'm not happy with this solution, it seems like it is wrong to me.

You can use a pattern for n-ary relationships, which basically means you introduce an anonymous individual for each row in your table, and add each property to the individual rather than force that in a single triple format.
See https://www.w3.org/TR/swbp-n-aryRelations/ for details of the pattern.

Here is a concrete example of reifying the property (ala n-ary relationships) using your data. The basic technique is to create an object represnting the data that belongs together, then refer to that with an object property, :popyear in the example:
:py2000USA :population 56213 ;
:year 2000 .
:py2001USA :population 67216 ;
:year 2001 .
:py2002USA :population 67233 ;
:year 2002 .
:py2003USA :population 12367 ;
:year 2003 .
dbo:USA :popyear :py2000USA ;
:popyear :py2001USA ;
:popyear :py2002USA ;
:popyear :py2003USA ;
:py2000Chile :population 26137 ;
:year 2000 .
:py2001Chile :population 12345 ;
:year 2001 .
:py2002Chile :population 23345 ;
:year 2002 .
:py2003Chile :population 21312 ;
:year 2003 .
dbo:Chile :popyear :py2000Chile ;
:popyear :py2001Chile ;
:popyear :py2002Chile ;
:popyear :py2003Chile ;

Related

What is | in diff output?

I am diff'ing two .md5 files with diff -yb --suppress-common-lines --width=250
and getting
0b92397d4978b7b5ba1ae2d4be0ca639 1.__Ms._Eldoris_McCondichie_3-5-04-Apple_ProRes_422_for_Interlaced_material_copy | 66c0a190ccf79e6ca1e34b86bfe89788 1. Ms. Eldoris McCondichie 3:5:04.mov
66c0a190ccf79e6ca1e34b86bfe89788 1.__Ms._Eldoris_McCondichie_3-5-04.mov | 7519e0c6d5f8f56be15b5c6eb82f1678 10. Mr. Clyde Eddy.mov
9ca5150c4f399ad58aae1e4a4a97f809 10._Mr._Clyde_Eddy-Apple_ProRes_422_for_Interlaced_material_copy.mov | 1eedc2c35fdbbc033dbc7bea8b3e4c0d 11. Ms. Jewel Smitherman Rogers 1a w TC.mov
7519e0c6d5f8f56be15b5c6eb82f1678 10._Mr._Clyde_Eddy.mov | 535acdb76a8f56f50bad418c8ff18ec7 12. Ms. Jewel Smitherman Rogers 1b w TC.mov
11411fac492a50e7692669849281dd8a 11._Ms._Jewel_Smitherman_Rogers_1a_w_TC-Apple_ProRes_422_for_Interlaced_material | 2f5d941751409dfd407e8f181aa745c6 13. Ms. Jewel Smitherman Rogers 2 w TC.mov
1eedc2c35fdbbc033dbc7bea8b3e4c0d 11._Ms._Jewel_Smitherman_Rogers_1a_w_TC.mov | 4a0c342444fedb2096c8495fae5e1459 14. Ms. Thelma Knight w TC.mov
acf43bd1b507f1370238dd9d7855f177 12._Ms._Jewel_Smitherman_Rogers_1b_w_TC-Apple_ProRes_422_for_Interlaced_material | 56b0d7952f01b48f47d90a5c300411ef 15. Mr. Robert Holloway w TC.mov
535acdb76a8f56f50bad418c8ff18ec7 12._Ms._Jewel_Smitherman_Rogers_1b_w_TC.mov | 3117d375927b0032f7b804d1f272f97a 16. Mr. Archie Franklin w TC.mov
1e2c9a47ef1ae1869e35e1c439af054f 13._Ms._Jewel_Smitherman_Rogers_2_w_TC-Apple_ProRes_422_for_Interlaced_material_ | 552230c7e504e0f3fa819a46b8169bd4 17. Mr. John Hope Franklin by Charles Ogletree.mov
2f5d941751409dfd407e8f181aa745c6 13._Ms._Jewel_Smitherman_Rogers_2_w_TC.mov | 933b65571efefd2ea1e642f478f4cc94 18. Dr. Olivia Hooker - Congress 03:07.mov
86841f59d7660a99feb5d3ce65c827a0 14._Ms._Thelma_Knight_w_TC-Apple_ProRes_422_for_Interlaced_material_copy.mov | 5fdea1ec2667544cb59e0a4b5b377092 19. Mr. John Hope Franklin - Congress 03:07.mov
4a0c342444fedb2096c8495fae5e1459 14._Ms._Thelma_Knight_w_TC.mov | 83a52017b776abd0a0c82e3866ac08b5 2. Dr. Olivia Hooker 11:16:04.mov
d6853f5f8fda9f130073fb3e3dbf16e6 15._Mr._Robert_Holloway_w_TC-Apple_ProRes_422_for_Interlaced_material_copy.mov | 3611978acf5e564efe7567262b9960f8 20. Bill O'Brian - Historian.mov
56b0d7952f01b48f47d90a5c300411ef 15._Mr._Robert_Holloway_w_TC.mov | 09108415da82b24c114f3c135db611eb 21. John Rogers - Descendant.mov
eafa27fce895e52bc7b6071668e0c10f 16._Mr._Archie_Franklin_w_TC-Apple_ProRes_422_for_Interlaced_material_copy.mov | 1d74cad5bf3e0887d31c4df709b91957 22. Ms. Eddie Faye Gates - Historian 3:4:04.mov
3117d375927b0032f7b804d1f272f97a 16._Mr._Archie_Franklin_w_TC.mov | d6a5dbc85ed5b60b4fc678ba9ad9672d 23. Scott Elsworth - Historian.mov
3969d4eb70bf9595bb7a3bac283fda28 17._Mr.__John_Hope_Franklin_by_Charles_Ogletree-Apple_ProRes_422_for_Interlaced_ | 529a6ad514dca022836f43a780f8d1dd 24. Dr. Olivia Hooker MV 8:07.mov
552230c7e504e0f3fa819a46b8169bd4 17._Mr.__John_Hope_Franklin_by_Charles_Ogletree.mov | 1ca96afc9135bc73e2be7f6702469416 25. Mr. Otis Clark MV 8:07.mov
7947f017d3e0dc194dd3085c2474583f 18._Dr._Olivia_Hooker_-_Congress_03-07-Apple_ProRes_422_for_Interlaced_material_ | 2bf6c9f2cc68f7e8d54b89d9585d90d9 26. Mr. Wes Young MV 8:07.mov
933b65571efefd2ea1e642f478f4cc94 18._Dr._Olivia_Hooker_-_Congress_03-07.mov | b609627fef5619d4d735f46352d0effb 27. Survivors Supreme Court 3:9:05.mov
eb837afbd180e1c9217b5cb02ca69849 19._Mr._John_Hope_Franklin_-_Congress_03-07-Apple_ProRes_422_for_Interlaced_mate | 91c74d7902d1bd4895e77c64fd163d7d 3. Ms. Jimmie Lily Franklin 7:8:04.mov
5fdea1ec2667544cb59e0a4b5b377092 19._Mr._John_Hope_Franklin_-_Congress_03-07.mov | ac6c3ac0437a93425f1b6be05c9a4914 4. Mr. Otis Clark 3:5:04.mov
1968980fe9a3d19650fa7c3ec5507a2e 2.__Dr._Olivia_Hooker_11-16-04-Apple_ProRes_422_for_Interlaced_material_copy.mov | 978f5771c0c6a821124387ce029983c8 5. Ms. Juanita Arnold 03:04.mov
83a52017b776abd0a0c82e3866ac08b5 2.__Dr._Olivia_Hooker_11-16-04.mov | b9fc1244ffbd733f4de4e014e5bef209 6. Ms. Eulis Jackson 03:04.mov
ada33ffb5e5e2083856f52b5709f1b31 20._Bill_O_Brian_-_Historian-Apple_ProRes_422_for_Interlaced_material_copy.mov | f7e5822a03f8bad047b701fd5c2c6704 7. Mr. Wes Young 3:25:04.mov
3611978acf5e564efe7567262b9960f8 20._Bill_O_Brian_-_Historian.mov | 1fc6342a34e1efc6b6c99225543a2900 8. Mr. J.B. Bates 3:5:04.mov
94e6f75688705b0e0a1b73e61cb367d7 21._John_Rogers_-_Descendant-Apple_ProRes_422_for_Interlaced_material_copy.mov | b760f9ef2c13fbdf17c56001860176b6 9. Ms. Beatrice Campbell Webster.mov
09108415da82b24c114f3c135db611eb 21._John_Rogers_-_Descendant.mov <
9345c8828f917026d88592d095190556 22._Ms._Eddie_Faye_Gates_-_Historian_3-4-04-Apple_ProRes_422_for_Interlaced_mate <
1d74cad5bf3e0887d31c4df709b91957 22._Ms._Eddie_Faye_Gates_-_Historian_3-4-04.mov <
65772091bcc8ebc75cca81a2fa29ecf4 23._Scott_Elsworth_-_Historian-Apple_ProRes_422_for_Interlaced_material_copy.mov <
d6a5dbc85ed5b60b4fc678ba9ad9672d 23._Scott_Elsworth_-_Historian.mov <
dd53a3132b03327ccf1660905aca1884 24._Dr._Olivia_Hooker_MV_8-07-Apple_ProRes_422_for_Interlaced_material_copy.mov <
529a6ad514dca022836f43a780f8d1dd 24._Dr._Olivia_Hooker_MV_8-07.mov <
f75eb9a79e4e4fccf53d0463a1c7d520 25._Mr._Otis_Clark_MV_8-07-Apple_ProRes_422_for_Interlaced_material_copy.mov <
1ca96afc9135bc73e2be7f6702469416 25._Mr._Otis_Clark_MV_8-07.mov <
f992aa8cf233d306fc7cea0a32d1d1a6 26._Mr._Wes_Young__MV_8-07-Apple_ProRes_422_for_Interlaced_material_copy.mov <
2bf6c9f2cc68f7e8d54b89d9585d90d9 26._Mr._Wes_Young__MV_8-07.mov <
10f38ecde7590255e88529e9ba41cd06 27._Survivors_Supreme_Court_3-9-05-Apple_ProRes_422_for_Interlaced_material_copy <
b609627fef5619d4d735f46352d0effb 27._Survivors_Supreme_Court_3-9-05.mov <
6d566d7dbbf79652a6545e89c8a0e5a6 3.__Ms._Jimmie_Lily_Franklin_7-8-04-Apple_ProRes_422_for_Interlaced_material_cop <
91c74d7902d1bd4895e77c64fd163d7d 3.__Ms._Jimmie_Lily_Franklin_7-8-04.mov <
What is the | symbol telling me? I can't find that anywhere in the diff documentation. Some of the lines match on checksums, yes, but the filenames are slightly different. For other lines, both the checksums and filenames only exist in the first file, not the second, yet in both instances the | is used.
Further down I get the < symbol, which I understand.
I don't get it.

Convert weekly dates to monthly week data using Stata

I have a %tw date format variable in Stata. I want to generate a monthly week variable. Like in the example below, the variable Date2 has 1999w14 now I want to generate 1999mayw1 in Stata. How can I approach this
Date2 date2
1999w14 1999mayw1
1999w14 1999mayw1
1999w14 1999mayw1
1999w14 1999mayw1
1999w14 1999mayw1
1999w14 1999mayw1
1999w14 1999mayw1
1999w14 1999mayw1
1999w15 1999mayw2
1999w15 1999mayw2
1999w15 1999mayw2
1999w15 1999mayw2
1999w15 1999mayw2
1999w15 1999mayw2
1999w15 1999mayw2
Stata has no concept of the first week in a given month. How could it? Weeks don't map neatly on to months, or even vice versa, unless you are talking about February in non-leap years which has exactly 4 weeks, but starting on different days in different years.
If you have some particular concept of a week, e.g. that it starts on Monday, then tell us what it is.
Stata week 1 always starts on 1 January, 2 on 8 January, and so forth, and week 52 always has either 8 or 9 days. If your data match those definitions, fine. Otherwise you may need to do some reading to work out what matches your problem.
If you issue the command below in Stata, you will get clickable links to .pdf versions.
. search week, sj
Search of official help files, FAQs, Examples, SJs, and STBs
SJ-12-4 dm0065_1 . . . . . Stata tip 111: More on working with weeks, erratum
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox
Q4/12 SJ 12(4):765 (no commands)
lists previously omitted key reference
SJ-12-3 dm0065 . . . . . . . . . . Stata tip 111: More on working with weeks
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox
Q3/12 SJ 12(3):565--569 (no commands)
discusses how to convert data presented in yearly and weekly
form to daily dates and how to aggregate such data to months
or longer intervals
SJ-10-4 dm0052 . . . . . . . . . . . . . . . . Stata tip 68: Week assumptions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox
Q4/10 SJ 10(4):682--685 (no commands)
tip on Stata's solution for weeks and on how to set up
your own alternatives given different definitions of the
week
That said, if you're content to take your data as Stata weeks, you can convert to months and label as you wish. This script requires that you download labmask from the Stata Journal site (start with search labmask, sj).
clear
set obs 10
gen wdate = yw(1999, _n)
format wdate %tw
list
gen mdate = mofd(dofw(wdate))
format mdate %tm
bysort mdate (wdate) : gen week = _n
gen label = string(mdate, "%tm") + "w" + string(week)
clonevar wdate2 = wdate
* install from Stata Journal site after -search labmask-
labmask wdate2, values(label)
list, sepby(mdate)
+-----------------------------------------------+
| wdate mdate week label wdate2 |
|-----------------------------------------------|
1. | 1999w1 1999m1 1 1999m1w1 1999m1w1 |
2. | 1999w2 1999m1 2 1999m1w2 1999m1w2 |
3. | 1999w3 1999m1 3 1999m1w3 1999m1w3 |
4. | 1999w4 1999m1 4 1999m1w4 1999m1w4 |
5. | 1999w5 1999m1 5 1999m1w5 1999m1w5 |
|-----------------------------------------------|
6. | 1999w6 1999m2 1 1999m2w1 1999m2w1 |
7. | 1999w7 1999m2 2 1999m2w2 1999m2w2 |
8. | 1999w8 1999m2 3 1999m2w3 1999m2w3 |
9. | 1999w9 1999m2 4 1999m2w4 1999m2w4 |
|-----------------------------------------------|
10. | 1999w10 1999m3 1 1999m3w1 1999m3w1 |
+-----------------------------------------------+

SAS: Unable to read dates in the program. How to fix it?

Here's my code. I am unable to read the dates from the input, it keeps giving me incorrect format, I tried changing a few times to mmddyy10. mmddyy8. and others but it still does not read them in correctly.
data master_patients;
infile datalines;
input account_number name $8-16 address $17-34 date MMDDYYYY10. gender $1.
insurance_code $49-51 updated_date mmddyyyy10.;
datalines;
620135 Smith 234 Aspen St. 12-21-1975 m CBC 02-16-1998
645722 Miyamoto 65 3rd Ave. 04-03-1936 f MCR 05-30-1999
645739 Jensvold 505 Glendale Ave. 06-15-1960 f HLT 09-23-1993
874329 Kazoyan 76-C La Vista . . MCD 01-15-2003
;
proc print data=master_patients;
run;
Could you please point out where I am going wrong? Thanks for any help.
I recommend a specific informat, rather than anydtdte though it helps you get started. It will ensure that your data is correct.
data master_patients;
infile datalines;
informat date updated_date mmddyy10.;
format date updated_date date9.;
input account_number name $ 8-16 address $ 17-34 date gender $1.
insurance_code $ 49-51 updated_date;
datalines;
620135 Smith 234 Aspen St. 12-21-1975 m CBC 02-16-1998
645722 Miyamoto 65 3rd Ave. 04-03-1936 f MCR 05-30-1999
645739 Jensvold 505 Glendale Ave. 06-15-1960 f HLT 09-23-1993
874329 Kazoyan 76-C La Vista . . MCD 01-15-2003
;
run;
There are two main problems. First the informat name does not have 4 Y's in it. Just 2. Second you don't have the column pointer in the right place when you are trying to read 10 characters as a date so that you are getting a blank and then the first 9 characters of the date. SAS cannot represents dates in the second or third century AD. Try MDY(12,21,197) and see what happens.
data master_patients;
infile datalines firstobs=2;
input account_number name $8-16 address $17-34 #36 date MMDDYY10.
gender $1. insurance_code $49-51 #53 updated_date mmddyy10.
;
datalines;
----+----1----+----2----+----3----+----4----+----5----+----6----+
620135 Smith 234 Aspen St. 12-21-1975 m CBC 02-16-1998
645722 Miyamoto 65 3rd Ave. 04-03-1936 f MCR 05-30-1999
645739 Jensvold 505 Glendale Ave. 06-15-1960 f HLT 09-23-1993
874329 Kazoyan 76-C La Vista . . MCD 01-15-2003
;
proc print data=master_patients;
run;
For modified list input for this problem.Just add ":" between variable name and informat.
data master_patients;
infile datalines;
input account_number name $8-16 address $17-34 date : mmddyy10. gender $1.
insurance_code $49-51 updated_date : mmddyy10.;
datalines;
620135 Smith 234 Aspen St. 12-21-1975 m CBC 02-16-1998
645722 Miyamoto 65 3rd Ave. 04-03-1936 f MCR 05-30-1999
645739 Jensvold 505 Glendale Ave. 06-15-1960 f HLT 09-23-1993
874329 Kazoyan 76-C La Vista . . MCD 01-15-2003
;
proc print data=master_patients;
run;
Please note if you don't add ":" , just change mmddyy10. to anydtdte. , the data read into dataset may Not correct.

Junk output or random character in Data::Dumper output for Net::DNS::Resolver object

I am getting familiarized with the Net::DNS library in Perl and an object is created using
my $res = Net::DNS::Resolver->new();
However, simply trying to query a domain name shows a lot f junk values, though the output itself is correct. Here is the code snippet
#!/usr/bin/perl
use Net::DNS;
use Net::IP;
use Data::Dumper;
my $rr;
$domain = 'google.com';
my $res = Net::DNS::Resolver->new();
my $ns_req = $res->query($domain, "NS");
print "\n\n###\n".Dumper($ns_req)."\n###\n\n";
Here are 2 outputs for various domains tested against this object:
What are these junk values being displayed? Is there a way to clean up the output a bit in order to read the output properly?
You are dumping the internals of the object which include the buffer which holds the original response bytes.
You should use the API defined in the module documentation to access the information.
#!/usr/bin/env perl
use strict;
use warnings;
use Net::DNS;
my $resolver = Net::DNS::Resolver->new;
my $result = $resolver->query('google.com', "NS");
$result->print;
Output:
;; Answer received from x.x.x.x (100 bytes)
;; HEADER SECTION
;; id = 39595
;; qr = 1 aa = 0 tc = 0 rd = 1 opcode = QUERY
;; ra = 1 z = 0 ad = 0 cd = 0 rcode = NOERROR
;; qdcount = 1 ancount = 4 nscount = 0 arcount = 0
;; do = 0
;; QUESTION SECTION (1 record)
;; google.com. IN NS
;; ANSWER SECTION (4 records)
google.com. 21599 IN NS ns4.google.com.
google.com. 21599 IN NS ns2.google.com.
google.com. 21599 IN NS ns1.google.com.
google.com. 21599 IN NS ns3.google.com.
;; AUTHORITY SECTION (0 records)
;; ADDITIONAL SECTION (0 records)
The query method returns a Net::DNS::Packet which provides other methods to obtain specific parts of the response.
For example:
#!/usr/bin/env perl
use strict;
use warnings;
use Net::DNS;
my $resolver = Net::DNS::Resolver->new;
my $result = $resolver->query('google.com', "NS");
for my $answer ($result->answer) {
print $answer->nsdname, "\n";
}
Output:
ns2.google.com
ns1.google.com
ns3.google.com
ns4.google.com
If you are interested in the contents of the binary buffer, Net::DNS::Packet has a data method which returns the contents of that buffer. As RFC 1035 points out:
3.2. RR definitions
3.2.1. Format
All RRs have the same top level format shown below:
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| |
/ /
/ NAME /
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TYPE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| CLASS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TTL |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| RDLENGTH |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
/ RDATA /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
where:
NAME an owner name, i.e., the name of the node to which this
resource record pertains.
TYPE two octets containing one of the RR TYPE codes.
CLASS two octets containing one of the RR CLASS codes.
TTL a 32 bit signed integer that specifies the time interval
that the resource record may be cached before the source
of the information should again be consulted. Zero
values are interpreted to mean that the RR can only be
used for the transaction in progress, and should not be
cached. For example, SOA records are always distributed
with a zero TTL to prohibit caching. Zero values can
also be used for extremely volatile data.
RDLENGTH an unsigned 16 bit integer that specifies the length in
octets of the RDATA field.
RDATA a variable length string of octets that describes the
resource. The format of this information varies
according to the TYPE and CLASS of the resource record.
You can examine the contents of $result->data by doing a hexdump:
#!/usr/bin/env perl
use strict;
use warnings;
use Net::DNS;
my $resolver = Net::DNS::Resolver->new;
my $result = $resolver->query('google.com', "NS");
print $result->data;
C:\...\t> perl tt.pl | xxd
00000000: 3256 8180 0001 0004 0000 0000 0667 6f6f 2V...........goo
00000010: 676c 6503 636f 6d00 0002 0001 c00c 0002 gle.com.........
00000020: 0001 0000 545f 0006 036e 7333 c00c c00c ....T_...ns3....
00000030: 0002 0001 0000 545f 0006 036e 7334 c00c ......T_...ns4..
00000040: c00c 0002 0001 0000 545f 0006 036e 7332 ........T_...ns2
00000050: c00c c00c 0002 0001 0000 545f 0006 036e ..........T_...n
00000060: 7331 c00c s1..

org-mode export drawers while parsing plain-lists (html)

So I have a file where I am currently keeping a bunch of data in drawers (in this specific case, a pen and paper RPG character). I overwrote how drawers work so I could implement a toggle button to hide/show. This works fine, except it seems the content isn't being parsed how I think it should.
The main issue is it seems to not parse plain-lists. As such, how would I change the function so it parses plain-lists, without damaging the other output?
export drawer function:
(require 'org-publish)
(setq org-publish-project-alist
'(
("org-notes"
:base-directory "~/shared/"
:base-extension "org"
:publishing-directory "~/public_html/org/"
:recursive t
:drawers t
:creator-info nil
:publishing-function org-publish-org-to-html
:headline-levels 5 ; Just the default for this project.
:auto-preamble t
)
))
(defun my-org-export-format-drawer (name content)
(format
(concat "#<h6>"
(capitalize name)
"#<button class=\"dbut\" type=\"button\">toggle#</button>#</h6>"
"#<div class=\"drawer "
(downcase name)
"\">"
"%s #</div>")
content))
(setq org-export-format-drawer-function 'my-org-export-format-drawer)
Sample File with drawers:
#+DRAWERS: ABILITYSCORES FEATS
* Test
:ABILITYSCORES:
#+ATTR_HTML: :border 2 :rules all :frame border
| Stat | Value | Mod |
|------+-------+-----|
| Str | 18 | 4 |
| Dex | 10 | 0 |
| Con | 16 | 3 |
| Int | 12 | 1 |
| Wis | 14 | 2 |
| Cha | 10 | 0 |
*KOM:* Str; *KDM:* Con; *BAB:* 2
:END:
:FEATS:
- Cataphract :: Bonus, +2 to attack rolls, +2 to damage rolls with Power attack
ignore AC charge penalty (all while mounted)
- Mighty Smash :: 1, +2 damage, after being hit by three Mighty Smashes opponent
takes -1 to attack rolls for [Encounter], max -4.
:END:
js-fiddle of result