To get the two crossrefs right, just put them into the same crossref field.
To cite my comment above
you will have to put both related entries into one related field
(separated by a comma, of course), otherwise Biber will only take the
last occurrence of the field and will ignore all previous (I would
have expected a warning by Biber, but there was none. You can see this
behaviour very clearly if you add a second (different) author field
to an entry.)
@InBook{Derrida:Pharmacie2,
title = {La pharmacie de Platon},
year = 1993,
bookauthor = {Jacques Derrida},
author = {Jacques Derrida},
gender = {sm},
booktitle = {La Diss{\'e}mination},
bookauthor = {Jacques Derrida},
publisher = {{\'E}dition Points},
location = {Paris},
pages = {77-213}, % perhaps: {77-148, 149-213}
related = {Derrida:Pharmacie1-1,Derrida:Pharmacie1-2},
relatedtype = {reprintof},
%relatedstring = {Nachdruck von}
}
Since you wrote relatedstring ={Nachdruck von}, relatedtype = {reprintof} seems fitting here.
It seems to me though that the default related macro in biblatex-philosophy is slightly messed up, reprintof also gets mangled, so we will have to tell biblatex what to do with it instead:
\newbibmacro*{related:reprintof}[1]{%
\entrydata*{#1}{%
\usedriver
{\ifnameundef{savedauthor}
{\ifnameundef{savededitor}
{}
{\ifnamesequal{editor}{savededitor}
{\clearname{editor}}
{}}}
{\ifnamesequal{author}{savedauthor}
{\clearname{author}}
{}}%
\renewbibmacro*{related:init}{}%
\DeclareNameAlias{sortname}{default}%
\ifbibmacroundef{date+extrayear}
{}
{\renewbibmacro*{date+extrayear}{}%
\renewbibmacro*{date}{\printdate}}%
\renewbibmacro*{pageref}{}}
{\thefield{entrytype}}}}
If we further redefine the standard related:default to
\renewbibmacro*{related:default}[1]{%
\entrydata*{#1}{%
\usedriver
{\renewcommand*{\labelnamepunct}{\addcolon\space}%
\renewbibmacro*{author/translator+others}{\printnames{author}}%
\iffieldsequal{savedjournaltitle}{journaltitle}%
{\renewbibmacro*{journal}{\bibstring{ibidem}}%
\ifboolexpr{test {\iffieldsequal{savedvolume}{volume}} and test {\iffieldsequal{savednumber}{number}}}
{\renewbibmacro*{volume+number+eid}{}}
{}%
}
{}
\ifnameundef{savedauthor}
{\ifnameundef{savededitor}
{}
{\ifnamesequal{editor}{savededitor}
{\clearname{editor}}
{}}}
{\ifnamesequal{author}{savedauthor}
{\clearname{author}}
{}}%
\renewbibmacro*{related:init}{}%
\DeclareNameAlias{sortname}{default}%
\ifbibmacroundef{date+extrayear}
{}
{\renewbibmacro*{date+extrayear}{}%
\renewbibmacro*{date}{\printdate}}%
\renewbibmacro*{pageref}{}}
{\thefield{entrytype}}}}
Update related:default now prints an ibidem notice if the journal of the related entry is the same as the journal of the parent entry.
And treat the Barney:Notes as follows, note that Gottlieb:response is a dataonly, and the related field of Barney:Notes referring to Gottlieb:response
@Article{Barney:Notes,
author = {Rachel Barney},
title = {Notes on Plato on the \mkbibemph{Kalon} and the Good},
journaltitle = {Classical Philology},
year = 2010,
doi = {10.1086/657026},
volume = 105,
number = 4,
pages = {363-377},
related={Gottlieb:response},
relatedstring = {Commentary:},
}
@Article{Gottlieb:response,
author = {Paula Gottlieb},
title = {Response to Barney},
journaltitle = {Classical Philology},
year = 2010,
doi = {10.1086/659326},
volume = 105,
number = 4,
pages = {378-380},
options = {dataonly},
}
We can get quite a desirable output, I think.
MWE
\documentclass{scrartcl}
\usepackage{filecontents}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{xpatch}
\usepackage[pdftex]{hyperref}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[style=philosophy-modern, sorting=nyvt,
backend=biber, citetracker=constrict,
opcittracker=constrict,
idemtracker=constrict, relatedformat=parens,
autolang=hyphen, clearlang=true]{biblatex}
\begin{filecontents*}{\jobname.bib}
@Article{Barney:Notes,
author = {Rachel Barney},
title = {Notes on Plato on the \mkbibemph{Kalon} and the Good},
journaltitle = {Classical Philology},
year = 2010,
doi = {10.1086/657026},
volume = 105,
number = 4,
pages = {363-377},
related={Gottlieb:response},
relatedstring = {Commentary:},
}
@Article{Gottlieb:response,
author = {Paula Gottlieb},
title = {Response to Barney},
journaltitle = {Classical Philology},
year = 2010,
doi = {10.1086/659326},
volume = 105,
number = 4,
pages = {378-380},
options = {dataonly},
}
@Article{Derrida:Pharmacie1-1,
author = {Jacques Derrida},
title = {La pharmacie de Platon},
journaltitle = {Tel Quel},
year = 1968,
volume = 32,
pages = {3-48}
}
@Article{Derrida:Pharmacie1-2,
author = {Jacques Derrida},
title = {La pharmacie de Platon},
journaltitle = {Tel Quel},
year = 1968,
volume = 33,
pages = {18-59}
}
@InBook{Derrida:Pharmacie2,
title = {La pharmacie de Platon},
year = 1993,
bookauthor = {Jacques Derrida},
author = {Jacques Derrida},
gender = {sm},
booktitle = {La Diss{\'e}mination},
bookauthor = {Jacques Derrida},
publisher = {{\'E}dition Points},
location = {Paris},
pages = {77-213}, % perhaps: {77-148, 149-213}
related = {Derrida:Pharmacie1-1,Derrida:Pharmacie1-2},
relatedtype = {reprintof},
%relatedstring ={Nachdruck von}
}
\end{filecontents*}
\newbibmacro*{related:reprintof}[1]{%
\entrydata*{#1}{%
\usedriver
{\ifnameundef{savedauthor}
{\ifnameundef{savededitor}
{}
{\ifnamesequal{editor}{savededitor}
{\clearname{editor}}
{}}}
{\ifnamesequal{author}{savedauthor}
{\clearname{author}}
{}}%
\renewbibmacro*{related:init}{}%
\DeclareNameAlias{sortname}{default}%
\ifbibmacroundef{date+extrayear}
{}
{\renewbibmacro*{date+extrayear}{}%
\renewbibmacro*{date}{\printdate}}%
\renewbibmacro*{pageref}{}}
{\thefield{entrytype}}}}
\renewcommand*{\relateddelim}{\adddot\space}
%\renewbibmacro*{related:clearauthors}{}
\renewbibmacro*{related:default}[1]{%
\entrydata*{#1}{%
\usedriver
{\renewcommand*{\labelnamepunct}{\addcolon\space}%
\renewbibmacro*{author/translator+others}{\printnames{author}}%
\iffieldsequal{savedjournaltitle}{journaltitle}%
{\renewbibmacro*{journal}{\bibstring{ibidem}}%
\ifboolexpr{test {\iffieldsequal{savedvolume}{volume}} and test {\iffieldsequal{savednumber}{number}}}
{\renewbibmacro*{volume+number+eid}{}}
{}%
}
{}
\ifnameundef{savedauthor}
{\ifnameundef{savededitor}
{}
{\ifnamesequal{editor}{savededitor}
{\clearname{editor}}
{}}}
{\ifnamesequal{author}{savedauthor}
{\clearname{author}}
{}}%
\renewbibmacro*{related:init}{}%
\DeclareNameAlias{sortname}{default}%
\ifbibmacroundef{date+extrayear}
{}
{\renewbibmacro*{date+extrayear}{}%
\renewbibmacro*{date}{\printdate}}%
\renewbibmacro*{pageref}{}}
{\thefield{entrytype}}}}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

The solutions here might be somewhat fragile and might break in other use cases. But the default handling of related entries in philosophy-modern does seem to contain some bugs and sly redefinitions I had to counter.
Derrida:Pharmacie2, you will have to put both related entry into onerelatedfield (separated by a comma, of course), otherwise Biber will only take the last occurrence of the field and will ignore all previous (I would have expected a warning by Biber, but there was none. You can see this behaviour very clearly, if you add a second (different)authorfield to an entry.). You might like to userelatedtype = {reprintfrom}orrelatedtype = {reprintof}instead of manually specifying therelatedstring. – moewe Mar 17 '14 at 07:21eprint,urlanddoiare verbatim fields by default, so the comma cannot be treated as a separator. – moewe Mar 17 '14 at 07:36Barney:Notesis the actual real-world example where you would like to have two DOIs, but if it is: don't. The two DOIs refer two totally distinct articles. Granted, they both appear in the same issue of the same journal, deal with "to kalon" and "to agathon", and the latter is a reply to the former; but that's it - they certainly should not be crammed together into one entry. (Also I feel that Mrs. Gottlieb's work is not just a commentary, it is a "response" (cf. the title).) You might consider a separate entry for "Response to Barney" and addrelatedinfo to it. – moewe Mar 17 '14 at 07:46Derrida:Pharmacie2: >you will have to put both related entry into one related field (separated by a comma, of course) That's what I did, and that's the result: “La pharmacie de Platon”, in La Dissémination, Édition Points, Paris, pp. 77- 213; (Nachdruck von “La pharmacie de Platon”, Tel Quel, 32, pp. 3-48“La phar- macie de Platon”, Tel Quel, 33, pp. 18-59. “La pharmacie de Platon”, Tel Quel, 32, pp. 3-48“La pharmacie de Platon”, Tel Quel, 33, pp. 18-59). That's the problem. As I said, it prints each of the related entries two times, neither separated by comma nor even space. – Alexander Wittmann Mar 18 '14 at 17:38I'm not sure whether Barney:Notes is the actual real-world example where you would like to have two DOIs, but if it is: don't. The two DOIs refer two totally distinct articles. Granted, they both appear in the same issue of the same journal, deal with "to kalon" and "to agathon", and the latter is a reply to the former; but that's it - they certainly should not be crammed together into one entry.
– Alexander Wittmann Mar 18 '14 at 17:41I'd like to, as the bibliography is very large. Gottlieb will get only a
crossrefto p. 3.Derrida:Pharmacie2. Please comment if you want a different formatting or anything (the formatting in the answer is in the style ofstandard.bbx, notphilosophy-modern). – moewe Mar 18 '14 at 17:58Barney:Notes: I'd rather have a longer bibliography where Mrs Gottlieb gets properly mentioned as an author and not a commentator, than a confusing entry of two DOIs and page reference in one. (I would have suggested putting the two entries in one@set, see §3.11.5 Entry Sets of thebiblatexdocumentation, butphilosophy-modernreally does not get along with@sets: It just ignored the set here.) An alternative solution would involve redefining the datamodel and all styles would probably not be worth it. – moewe Mar 18 '14 at 18:10