I am new to NoSQL and document based schemas and I am working on a Gym-based Training app. I am trying to figure out the best way to do the following:
There are a bunch of "base activities" each with variations. Below the base activity is #1 and the variations #2 to #8.
1|15º Decline Bench Press, Barbell, Close Grip
2|15º Decline Bench Press, Thick Barbell, Close Grip
3|15º Decline Bench Press, Barbell, Close Grip, With Chains
4|15º Decline Bench Press, Thick Barbell, Close Grip, With Chains
5|15º Decline Bench Press, Barbell, Close Grip, With Bands Assisting
6|15º Decline Bench Press, Thick Barbell, Close Grip, With Bands Assisting
7|15º Decline Bench Press, Barbell, Close Grip, With Bands Resisting
8|15º Decline Bench Press, Thick Barbell, Close Grip, With Bands Resisting
As each variation is considered an advanced training technique, I will not be offering a separate video showing technique, nor will there need to be any different text-based instructional information, thus it makes no sense for these variations to be in their own activity document, due to the large amounts of redundant data. The JSON of a proposed activity document can be seen below.
{
"id": "a::1",
"doctype": "activity",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip",
"type": "resistance",
"author": "",
"exp_level": "intermediate",
"contraindicated": [
"Shoulder Impingement"
],
"technique_videos": {
"correct": "/folder/folder/file1.mp4",
"incorrect": "/folder/folder/file2.mp4"
},
"equipment": [
"Barbell",
"Decline Bench"
],
"tags": [
"Free Weight",
"Mass Builder",
"Indoor"
],
"activity_variation": [
{
"variation": "thick_barbell",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip"
},
{
"variation": "with_chains",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip, With Chains",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip, With Chains"
},
{
"variation": "thick_barbell_with_chains",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip, With Chains",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip, With Chains"
},
{
"variation": "with_bands_assisting",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip, With Bands Assisting",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip, With Bands Assisting"
},
{
"variation": "thick_barbell_with_bands_assisting",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip, With Bands Assisting",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip, With Bands Assisting"
},
{
"variation": "with_bands_resisting",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip, With Bands Resisting",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip, With Bands Resisting"
},
{
"variation": "thick_barbell_with_bands_resisting",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip, With Bands Resisting",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip, With Bands Resisting"
}
],
"description": "Excellent mass builder that focuses on the lower part of the pec.",
"technique_description": [
"1. bla bla",
"2. Bla bla",
"3. Bla bla",
"4. Bla bla"
],
"prime_mover": "Pectoralis Major",
"focus": "Pectoralis Major - Sternal Head"
}
Firstly these activities (or exercises if you prefer) will need to be queried and then presented as separate activities eg:
Secondly they will also need to be associated with (Gym programs and) individual workouts (that are comprised of activities) and the users record of what they lifted (reps, sets, weight) for a particular exercise, on a workout, on a particular day. So I am trying to figure out the best way to design the schema to accommodate for this. I am also thinking that users should be able to specify in the settings what equipment they have access to and if they don't have things eg. chains, then they don't get shown associated exercises when they query the exercise list.
Questions:
Can someone suggest a better schema/process then what I have above? Perhaps a separate document that takes an activity key and stores the associated variations for that key (activity) would be better? Suggestions please?
Given the answer to #1, how should I handle these name variations when storing the user's data from a workout, for eg:
"15º Decline Bench Press, Thick Barbell, Close Grip, With Chains"
Related
I’m trying to build a large JSON file that’s a compendium for Dungeons and Dragons. I thought I had gotten my JSON formatting correct, but when I try to give it to a program that reads/navigates JSON, it’s saying that it’s not a valid JSON file. Is anyone able to take a look and maybe point me in the right direction? Here’s a shortened version of the larger file:
{"Items":{"Arrow of Slaying":{"Name":"Arrow of Slaying"},{"Detail":"very rare"},{"Magic":"Yes"},{"Roll":"6d10"},{"Description":"An arrow of slaying is a magic weapon meant to slay a particular kind of creature."},{"Type":"Arrow"},{"Weight":"0.05"}},{"Arrows":{"Name":"Arrows"},{"Description":"Ammunition: You can use a weapon that has the ammunition property to make a ranged attack only if you have ammunition to fire from the weapon. Each time you attack with the weapon, you expend one piece of ammunition. Drawing the ammunition from a quiver, case, or other container is part of the attack. At the end of the battle, you can recover half your expended ammunition by taking a minute to search the battlefield. Source: Player's Handbook p. 150"},{"Type":"Arrow"},{"Value":"0.05"},{"Weight":"0.05"}},{"Arrows +1":{"Name":"Arrows +1"},{"Detail":"uncommon"},{"Magic":"Yes"},{"Description":"You have a +1 bonus to attack and damage rolls made with this piece of magic ammunition. Once it hits a target, the ammunition is no longer magical. Source: Dungeon Master's Guide p. 150"},{"Type":"Arrow"},{"Weight":"0.05"}},{"Arrows +2":{"Name":"Arrows +2"},{"Detail":"rare"},{"Magic":"Yes"},{"Description":"You have a +2 bonus to attack and damage rolls made with this piece of magic ammunition. Once it hits a target, the ammunition is no longer magical. Source: Dungeon Master's Guide p. 150"},{"Type":"Arrow"},{"Weight":"0.05"}},{"Arrows +3":{"Name":"Arrows +3"},{"Detail":"very rare"},{"Magic":"Yes"},{"Description":"You have a +3 bonus to attack and damage rolls made with this piece of magic ammunition. Once it hits a target, the ammunition is no longer magical. Source: Dungeon Master's Guide p. 150"},{"Type":"Arrow"},{"Weight":"0.05"}},{"Blowgun Needle of Slaying":{"Name":"Blowgun Needle of Slaying"},{"Detail":"very rare"},{"Magic":"Yes"},{"Roll":"6d10"},{"Description":"A blowgun needle of slaying is a magic weapon meant to slay a particular kind of creature. Some are more focused than others; for example, there are both needles of dragon slaying and needles of blue dragon slaying. If a creature belonging to the type, race, or group associated with a needle of slaying takes damage from the needle the creature must make a DC 17 Constitution saving throw, taking an extra 6d10 piercing damage on a failed save, or half as much extra damage on a successful one. Once a needle of slaying deals its extra damage to a creature, it becomes a nonmagical blowgun needle. Source: Dungeon Master's Guide p. 152"},{"Type":"Arrow"},{"Weight":"0.02"}},{"Blowgun Needles":{"Name":"Blowgun Needles"},{"Description":"Ammunition: You can use a weapon that has the ammunition property to make a ranged attack only if you have ammunition to fire from the weapon. Each time you attack with the weapon, you expend one piece of ammunition. Drawing the ammunition from a quiver, case, or other container is part of the attack. At the end of the battle, you can recover half your expended ammunition by taking a minute to search the battlefield. Source: Player's Handbook p. 150"},{"Type":"Arrow"},{"Value":"0.02"},{"Weight":"0.02"}},{"Blowgun Needles +1":{"Name":"Blowgun Needles +1"},{"Detail":"uncommon"},{"Magic":"Yes"},{"Description":"You have a +1 bonus to attack and damage rolls made with this piece of magic ammunition. Once it hits a target, the ammunition is no longer magical. Source: Dungeon Master's Guide p. 150"},{"Type":"Arrow"},{"Weight":"0.02"}},{"Blowgun Needles +2":{"Name":"Blowgun Needles +2"},{"Detail":"rare"},{"Magic":"Yes"},{"Description":"You have a +2 bonus to attack and damage rolls made with this piece of magic ammunition. Once it hits a target, the ammunition is no longer magical. Source: Dungeon Master's Guide p. 150"},{"Type":"Arrow"},{"Weight":"0.02"}},{"Blowgun Needles +3":{"Name":"Blowgun Needles +3"},{"Detail":"very rare"},{"Magic":"Yes"},{"Description":"You have a +3 bonus to attack and damage rolls made with this piece of magic ammunition. Once it hits a target, the ammunition is no longer magical. Source: Dungeon Master's Guide p. 150"},{"Type":"Arrow"},{"Weight":"0.02"}},{"Crossbow Bolt of Slaying":{"Name":"Crossbow Bolt of Slaying"},{"Detail":"very rare"},{"Magic":"Yes"},{"Roll":"6d10"},{"Description":"A crossbow bolt of slaying is a magic weapon meant to slay a particular kind of creature. Some are more focused than others; for example, there are both bolts of dragon slaying and bolts of blue dragon slaying. If a creature belonging to the type, race, or group associated with a bolt of slaying takes damage from the bolt the creature must make a DC 17 Constitution saving throw, taking an extra 6d10 piercing damage on a failed save, or half as much extra damage on a successful one. Once a bolt of slaying deals its extra damage to a creature, it becomes a nonmagical crossbow bolt. Source: Dungeon Master's Guide p. 152"},{"Type":"Arrow"},{"Weight":"0.075"}},{"Crossbow Bolts":{"Name":"Crossbow Bolts"},{"Description":"Ammunition: You can use a weapon that has the ammunition property to make a ranged attack only if you have ammunition to fire from the weapon. Each time you attack with the weapon, you expend one piece of ammunition. Drawing the ammunition from a quiver, case, or other container is part of the attack. At the end of the battle, you can recover half your expended ammunition by taking a minute to search the battlefield. Source: Player's Handbook p. 150"},{"Type":"Arrow"},{"Value":"0.05"},{"Weight":"0.075"}},{"Crossbow Bolts +1":{"Name":"Crossbow Bolts +1"},{"Detail":"uncommon"},{"Magic":"Yes"},{"Description":"You have a +1 bonus to attack and damage rolls made with this piece of magic ammunition. Once it hits a target, the ammunition is no longer magical. Source: Dungeon Master's Guide p. 150"},{"Type":"Arrow"},{"Weight":"0.075"}},{"Crossbow Bolts +2":{"Name":"Crossbow Bolts +2"},{"Detail":"rare"},{"Magic":"Yes"},{"Description":"You have a +2 bonus to attack and damage rolls made with this piece of magic ammunition. Once it hits a target, the ammunition is no longer magical. Source: Dungeon Master's Guide p. 150"},{"Type":"Arrow"},{"Weight":"0.075"}},{"Crossbow Bolts +3":{"Name":"Crossbow Bolts +3"},{"Detail":"very rare"},{"Magic":"Yes"},{"Description":"You have a +3 bonus to attack and damage rolls made with this piece of magic ammunition. Once it hits a target, the ammunition is no longer magical. Source: Dungeon Master's Guide p. 150"},{"Type":"Arrow"},{"Weight":"0.075"}},{"Wand of Wonder":{"Name":"Wand of Wonder"},{"Detail":"rare (requires attunement by a Spellcaster)"},{"Magic":"Yes"},{"Roll":"1d6+1"},{"Description":"This wand has 7 charges."},{"Type":"Miscellaneous"},{"Weight":"1"}}}
It looks like you're having a nesting issue with your json object.
Just looking at the first bit of your json:
{
"Items": {
"Arrow of Slaying": {
"Name": "Arrow of Slaying"
},
{
"Detail": "very rare"
},
{
"Magic": "Yes"
},
{
"Roll": "6d10"
},
{
"Description": "An arrow of ..."
},
{
"Type": "Arrow"
},
{
"Weight": "0.05"
}
},
{
"Arrows": {
"Name": "Arrows"
},
{
"Description": "Ammunition: You can use a ..."
},
{
"Type": "Arrow"
},
{
"Value": "0.05"
},
{
"Weight": "0.05"
}
},
{
...
It looks like you're trying to group the details of items within their parent object, but you are actually grouping each thing as its own object, causing a nesting issue.
Here is a cleaned up version:
{
"Items": {
"Arrow of Slaying": {
"Name": "Arrow of Slaying",
"Detail": "very rare",
"Magic": "Yes",
"Roll": "6d10",
"Description": "An arrow of slaying is a magic weapon meant to slay a particular kind of creature.",
"Type": "Arrow",
"Weight": "0.05"
},
"Arrows": {
"Name": "Arrows",
"Description": "Ammunition: You can use a weapon that has the ammunition property to make a ranged attack only if you have ammunition to fire from the weapon. Each time you attack with the weapon, you expend one piece of ammunition. Drawing the ammunition from a quiver, case, or other container is part of the attack. At the end of the battle, you can recover half your expended ammunition by taking a minute to search the battlefield. Source: Player's Handbook p. 150",
"Type": "Arrow",
"Value": "0.05",
"Weight": "0.05",
},
"Continue items here": {
"Name": "Name",
"Description": "..."
}
}
}
You can tell right away that each item and its properties are properly organized. So if you need to use the type of Arrow of Slaying you can access it through: jsonVariableName['Items']['Arrow of Slaying']['Type'];
Depending on what IDE you're developing with, you might want to add a json beautify addon/ extension. I found that using a browser tool like codebeautify will just return an error if something is wrong. Instead, if you use the atom-beautify package, it will expand it and let you know where the errors are. That way you at least have something, rather than a general error that doesn't help you.
Hope this helps :)
The program is correct, that's not valid JSON. Every object, that is, {...} needs to have its properties with a name (in quotes), a colon, and then a value (that can be another object). Looking at a simple version of you JSON we have (... represent the rest of the stuff):
{
"Items": {
"Arrow of Slaying": {
"Name": "Arrow of Slaying"
},
{ "Detail": "very rare" },
...
}
}
I believe "Detail" was supposed to be a property of the same object after "Arrow of Slaying", instead of a new object. A correct JSON, in my opinion, would then be the following:
{
"Items": {
"Arrow of Slaying": {
"Name": "Arrow of Slaying",
"Detail": "very rare",
...
},
...
}
}
After working with the Google Directions API for a project I found multiple responses with a (much) shorter value in duration_in_traffic than duration. An example extract from one of the responses i got:
"duration": {
"text": "23 mins",
"value": 1374
},
"duration_in_traffic": {
"text": "16 mins",
"value": 941
},
"end_address": "2868 Mission St, San Francisco, CA 94110, USA",
"end_location": {
"lat": 37.7522994,
"lng": -122.4184684
},
"start_address": "O'Farrell St & Powell St, San Francisco, CA 94102, USA",
"start_location": {
"lat": 37.78640559999999,
"lng": -122.4082846
},
This doesn’t seem to make much sense to me, since i assumed duration is simply the duration without traffic, while duration_in_traffic obviously incorporates traffic conditions. I found an answer on a different thread, but the person answering provided no source to back up his or her claim/observation. Is there more information about the duration response field out there besides the documentation itself, which just describes it as “[indicating] the total duration of this leg”? Is there a source stating that it actually is the average time for that route? And what is the difference between duration and duration_in_traffic?
After searching for more information about the difference between these two fields I came across this thread on the google issue tracker. There it is explained that the value in duration "takes into consideration historical data [...]", while duration_in_traffic "takes into account live traffic data in relation to your departure time". While this doesn't fully explain how the duration value is calculated, it at least extends the official documentation and confirms that historical data is used for the duration value. This also seems to be the only reliable information about the duration field on the web besides the official documentation which isn't very in depth.
Let's say I have created a model with ~30 items for each of 10 categories. I've taken all of the defaults that were provided to me.
The Average F1 Score for the model is 0.875 (I have 2 categories that are very closely related, so that's hurting accuracy a bit).
If I do a real-time prediction for a piece of text that should match positively for category 3 and 8, I get this result:
{
"Prediction": {
"details": {
"Algorithm": "SGD",
"PredictiveModelType": "MULTICLASS"
},
"predictedLabel": "8",
"predictedScores": {
"1": 0.002642059000208974,
"2": 0.010648942552506924,
"3": 0.41401588916778564,
"4": 0.02918998710811138,
"5": 0.008376320824027061,
"6": 0.009010250680148602,
"7": 0.006029266398400068,
"8": 0.4628857374191284,
"9": 0.04102163389325142,
"10": 0.01617990992963314
}
}
}
What I'm wondering is whether 3 & 8 both had effectively an ~80% certainty, but because they both matched the certainty was split between the two. If you sum all the predictedScores, you get .999999997, which has me questioning whether there's a total 1.0 score that gets split amongst each of the available categories...
If I instead set up 10 different models, and did binary matches against each of them independently, would I see that 3 & 8 would score higher (e.g. something closer to 0.8)?
I guess a related question, that I don't really need answered but might help clarify the overall question, is ... If I had a theoretical piece of text that definitely fit all 10 categories, could Amazon Machine Learning respond with a predictedScore value of 1.0 for each category? Or, because the maximum predictedScore is 1.0, would it return 0.1 for each category?
Amazon ML returns probabilities for each category known from the input set. Because they are true modeled probabilities, they must sum up to 1. In other words, you are correct when you say "there's a total 1.0 score that gets split amongst each of the available categories..."
Here is a reference page that answers this and some of your other questions:
http://docs.aws.amazon.com/machine-learning/latest/dg/reading-the-batchprediction-output-files.html#interpreting-the-contents-of-batch-prediction-files-for-a-multiclass-classification-ml-model
I saw several posts about converting json into csv in R, but I have
this error:
Error in fromJSON(file = "C:/users/emily/destop/data.json") : argument "txt" is missing, with no default) after running following code.
mydf <- fromJSON(file= "C:/users/emily/destop/data.json")
I downloaded jsonlite package.
It seems that the command doesn't read the json data correctly or cannot convert it into csv file.
A few sample data from data.json looks as follows:
{"reviewerID": "A3TS466QBAWB9D", "asin": "0014072149", "reviewerName": "Silver Pencil", "helpful": [0, 0], "reviewText": "If you are a serious violin student on a budget, this edition has it all: Piano accompaniment, low price, urtext solo parts, and annotations by Maestro David Oistrakh where Bach's penmanship is hard to decipher. Additions (in dashes) are easily distinguishable from the original bowings. This is a delightful concerto that all intermediate level violinists should perform with a violin buddy. Get your copy, today, along with \"The Green Violin; Theory, Ear Training, and Musicianship for Violinists\" book to prepare for this concerto and for more advanced playing!", "overall": 5.0, "summary": "Perform it with a friend, today!", "unixReviewTime": 1370476800, "reviewTime": "06 6, 2013"}
{"reviewerID": "A3BUDYITWUSIS7", "asin": "0041291905", "reviewerName": "joyce gabriel cornett", "helpful": [0, 0], "reviewText": "This is and excellent edition and perfectly true to the orchestral version! It makes playing Vivaldi a joy! I uses this for a wedding and was totally satisfied with the accuracy!", "overall": 5.0, "summary": "Vivalldi's Four Seasons", "unixReviewTime": 1381708800, "reviewTime": "10 14, 2013"}
{"reviewerID": "A2HR0IL3TC4CKL", "asin": "0577088726", "reviewerName": "scarecrow \"scarecrow\"", "helpful": [0, 0], "reviewText": "this was written for Carin Levine in 2008, but not premiered until 2011 at the Musica Viva Fest in Munich. .the work's premise maybe about the arduousness, nefarious of existence, how we all \"Work\" at life, at complexity, at densities of differing lifeworlds. Ferneyhough's music might suggest that these multiple dimensions of an ontology exist in diagonals across differing spectrums of human cognition, how we come to think about an object,aisthetic shaped ones, and expressionistic ones as his music.The work has a nice classical shape,and holds the \"romantic\" at bay; a mere 7 plus minutes for Alto Flute, a neglected wind cadre member.The work has gorgeous arresting moments with a great bounty of extended timbres-pointillistic bursts\" Klangfarben Sehr Kraeftig\" that you do grow weary of; it is almost predictable now hearing these works; you know they will inhabit a dense timbral space of mega-speed lines tossed in all registers;still one listens; that gap Freud speaks about, that we know we need this at some level. . .the music slowed at times for structural rigour.. . we have a dramatic causality at play in the subject,(the work's title) the arduousness of pushing, aspiring, working toward something; pleasurable illuminating or not, How about emancipation from itself;I guess we need forget the production of surplus value herein,even with the rebellions in current urban areas today; It has no place. . . these constructions are leftovers from modernity, the \"gods\" still hover. . .\"gods\" that Ferneyhough has no power to dispel. . . . All are now commonplace for the new music literature of music.This music still sound quite stunning, marvelous and evocative today,it is simple at some level, direct, unencumbered and violent with spit-tongues,gratuitous lines, fluttertongue,percussive slap-keys,tremoli wistful glissandi harmonics, fast filigreed lines, and simply threadbare melos, an austere fragment of what was a melody. . .Claudio Arrau said someplace that the performer the musician must emanate a \"work\" while playing music, a \"struggle\", aesthetic or otherwise, Sviatoslav Richter thought this grotesque, to look at a musician playing the great music. It was ugly for him. . .You can hear Ms.Levine on youtube playing her work, she is quite convincing, you always need to impart an authority,succored in an emotive focus that the music itself has not succumbed to your own possession. You play the music, it doesn't \"play\" you. . . I'd hope though that music with this arduous construction and structural vigour that it would in fact come to possess the performer. . .it is one of the last libidinal pleasures remaining. . .", "overall": 5.0, "summary": "arduous indeed!", "unixReviewTime": 1371168000, "reviewTime": "06 14, 2013"}
{"reviewerID": "A2DHYD72O52WS5", "asin": "0634029231", "reviewerName": "Amazon Customer \"RCC\"", "helpful": [0, 0], "reviewText": "Greg Koch is a knowledgable and charismatic host. He is seriously fun to watch. The main problem with the video is the format. The lack of on-screen tab is a serious flaw. You have to watch very carefully, have a good understanding of the minor pentatonic, and basic foundation of blues licks to even have a chance at gleening anything from this video.If you're just starting out, pick up the IN THE STYLE OF series. While this series has its limitations (incomplete songs due to copyright, no doubt), it has on screen tab and each lick is played at a reasonably slow speed. In addition, their web site has downloadable tab.However, if you can hold your own in the minor pentatonic, give this a try. It is quite a workout and you'll find yourself a better player having taken on the challenge.", "overall": 3.0, "summary": "GREAT! BUT NOT FOR BEGINNERS.", "unixReviewTime": 1119571200, "reviewTime": "06 24, 2005"}
{"reviewerID": "A1MUVHT8BONL5K", "asin": "0634029347", "reviewerName": "Amazon Customer \"clapton music fan\"", "helpful": [2, 12], "reviewText": "I bought this DVD and I'm returning it. The description and editorial review are misleading. This is NOT a Clapton video. Certainly some clips from Clapton, but generally this is a \"how to\" video. Same applies to Clapton The Early Years!", "overall": 2.0, "summary": "NOT CLAPTION MUSIC VIDEO! A Learn How To Play Guitar LIKE Clapton", "unixReviewTime": 1129334400, "reviewTime": "10 15, 2005"}
Eventually I would like to read the data correctly and convert the data into csv file.
The following should work
library(RJSONIO)
# test2.json is a sample json file
# I removed the reviewText field to keep it short
# Also tested this out with 1 row of data
D2 <- RJSONIO::fromJSON("./test2.json")
# convert the numeric vector helpful to one string
D2$helpful <- paste(D2$helpful, collapse = " ")
D2
reviewerID asin reviewerName helpful
[1,] "A3TS466QBAWB9D" "0014072149" "Silver Pencil" "0 0"
D3 <- do.call(cbind, D2)
write.csv(D3, "D3.csv")
I created a business page only and am the administrator. Everything that I have read telling me how to find my user id# leads me to the page number. Do business pages have user id#s? If so how do I find it? I need it for the fb:admins content. Please, I have been trying to figure this out for days and my head is physically spinning.
To find the PAGE id, just do the following. http://graph.facebook.com/YourPageNameHere. If you don't have a page name yet (less than X number of fans), then user the # in the link to your page instead of the page name.
example for Coca Cola corp: http://graph.facebook.com/CocaCola
{
"id": "40796308305",
"name": "Coca-Cola",
"picture": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/276879_40796308305_1578420141_s.jpg",
"link": "https://www.facebook.com/coca-cola",
"likes": 36645415,
"category": "Food/beverages",
"website": "http://www.coca-cola.com",
"username": "coca-cola",
"founded": "1886",
"description": "On May 8, 2011, Coca-Cola marked its 125th anniversary. Created in 1886 in Atlanta, Georgia, by Dr. John S. Pemberton, Coca-Cola was first offered as a fountain beverage at Jacob's Pharmacy by mixing Coca-Cola syrup with carbonated water. \n\nCoca-Cola was patented in 1887, registered as a trademark in 1893 and by 1895 it was being sold in every state and territory in the United States. In 1899, The Coca-Cola Company began franchised bottling operations in the United States. \n\nCoca-Cola might owe its origins to the United States, but its popularity has made it truly universal. Today, you can find Coca-Cola in virtually every part of the world.",
"can_post": true,
"checkins": 77,
"talking_about_count": 215181
}
example for GoDaddy.com: http://graph.facebook.com/GoDaddy
{
"id": "8749090685",
"name": "GoDaddy.com",
"picture": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/276455_8749090685_6602072_s.jpg",
"link": "https://www.facebook.com/GoDaddy",
"likes": 107451,
"category": "Internet/software",
"website": "http://GoDaddy.com/ http://twitter.com/GoDaddy http://youtube.com/GoDaddy http://www.linkedin.com/companies/godaddy.com ",
"username": "GoDaddy",
"company_overview": "Go Daddy helps people and businesses create and grow their online presence. Go Daddy is the world's dominant domain registrar, is also the top hosting provider in North America and the world's #1 provider of new SSL certificates. Go Daddy develops most all of its 52+ product offerings. Go Daddy has more than 7 million active customers worldwide and provides 24/7 industry-best customer service. The company is U.S. based and doesn't outsource or off-shore a single job.",
"products": "http://GoDaddy.com/Domains\nhttp://GoDaddy.com/Hosting\nhttp://GoDaddy.com/Email\nhttp://GoDaddy.com/SSL",
"can_post": true,
"talking_about_count": 2727
}
However, an fd:admin should be a USER id, not a PAGE id. You can use the graph API explorer to find out your USER id. Go to: https://developers.facebook.com/tools/explorer