Put the ribs in a large pot and add enough water to cover them. Bring to a boil over high heat and skim off any gray scum that floats up.
Reduce the heat to low. Simmer, uncovered, until the ribs are tender, about 1 hour.
While the ribs are cooking, put the beets in a saucepan and add enough water to cover them. Bring to a boil over high heat. Reduce the heat to medium and simmer until tender, about 45 minutes.
Drain the beets. Set them aside until they are cool enough to handle. Peel and chop the beets, then set aside.
Remove the ribs from the pot, reserving the cooking water in the pot. Using a fork or knife, pull or cut the meat from the bones and chop into bite-size chunks. Return the pork to the pot.
Add the carrots, onion, green beans, cabbage, tomato juice and vinegar. Bring to a boil over high heat, then reduce the heat to medium-low. Simmer, uncovered, until all the vegetables are tender, 20 to 30 minutes.
Add the boiled beets and salt and pepper to taste. Ladle the soup into bowls, and swirl in a few spoonfuls of sour cream.